System and method for digital remote delivery of personalized contingency management to optimize individualized treatment for substance use disorder
The digital therapy application addresses the limitations of conventional CM by personalizing and integrating reward tracks to reinforce self-control and activity completion, enhancing user engagement and therapeutic efficacy for SUD treatment.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- CLICK THERAPEUTICS INC
- Filing Date
- 2025-05-02
- Publication Date
- 2026-06-19
Smart Images

Figure 2026100770000001_ABST
Abstract
Description
Technical Field
[0001] (Cross - reference to related applications) This invention claims priority to U.S. Patent Application No. 18 / 974,197, filed on December 9, 2024, entitled "SYSTEMS AND METHODS FOR DIGITAL REMOTE DELIVERY OF PERSONALIZED CONTINGENCY MANAGEMENT TO OPTIMIZE INDIVIDUALIZED TREATMENT OF SUBSTANCE USE DISORDERS", which is hereby incorporated by reference in its entirety.
Background Art
[0002] Substance use disorder (SUD) results from the continuous and compulsive use of substances such as alcohol and drugs, causing harms such as cognitive impairment, health risks, and disabilities. This condition arises from a variety of psychological and social factors. For example, specific factors that can cause SUD include genetics (e.g., family history of addiction), exposure to substance use (e.g., early exposure and use), stress, trauma, peer pressure, mental health disorders (e.g., post - traumatic stress disorder, depression, anxiety), coping mechanisms, chronic pain, lack of education, co - existing mental health disorders (e.g., bipolar disorder, borderline personality disorder), or poverty (e.g., limited access to education or employment opportunities).
[0003] This condition negatively impacts not only the physical, social, mental, and economic well-being of the affected individual, but also their overall quality of life. SUD can lead to a variety of health complications, including liver disease, heart disease, or respiratory problems. In addition, SUD can worsen symptoms of mental health disorders and increase the risk of self-harm. The overall quality of life of individuals with SUD is often severely impaired, leading to a decreased sense of satisfaction with life. At the neurological level, the substance alters neurotransmitter concentrations, leading to dependence and cravings. Long-term drug abuse can result in structural changes in brain regions such as the prefrontal cortex, as well as cognitive impairment (e.g., memory problems, difficulty concentrating). Regarding various other physical health conditions (e.g., cardiovascular, liver), SUD can raise blood pressure and increase susceptibility to heart disease, arrhythmias, hepatitis, constipation, malnutrition, lung infections, or pulmonary hypertension. SUD can also lead to premature aging such as wrinkles and skin discoloration, weight gain or loss, and deterioration of dental health such as tooth decay.
[0004] Individuals suffering from SUD can be treated to break their substance addiction through behavioral conditioning. One example of such treatment is contingency management (CM), a behavioral therapy technique (also known as operant conditioning intervention) that uses positive reinforcement to encourage individuals to achieve target behaviors. In the treatment of substance abuse, CM involves providing positive reinforcement (e.g., in the form of rewards) in response to evidence of self-control. CM is based on the principle that immediate and specific positive reinforcement strengthens the desired behavior, helping the individual overcome addiction and maintain recovery. At the neurological level, when an individual receives a reward following a desired behavior, dopamine is released into the user's brain's reward system (e.g., the nucleus accumbens). This dopamine release reinforces the behavior by creating a positive association, increasing the likelihood that the individual will repeat this behavior. Repeatedly combining behavior with positive reinforcement in this way can alter neural circuits over time, gradually changing behavioral patterns and suppressing dependence on maladaptive behaviors associated with substance use. Traditionally, care management (CM) involves face-to-face interaction between the individual and the caregiver, enabling immediate feedback.
[0005] In some conventional approaches to CM implementation, CM is typically delivered so that the intervention directly targets a specific target behavior. The target behavior may be verified self-control of a target substance or completion of an additional treatment-related activity. In conventional CM, when two broad categories of behaviors are targeted simultaneously, these behaviors are reinforced through independent reinforcement tracks. In other words, reinforcement of one target behavior depends on the individual's history of successfully completing that target behavior on that track. In addition, reinforcement of another target behavior depends on the individual's history of successfully completing that target behavior on this other track. Having separate, independent reinforcement tracks is unproductive and may worsen clinical outcomes, especially when the difficulty levels of multiple types of behaviors differ, as it dilutes the effect of reinforcement on the individual.
[0006] CM has so far failed to be implemented on digital therapy platforms due to various challenges encountered when attempting to provide digital CM solutions. Firstly, traditional CM approaches are not personalized for individual users or do not dynamically change according to user progress, and are therefore ineffective. Secondly, in traditional CM approaches, self-control is not directly reinforced as the primary target behavior. In this regard, traditional CM approaches may be seen as a direct incentive for completing activities within the app, which may raise concerns regarding institutional, legal, and visual issues. Thirdly, in traditional CM approaches, the self-control contingency reward is diluted because there are multiple target behaviors. Fourthly, due to the time lag in obtaining rewards in traditional CM approaches, desirable behavioral changes, such as negative drug test results, are not reinforced. Fifthly, in traditional CM approaches, the implementation cost is too high because there are multiple target behaviors. Sixthly, traditional CM approaches with multiple target behaviors are considered too complex for users. [Overview of the project]
[0007] To address these and other technical challenges associated with the remote implementation of contingency management for individuals with substance use disorders, the digital therapy applications detailed in this disclosure offer a novel approach to contingency management (CM) by delivering optimally personalized positive reinforcement to promote recovery and abstinence using individualized support and engagement (RAISE®) by best encouraging desirable behaviors. The digital therapy applications described in this disclosure offer numerous advantages.
[0008] Firstly, the digital therapy application provides personalized CM by tailoring the reinforcement and reward structure to the specific user's behavior and progress, taking into account multidimensional data about that user and the state of that data. The algorithm for providing positive reinforcement dynamically adapts based on real-time user data collected through the user's device. This approach makes the reinforcement provided clinically effective, maximizes user engagement, and adapts to the evolving needs of a particular user over time.
[0009] Secondly, the single, integrated primary reward track provided to the user by the digital therapy application directly reinforces self-control by delivering rewards only when self-control has been verified. Eliminating additional reward tracks eliminates concerns that rewards may accumulate with each activity completed (direct monetary incentive for a particular activity) or be used to purchase materials, thus resolving institutional, legal, and visual concerns. The requirement of self-control verification to receive rewards also serves as a safeguard against this possibility. This represents an improvement over traditional approaches in CM that rely on restrictions on certain types of purchases. In contrast, the digital therapy approach of this disclosure mitigates these risks by ensuring that individualized rewards are always conditional on self-control.
[0010] Thirdly, by directly rewarding self-control and indirectly rewarding activity completion, the value of the reward associated with the highest-priority behavior (i.e., self-control) is prevented from being diluted by the completion of other target behaviors. In conventional CM methods that use multiple interdependent reward tracks, a large amount of rewards can accumulate on one track, resulting in a decrease in the value of rewards associated with other tracks and potentially causing reward dilution. This problem can be particularly serious when one target behavior is easier to achieve than another. For example, some users may find it easier to complete an in-app lesson than to maintain material self-control for several days. Encouraging material self-control to equally reward both would be difficult and unproductive. The digital therapy application of this disclosure addresses this problem by directly reinforcing self-control and indirectly reinforcing activity completion through individualized self-control contingency rewards.
[0011] Fourth, positive reinforcement is linked in close temporal proximity to the target behavior and is delivered to the user in a timely manner through their user device, which can significantly improve the therapeutic effect of CM. Specifically, the digital therapy application of this disclosure can leverage its ability to remotely monitor and verify to reinforce immediate behavioral changes (e.g., negative drug test results) and provide timely support for self-control.
[0012] Fifth, the unique combination of direct and indirect reinforcement helps to incorporate two different target behaviors at a lower cost compared to directly reinforcing each target behavior individually and independently.
[0013] Sixth, a single, integrated reward track that incorporates a multidimensional aspect of direct and indirect reinforcement by targeting multiple different types of behaviors is easier for users to follow and understand. For example, digital therapy applications can clearly display feedback on progress toward achieving goals at both direct and indirect reinforcement opportunities. In contrast, traditional CM approaches with multiple independent reward tracks can confuse users over time as they try to keep up with their progress.
[0014] The limitations of existing CM models can be addressed by a combination of the following elements of the digital therapy application detailed in this disclosure. The first element of CM delivery in the digital therapy application includes probabilistic rewards for positive reinforcement when a recovery activity is completed and a self-control test is validated. This personalized mechanism allows for indirect incentives for completing recovery activities by providing access to a higher-value probabilistic pool of rewards when self-control is validated within a time window. This enables therapy adherence and desirable behavioral change, but still requires self-control validation to access higher probabilistic reward opportunities.
[0015] The second element involves reward-based reinforcement of verified self-control. Each reward opportunity is directly conditional on objective verification of self-control, such as receiving a negative drug test result. Whether positive reinforcement is drawn from one reward pool (e.g., lower expected value) or another (e.g., higher expected value) is influenced by the dynamic activation of the reinforcement algorithm.
[0016] The third element involves remote verification of self-control over the target substance. Objective verification of self-control is conducted remotely to support reliable engagement with the digitally delivered CM. Test results obtained from remote sources are then incorporated by a digital therapy application to determine the probabilistic reward opportunities delivered to the user.
[0017] The fourth element includes remote verification of the completion of recovery activities. To reinforce indicators of desirable behavioral change, the completion of specific recovery activities is also remotely verified. These activities may occur within the app (e.g., completion of personalized therapy lessons on the user's device) or in offline activities (e.g., verification of activities through monitoring or submission of electronic documents).
[0018] These elements of digital therapy applications for self-control represent a novel and unconventional solution to the complexity of digital therapy applications, particularly when addressing spontaneous behavioral disorders (SUDs). The digital therapy application employs a single, integrated reward track that directly reinforces self-control while modifying rewards based on the completion of additional activities. The single, integrated reward track is individualizable for each user and can be used to conduct CM remotely. The integrated reinforcement structure, which supports sustained engagement and behavioral change without diluting the initial goal of self-control, also distinguishes it from traditional CM approaches.
[0019] Several aspects of this disclosure relate to systems and methods for providing activities and verification tests to facilitate user self-restraint related to substance use. The system may include one or more processors coupled to memory. One or more processors may be configured to maintain a data structure for each user-related profile, including activity fields and verification fields. One or more processors may be configured, via one or more event handlers running on the application, to determine whether activity data generated in response to a user performing an activity through the application satisfies activity conditions. One or more processors may be configured to update the data structure to include activity values corresponding to the activity fields in response to a determination that the activity data satisfies activity conditions. One or more processors may be configured to receive user-related verification data in accordance with verification tests taken by the user. One or more processors may be configured to update the data structure to include verification values corresponding to the verification fields in response to a determination that the verification data satisfies verification conditions. One or more processors may perform actions to update profiles using tokens based on activity values and verification values.
[0020] One or more processors may be further configured to generate tokens as a function of (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) the time interval at which multiple activity datasets and validation datasets are received, (iii) the frequency over a time interval at which the data structure is updated to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, or (vii) at least one combination thereof. The function may include at least one of a probability function, a defined sequence, or a model.
[0021] In various embodiments, one or more processors may be further configured to determine, via one or more event handlers running on the application, whether subsequent activity data generated in response to a user performing a subsequent activity through the application satisfies the subsequent activity conditions. One or more processors may be configured to update a data structure to include subsequent activity values corresponding to the subsequent activity fields in response to a determination that the subsequent activity data satisfies the subsequent activity conditions. One or more processors may be configured to receive subsequent validation data related to the user in accordance with subsequent validation tests taken by the user. One or more processors may be configured to update a data structure to include subsequent validation values corresponding to the subsequent validation fields in response to a determination that the subsequent validation data satisfies the subsequent validation conditions. One or more processors may be configured to perform subsequent actions to update the profile using subsequent tokens based on the data structure.
[0022] One or more processors may be further configured to generate tokens as a function of at least one of the following: (i) time elapsed since token generation, (ii) the number of tokens generated for a profile, (iii) the type of token, or (iv) the size and / or probability of a token. One or more processors may be further configured to generate multiple tokens, including at least this token and subsequent tokens, using this function in response to the execution of a series of corresponding operations. One or more processors may be further configured to generate tokens as (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) the time interval at which multiple activity datasets and validation datasets are received, (iii) the frequency over a time interval at which the data structure is updated to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, (vii) the time elapsed since the token was generated, (viii) the number of tokens generated for the profile, (ix) the type of token, (x) the size and / or probability of the token, or (xi) multiple weights corresponding to any combination thereof.
[0023] One or more processors may be further configured to generate multiple tokens using multiple weights in response to the execution of a corresponding set of actions. One or more processors may be further configured to update at least one of the multiple weights in response to the generation of at least one of the multiple tokens. One or more processors may be further configured to send commands to a user device running the application prompting the user to perform an activity through the application, and to monitor the generation of activity data in response to the user performing an activity through the application via one or more event handlers. Activities may be selected from cognitive behavioral therapy activities, psychoeducational lessons activities, assessment activities, exercise training activities, tool activities, participation activities, or activities related to a state, disease, disability, or symptom.
[0024] One or more processors may be further configured to determine, via an external computing device, whether activity data generated in response to user activity meets activity conditions, and to update the data structure to include activity values corresponding to activity fields in response to the determination that the activity data meets activity conditions. In various embodiments, one or more processors may be further configured to send a command to a user device running the application requesting that a validation test be performed based on at least one of the following: (i) data related to a sample from the user, (ii) biomarkers obtained from the user, (iii) measurements from an instrumentation device, (iv) uploading digital information to the application, (v) verifying the user's location, or (vi) data related to a clinical test provided by the user or laboratory, and to receive validation data from the user device relating to a user undergoing a validation test via the application. One or more processors may be further configured to receive validation data from an external computing device relating to a user undergoing a remote test via the application in accordance with the validation test.
[0025] In various embodiments, the validation test is based on at least one of the following: (i) clinical tests, (ii) data related to samples from a user, (iii) biomarkers obtained from a user, (iv) measurements from an instrumentation device, (v) uploading digital information to an application, or (vi) validation of the user's location. The validation test may be performed to generate validation data including a score indicating at least one of the following: (i) the level of a substance in the user, or (ii) the absence of a substance in the user. The substance may be selected from marijuana, cocaine, alcohol, heroin, amphetamines, opioids, nicotine, benzodiazepines, barbiturates, and their metabolites. One or more processors may be further configured to monitor the reception of validation data within a time interval after updating the data structure to include activity values corresponding to activity fields.
[0026] One or more processors may be further configured to refrain from updating the data structure to include activity values corresponding to activity fields in response to a determination that the activity data does not meet the activity conditions. One or more processors may be further configured to generate a score indicating how many times the data structure has been updated to include activity values and validation values. One or more processors may be further configured to provide a graphical user interface that identifies multiple scores across multiple points in time, each score indicating the respective number of times the data structure has been updated. One or more processors may be further configured to set the eligibility fields of the data structure to eligibility values that enable updates to the activity and validation fields. One or more processors may be further configured to provide instructions via the application prompting the user to perform activity and validation tests in response to the setting of the eligibility fields to eligibility values. One or more processors may be further configured to monitor activity and validation data in response to the provision of instructions. One or more processors may be further configured to set an eligibility field to an eligibility value in response to at least one of the following: (i) completion of previous activities and / or verification tests, (ii) the number of activities and / or verification tests completed, or (iii) the percentage of activities and / or verification tests completed.
[0027] In various embodiments, one or more processors are further configured to identify previous activities and / or verification tests for which the eligibility field should be an eligibility value based on applying historical data to a model. One or more processors may be further configured to generate a score indicating the probability of enabling updates to the activity field and the verification field, and in response to the score meeting a threshold, set the eligibility field of the data structure to an eligibility value. One or more processors may be further configured to determine the number of times to set the eligibility field of the data structure to an eligibility value that enables updates to the activity field and the verification field. The token may be a reward for inducing the performance of verification tests that examine activities related to substance use disorders in a user and the self-control of substances. One or more processors may be configured to perform an operation by transferring the token to an account data structure related to the user. One or more processors may be configured to provide a schedule indicating the time of an activity and / or the time of a verification test. One or more processors may be configured to provide a notification indicating the time of an activity and / or the time of a verification test. The user may have a risk of a substance use disorder or may be diagnosed with a substance use disorder, and the user may be taking an effective amount of a therapeutic agent to address the substance use disorder, at least partially in parallel with at least one of the activity or the verification test. The therapeutic agent may be selected from acamprosate, naltrexone, naloxone, disulfiram, gabapentin, methadone, baclofen, bupropion, clonidine, mirtazapine, GLP-1 receptor agonists, GIP receptor agonists, or any combination thereof. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] The above and other objects, aspects, features, and advantages of the present disclosure will become more apparent and better understood by reading the following description in conjunction with the accompanying drawings. [Figure 1] FIG. 1 is a block diagram of a system for presenting activities and verification tests for addressing a user's substance use according to an exemplary embodiment. [Figure 2]A block diagram of a process for providing instructions to a user to perform an activity, according to an exemplary embodiment. [Figure 3] A block diagram of a process for providing instructions to a user to perform a verification test, according to an exemplary embodiment. [Figure 4] A block diagram of a process for generating a token for a user, according to an exemplary embodiment. [Figure 5] A block diagram of a process for determining a user's eligibility, according to an exemplary embodiment. [Figure 6A] A set of screenshots of examples of a user interface for performing activities and verification tests, according to an exemplary embodiment. [Figure 6B] A set of screenshots of examples of a user interface for performing activities and verification tests, according to an exemplary embodiment. [Figure 7] A flowchart of a method for updating a data structure for a user to address substance use, according to an exemplary embodiment. [Figure 8] A block diagram of a server system and a client computer system, according to an exemplary embodiment. **DETAILED DESCRIPTION OF THE INVENTION**
[0029] For the purpose of reading the following description of various embodiments, the sections of the specification listed below and their respective contents may be helpful.
[0030] Section A describes systems and methods for implementing contingency management to induce self-control for a user's substance use disorder (SUD).
[0031] Section B describes networks and computing environments that may be useful for executing embodiments of the present disclosure. A. A system and method for implementing contingency management to induce self-control for user substance use disorder (SUD).
[0032] This disclosure discloses a system and method for managing a data structure that maintains data from multiple different sources to monitor validation. The digital therapy application described herein enables the digital delivery and processing of therapies, such as recovery activities and validation tests, for SUD. The digital therapy application can systematically reinforce target behaviors, such as self-control, using rewards that encourage desirable behavioral changes. The provision of rewards is conditional on the successful completion of a validation test that verifies the user's self-control, thereby encouraging the maintenance and repetition of the target behavior over time. The digital therapy application may be used to administer validation tests remotely, facilitate access, and support user engagement. For example, the user may provide images or videos in response to a validation test, and the test results may be interpreted and processed by a digital platform. To complement the completion of a validation test, the digital therapy application may also provide recovery activities to reinforce indicators of desirable behavioral changes related to self-control. Recovery activities may include, for example, cognitive activities or educational videos within the application.
[0033] Referring here to Figure 1, a block diagram of a system 100 for presenting an interactive session to facilitate user self-control over substance use is illustrated. Schematically, the system 100 may include at least one data processing service 105, at least one remote site 107, at least one user device 110, and at least one instrumentation device 111, all interconnected via at least one network 115 for communication. The remote site 107 may include a remote device 109. The user device 110 may include at least one application 125. The application 125 may include or provide at least one user interface 130 having one or more user interface (UI) elements 135A-N (hereinafter collectively referred to as UI elements 135). The data processing service 105 may include at least one session handler 140, an activity evaluator 145, a verification evaluator 150, a qualification evaluator 155, a token generator 160, and an action executor 165, etc.
[0034] The data processing service 105 may include or have access to at least one database 170. The database 170 may store, maintain, or include one or more data structures 175A to N (hereinafter collectively referred to as data structures 175). A data structure 175 may represent a user profile and may include at least one activity field 185A to N (hereinafter collectively referred to as activity field 185), one or more validation fields 190A to N (hereinafter collectively referred to as validation field 190), and one or more eligibility fields 195A to N (hereinafter collectively referred to as eligibility field 195). A data structure 175 can be any type of data object maintained on the database 170 to track the progress of activity fields 185, validation fields 190, or eligibility fields 195, etc. Collectively, the user device 110 and the processing service 105 may be part of a computing system for presenting the application 125.
[0035] More specifically, the data processing service 105 (which may be abbreviated as "the Service" in this disclosure) may be any computing device having one or more processors coupled to memory and software and capable of performing the various processes and activities described in this disclosure. The data processing service 105 may communicate with user devices 110, remote sites 107, and databases 170 via a network 115. The data processing service 105 may be located in, situated within, or associated with at least one server group. The server group may correspond to a data center, branch office, or site where one or more servers corresponding to the data processing service 105 are located. The data processing service 105 may be located in, situated within, or associated with one or more of the user devices 110. Some components of the data processing service 105 may be located within a server group, and some may be located within client devices. For example, the data processing service 105 may operate on or be located on a user device 110, and the activity evaluator 145 may operate on or be located on a server group.
[0036] Within the data processing service 105, the session handler 140 may initiate a session for the user using the application 125. The activity evaluator 145 may evaluate the activity data received from the user device 110. The verification evaluator 150 may evaluate the verification data received from the user device 110. The eligibility evaluator 155 may determine the user's eligibility. The token generator 160 may generate tokens based on the activity and verification data. The action executor 165 may perform actions to update the user profile based on the tokens.
[0037] The remote site 107 may be located within, situated within, or associated with at least one server group. The server group may correspond to a data center, branch office, or site where one or more servers corresponding to the remote site 107 are located. The remote site 107 may be located within, situated within, or associated with one or more of the user devices 110. The remote site 107 may communicate with the user devices 110 and the data processing service 105 via the network 115. For example, the remote site 107 may receive images (including video) from the user devices 110 to process and verify user self-control. The images may be images of the user 210's eyes, saliva, and / or hair. The remote site 107 may process the images and transmit the results of the processing to the data processing service 105. As another example, the remote site 107 may receive a command from the data processing service 105 requesting that the data processing service 105 provide the location of the user devices 110 for verification testing.
[0038] The remote site 107 may include a remote device 109, which may be any computing device having one or more processors coupled to memory and software and capable of performing the various processes and activities described herein. The remote device 109 may control, monitor, or interact with the user device 110 and the data processing service 105 via the network 115. The remote device 109 may also process information and / or instructions transmitted from at least one of the user device 110 or the data processing service 105. For example, the remote device 109 may process an image provided by the user device 110 to produce a result. For example, the remote device 109 may detect the eye color of user 210 based on the image and produce a result based on the eye color. The remote site 107 may receive the image, provide the image to the remote device 109 for processing, and produce a result. The remote site 107 or at least one of the remote device 109 may then transmit the result to, for example, the data processing service 105.
[0039] The user device 110 (which may be referred to in this disclosure as an end-user computing device or client device) may be any computing device having one or more processors coupled to memory and software and capable of performing the various processes and activities described in this disclosure. The user device 110 may communicate with the data processing service 105 and the database 170 via the network 115. The user device 110 may be a smartphone, other mobile phone, tablet computer, wearable device (e.g., smartwatch, glasses), or laptop computer. The user device 110 may be used to access the application 125. In some embodiments, the application 125 may be downloaded and installed on the user device 110 (e.g., via a digital distribution platform). In some embodiments, the application 125 may be a web application having resources accessible via the network 115.
[0040] An application 125 running on a user device 110 may be a digital therapy application that provides sessions (which may be referred to in this disclosure as therapy sessions) to address substance use disorder (SUD). Users of application 125 may be diagnosed with SUD or be at risk of developing SUD. For example, a user may be experiencing health problems such as respiratory problems or withdrawal symptoms due to using a substance more frequently and in larger quantities. Causes of developing SUD may include genetic, behavioral, environmental, physiological, and psychological factors. For example, individuals with a family history of SUD may be more susceptible to substances and at a higher risk of developing addiction. As another example, socioeconomic circumstances such as economic hardship and poverty may contribute to substance use as a coping mechanism.
[0041] Examples of SUD include opioid use disorder, alcohol use disorder, and narcotic use disorder. SUD can cause physical health problems, mental health problems, social problems, and economic problems. Physical health effects may include, for example, heart disease (e.g., hypertension, arrhythmia, or cardiomyopathy), decreased lung function, lung damage, brain damage (e.g., neurotoxicity), or immunosuppression. Such conditions can interfere with or damage relationships, such as facing social stigma, and can lead to economic losses such as unemployment.
[0042] The user may receive treatment to address the condition or its side effects, at least in part in parallel with the interventions provided by Application 125. For example, the user may receive treatment for SUD. The user may receive treatment at least in part in parallel with any number of sessions or any combination thereof. Treatment may include taking therapeutic drugs. The therapeutic drugs may be administered at least orally, intravenously, or topically. For example, therapeutic drugs may include acamprosate, naltrexone, naloxone, disulfiram, gabapentin, methadone, baclofen, bupropion, clonopine, remeron, GLP-1 receptor agonists, GIP receptor agonists, or any combination thereof. Application 125 may enhance the efficacy of therapeutic drugs the user is taking to address the condition. Treatment may include cognitive behavioral therapy (CBT), contingency management therapy, rehabilitation programs, or support groups.
[0043] Application 125 may be used to facilitate substance control by providing users with verification tests and activities. Activities may be aimed at reducing substance use, such as cognitive behavioral therapy, psychoeducation, or exercise training. Verification tests may be aimed at verifying the user's continued self-control, such as clinical tests, uploading digital information, or location verification. By providing users with digital therapies through Application 125, the harmful effects of SUD can be addressed.
[0044] Application 125 may include, present, or provide to the user of user device 110 at least one user interface 130, which includes one or more UI elements 135, according to the configuration on Application 125. The UI elements 135 may correspond to visual elements of the user interface 130, such as command buttons, text boxes, checkboxes, radio buttons, menu items, and sliders. In some embodiments, Application 125 may be a digital therapy application, which may provide one or more sessions (which may be referred to in this disclosure as therapy sessions) via the user interface 130 to address the user's substance use disorder.
[0045] The instrumentation device 111 (which may be referred to in this disclosure as wearable technology, wearable device, or device) may be a computing device capable of collecting measurements from user 210. The instrumentation device 111 may be wearable technology worn by user 210, such as a fitness tracker, wristwatch, pedometer, microneedle device, or heart rate monitor. To determine whether to provide user 210 with verification tests to be performed, the instrumentation device 111 may provide measurements to, for example, a remote device 109 or a data processing service 105. The instrumentation device 111 may communicate with the data processing service 105, a remote site 107, user device 110, and a database 170, etc., via a network 115.
[0046] Database 170 may store and maintain various resources and data related to the data processing service 105 and application 125. Database 170 may include a database management system (DBMS) for arranging and organizing the data maintained thereon. Database 170 may communicate with the data processing service 105 and one or more user devices 110 via the network 115. During the execution of various operations, the data processing service 105 and application 125 may access database 170 and retrieve identified data from it. The data processing service 105 and application 125 may also write data to database 170 from the execution of such operations.
[0047] Such actions may include maintaining data structure 175. Database 170 may maintain data structure 175. Data structure 175 may be included within a user-related profile. Data structure 175 may include information about the user's condition (e.g., SUD) as described in this disclosure. For example, data structure 175 may include information about the severity of the condition, the occurrence of the condition (e.g., the occurrence of symptoms associated with the condition), the medications or treatments prescribed to the user for the condition, and / or the duration of the condition. Data structure 175 may be updated periodically (daily, weekly) in response to a schedule, in response to changes in user information (e.g., entered by the user via user interface 130 or learned from user device 110), or in response to healthcare professionals (e.g., doctors or nurses) addressing the user's condition. Data structure 175 may be used to track values corresponding to the completion of user activities or tests to facilitate an integrated reward track for implementing contingency management (CM).
[0048] The data structure 175 may store and maintain information about the user of application 125 through the user device 110. Each data structure 175 may be associated with or correspond to each user of application 125. The data structure 175 may store or remember information about each session performed by the user. The information for a session may include various parameters, actions, voice, images (including video), prompts, or selections, or actions performed by the user in previous sessions, and may initially be null. For example, the data structure 175 may include an activity field 185, a validation field 190, and a qualification field 195. Each of the fields may store a value corresponding to, for example, the completion of an activity, a validation test, or a qualification determination. The data structure 175 may enable rational communication with the user by presenting the user with sessions that are most likely to be helpful to the user in dealing with SUD, based at least on the data structure 175. An approach with such orientation can reduce bandwidth and increase the benefits of user-computer interaction by reducing the need to communicate with the user multiple times.
[0049] In some embodiments, the data structure 175 may identify or include information about the treatment regimen the user is receiving, such as the type of treatment (e.g., therapy, medication, or psychotherapy), duration (e.g., days, weeks, or months), and frequency (e.g., daily, weekly, every three months, or annually). The data structure 175 may be stored and maintained in the database 170 using one or more files (e.g., an extensible markup language (XML), a comma-separated values (CSV) text file, or a structure query language (SQL) file). The data structure 175 may be updated repeatedly as the user provides responses, makes selections, and performs actions related to the session. The data structure 175 may also be updated by the action executor 165 based on values generated by the activity evaluator 145, the validation evaluator 150, the eligibility evaluator 155, and tokens generated by the token generator 160.
[0050] On database 170, each data structure 175 may include an activity field 185 corresponding to an activity value generated by the activity evaluator 145. The activity field 185 may be updated based on the activity value. Database 170 may include a verification field 190 corresponding to a verification value generated by the verification evaluator 150. The verification field 190 may be updated based on the completion and results of verification tests. Database 170 may include a qualification field 195. The qualification field 195 may correspond to a qualification value generated by the qualification evaluator 155. The qualification field 195 may be set prior to the generation of the qualification value. For example, a user may be determined to be qualified prior to the first session.
[0051] Referring now to Figure 2, a block diagram of a process 200 that provides a command to user 210 by system 100 requesting that the user perform an activity is illustrated. Process 200 may include, or correspond to, an operation performed by system 100 to receive and process data provided by user 210. In process 200, a session handler 140 running on data processing service 105 may create, write, or generate one or more commands 205 (collectively referred to as commands 205 in this disclosure). The eligibility field 195 may be set to indicate the eligibility of user 210 prior to the generation of the command 205. The eligibility of user 210 may refer to the eligibility to receive a reward based on verification of user 210's self-restraint in using the substance. For example, session handler 140 may refrain from generating command 205 in response to the eligibility field 195 indicating that user 210 is not eligible (e.g., not exercising self-restraint).
[0052] Command 205 may be a prompt (e.g., a message) that encourages the user 210 to perform an activity through application 125. Session handler 140 may select an activity to be included in command 205. Session handler 140 may select an activity from the following: cognitive behavioral therapy activities (e.g., psychotherapy to change thought patterns), psychoeducational lessons (e.g., information about mental health status), assessment activities (e.g., tests), exercise training activities (e.g., fitness), tools (e.g., in-app mental health tools), participation activities (e.g., participation in a group therapy session), or a condition, disease, disability, or symptom (e.g., learning about a disease).
[0053] When generating command 205, the session handler 140 may identify and select activities based on at least the data structure 175. Activities may be stored using one or more files on the database 170. For example, an activity may be a message containing a prompt to take a 10-minute walk. As another example, an activity may be an in-app (e.g., application 125) or out-of-app activity, such as a cognitive activity or a psychoeducational lesson. An in-app activity may be a therapeutic activity or recovery tool placed within application 125. For example, application 125 may include educational videos about mental health, and command 205 may ask user 210 to watch one of the educational videos and take a quiz on it. Out-of-app activities may include location, activity monitoring, or verification of activity completion via electronic document. For example, location verification may confirm that user 210 has participated in a group therapy session. The session handler 140 may select different activities for users with alcohol use disorder than for users with opioid use disorder. As another example, the session handler 140 may select an activity based on previous updates to the data structure 175, such as the time interval between setting the eligibility field 195 and generating the instruction 205.
[0054] In response to the generation, the session handler 140 may send, provide, or transmit the instruction 205 to the user device 110 (or remote device 109 or instrumentation device 111). The transmission of the instruction 205 may be done according to a schedule (e.g., every 1 to 2 weeks). The instruction 205 may be in various formats related to the application 125. In some embodiments, the instruction 205 may be displayed, rendered, or presented to the user 210 via the user interface 130 of the application 125. In some embodiments, the instruction 205 may include Short Message Service (SMS) (e.g., text message) or Multimedia Message Service (MMS) (e.g., voice message, video message).
[0055] In some embodiments, instruction 205 may include a schedule indicating the time of the activity. For example, instruction 205 may be provided to the user device 110 prior to the time when the user 210 is instructed to perform the activity. Instruction 205 may indicate both the place and time when the user 210 should perform the activity. The session handler 140 may also generate a notification for display on the user device 110 indicating the time of the activity that the user 210 should perform. The notification may be displayed via a UI element 135 on the user device 110 for the user 210 to see. Instruction 205 may display a schedule indicating several different times or dates, etc., when the activity should be performed.
[0056] An application 125 on a user device 110 may acquire, identify, or receive an instruction 205 from a data processing service 105. Upon receiving the instruction 205, the application 125 on the user device 110 may parse the instruction 205 to identify the activity provided by the data processing service 105. In some embodiments, the application 125 may use the instruction 205 to display, render, or present a user interface 130. The application 125 may then prompt or instruct the user 210 to perform the activity indicated by the instruction 205. Following the transmission of the instruction 205, the session handler 140 may monitor the generation of activity data 220 as the user 210 performs the activity through the application 125. For example, the application 125 may include one or more event handlers running on it. The event handlers may correspond to components on the user interface 130 of the application 125 that wait for the occurrence of events to monitor the generation of activity data 220. Upon detecting the performance of an activity, application 125 may generate activity-related data as user 210 performs the activity. Application 125 may then fetch activity data 220 after user 210 has completed the activity. After the activity data 220 has been generated, application 125 may record user 210's response 215, which includes the activity data 220. Response 215 may indicate that user 210 has performed the activity.
[0057] In some embodiments, the instrumentation device 111 (or remote device 109) may acquire, identify, or receive the instruction 205 directly from the data processing service 105 or indirectly via the application 125. Upon receiving the instruction 205, the instrumentation device 111 may parse the instruction 205 to identify the activity provided by the data processing service 105. In some embodiments, the instrumentation device 111 may use the instruction 205 to display, render, or present the user interface 130. The instrumentation device 111 may then prompt or instruct the user 210 to perform the activity indicated by the instruction 205. Following the transmission of the instruction 205, the session handler 140 may monitor the instrumentation device 111 for the generation of activity data 220 as the user 210 performs the activity. For example, the instrumentation device 111 (or any application on it) may include one or more event handlers running on it. The event handler may correspond to a component on the user interface 130 of the instrumentation device 111 that waits for the occurrence of an event to monitor the generation of activity data 220. Upon detecting the performance of an activity, the instrumentation device 111 may generate activity-related data as the user 210 performs the activity. The instrumentation device 111 may then fetch the activity data 220 after the user 210 has completed the activity. After the activity data 220 has been generated, the instrumentation device 111 may record the user 210's response 215, which includes the activity data 220. The response 215 may indicate that the user 210 has performed the activity.
[0058] The activity evaluator 145 may acquire, identify, or receive a response 215 from the user device 110 (for example, via an event handler on the application 125) or from the instrumentation device 111. In response to the reception, the activity evaluator 145 may determine whether the activity data 220 generated in response to the user 210 performing an activity via the application 125 satisfies the activity condition. The activity condition may be a prerequisite for the completion of the activity in the activity field 185 of the data structure 175 to be updated. In some embodiments, the activity condition may be a threshold. For example, the activity condition may include a threshold for the percentage of completed activities. The activity data 220 therefore satisfies the activity condition in response to being greater than or equal to the threshold. For example, if the activity is a 10-minute walk, the activity data 220 representing a 10-minute walk may satisfy the activity condition where the threshold is an 8-minute walk.
[0059] If the activity data 220 satisfies the activity conditions, the activity evaluator 145 may generate at least one activity value 225. The activity value 225 may indicate a value that should be set in the activity field 185 to indicate the completion of the activity indicated in instruction 205. The activity value 225 may be a Boolean, a numeric value, or an enumerated value, etc. In this case, the activity evaluator 145 may update the data structure 175 using the activity value 225. For example, the activity value 225 corresponds to the activity field 185. In this case, the activity evaluator 145 may update the activity field 185 using the activity value 225. Conversely, if the activity data 220 does not satisfy the activity conditions, the activity evaluator 145 may refrain from generating the activity value 225 and updating the data structure 175. For example, in response to the activity being 10 minutes of walking, the activity data 220 may indicate that user 210 has only walked for 7 minutes. In this case, the activity evaluator 145 may determine that the activity data 220 does not meet the activity condition that walking lasts for at least 10 minutes. In some embodiments, the activity evaluator 145 may send or transmit a message or notification to the user 210 indicating that the activity performed does not meet the activity condition.
[0060] Referring now to Figure 3, a block diagram of process 300 is shown, in which system 100 provides user 210 with an instruction to undergo a verification test. Process 300 may include, or correspond to, operations performed by system 100 to receive and process data provided by user 210. In process 300, a session handler 140 running on data processing service 105 may create, write, or generate one or more instructions 305 (collectively referred to as instructions 305 in this disclosure).
[0061] Instruction 305 may include a prompt or instruction to User 210 to perform a verification test to verify User 210's restraint in substance use. Instruction 305 may indicate or identify the performance of the verification test. In some embodiments, the verification test may be performed via User Device 110 or Instrumentation Device 111. In some embodiments, the verification test may be data related to a sample from User 210 (e.g., the use of image data, audio data, or video data about User 210). For example, the verification test may verify User 210's restraint in drug use based on images or videos of an intraoral swab pressed against the inside of User 210's cheek. In some embodiments, the verification test may be based on biomarkers obtained from User 210. Biomarkers may include, for example, urine biomarkers (e.g., benzoylecgonine for cocaine, norcodeine for opioids, tetrahydrocannabinol (THC) for marijuana), blood biomarkers (e.g., blood alcohol concentration, benzoylecgonine for cocaine, heroin metabolites, amphetamine levels), saliva biomarkers (e.g., THC, heroin metabolites, amphetamine or alcohol levels), breath biomarkers (e.g., ethanol), hair biomarkers (e.g., metabolites, THC, or benzodiazepines), and so on.
[0062] In some embodiments, the validation test may be based on measurements from the instrumentation device 111. The measurements may include various physiological measurements such as irregular heartbeat indicating tachycardia, decreased respiratory rate, sweating, cortisol levels, and pupil dilation. In some embodiments, the validation test may involve uploading digital information (e.g., breath analyzer results) to application 125. In some embodiments, the validation test may involve verifying the location of user 210. For example, the validation test may identify the user's location and time based on at least one of user device 110 or instrumentation device 111. In some embodiments, the validation test may be data related to clinical tests provided by user 210 or a laboratory (e.g., blood test results).
[0063] In some embodiments, the verification test described in instruction 305 may be performed at a remote site 107 or by a remote device 109 to verify that user 210 has not used the substance. In some embodiments, the verification test may be based on clinical tests (e.g., blood, urine). For example, the verification test may be a hypothetical toxicity test, such as prompting user 210 to take a photograph of a saliva sample. In some embodiments, the verification test may be based on data related to a sample from user 210. For example, the verification test may be a remote verification test, and user 210 may be asked to take a photograph of their own eye. In some embodiments, the verification test may be based on biomarkers obtained from user 210. For example, the verification test may be a face-to-face point-of-care test, a laboratory use test, a biomarker use test, or a wearable device test. In some embodiments, the verification test may be based on measurements from an instrumentation device 111 (e.g., blood pressure). In some embodiments, the verification test may be based on uploading digital information (e.g., daily exercise) to application 125. In some embodiments, the verification test may be based on the verification of the user 210's position.
[0064] In response to generation, the session handler 140 may send, provide, or transmit the instruction 305 to the user device 110, the remote device 109, or the instrumentation device 111. In some embodiments, the instruction 305 may include a schedule indicating the timing of the verification test. For example, the instruction 305 may be provided prior to the time when the user 210 obtains or inputs information regarding the verification test. In some embodiments, the data processing service 105 may schedule the verification test for the user 210 in the laboratory. If the verification test should be performed by the user 210 (as opposed to the verification test performed by the instrumentation device 111 or the remote device 109), the session handler 140 may generate a notification to the user device 110 instructing the user 210 to complete the verification test. For example, the transmission of the instruction 305 may be based on a schedule corresponding to the user 210's material use history. For example, the instruction 305 may be provided more frequently to users with a longer material use history compared to users with a shorter material use history. In some embodiments, instruction 305 includes a notification to user 210 of data processing service 105, which has received measurements from instrumentation device 111, requesting it to perform a verification test. Session handler 140 may select a verification test based on the user 210's state. Session handler 140 may also select a verification test based on the number of updates to verification field 190.
[0065] An application 125 on a user device 110 may acquire, identify, or receive an instruction 305 from a data processing service 105 requesting that a verification test be performed via the user device 110. In response to receiving the instruction 305, the application 125 may parse the instruction 305 to identify the verification test to be performed by the user 210. The application 125 may perform, execute, or conduct the verification test in accordance with the instruction 305. In some embodiments, the application 125 may use the instruction 305 to display, render, or present a user interface 130. The application 125 may then prompt or instruct the user 210 to perform the verification test in response to receiving the instruction 305. For example, in accordance with the instruction 305, the application 125 may prompt the user to take a sample with an oral swab and then to take an image (including a video) of the swab using the camera on the user device 110. Application 125 may use the acquired images and apply computer vision (e.g., a supervised machine learning model) to determine whether the user is exercising self-control over the object.
[0066] When user 210 performs a validation test, application 125 may create, prepare, or generate at least one response including validation data 320. The validation data 320 may indicate the results of the validation test, along with the completion of the validation test by user 210. For example, the validation data 320 may include confirmation of the completion of a blood test, or it may include the results of a blood test. In some embodiments, when generating response 315, application 125 may determine the validation data 320 to include a score indicating the level of the substance in user 210. In some embodiments, when generating response 315, application 125 may determine the validation data 320 to include a score indicating the absence of the substance in user 210. The substance may be selected from at least one of marijuana, cocaine, alcohol, heroin, amphetamines, opioids, nicotine, benzodiazepines, barbiturates, and their metabolites.
[0067] The instrumentation device 111 may acquire, identify, or receive a command 305 from the data processing service 105 requesting that a verification test be performed via the instrumentation device 111. The command 305 may be received directly from the data processing service 105 or indirectly via the user device 110. The instrumentation device 111 may acquire, identify, or receive a command 305 from the data processing service 105 requesting that a verification test be performed via the user device 110. Upon receiving the command 305, the instrumentation device 111 may parse the command 305 to identify the verification test to be performed by the user 210. The instrumentation device 111 may perform, execute, or carry out the verification test in accordance with the command 305. For example, the instrumentation device 111 may acquire physiological measurements from the user 210 in accordance with the command 305, such as heart rate or cortisol levels in the user's blood sample. The instrumentation device 111 may use the acquired measurements to determine whether the user is exercising self-control over the substance.
[0068] When performing a verification test on user 210, the instrumentation device 111 may create, prepare, or generate at least one response 315 that includes verification data 320. The verification data 320 may indicate the results of the verification test, along with the completion of the verification test by user 210. For example, the verification data 320 may include confirmation of the completion of a blood test, or it may include the results of a blood test. In some embodiments, when generating the response 315, the instrumentation device 111 may determine the verification data 320 to include a score indicating the level of a substance in user 210. For example, if the verification test is a biomarker utilization test, the instrumentation device may generate or calculate a score indicating the level of a substance in user 210 based on the level of a biomarker detected in user 210. In some embodiments, when generating the response 315, the instrumentation device 111 may determine the verification data 320 to include a score indicating the absence of a substance in user 210.
[0069] The remote device 109 may acquire, identify, or receive an instruction 305 from the data processing service 105 requesting that user 210 perform verification tests at the remote site 107. The remote device 109 may acquire, identify, or receive an instruction 305 from the data processing service 105 requesting that verification tests be performed via the remote device 109. The instruction 305 may be received directly from the data processing service 105 or indirectly via user device 110. The remote device 109 may acquire, identify, or receive an instruction 305 from the data processing service 105 requesting that verification tests be performed via user device 110. Upon receiving the instruction 305, the remote device 109 may parse the instruction 305 to identify the verification tests to be performed by user 210. The remote device 109 may perform, conduct, or execute the verification tests in accordance with the instruction 305. For example, if the verification test is to verify the location of user 210, the remote device 109 may act as a proxy to determine whether user 210 is at a specific location in order to determine whether user 210 is continuing to exercise self-control.
[0070] When performing a verification test on user 210, the remote device 109 may create, generate, or produce at least one response 315 containing verification data 320. The verification data 320 may indicate the results of the verification test upon completion of the verification test by user 210. In some embodiments, when generating the response 315, the remote device 109 may determine the verification data 320 to include a score indicating the level of the substance at user 210. In some embodiments, when generating the response 315, the remote device 109 may determine the verification data 320 to include a score indicating the absence of the substance at user 210.
[0071] The verification evaluator 150 may acquire, identify, or receive a response 315 containing verification data 320 from at least one of the application 125, instrumentation device 111, or remote device 109. Based on the verification data 320, the verification evaluator 150 may identify or determine (for example, in a manner similar to activity conditions) whether the verification data 320 satisfies verification conditions. Verification conditions may be prerequisites for the completion of activity in the verification field 190 of the data structure 175 to be updated. In some embodiments, the verification conditions may identify a threshold for the level of a substance in the user 210 where the absence of the substance in the user 210 is negligible or zero. Verification conditions may also be based on the SUD of the user 210 and / or the substance detected in the user 210. Verification conditions may also be based on the type of verification test. For example, the threshold for an ethanol biomarker test may be higher than the threshold for a morphine biomarker test.
[0072] If the verification data 320 satisfies the verification conditions, the verification evaluator 150 may generate, calculate, or determine a verification value 325 corresponding to the verification field 190. The verification value 325 may indicate the level or absence of the substance at user 210. The verification evaluator 150 may generate the verification value 325 as a function of the level of the substance detected at user 210. The verification value 325 may be a numerical value, a Boolean value, or an enumerated value, etc. In this case, the verification evaluator 150 may update the data structure 175 using the verification value 325. The verification value 325 may also indicate the period during which user 210 refrained from using the substance. For example, the verification evaluator 150 may determine the verification value 325 as a function of time and the verification data 320.
[0073] If the verification data 320 does not satisfy the verification conditions, the verification evaluator 150 refrains from generating the verification value 325 and updating the data structure 175. In this case, the session handler 140 may send a notification to user 210 informing that the user 210 of the verification data 320 does not satisfy the verification conditions. The verification evaluator 150 may also receive a message from user 210 indicating absence for a valid reason. The verification evaluator 150 may receive this message in response to the determination that the verification data 320 does not satisfy the verification conditions. In response to the verification of absence, the verification evaluator 150 may generate the verification value 325 based on the absence. In this case, the verification value 325 may be non-negative.
[0074] The process described above may be repeated any number of times. In some embodiments, the session handler 140 may generate subsequent instructions that include prompts to perform an activity and / or a verification test. Based on these instructions, the activity evaluator 145 may receive subsequent activity data and, in response to the user 210 performing the subsequent activity, determine that the subsequent activity data satisfies the subsequent activity conditions. The subsequent activity, subsequent activity conditions, and subsequent activity data may be received and / or performed following the activity, activity conditions, and activity data 220. The subsequent activity, subsequent activity conditions, and subsequent activity data may be different from the activity, activity conditions, and activity data 220. In response to the subsequent activity data satisfying the subsequent activity conditions, the activity evaluator 145 generates a subsequent activity value corresponding to the subsequent activity field. The activity evaluator 145 may then update the data structure 175 using the subsequent activity value. The activity evaluator 145 may generate subsequent activity values following the generation of activity value 225.
[0075] The verification evaluator 150 may also receive subsequent verification data related to user 210 in accordance with subsequent verification tests taken by user 210. Subsequent verification tests may be different from the verification tests. If the subsequent verification data satisfies the subsequent verification conditions, the verification evaluator 150 may update data structure 175 with subsequent verification values corresponding to the subsequent verification fields. The subsequent verification fields may be verification fields 190 updated with verification values 325. The verification evaluator 150 may receive subsequent verification data following the reception of verification data 320.
[0076] The verification evaluator 150 (or activity evaluator 145) may also monitor for the reception of verification data 320 or activity data 220 during the time interval following the update of the data structure 175 using at least one of the activity value 225 or verification value 325. The verification test may be provided to the user 210 within a predetermined time interval following the performance of the activity. The activity may be provided to the user 210 within a predetermined time interval after the performance of the verification test in order to maximize the effectiveness of the activity. In some embodiments, the predetermined time interval may be indicated in a schedule provided to the user 210 by either instruction 205 or instruction 305. Either instruction 205 or instruction 305 may provide a notification indicating the time, along with the time of the activity and the time of the verification test.
[0077] Referring here to Figure 4, a block diagram of a process 400 that generates tokens in response to updates to a data structure 175 by an activity evaluator 145 and a verification evaluator 150 is illustrated. Process 400 may include, or correspond to, operations performed by the system 100 to receive and process data provided by the user 210. In process 400, the token generator 160 may calculate, determine, or generate a token 405 based on at least an activity value 225 and a verification value 325. The generation of token 405 may occur in response to setting the activity value 225 in the activity field 185 and the verification value 325 in the verification field 190 within the data structure 175.
[0078] Token 405 may be data representing the results of user 210's activities and / or verification tests. In some embodiments, token 405 may be a reward (or positive reinforcement) that induces user 210 to perform SUD-related activities and verification tests that examine self-control over substances. Token 405 may therefore be an incentive for user 210 to perform activities and verification tests, as well as an incentive for activity data 220 and verification data 320 generated by completing activities and verification tests to satisfy the activity conditions and verification conditions, respectively. The reward may be, for example, a monetary reward. The reward may also be intangible, such as a certificate or badge that reflects the progress achieved by user 210. At the neural level, token 405 may be provided to user 210 to activate the brain's reward centers (e.g., ventral striatum, prefrontal cortex, amygdala, anterior cingulate cortex, insula, and hippocampus) to induce user 210 to modify their own behavior and suppress substance abuse.
[0079] In some embodiments, token 405 may represent various parameters, such as the probability of token 405. Token 405 may be probabilistic. For example, tokens 405 of a higher value (e.g., magnitude) may be generated as the probability of generating higher values increases over time in response to verified self-restraint over a longer period. As another example, verification data 320 that satisfies the verification condition may have a higher probability of generating tokens 405 of a higher value compared to activity data 220 that satisfies the activity condition when the verification data 320 does not satisfy the verification condition.
[0080] In response to an update of data structure 175 using activity value 225 and validation value 325, a token generator 160 may generate a token 405. The token generator 160 may include a function 410 for computing, determining, or generating token 405. The function 410 may include at least one of the following: a probability function, a defined sequence, or a model. Generally, the function 410 may include at least one input (e.g., at least a portion of data structure 175 or a representation of an update to data structure 175) and at least one output corresponding to token 405.
[0081] In some embodiments, function 410 may be a random process or a probability function such as a probability distribution (e.g., Bernoulli distribution, binomial distribution, geometric distribution, Poisson distribution, Zipf distribution, Gaussian distribution, exponential distribution, gamma distribution, chi-squared distribution, or Cauchy distribution). The probability function may be used to generate random values for token 405. In some embodiments, function 410 may be a defined sequence. The sequence may identify a set of token values to be provided to user 210 over a set period (e.g., over the course of an activity and verification test). The sequence may also include an association between an input (e.g., the number of updates) and a specific value for token 405. In some embodiments, the defined sequence may include an expression or rule that defines the values of the sequence. In this case, function 410 may generate token 405 based on the rule, for example, by applying the number of updates of data structure 175 to the rule.
[0082] In some embodiments, function 410 may be a model. Function 410 may be a machine learning model based on an architecture. The architecture of the machine learning model may include, for example, deep learning neural networks (e.g., convolutional neural network architecture, residual network, or transformer utilization architecture), regression models (e.g., linear or logistic regression models), random forests, gradient boosting, k-nearest neighbor classifiers and / or regressors, support vector machines (SVMs), clustering algorithms (e.g., k-nearest neighbors), or naive Bayes models, and may be supervised, unsupervised, or self-supervised. In general, an ML model may have at least one input and output. The input and output may be related via a set of weights, according to this set of weights. The input may be data from a user, while the output may contain the value of token 405.
[0083] A model for function 410 may be trained using a training dataset. The training dataset may include a set of examples with sample inputs (e.g., sample activity fields, validation fields, and eligibility fields of a data structure) and sample outputs (e.g., token values). The values of the set of weights in the model for function 410 are initialized to starting values (e.g., random or default values). To train, sample inputs may be input to function 410 to generate output tokens. In response to the output, the output tokens and sample tokens may be compared. Based on the comparison, a loss metric may be determined according to a loss function (e.g., mean squared error, cross-entropy error, hinge loss, or Huber loss). One or more weights of the model may be updated using the loss metric. The weight update may follow a backpropagation and optimization function (which may be referred to in this disclosure as an objective function) with one or more parameters (e.g., learning rate, momentum, weighted decay, and number of iterations). The optimization function may define one or more parameters on which the model's weights should be updated. The optimization function may follow stochastic gradient descent, and may include, for example, adaptive moment estimation (Adam), implicit update (ISGD), and adaptive gradient algorithm (AdaGrad). The model may be repeatedly updated until convergence occurs.
[0084] The token generator 160 may generate tokens 405 by evaluating a function 410 using any one or more of the following: the number of times the data structure 175 is updated to include at least one activity value 225 and at least one validation value 325 (for example, the number of times the validation data 320 and activity data 220 satisfy the validation condition and activity condition, respectively); the time interval at which sets of activity datasets and validation datasets are received; the frequency over a certain time interval at which the data structure 175 is updated to include at least one activity value 225 and at least one validation value 325; the percentage of the updated at least one activity value 225 and at least one validation value 325 in the data structure 175; the type of activity (e.g., exercise training, psychoeducation); or the type of validation test (e.g., clinical test, location). The sets of activity datasets and validation datasets may also be sets of activity values 225 and validation values 325. The percentages of activity value 225 and verification value 325 may be the percentage of updates to data structure 175 compared to the number of activities and / or verification tests performed by user 210. For example, token generator 160 may generate token 405 based on the number of updates to data structure 175 and the types of activities performed by user 210.
[0085] In some embodiments, the token generator 160 may generate token 405 based on previous token generation. Previous token generation may be maintained on data structure 175. In some embodiments, the token generator 160 may generate token 405 as any one or more functions 410 such as the elapsed time since token generation (e.g., time between token generation), the number of tokens 405 generated for a profile (e.g., data structure 175), the type of token 405 (e.g., based on the type of validation test), or the size and / or probability (e.g., value) of token 405. For example, the token generator 160 may use previous token generation as input to function 410 to generate the value of the next token 405 to be assigned to data structure 175 for user 210.
[0086] In some embodiments, the function 410 may also include a set of weights 415A to N (referred to in this disclosure as the set of weights 415). The token generator 160 may generate tokens 405 according to and / or as the set of weights 415. The set of weights 415 may correspond to any one or more of the following: the number of times the data structure 175 is updated to include at least one activity value 225 and at least one validation value 325; the time interval at which the set of activity datasets and validation datasets is received; the frequency over a certain time interval at which the data structure 175 is updated to include at least one activity value 225 and at least one validation value 325; the percentage of the updated at least one activity value 225 and at least one validation value 325 in the data structure 175; the type of activity; the type of remote validation test; the elapsed time since the generation of tokens 405; the number of tokens 405 generated for a profile (e.g., data structure 175); the type of token 405; the size and / or probability of tokens 405. The token generator 160 may use the weights 415 of the function 410 to evaluate the inputs (e.g., enumerated in this disclosure) and generate output tokens 405. In response to each evaluation, the token generator 160 may update at least one of the weights 415. The update may generate several different values of token 405 by setting the value of weight 415 to a random value (e.g., using a pseudorandom number generator).
[0087] In response to the generation of token 405, the action executor 165 may perform an action to update or adjust the profile using token 405, based on the activity value 225 and the verification value 325. The profile may be associated with a data structure 175. The data structure 175 of the profile may be updated to include token 405 and the user 210's progress toward sustained restraint in substance use. The action may include, add, or insert token 405 into the data structure 175. In response to the update of the data structure 175, the action executor 165 may store and maintain the data structure 175 on the database 170. In some embodiments, the action executor 165 may perform, execute, or implement an action to transfer token 405 to an account data structure associated with user 210. The account data structure may be included in or indicated by the profile. The account data structure may, for example, correspond to user 210's bank account.
[0088] In some embodiments, in response to the action executor 165 performing a corresponding set of actions, the token generator 160 may generate a set of tokens (including, for example, token 405 and subsequent tokens) over a time interval using function 410. For example, the token generator 160 may generate multiple tokens over a time interval. The action executor 165 may perform an action to update the profile based on each token generated by the token generator 160. In some embodiments, the token generator 160 may also generate a set of tokens based on a set of weights 415. In some embodiments, the token generator 160 generates at least one token 405 based on both function 410 and the set of weights 415.
[0089] In conjunction with the update of data structure 175, the action executor 165 may also generate at least one message 420 that includes or indicates token 405. Message 420 may include token 405 to provide user 210 with a presentation of the value of token 405 via application 125. In response to generation, the action executor 165 may send, transmit, or provide message 420 to user device 110 for presentation via application 125. Message 420 may also include an indication of updates made to user 210's profile and / or account data structures. User 210 can therefore see, along with token 405, the updates made by the action executor 165 to at least one of the profile or account data structures. At the neural level, providing and presenting token 405 to the user may activate the brain's reward centers (e.g., ventral striatum, prefrontal cortex, amygdala, anterior cingulate cortex, insula, and hippocampus) to help the user change their behavior and curb substance abuse.
[0090] In some embodiments, the action executor 165 may generate a score based on the number of updates to the data structure 175 using the activity value 225 and the verification value 325. The score may indicate the number of activities or verification tests performed by the user 210 that satisfy the activity conditions and verification conditions, respectively. The score may be a function of the activity value 225, the verification value 325, and the number of updates to the data structure 175. Both the activity evaluator 145 and the action executor 165 may track the number of updates to the data structure 175. The action executor 165 may generate a score over a period of time.
[0091] For example, the executor 165 may generate a set of scores across a set of time points to indicate the user 210's progress. The set of scores across a set of time points may represent the user 210's continued self-control. The set of scores across a set of time points may be provided to the user 210 via a graphical user interface (e.g., user interface 130) that identifies the set of scores across the set of time points. For example, the set of scores across a set of time points may be displayed as a graph on user interface 130. Each score in the set of scores may indicate the number of updates to the data structure 175. For example, the score may increase across the set of time points to reflect an increase in the number of updates to the data structure 175.
[0092] The process described above may be repeated multiple times. Subsequent sessions (for example, providing instructions to perform an activity or verification test) may occur periodically. For example, sessions may be provided 1 to 10 times per week. Sessions may be consecutive for a total of at least 5 to 15 weeks. While sessions are consecutive, user 210 may experience an escalating hardening schedule. For example, the value of token 405 may increase as the verification evaluator 150 generates a higher verification value 325. In some embodiments, the token generator 160 may also generate subsequent tokens in response to the reception of subsequent activity values and subsequent verification values. The action executor 165 may then use the subsequent tokens based on the data structure 175 (e.g., subsequent activity values and verification values) to perform subsequent actions to update the profile.
[0093] Referring now to Figure 5, a block diagram of process 500 for determining the eligibility of user 210 is illustrated. Process 500 may include or correspond to operations performed by system 100 to receive and process data provided by user 210. In process 500, the eligibility evaluator 155 may generate an instruction 505 to user 210 to indicate the eligibility of user 210. Prior to providing instruction 205 or instruction 305 to user device 110, the eligibility evaluator 155 may set, update, or adjust the eligibility field 195' to an eligibility value 515 that enables updating of the activity field 185' and the verification field 190'. For example, in order to generate token 405, the eligibility value 515 of eligibility field 195' must be set. The eligibility value 515 may be a numeric or Boolean value.
[0094] The eligibility of user 210 may be based on, for example, the number of completed activities. For example, the eligibility evaluator 155 may set the eligibility field 195' based on at least one of the following: completion of previous activities and / or verification tests, the number of completed activities and / or verification tests, or the percentage of the number of completed activities and / or verification tests (compared to, for example, the number of prompts requesting to perform activities and verification tests). Setting the eligibility field 195' may enable the token generator 160 to generate token 405. For example, in response to the eligibility field 195 not being set or not meeting the conditions, the token generator 160 does not generate token 405.
[0095] In some embodiments, the qualification evaluator 155 may identify previous activities and / or validation tests performed by user 210 and set the qualification field 195' based on the application of the historical data to a model (e.g., a machine learning model). For example, based on the previous activities and / or validation tests, the qualification evaluator 155 may set the qualification field 195' to a qualification value 515. In another example, the qualification evaluator 155 may apply the previous activity values and validation values to a machine learning model to determine the qualification value 515 for user 210. The historical data may also include data from other users (e.g., not user 210).
[0096] In some embodiments, the eligibility evaluator 155 may generate a score. The score may indicate the probability of enabling the updating of the activity field 185' and the verification field 190'. The eligibility evaluator 155 may generate the score prior to, in parallel with, or after the generation of the activity value 225 and the verification value 325. In some embodiments, the score may be based on the activity conditions and verification conditions, along with the activity data 220 and the verification data 320. The score may be used to determine whether the user-related data structure 175 is eligible to be assigned a token. In response to generating the score, the eligibility evaluator 155 may then compare the score to a threshold.
[0097] The eligibility evaluator 155 may set the eligibility field 195' of data structure 175 to an eligibility value 515 if the score meets a threshold (e.g., is greater than or equal to the threshold). The eligibility value 515 may be based at least partially on the score. The setting of the eligibility field 195' by the eligibility evaluator 155 may also be based on the number of times the eligibility field 195 has been set to an eligibility value 515, which enables updates of the activity field 185' and the verification field 190'. The eligibility evaluator 155 may decide whether or not to set the eligibility field 195 to an eligibility value 515, taking into account the time interval between each eligibility, along with the number of previous eligibility. Conversely, the eligibility evaluator 155 may set the eligibility field 195' of data structure 175 to an eligibility value 515 if the score does not meet a threshold (e.g., is less than the threshold).
[0098] In some embodiments, the determination of the qualification value 515 by the qualification evaluator 155 may be performed in combination with, or sequentially with, the generation of the activity value 225 and the verification value 325, respectively, by the activity evaluator 145 and the verification evaluator 150. For example, the qualification evaluator 155 may set the qualification field 195' in response to updates to the activity field 185 and / or the verification field 190. The qualification evaluator 155 may generate the qualification value 515 at least for each update of the verification field 190'.
[0099] For example, the setting of the eligibility field 195' to eligibility value 515 by the eligibility evaluator 155 may be based on the fact that the verification data 320 satisfies the verification conditions. Thus, user 210 may receive updates to their profile only based on the verification value 325 via token 405. In this case, the activity value 225 may supplement the generation of token 405 and may also influence the value of token 405, while the generation of token 405 by the token generator 160 is based on the verification value 325. Thus, self-control is directly reinforced, while the completion of recovery activities is indirectly reinforced. By directly targeting self-control, the value of token 405 can be associated with self-control, the highest priority behavior, without diluting it with the completion of other target behaviors.
[0100] In response to the setting of the eligibility field 195', the session handler 140 may send, generate, or provide a command 505 to user 210 prompting user 210 to perform activity and verification tests (as described, for example, in processes 200-400). In response to receiving the command 505, application 125, for example, may then monitor activity data 220 and verification data 320 via an event handler. After the activity evaluator 145 and verification evaluator 150 have received the activity data (e.g., activity data 220) and verification data (e.g., verification data 320) respectively via response 510, the activity evaluator 145 and verification evaluator 150 may generate activity value 225 and verification value 325, respectively. Response 510 may also be provided to the eligibility evaluator 155.
[0101] The qualification evaluator 155 may acquire, identify, or receive a response 510 including activity data 220 and verification data 320. In some embodiments, the qualification evaluator 155 may acquire, identify, or receive activity values 225 and verification values 325 from the activity evaluator 145 and verification evaluator 150. In some embodiments, the qualification evaluator 155 may receive verification data 320 or verification values 325. The qualification evaluator 155 generates a qualification value 515 based on at least one of the verification data 320 or verification values 325. For example, the qualification evaluator 155 may match the verification data 320 or verification values 325 with qualification criteria. The eligibility criteria may differ from the verification criteria. The eligibility evaluator 155 then determines whether the verification data 320 satisfies the eligibility criteria. In some embodiments, the eligibility criteria are the verification criteria, and the eligibility evaluator 155 generates an eligibility value 515 based on the verification value 325. For example, the eligibility value 515 may be set based on the reception of the verification value 325 by the eligibility evaluator 155.
[0102] In some embodiments, the qualification evaluator 155 generates a qualification value 515 in response to the validation data meeting the qualification criteria. The qualification evaluator 155 then updates or sets the qualification field 195' using the qualification value 515. In some embodiments, the qualification evaluator 155 determines whether the activity data 220 and / or validation data 320 meet the qualification criteria. In some embodiments, the qualification evaluator 155 generates a qualification value 515 based on the activity value 225 and / or the validation value 325. For example, the qualification evaluator 155 may generate a qualification value 515 based on the validation value 325 (e.g., validation data 320 that satisfies at least one of the validation criteria or the qualification criteria) and adjust the qualification value 515 based on the activity value 225. For example, the completion of an activity indicated by the activity value 225 may affect the qualification value 515. The eligibility value 515 may be higher when the number of completed activities is greater than when the number of completed activities, as indicated by the activity value 225, is less. A higher eligibility value 515 may enable the user 210 to be eligible for higher-value rewards and / or higher-value tokens 405.
[0103] In this manner, by performing CM using the digital therapy application as described in this disclosure, the use of data structure 175 for a single integrated reward track can reduce unnecessary computation and storage compared to approaches using separate parallel tracks. By leveraging psychoscience and behavioral science, the digital therapy application can optimize reinforcement algorithms and provide more targeted and individualized reinforcement to maximize the likelihood of clinical outcomes (e.g., self-control). At the same time, the data processing service 105 and user device 110 can conserve computational resources and network bandwidth.
[0104] The data processing service 105 may compile both activity data 220 and validation data 320 to determine eligibility and rewards in order to motivate the user 210 and sustain self-control over the long term. By utilizing both recovery activities and validation tests, the data processing service 105 can enable continuous and accurate assessment of self-control while providing activities that support the initial goals of self-control. By combining behavioral management with digital therapy, the data processing service 105 can provide a more effective approach to addressing SUD in the user 210 by creating an easy-to-understand and comprehensive self-control solution.
[0105] Furthermore, the data processing service 105 can improve its interoperability by supporting and maintaining the data structure 175 to store values using multiple data formats aggregated across multiple devices such as remote devices 109, instrumentation devices 111, or user devices 110. Since the data structure 175 does not depend on the specific data format of each device, the data processing service 105 can interface with these devices and maintain data for remote verification of activities and tests, thus saving memory consumption for storing such data. The data structure 175 can address the technical challenges in conventional CM approaches by enabling the implementation of contingency management to track user completion of activities and verification tests for a single enhancement track. The data structure 175 can continuously and simultaneously update the activity field 185, verification field 190, and qualification field 195 in real time upon receiving data to accurately reflect progress and provide timely enhancements to the user 210.
[0106] Figures 6A and 6B illustrate screenshots of a set of user interfaces 600 for performing activities and validation tests to generate tokens, according to an exemplary embodiment. The user interfaces in set 600 may be part of application 125 or may be presented via user interface 130. User interface 605 may provide prompts to user 210 to perform an activity. The activity may relate to exercise training, such as walking. User interface 610 may provide an indication of the completion of the user's activity, such as activity data received from the user who has met the activity conditions. User interface 610 may also provide prompts to user 210 to perform a validation test. User interface 615 may provide an indication that the validation data has met the validation conditions and may include a message showing a token generated based on both the activity data and the validation data. User interface 620 may provide prompts to the user to complete a remote validation test. The remote validation test may, for example, request an image (including a video) of the user's saliva. The remote validation test may also be an image of the user's face, hair, or body. User interface 625 may prompt the user to complete recovery activities via user interface 625. For example, user interface 625 may allow the user to complete cognitive activities. User interface 630 may provide a display of the user's progress over time. User interface 630 may show a set of scores generated over a set of time points.
[0107] Figure 7 illustrates a flowchart of Method 700 for addressing a substance use disorder by providing a user with activity and verification tests, according to an exemplary embodiment. Method 700 can be performed by any component of System 100, such as a data processing service 105, a user device 110, or a user 210. In Method 700, the computing system may maintain a data structure (702). The data structure may be related to a user's profile. The computing system may determine whether the user is eligible for a token (704). The computing system may determine whether the activity data received from the user meets the criteria (706). In response to the activity data meeting the criteria, the computing system may update the activity field in the data structure (708). The computing system may update the activity field using an activity value generated based on the activity data. The computing system may determine whether verification data has been received (710). Verification data may be received in response to the provision of an instruction requesting to perform a verification test. In response to the determination that verification data has been received, the computing system may update the verification field in the data structure (712). The validation field may be updated using a validation value generated based on the validation data.
[0108] The computing system may determine whether the activity field and the validation field have been updated (714). The update of the activity field and the validation field may be based on the activity data and the validation data meeting the activity conditions and the validation conditions. In response to the determination that the activity field and the validation field have been updated, the computing system may generate a token (716). In response to the determination that the activity field and the validation field have not been updated, the computing system may refrain from generating a token (718). The computing system may then update the data structure based on the token or the absence of a token (720). For example, the token or the absence thereof may determine the next activity to be offered to the user. The computing system may then perform an action (722). The action may include updating the user's profile related to the data structure. B. Network and computing environment
[0109] Various operations described in this disclosure may be implemented on a computer system. Figure 8 shows a schematic block diagram of a typical server system 800, a client computing system 814, and a network 826 that can be used to implement some embodiments of this disclosure. In various embodiments, the server system 800 or a similar system may implement the services or servers or parts thereof described in this disclosure. The client computing system 814 or a similar system may implement the clients described in this disclosure. The system 800 described in this disclosure may be the same as the server system 800. The server system 800 may have a modular design incorporating a plurality of modules 802 (e.g., blades in a blade server embodiment). Two modules 802 are shown, but any number may be provided. Each module 802 may include a processing unit 804 and local storage 806.
[0110] The processing unit 804 may include a single processor having one or more cores, or multiple processors. In some embodiments, the processing unit 804 may include a general-purpose primary processor and one or more dedicated coprocessors, such as a graphics processor or a digital signal processor. In some embodiments, some or all of the processing unit 804 may be embodied using customized circuitry, such as an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA). In some embodiments, such an integrated circuit executes instructions stored in the circuitry itself. In other embodiments, the processing unit 804 may execute instructions stored in local storage 806. Any combination of any type of processors may be included in the processing unit 804.
[0111] The local storage 806 may include volatile storage media (e.g., DRAM, SRAM, SDRAM, etc.) or non-volatile media (e.g., magnetic disks or optical disks, flash memory, etc.). The storage media incorporated into the local storage 806 may be fixed, removable, or updatable, as needed. The local storage 806 may be physically or logically divided into various subunits such as system memory, read-only memory (ROM), and a permanent storage device. The system memory may be a read-write memory device or a volatile read-write memory such as dynamic random access memory. The system memory may store some or all of the instructions and data required by the processing unit 804 at runtime. The ROM may store static data and instructions required by the processing unit 804. The permanent storage device may be a non-volatile read-write memory device capable of storing instructions and data even when the module 802 is not powered on. As used in this disclosure, the term “storage medium” includes any medium in which data can be stored indefinitely (without being overwritten, subjected to electrical interference, power outages, etc.), but does not include carrier waves or transient electronic signals propagated wirelessly or via wired communications.
[0112] In some embodiments, local storage 806 may store one or more software programs to be executed by processing unit 804, such as operating systems and / or programs that embody various server functions, such as functions of system 800 or any other system described herein, or functions of any other server related to system 800 or any other system described herein.
[0113] "Software" generally refers to a sequence of instructions that, when executed by the processing unit 804, cause the server system 800 (or a part thereof) to perform various operations, and thus define one or more specific machine embodiments that perform and execute the operations of the software program. The instructions may be stored as firmware resident in read-only memory and / or as program code stored in a non-volatile storage medium that can be loaded into volatile working memory for execution by the processing unit 804. The software may be embodied as a single program or as a collection of separate programs or program modules that interact as needed. The processing unit 804 may obtain program instructions to be executed and data to be processed in order to perform the various operations described above from local storage 806 (or the non-local storage described below).
[0114] In some server systems 800, multiple modules 802 may be interconnected via a bus or other interconnection 808 to form a local area network that facilitates communication between the modules 802 and other components of the server system 800. The interconnection 808 may be implemented using various technologies, including server racks, hubs, routers, and the like.
[0115] The wide area network (WAN) interface 810 may provide data communication capabilities between the local area network (for example, via interconnect 808) and a network 826 such as the Internet. Other technologies, including wired technology (e.g., Ethernet, IEEE 802.3 standard) or wireless technology (e.g., Wi-Fi, IEEE 802.11 standard), may be used to connect the server system to network 826 in a communicative manner.
[0116] In some embodiments, local storage 806 is intended to provide working memory for processing unit 804 to provide rapid access to programs or data to be processed, while reducing traffic on interconnect 808. One or more mass storage subsystems 812 connectable to interconnect 808 may provide storage for larger amounts of data on the local area network. The mass storage subsystem 812 may be based on magnetic data storage media, optical data storage media, semiconductor data storage media, or other data storage media. Direct-attached storage, storage area networks, network-attached storage, etc., may be used. Any data store or other collection of data described in this disclosure as being created, used, or maintained by a service or server may be stored within the mass storage subsystem 812. In some embodiments, additional data storage resources may be accessible via WAN interface 810 (potentially with higher latency).
[0117] The server system 800 may operate in response to requests received via the WAN interface 810. For example, one of the modules 802 may perform a monitoring function in response to an received request and assign individual tasks to other modules 802. Work allocation techniques may be used. As the request is processed, the results may be returned to the requester via the WAN interface 810. Such operations may be largely automated. Furthermore, in some embodiments, the WAN interface 810 may interconnect multiple server systems 800 to provide a scalable system capable of managing a large volume of activity. Other techniques for managing server systems and server farms (collections of collaborating server systems), including dynamic resource allocation and reallocation, may be used.
[0118] The server system 800 may interact with various user-owned or user-operated devices via a wide-area network such as the Internet. An example of a user-operated device is illustrated in Figure 8 as a client computing system 814. The client computing system 814 may be embodied as a consumer device such as a smartphone, other mobile phone, tablet computer, wearable computing device (e.g., smartwatch, glasses), desktop computer, or laptop computer.
[0119] For example, the client computing system 814 may communicate via the WAN interface 810. The client computing system 814 may include computer components such as a processing unit 816, a storage device 818, a network interface 820, a user input device 822, and a user output device 824. The client computing system 814 may be a computing device embodied in various form factors such as a desktop computer, a laptop computer, a tablet computer, a smartphone, other mobile computing devices, or a wearable computing device.
[0120] The processing unit 816 and the storage device 818 may be the same as the processing unit 804 and local storage 806 described above. A suitable device may be selected based on the requirements imposed on the client computing system 814. For example, the client computing system 814 may be implemented as a "thin" client with limited processing power, or as a high-performance computing device. The client computing system 814 may be provided with program code executable by the processing unit 816 to enable various interactions with the server system 800.
[0121] The network interface 820 may provide a connection to a network 826, such as a wide area network (e.g., the Internet), to which the WAN interface 810 of the server system 800 is also connected. In various embodiments, the network interface 820 may include a wired interface (e.g., Ethernet) or a wireless interface implementing various RF data communication standards such as Wi-Fi, Bluetooth, or cellular data network standards (e.g., 3G, 4G, LTE, etc.).
[0122] The user input device 822 may include any device (or a set of devices) through which the user can supply signals to the client computing system 814. The client computing system 814 may interpret these signals as representing specific user requests or information. In various embodiments, the user input device 822 may include some or all of the following: a keyboard, touchpad, touchscreen, mouse, or other pointing device, a scroll wheel, a click wheel, a dial, a button, a switch, a keypad, a microphone, etc.
[0123] The user output device 824 may include any device through which the client computing system 814 can provide information to the user. For example, the user output device 824 may include a display-to-display image generated by or delivered to the client computing system 814. The display may include various image generation technologies, such as liquid crystal displays (LCDs), light-emitting diodes (LEDs) including organic light-emitting diodes (OLEDs), projection systems, and cathode ray tubes (CRTs), together with supporting electronics (e.g., digital-to-analog converters, analog-to-digital converters, signal processors, etc.). Some embodiments may include a device such as a touchscreen that functions as both an input and output device. In some embodiments, other user output devices 824 may be provided in addition to, or instead of, the display. Examples include indicator lights, speakers, haptic "display" devices, and printers.
[0124] Some embodiments include electronic components such as microprocessors, storage, and memory that store computer program instructions in a computer-readable storage medium. Many of the features described herein can be implemented as processes identified as a set of program instructions coded on a computer-readable storage medium. When one or more processing units execute these program instructions, these program instructions cause the processing units to perform various operations indicated in the program instructions. Examples of program instructions or computer code include machine code, such as that created by a compiler, as well as files containing higher-level code that is executed using an interpreter by a computer, electronic component, or microprocessor. Processing units 804 and 816 may, by preferred programming, provide functions for server system 800 and client computing system 814, including any or other functions described herein as being executed by a server or user.
[0125] It will be understood that the server system 800 and client computing system 814 are illustrative and subject to change and modification. Computer systems used in combination with embodiments of the present disclosure may have other capabilities not specifically described herein. Furthermore, it should be understood that although the server system 800 and client computing system 814 are described with reference to certain blocks, these blocks are defined for illustrative purposes only and are not intended to imply any specific physical arrangement of components. For example, different blocks may, but are not required, reside in the same facility, in the same server rack, or on the same motherboard. Furthermore, the blocks do not need to correspond to physically discrete components. Blocks may be configured to perform various operations, for example, by programming a processor or by providing appropriate control circuits, and the various blocks may be reconfigurable or not, depending on how the initial configuration was obtained. Embodiments of the present disclosure may be realized in various devices, including electronic devices embodied using various combinations of circuitry and software.
[0126] While this disclosure has been described in relation to specific embodiments, those skilled in the art will understand that numerous modifications are possible. Embodiments of this disclosure may be implemented using a variety of computer systems and communication technologies, including but not limited to the specific examples described herein. Embodiments of this disclosure may be implemented using any combination of dedicated components, programmable processors, or other programmable devices. The various processes described herein may be performed on the same processor or on any combination of different processors. Components are configured to perform specific operations, and such configurations may be achieved, for example, by designing electronic circuits to perform the operation, by programming programmable electronic circuits (such as microprocessors) to perform the operation, or by any combination thereof. Furthermore, while the embodiments described above may refer to specific hardware and software components, those skilled in the art will understand that different combinations of hardware components or software components may also be used, and that specific operations described as being embodied in hardware may be embodied in software, or vice versa.
[0127] Computer programs incorporating various features of this disclosure may be coded and stored on various computer-readable storage media. Suitable media include optical storage media such as magnetic disks or tapes, compact discs (CDs) or digital versatile discs (DVDs), flash memory, and other non-temporary media. The computer-readable media on which the program code is coded may be packaged together with a compatible electronic device, or the program code may be provided separately from the electronic device (for example, by internet download or as separately packaged computer-readable storage media).
[0128] Therefore, although this disclosure has been described in relation to specific embodiments, it will be understood that this disclosure is intended to cover all modifications and equivalents within the scope of the following claims.
[0129] Examples 1. It is a system, One or more processors coupled to memory, Maintain a data structure that includes activity fields and validation fields for each user-related profile. The application determines whether the activity data generated in response to the user's activity through the application satisfies the activity conditions, via one or more event handlers running on the application. In response to the determination that the activity data satisfies the activity conditions, the data structure is updated to include the activity value corresponding to the activity field. In accordance with the verification tests taken by the user, the system receives verification data related to the user. In response to the determination that the verification data satisfies the verification conditions, the data structure is updated to include the verification value corresponding to the verification field. The token, based on the activity value and the verification value, is used to perform an action to update the profile. One or more processors configured in this way A system that includes these features. 2. The system according to claim 1, wherein the one or more processors are configured to generate the token as a function of (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) the time intervals at which sets of activity datasets and validation datasets are received, (iii) the frequency over time intervals at which the data structure is updated to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, or (vii) at least one combination thereof. 3. The system according to claim 2, wherein the function comprises at least one of a probability function, a defined sequence, or a model. 4. The one or more processors The system determines whether the subsequent activity data generated in response to the user performing a subsequent activity through the application satisfies the conditions for the subsequent activity, via one or more event handlers running on the application. In response to the determination that the subsequent activity data satisfies the subsequent activity conditions, the data structure is updated to include the subsequent activity value corresponding to the subsequent activity field. In accordance with the subsequent verification tests taken by the user, subsequent verification data related to the user is received. In response to the determination that the subsequent verification data satisfies the subsequent verification conditions, the data structure is updated to include the subsequent verification value corresponding to the subsequent verification field. Subsequent actions to update the profile are performed using subsequent tokens based on the aforementioned data structure. The system according to claim 1, further configured as follows. 5. The system according to claim 1, wherein one or more processors are further configured to generate the tokens as a function of at least one of (i) the time elapsed since the generation of the tokens, (ii) the number of tokens generated for the profile, (iii) the type of token, or (iv) the size and / or probability of the tokens. 6. The system according to claim 5, wherein one or more processors are further configured to generate a set of tokens, including at least the token and the subsequent token, using the function in response to the execution of a corresponding set of operations. 7. The system according to claim 1, wherein the one or more processors are further configured to generate the token as (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) the time intervals at which sets of activity datasets and validation datasets are received, (iii) the frequency over time intervals at which the data structure is updated to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, (vii) the elapsed time since the generation of the token, (viii) the number of tokens generated for the profile, (ix) the type of token, (x) the size and / or probability of the token, or (xi) a set of weights corresponding to any combination thereof. 8. The system according to claim 7, wherein one or more processors are further configured to generate a set of tokens using the set of weights in response to the execution of a corresponding set of operations. 9. The system according to claim 8, wherein the one or more processors are further configured to update at least one weight in the set of weights in response to the generation of at least one token in the set of tokens. 10. The one or more processors A command is sent to the user device running the application, prompting the user to perform the activity via the application. The generation of activity data in response to the user performing the activity via the application is monitored via one or more event handlers. The system according to claim 1, further configured as follows. 11. The system described in claim 10, wherein the activities are selected from activities relating to cognitive behavioral therapy, activities relating to psychoeducational lessons, activities relating to assessment, activities relating to exercise training, activities relating to tools, activities relating to participation, or activities relating to a condition, disease, disability, or symptom. 12. The one or more processors The activity data generated in response to the user performing the activity is determined via an external computing device to determine whether the activity conditions are met. In response to the determination that the activity data satisfies the activity conditions, the data structure is updated to include the activity value corresponding to the activity field. The system according to claim 1, further configured as follows. 13. The one or more processors The system sends a command to a user device running the application, requesting it to perform the verification test based on at least one of the following: (i) data related to a sample from the user, (ii) biomarkers obtained from the user, (iii) measurements from an instrumentation device, (iv) uploading digital information to the application, (v) verifying the user's location, or (vi) data related to a clinical test provided by the user or the laboratory. The verification data related to the user undergoing the verification test via the application is received from the user device. The system according to claim 1, further configured as follows. 14. The system according to claim 1, wherein one or more processors are further configured to receive the verification data relating to the user undergoing remote testing via the application in accordance with the verification test from a computing device outside the application. 15. The system according to claim 14, wherein the verification test is based on at least one of (i) a clinical test, (ii) data related to a sample from the user, (iii) a biomarker obtained from the user, (iv) measurements from an instrumentation device, (v) uploading digital information to the application, or (vi) verification of the user's location. 16. The system according to claim 1, wherein the verification test is performed to generate the verification data, which includes a score indicating at least one of (i) the level of the substance in the user, or (ii) the absence of the substance in the user. 17. The system according to claim 16, wherein the substance is selected from marijuana, cocaine, alcohol, heroin, amphetamine, opioid, nicotine, benzodiazepine, barbiturate, and their metabolites. 18. The system according to claim 1, wherein one or more processors are further configured to monitor the reception of the verification data within a time interval after updating the data structure to include the activity value corresponding to the activity field. 19. The system according to claim 1, wherein one or more processors are further configured to monitor the reception of the activity data within a time interval after updating the data structure to include the verification value corresponding to the verification field. 20. The system according to claim 1, wherein one or more processors are further configured to refrain from updating the data structure to include the activity value corresponding to the activity field in response to a determination that the activity data does not satisfy the activity condition. 21. The system according to claim 1, wherein one or more processors are further configured to refrain from updating the data structure to include the verification value corresponding to the verification field in response to a determination that the verification data indicates a level of substance at the user. 22. The system according to claim 1, wherein one or more processors are further configured to generate a score indicating the number of times the data structure is updated to include the activity value and the verification value. 23. The system according to claim 22, wherein one or more processors are further configured to provide a graphical user interface that identifies a set of scores over a set of time points, where each score represents a set of scores indicating the number of updates of the data structure. 24. The one or more processors The eligibility field of the data structure is set as the eligibility value that enables updating of the activity field and the verification field. In response to setting the eligibility field to the eligibility value, the application provides a command prompting the user to perform the activity and the verification test. In response to the provision of the aforementioned command, the activity data and the verification data are monitored. The system according to claim 1, further configured as follows. twenty five. The system according to claim 24, wherein one or more processors are further configured to set the eligibility field to the eligibility value in response to at least one of (i) the completion of a previous activity and / or verification test, (ii) the number of activities and / or verification tests completed, or (iii) the percentage of activities and / or verification tests completed. 26. The system according to claim 24, wherein one or more processors are further configured to identify the previous activity and / or verification test for which the eligibility field should be the eligibility value, based on applying historical data to a model. 27. The one or more processors A score is generated that indicates the probability of enabling the updates of the activity field and the verification field. In response to the score meeting the threshold, the eligibility field of the data structure is set to the eligibility value. The system according to claim 24, further configured as follows. 28. The system according to claim 24, wherein one or more processors are further configured to determine how many times to set the eligibility field of the data structure to the eligibility value that enables updating the activity field and the verification field. 29. The system according to claim 1, wherein the token is a reward for inducing the user to perform the verification test that examines the user's self-control over the activity and substance related to the substance use disorder. 30. The system according to claim 1, wherein one or more processors are configured to perform the operation by transferring the token to an account data structure associated with the user. 31. The system according to claim 1, wherein one or more processors are configured to provide a schedule indicating the time of the activity and / or the time of the verification test. 32. The system according to claim 31, wherein one or more processors are configured to provide notices indicating the time of the activity and / or the time of the verification test. 33. The system according to claim 1, wherein the user is at risk of or has been diagnosed with a substance use disorder, and the user is taking an effective amount of therapeutic medication to address the substance use disorder, in part in parallel with the activity or at least one of the verification tests. 34. The system according to claim 33, wherein the therapeutic agent is selected from acamprosate, naltrexone, naloxone, disulfiram, gabapentin, methadone, baclofen, bupropion, clonopine, remeron, a GLP-1 receptor agonist, a GIP receptor agonist, or any combination thereof. 35. A method, The processor maintains a data structure for each user-related profile, including activity fields and validation fields. The one or more processors determine, via one or more event handlers running on the application, whether the activity data generated in response to the user performing an activity through the application satisfies the activity conditions, One or more processors update the data structure to include the activity value corresponding to the activity field in response to a determination that the activity data satisfies the activity conditions, One or more processors receive verification data related to the user in accordance with the verification tests the user has undergone, One or more processors update the data structure to include the verification value corresponding to the verification field in response to a determination that the verification data satisfies the verification conditions, The one or more processors perform an operation to update the profile using tokens based on the activity value and the verification value, Methods that include... 36. The method of claim 35, further comprising generating the token by one or more processors as a function of (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) time intervals for receiving sets of activity datasets and validation datasets, (iii) frequency over time intervals for updating the data structure to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, or (vii) at least one combination thereof. 37. The method according to claim 36, wherein the function comprises at least one of a probability function, a defined sequence, or a model. 38. The one or more processors determine, via one or more event handlers running on the application, whether the subsequent activity data generated in response to the user performing a subsequent activity through the application satisfies the conditions for the subsequent activity, The one or more processors update the data structure to include the subsequent activity value corresponding to the subsequent activity field in response to a determination that the subsequent activity data satisfies the subsequent activity conditions. The one or more processors receive subsequent verification data related to the user in accordance with the subsequent verification tests the user has undergone, The one or more processors update the data structure to include subsequent verification values corresponding to subsequent verification fields in response to a determination that the subsequent verification data satisfies the subsequent verification conditions. The one or more processors perform subsequent operations to update the profile using subsequent tokens based on the data structure, The method according to claim 35, further comprising: 39. The method according to claim 35, further comprising generating the tokens by one or more processors as a function of at least one of (i) the time elapsed since the generation of the tokens, (ii) the number of tokens generated for the profile, (iii) the type of tokens, or (iv) the size and / or probability of the tokens. 40. The method according to claim 39, further comprising using the function to generate a set of tokens, including at least the token and the subsequent token, in response to the execution of a corresponding set of operations by one or more processors. 41. The method of claim 35, further comprising generating the token by one or more processors as a set of weights corresponding to (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) the time intervals at which sets of activity datasets and validation datasets are received, (iii) the frequency over time intervals at which the data structure is updated to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, (vii) the time elapsed since the generation of the token, (viii) the number of tokens generated for the profile, (ix) the type of token, (x) the size and / or probability of the token, or (xi) any combination thereof. 42. The method according to claim 41, further comprising using the set of weights to generate a set of tokens in response to the execution of a corresponding set of operations by one or more processors. 43. The method according to claim 42, further comprising updating at least one weight from the set of weights in response to the generation of at least one token from the set of tokens by one or more processors. 44. One or more processors transmit instructions to a user device running the application, prompting the user to perform the activity through the application. The one or more processors monitor, via the one or more event handlers, the generation of the activity data in response to the user performing the activity through the application, The method according to claim 35, further comprising: 45. The method according to claim 44, wherein the activity is selected from activities relating to cognitive behavioral therapy, activities relating to psychoeducational lessons, activities relating to assessment, activities relating to exercise training, activities relating to tools, activities relating to participation, or activities relating to a condition, disease, disability, or symptom. 46. The one or more processors determine, via a computing device outside the application, whether the activity data generated in response to the user performing the activity satisfies the activity conditions, One or more processors update the data structure to include the activity value corresponding to the activity field in response to a determination that the activity data satisfies the activity conditions, The method according to claim 45, further comprising: 47. The one or more processors transmit a command to a user device running the application to perform the verification test based on at least one of the following: (i) data related to a sample from the user, (ii) biomarkers obtained from the user, (iii) measurements from an instrumentation device, (iv) uploading digital information to the application, (v) verifying the user's location, or (vi) data related to a clinical test provided by the user or a laboratory. The one or more processors receive the verification data related to the user undergoing the verification test via the application from the user device, The method according to claim 35, further comprising: 48. The method of claim 35, further comprising using one or more processors to receive the verification data relating to the user undergoing remote testing via the application in accordance with the verification test from a computing device outside the application. 49. The method according to claim 48, wherein the verification test is based on at least one of (i) a clinical test, (ii) data related to a sample from the user, (iii) a biomarker obtained from the user, (iv) measurements from an instrumentation device, (v) uploading digital information to the application, or (vi) verification of the user's location. 50. The method according to claim 35, wherein the verification test is performed to generate the verification data including a score indicating at least one of (i) the level of the substance in the user, or (ii) the absence of the substance in the user. 51. The method according to claim 50, wherein the substance is selected from marijuana, cocaine, alcohol, heroin, amphetamine, opioid, nicotine, benzodiazepine, barbiturate, and metabolites thereof. 52. The method of claim 35, further comprising monitoring the reception of the verification data within a time interval after the data structure has been updated by one or more processors to include the activity value corresponding to the activity field. 53. The method of claim 35, further comprising monitoring the reception of the activity data within a time interval after the data structure has been updated by one or more processors to include the verification value corresponding to the verification field. 54. The method of claim 35, further comprising one or more processors refraining from updating the data structure to include the activity value corresponding to the activity field in response to a determination that the activity data does not satisfy the activity condition. 55. The method of claim 35, further comprising refraining from updating the data structure to include the verification value corresponding to the verification field in response to a determination by one or more processors that the verification data indicates a level of substance in the user. 56. The method according to claim 35, further comprising generating a score indicating the number of times the data structure is updated to include the activity value and the verification value by one or more processors. 57. The method according to claim 56, further comprising providing a graphical user interface by which one or more processors identify a set of scores over a set of time points, where each score indicates the number of times the data structure has been updated. 58. Setting the eligibility field of the data structure to an eligibility value that enables updating of the activity field and the verification field by one or more processors, The one or more processors provide, via the application, instructions prompting the user to perform the activity and the verification test in response to the setting of the eligibility field to the eligibility value, The one or more processors monitor the activity data and the verification data in response to the provision of the instructions, The method according to claim 35, further comprising: 59. The method according to claim 58, further comprising setting the eligibility field to the eligibility value in response to at least one of the following by one or more processors: (i) completion of a previous activity and / or verification test, (ii) the number of activities and / or verification tests completed, or (iii) the percentage of activities and / or verification tests completed. 60. The method of claim 58, further comprising using one or more processors to identify the previous activity and / or verification test for which the eligibility field should be the eligibility value, based on applying historical data to a model. 61. One or more processors generate a score indicating the probability that the updates of the activity field and the verification field will be enabled, One or more processors set the eligibility field of the data structure to the eligibility value in response to the score meeting a threshold, The method according to claim 58, further comprising: 62. The method according to claim 58, further comprising determining how many times to set the eligibility field of the data structure to the eligibility value that enables updating the activity field and the verification field by one or more processors. 63. The method according to claim 35, wherein the token is a reward for inducing the user to perform the verification test that examines the user's self-control over the activity and substance related to the substance use disorder. 64. The method of claim 35, further comprising performing the operation by transferring the token to an account data structure associated with the user using one or more processors. 65. The method according to claim 35, further comprising providing a schedule indicating the time of the activity and / or the time of the verification test by one or more processors. 66. The method of claim 65, further comprising providing a notice indicating the time of the activity and / or the time of the verification test by one or more processors. 67. The method according to claim 35, wherein the user is at risk of or has been diagnosed with a substance use disorder, and the user is taking an effective amount of therapeutic medication to address the substance use disorder, in part in parallel with the activity or at least one of the verification tests. 68. The method according to claim 67, wherein the therapeutic agent is selected from acamprosate, naltrexone, naloxone, disulfiram, gabapentin, methadone, baclofen, bupropion, clonopine, remeron, a GLP-1 receptor agonist, a GIP receptor agonist, or any combination thereof.
Claims
1. It is a system, One or more processors coupled to memory, Maintain a data structure that includes activity fields and validation fields for each user-related profile. The application determines whether the activity data generated in response to the user's activity through the application satisfies the activity conditions, via one or more event handlers running on the application. In response to the determination that the activity data satisfies the activity conditions, the data structure is updated to include the activity value corresponding to the activity field. In accordance with the verification tests taken by the user, the system receives verification data related to the user. In response to the determination that the verification data satisfies the verification conditions, the data structure is updated to include the verification value corresponding to the verification field. The token, based on the activity value and the verification value, is used to perform an action to update the profile. One or more processors configured in this way A system that includes these features.
2. The system according to claim 1, wherein the one or more processors are configured to generate the token as a function of (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) the time interval at which sets of activity datasets and validation datasets are received, (iii) the frequency over a time interval at which the data structure is updated to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, or (vii) any combination thereof.
3. The system according to claim 2, wherein the function includes at least one of a probability function, a defined sequence, or a model.
4. The one or more processors described above are: The system determines whether the subsequent activity data generated in response to the user performing a subsequent activity through the application satisfies the conditions for the subsequent activity, via one or more event handlers running on the application. In response to the determination that the subsequent activity data satisfies the subsequent activity conditions, the data structure is updated to include the subsequent activity value corresponding to the subsequent activity field. In accordance with the subsequent verification tests taken by the user, subsequent verification data related to the user is received. In response to the determination that the subsequent verification data satisfies the subsequent verification conditions, the data structure is updated to include the subsequent verification value corresponding to the subsequent verification field. Subsequent actions to update the profile are performed using subsequent tokens based on the aforementioned data structure. The system according to claim 1, further configured as follows.
5. The system according to claim 1, wherein the one or more processors are further configured to generate the tokens as a function of at least one of (i) the time elapsed since the generation of the tokens, (ii) the number of tokens generated for the profile, (iii) the type of tokens, or (iv) the size and / or probability of the tokens.
6. The system according to claim 5, wherein one or more processors are further configured to generate a set of tokens, including at least the token and the subsequent token, using the function in response to the execution of a corresponding set of operations.
7. The system according to claim 1, wherein the one or more processors are further configured to generate the token as (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) the time intervals at which sets of activity datasets and validation datasets are received, (iii) the frequency over time intervals at which the data structure is updated to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, (vii) the elapsed time since the generation of the token, (viiii) the number of tokens generated for the profile, (ix) the type of token, (x) the size and / or probability of the token, or (xi) a set of weights corresponding to any combination thereof.
8. The system according to claim 7, wherein the one or more processors are further configured to generate a set of tokens using the set of weights in response to the execution of a corresponding set of operations.
9. The system according to claim 8, wherein the one or more processors are further configured to update at least one weight from the set of weights in response to the generation of at least one token from the set of tokens.
10. The one or more processors described above are: A command is sent to the user device running the application, prompting the user to perform the activity via the application. The generation of activity data in response to the user performing the activity via the application is monitored via one or more event handlers. The system according to claim 1, further configured as follows.
11. The system according to claim 10, wherein the activity is selected from activities relating to cognitive behavioral therapy, activities relating to psychoeducational lessons, activities relating to assessment, activities relating to exercise training, activities relating to tools, activities relating to participation, or activities relating to a condition, disease, disability, or symptom.
12. The one or more processors described above are: The activity data generated in response to the user performing the activity is determined via an external computing device to determine whether the activity conditions are met. In response to the determination that the activity data satisfies the activity conditions, the data structure is updated to include the activity value corresponding to the activity field. The system according to claim 1, further configured as follows.
13. The one or more processors described above are: The application is running on a user device which is sent an instruction to perform the verification test based on at least one of the following: (i) data related to a sample from the user, (ii) biomarkers obtained from the user, (iii) measurements from an instrumentation device, (iv) uploading digital information to the application, (v) verifying the user's location, or (vi) data related to a clinical test provided by the user or the laboratory. The verification data related to the user undergoing the verification test via the application is received from the user device. The system according to claim 1, further configured as follows.
14. The system according to claim 1, wherein one or more processors are further configured to receive the verification data relating to the user undergoing remote testing via the application in accordance with the verification test from a computing device outside the application.
15. The system according to claim 14, wherein the verification test is based on at least one of (i) a clinical test, (ii) data related to a sample from the user, (iii) a biomarker obtained from the user, (iv) measurements from an instrumentation device, (v) uploading digital information to the application, or (vi) verification of the user's location.
16. The system according to claim 1, wherein the verification test is performed to generate the verification data, which includes a score indicating at least one of (i) the level of the substance in the user, or (ii) the absence of the substance in the user.
17. The system according to claim 16, wherein the substance is selected from marijuana, cocaine, alcohol, heroin, amphetamine, opioid, nicotine, benzodiazepine, barbiturate, and their metabolites.
18. The system according to claim 1, wherein one or more processors are further configured to monitor the reception of the verification data within a time interval after updating the data structure to include the activity value corresponding to the activity field.
19. The system according to claim 1, wherein one or more processors are further configured to monitor the reception of the activity data within a time interval after updating the data structure to include the verification value corresponding to the verification field.
20. The system according to claim 1, wherein the one or more processors are further configured to refrain from updating the data structure to include the activity value corresponding to the activity field in response to a determination that the activity data does not satisfy the activity condition.
21. The system according to claim 1, wherein the one or more processors are further configured to refrain from updating the data structure to include the verification value corresponding to the verification field in response to a determination that the verification data indicates a level of substance for the user.
22. The system according to claim 1, wherein one or more processors are further configured to generate a score indicating the number of times the data structure is updated to include the activity value and the verification value.
23. The system according to claim 22, wherein one or more processors are further configured to provide a graphical user interface that identifies a set of scores over a set of time points, where each score is a set of scores indicating the number of times the data structure has been updated.
24. The one or more processors described above are: The eligibility field of the data structure is set as the eligibility value that enables updating of the activity field and the verification field. In response to setting the eligibility field to the eligibility value, the application provides a command prompting the user to perform the activity and the verification test. In response to the provision of the aforementioned command, the activity data and the verification data are monitored. The system according to claim 1, further configured as follows.
25. The system according to claim 24, wherein one or more processors are further configured to set the eligibility field to the eligibility value in response to at least one of (i) the completion of a previous activity and / or verification test, (ii) the number of activities and / or verification tests completed, or (iii) the percentage of activities and / or verification tests completed.
26. The system according to claim 24, wherein one or more processors are further configured to identify the previous activity and / or verification test for which the eligibility field should be the eligibility value, based on applying historical data to a model.
27. The one or more processors described above are: A score is generated that indicates the probability of enabling the updates of the activity field and the verification field. In response to the score meeting the threshold, the eligibility field of the data structure is set to the eligibility value. The system according to claim 24, further configured as follows.
28. The system according to claim 24, wherein the one or more processors are further configured to determine how many times to set the eligibility field of the data structure to the eligibility value that enables updating the activity field and the verification field.
29. The system according to claim 1, wherein the token is a reward for inducing the user to perform the verification test that examines the user's self-control over the activity and substance related to substance use disorder.
30. The system according to claim 1, wherein one or more processors are configured to perform the operation by transferring the token to an account data structure associated with the user.
31. The system according to claim 1, wherein one or more processors are configured to provide a schedule indicating the time of the activity and / or the time of the verification test.
32. The system according to claim 31, wherein one or more processors are configured to provide notifications indicating the time of the activity and / or the time of the verification test.
33. The system according to claim 1, wherein the user is at risk of or has been diagnosed with a substance use disorder, and the user is taking an effective amount of therapeutic medication to address the substance use disorder, in part in parallel with the activity or at least one of the verification tests.
34. The system according to claim 33, wherein the therapeutic agent is selected from acamprosate, naltrexone, naloxone, disulfiram, gabapentin, methadone, baclofen, bupropion, clonopine, remeron, a GLP-1 receptor agonist, a GIP receptor agonist, or any combination thereof.
35. It is a method, The processor maintains a data structure for each user-related profile, including activity fields and validation fields. The one or more processors determine, via one or more event handlers running on the application, whether the activity data generated in response to the user performing an activity through the application satisfies the activity conditions. One or more processors update the data structure to include the activity value corresponding to the activity field in response to a determination that the activity data satisfies the activity conditions, One or more processors receive verification data related to the user in accordance with the verification tests the user has undergone, One or more processors update the data structure to include the verification value corresponding to the verification field in response to a determination that the verification data satisfies the verification conditions. The one or more processors perform an operation to update the profile using tokens based on the activity value and the verification value, Methods that include...
36. The method of claim 35, further comprising generating the token as a function of (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) time intervals for receiving sets of activity datasets and validation datasets, (iii) frequency over time intervals for updating the data structure to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, or (vii) at least one combination thereof, by the one or more processors.
37. The method according to claim 36, wherein the function includes at least one of a probability function, a defined sequence, or a model.
38. The one or more processors determine, via one or more event handlers running on the application, whether the subsequent activity data generated in response to the user performing a subsequent activity through the application satisfies the conditions for the subsequent activity. The one or more processors update the data structure to include the subsequent activity value corresponding to the subsequent activity field in response to a determination that the subsequent activity data satisfies the subsequent activity conditions. The one or more processors receive subsequent verification data related to the user in accordance with the subsequent verification tests the user has undergone, The one or more processors update the data structure to include subsequent verification values corresponding to subsequent verification fields in response to a determination that the subsequent verification data satisfies the subsequent verification conditions. The one or more processors perform subsequent operations to update the profile using subsequent tokens based on the data structure, The method according to claim 35, further comprising:
39. The method according to claim 35, further comprising generating the tokens as a function of at least one of (i) the time elapsed since the generation of the tokens, (ii) the number of tokens generated for the profile, (iii) the type of tokens, or (iv) the size and / or probability of the tokens.
40. The method according to claim 39, further comprising one or more processors generating a set of tokens, including at least the token and the subsequent token, using the function in response to the execution of a corresponding set of operations.
41. The method of claim 35, further comprising generating the token by one or more processors as a set of weights corresponding to (i) the number of times the data structure is updated to include at least one activity value and at least one validation value, (ii) the time intervals at which sets of activity datasets and validation datasets are received, (iii) the frequency over time intervals at which the data structure is updated to include at least one activity value and at least one validation value, (iv) the percentage of the updated at least one activity value and at least one validation value in the data structure, (v) the type of activity, (vi) the type of validation test, (vii) the elapsed time since the generation of the token, (viiii) the number of tokens generated for the profile, (ix) the type of token, (x) the size and / or probability of the token, or (xi) any combination thereof.
42. The method according to claim 41, further comprising using the set of weights to generate a set of tokens in response to the execution of a corresponding set of operations by one or more processors.
43. The method according to claim 42, further comprising updating at least one weight from the set of weights in response to the generation of at least one token from the set of tokens by the one or more processors.
44. The one or more processors transmit a command to a user device running the application, prompting the user to perform the activity through the application. The one or more processors monitor the generation of the activity data in response to the user performing the activity via the application, via the one or more event handlers. The method according to claim 35, further comprising:
45. The method according to claim 44, wherein the activity is selected from activities relating to cognitive behavioral therapy, activities relating to psychoeducational lessons, activities relating to assessment, activities relating to exercise training, activities relating to tools, activities relating to participation, or activities relating to a condition, disease, disability, or symptom.
46. The one or more processors determine, via a computing device outside the application, whether the activity data generated in response to the user performing the activity satisfies the activity conditions. One or more processors update the data structure to include the activity value corresponding to the activity field in response to a determination that the activity data satisfies the activity conditions, The method according to claim 45, further comprising:
47. The one or more processors transmit commands to a user device running the application to perform the verification test based on at least one of the following: (i) data related to a sample from the user, (ii) biomarkers obtained from the user, (iii) measurements from an instrumentation device, (iv) uploading digital information to the application, (v) verifying the user's location, or (vi) data related to a clinical test provided by the user or a laboratory. The one or more processors receive the verification data related to the user undergoing the verification test via the application from the user device, The method according to claim 35, further comprising:
48. The method according to claim 35, further comprising the one or more processors receiving the verification data relating to the user undergoing remote testing via the application in accordance with the verification test from a computing device outside the application.
49. The method according to claim 48, wherein the verification test is based on at least one of (i) a clinical test, (ii) data related to a sample from the user, (iii) a biomarker obtained from the user, (iv) measurements from an instrumentation device, (v) uploading digital information to the application, or (vi) verification of the user's location.
50. The method according to claim 35, wherein the verification test is performed to generate the verification data, which includes a score indicating at least one of (i) the level of the substance in the user, or (ii) the absence of the substance in the user.
51. The method according to claim 50, wherein the substance is selected from marijuana, cocaine, alcohol, heroin, amphetamine, opioid, nicotine, benzodiazepine, barbiturate, and metabolites thereof.
52. The method of claim 35, further comprising monitoring by one or more processors for the reception of the verification data within a time interval after updating the data structure to include the activity value corresponding to the activity field.
53. The method of claim 35, further comprising monitoring the reception of the activity data within a time interval after updating the data structure to include the verification value corresponding to the verification field by one or more processors.
54. The method according to claim 35, further comprising the one or more processors refraining from updating the data structure to include the activity value corresponding to the activity field in response to a determination that the activity data does not satisfy the activity condition.
55. The method of claim 35, further comprising refraining from updating the data structure to include the verification value corresponding to the verification field in response to a determination by one or more processors that the verification data indicates a level of substance for the user.
56. The method according to claim 35, further comprising generating a score indicating the number of times the data structure is updated to include the activity value and the verification value by one or more processors.
57. The method according to claim 56, further comprising providing a graphical user interface by which one or more processors identify a set of scores over a set of time points, where each score represents a set of scores indicating the number of updates of the data structure.
58. The one or more processors set the eligibility field of the data structure to an eligibility value that enables updating of the activity field and the verification field, The one or more processors provide, via the application, instructions prompting the user to perform the activity and the verification test in response to the setting of the eligibility field to the eligibility value, The one or more processors monitor the activity data and the verification data in response to the provision of the instructions, The method according to claim 35, further comprising:
59. The method according to claim 58, further comprising setting the eligibility field to the eligibility value in response to at least one of the following: (i) completion of previous activities and / or verification tests, (ii) the number of activities and / or verification tests completed, or (iii) the percentage of activities and / or verification tests completed.
60. The method according to claim 58, further comprising using one or more processors to identify the previous activity and / or verification test for which the eligibility field should be the eligibility value, based on applying historical data to a model.
61. The one or more processors generate a score indicating the probability that the activity field and the verification field can be updated, One or more processors set the eligibility field of the data structure to the eligibility value in response to the score meeting a threshold, The method according to claim 58, further comprising:
62. The method according to claim 58, further comprising determining how many times to set the eligibility field of the data structure to the eligibility value that enables updating the activity field and the verification field by one or more processors.
63. The method according to claim 35, wherein the token is a reward for inducing the user to perform the verification test that examines the user's self-control over the activity and substance related to the substance use disorder.
64. The method according to claim 35, further comprising performing the operation by transferring the token to an account data structure associated with the user using one or more processors.
65. The method according to claim 35, further comprising providing a schedule indicating the time of the activity and / or the time of the verification test using one or more processors.
66. The method according to claim 65, further comprising providing a notification indicating the time of the activity and / or the time of the verification test by one or more processors.
67. The method according to claim 35, wherein the user is at risk of or has been diagnosed with a substance use disorder, and the user is taking an effective dose of therapeutic medication to address the substance use disorder, in part in parallel with the activity or at least one of the verification tests.
68. The method according to claim 67, wherein the therapeutic agent is selected from acamprosate, naltrexone, naloxone, disulfiram, gabapentin, methadone, baclofen, bupropion, clonopine, remeron, a GLP-1 receptor agonist, a GIP receptor agonist, or any combination thereof.