Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AI METHODS FOR ANALYSIS AND RECOMMENDATION OF CANNABIS COMPOSITIONS
Document Type and Number:
WIPO Patent Application WO/2023/278687
Kind Code:
A1
Abstract:
Systems, methods, and computer program products are provided for ranking plant-based products based on consistency of formulation. In various embodiments, a method is provided where a plurality of plant-based products are read from a datastore. Each plant- based product is characterized by a product feature vector comprising a prevalence of a plurality of cannabinoids, terpenes, and other active ingredients. The feature vectors are clustered into a plurality of clusters. Each cluster is labeled with a disease or wellness indication. The plant-based products are ranked for a selected disease or wellness indication based on the consistency of each formulation.

Inventors:
SCOTT GEOFF (US)
CHIN CAMACHO JUNELLA (US)
Application Number:
PCT/US2022/035704
Publication Date:
January 05, 2023
Filing Date:
June 30, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PROVENANCE HEALTH INC (US)
International Classes:
G06Q30/06; G16H20/10
Domestic Patent References:
WO2020174473A12020-09-03
Foreign References:
US20200202409A12020-06-25
US20200334737A12020-10-22
US20170202170A12017-07-20
US20040251177A12004-12-16
US20110119212A12011-05-19
Attorney, Agent or Firm:
HUESTIS, Erik, A. et al. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A method comprising: reading a plurality of plant-based products from a datastore, each plant-based product being characterized by a product feature vector comprising a prevalence of a plurality of cannabinoids, terpenes, and other active ingredients; clustering the feature vectors into a plurality of clusters; labeling each cluster with a disease or wellness indication; and ranking the plant-based products for a selected disease or wellness indication based on the consistency of each formulation.

2. The method of claim 1, wherein clustering comprises at least one of: k-means clustering, hierarchical agglomerative clustering, and DBSCAN.

3. The method of claim 1, wherein ranking comprises determining a variability of the formulation for each product over a predetermined time period.

4. The method of claim 1, wherein ranking comprises determining a variability of the formulation for each product over a predetermined number of batches.

5. The method of claim 4, wherein the predetermined number of batches is about two to about 1000.

6. The method of claim 4, wherein the predetermined number of batches is about two to about 100.

7. The method of claim 4, wherein the predetermined number of batches is about two to about 10.

8. The method of claim 4, wherein the predetermined number of batches is about six.

9. The method of claim 1, wherein labeling each cluster is performed via unsupervised clustering.

10. The method of claim 1, wherein labeling each cluster is performed via supervised clustering.

11. The method of claim 1, further comprising: reading a plurality of patient profiles, each patient profile being characterized by a patient feature vector comprising a patient sex, a patient age, and one or more disease or wellness conditions; mapping each of the patient profiles to one or more of the plurality of clusters based on the patient feature vector.

12. The method of claim 11, wherein mapping each of the patient profiles comprises generating a score for each product in the plurality of clusters.

13. The method of claim 12, wherein the score for each product represents a likelihood that a patient profile will benefit from the product.

14. The method of claim 12, wherein the score ranges from 0.0 to 1.0.

15. The method of claim 14, wherein, when the score is greater than or equal to 0.50, the product is likely to benefit the patient.

16. The method of claim 14, wherein, when the score is less than 0.50, the product is unlikely to benefit the patient.

17. A system comprising: a patient profile datastore; a product datastore; a computing node comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor of the computing node to cause the processor to perform a method comprising: reading a plurality of plant-based products from the datastore, each plant- based product being characterized by a product feature vector comprising a prevalence of a plurality of cannabinoids, terpenes, and other active ingredients; clustering the feature vectors into a plurality of clusters; labeling each cluster with a disease or wellness indication; and ranking the plant-based products for a selected disease or wellness indication based on the consistency of formulation..

18. A computer program product for ranking plant-based products, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising: reading a plurality of plant-based products from a datastore, each plant-based product being characterized by a product feature vector comprising a prevalence of a plurality of cannabinoids, terpenes, and other active ingredients; clustering the feature vectors into a plurality of clusters; labeling each cluster with a disease or wellness indication; and ranking the plant-based products for a selected disease or wellness indication based on the consistency of formulation.

19. A method comprising: reading a plurality of treatment protocols from a datastore, each treatment protocol being characterized by a treatment protocol feature vector comprising information related to a plurality of cannabis products, nutritional supplements, diet recommendations, and exercise recommendations; clustering the feature vectors into a plurality of clusters; labeling each cluster with a disease or wellness indication; and ranking the treatment protocols for a selected disease or wellness indication.

20. The method of claim 19, wherein clustering comprises at least one of: k-means clustering, hierarchical agglomerative clustering, and DBSCAN.

21. The method of claim 19, wherein labeling each cluster is performed via unsupervised clustering.

22. The method of claim 19, wherein labeling each cluster is performed via supervised clustering.

23. The method of claim 19, further comprising: reading a plurality of patient profiles, each patient profile being characterized by a patient feature vector comprising a patient sex, a patient age, and one or more disease or wellness conditions; mapping each of the patient profiles to one or more of the plurality of clusters based on the patient feature vector.

24. The method of claim 23, wherein mapping each of the patient profiles comprises generating a score for each treatment protocol in the plurality of clusters.

25. The method of claim 24, wherein the score for each treatment protocol represents a likelihood that a patient profile will benefit from the treatment protocol.

26. The method of claim 24, wherein the score ranges from 0.0 to 1.0.

27. The method of claim 26, wherein, when the score is greater than or equal to 0.50, the treatment protocol is likely to benefit the patient.

28. The method of claim 26, wherein, when the score is less than 0.50, the treatment protocol is unlikely to benefit the patient.

29. A system comprising: a patient profile datastore; a treatment protocol datastore; a computing node comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor of the computing node to cause the processor to perform a method comprising: reading a plurality of treatment protocols from the datastore, each treatment protocol being characterized by a treatment protocol feature vector comprising information related to a plurality of cannabis products, nutritional supplements, diet recommendations, and exercise recommendations;; clustering the feature vectors into a plurality of clusters; labeling each cluster with a disease or wellness indication; and ranking the treatment protocols for a selected disease or wellness indication. 30. A computer program product for ranking treatment protocols, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising: reading a plurality of treatment protocols from a datastore, each treatment protocol being characterized by a treatment protocol feature vector comprising information related to a plurality of cannabis products, nutritional supplements, diet recommendations, and exercise recommendations; clustering the feature vectors into a plurality of clusters; labeling each cluster with a disease or wellness indication; and ranking the treatment protocols for a selected disease or wellness indication.

Description:
AI METHODS FOR ANALYSIS AND RECOMMENDATION OF CANNABIS

COMPOSITIONS

CROSS REFERENCE TO RELATED APPLICATIONS [0001] This application claims the benefit of U.S. Provisional Application No. 63/218,050, filed July 2, 2021, which is hereby incorporated by reference in its entirety.

BACKGROUND

[0002] Embodiments of the present disclosure relate to methods of analyzing and providing recommendations of cannabis compositions (and other active ingredients) using artificial intelligence.

[0003] Cannabis products are increasingly being used to treat a wide variety of medical conditions including pain, anxiety, nausea, headaches, seizures, and auto-immune disorders. [0004] Cannabis is a plant-based product that does not have FDA approved formulations. The chemical composition of these products may vary significantly from batch to batch; and the formulation can change without notice to doctors, patients, and/or other users. Further, the chemical composition for cannabis products with the same name - when manufactured in different locations (e.g, states) - may also be different.

[0005] In order to sufficiently understand the medical implications of the cannabis products that they recommend to patients, doctors, and other users, need to manually research the candidate products: Determine if the patient is best suited for a cannabis product that they can purchase on a web site or a cannabis product that they need to purchase at a licensed dispensary; Select a retail source for the product (i.e., cannabis dispensary or CBD brand); Identify candidate products available at the retail source that might meet their patient’s medical needs; Contact the pharmacist at the product manufacturer; and ask them to send recent Certificates of Analysis (COA) for the candidate products; Analyze the COAs; and Decide which product(s) to recommend to their patient

[0006] Since the chemical composition of these products can vary from batch to batch and can change significantly without warning, doctors and other users need to repeat this process frequently to ensure that their product recommendations remain therapeutic and have not become harmful to the patient.

[0007] The only way that doctors and other users might assess the consistency of the chemical composition of a product might be to collect COAs for a product over time and compare them side-by-side.

BRIEF SUMMARY

[0008] Systems, methods, and computer program products are provided for analyzing and providing recommendations of compositions, such as cannabis compositions, using artificial intelligence. In various embodiments, a method is provided. A plurality of plant- based products are read from a datastore. Each plant-based product is characterized by a product feature vector comprising a prevalence of a plurality of cannabinoids, terpenes, and other active ingredients. The feature vectors are clustered into a plurality of clusters. Each cluster is labeled with a disease or wellness indication. The plant-based products are ranked for a selected disease or wellness indication based on the consistency of each formulation. The clustering may include at least one of: k-means clustering, hierarchical agglomerative clustering, and DBSCAN. The ranking may include determining a variability of the formulation for each product over a predetermined time period. The ranking may include determining a variability of the formulation for each product over a predetermined number of batches. The predetermined number of batches may be about two to about 1000. The predetermined number of batches is about two to about 100. The method of claim 4, wherein the predetermined number of batches may be about two to about 10. The predetermined number of batches may be about six. Labeling each cluster may be performed via unsupervised clustering. Labeling each cluster may be performed via supervised clustering. A plurality of patient profiles, each patient profile being characterized by a patient feature vector comprising a patient sex, a patient age, and one or more disease or wellness conditions may be read. Each of the patient profiles may be mapped to one or more of the plurality of clusters based on the patient feature vector. Mapping each of the patient profiles may include generating a score for each product in the plurality of clusters. The score for each product may represent a likelihood that a patient profile will benefit from the product. The score may range from 0.0 to 1.0. When the score is greater than or equal to 0.50, the product may be likely to benefit the patient. When the score is less than 0.50, the product may be unlikely to benefit the patient.

[0009] In various embodiments, a system is provided that includes a patient profile datastore, a product datastore, and a computing node comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor of the computing node to cause the processor to perform a method. A plurality of plant-based products are read from a datastore. Each plant-based product is characterized by a product feature vector comprising a prevalence of a plurality of cannabinoids, terpenes, and other active ingredients. The feature vectors are clustered into a plurality of clusters. Each cluster is labeled with a disease or wellness indication.

The plant-based products are ranked for a selected disease or wellness indication based on the consistency of each formulation. The clustering may include at least one of: k-means clustering, hierarchical agglomerative clustering, and DBSCAN. The ranking may include determining a variability of the formulation for each product over a predetermined time period. The ranking may include determining a variability of the formulation for each product over a predetermined number of batches. The predetermined number of batches may be about two to about 1000. The predetermined number of batches is about two to about 100. The method of claim 4, wherein the predetermined number of batches may be about two to about 10. The predetermined number of batches may be about six. Labeling each cluster may be performed via unsupervised clustering. Labeling each cluster may be performed via supervised clustering. A plurality of patient profiles, each patient profile being characterized by a patient feature vector comprising a patient sex, a patient age, and one or more disease or wellness conditions may be read. Each of the patient profiles may be mapped to one or more of the plurality of clusters based on the patient feature vector. Mapping each of the patient profiles may include generating a score for each product in the plurality of clusters. The score for each product may represent a likelihood that a patient profile will benefit from the product. The score may range from 0.0 to 1.0. When the score is greater than or equal to 0.50, the product may be likely to benefit the patient. When the score is less than 0.50, the product may be unlikely to benefit the patient.

[0010] In various embodiments, a computer program product for ranking plant-based products is provided, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method. A plurality of plant- based products are read from a datastore. Each plant-based product is characterized by a product feature vector comprising a prevalence of a plurality of cannabinoids, terpenes, and other active ingredients. The feature vectors are clustered into a plurality of clusters. Each cluster is labeled with a disease or wellness indication. The plant-based products are ranked for a selected disease or wellness indication based on the consistency of each formulation. The clustering may include at least one of: k-means clustering, hierarchical agglomerative clustering, and DBSCAN. The ranking may include determining a variability of the formulation for each product over a predetermined time period. The ranking may include determining a variability of the formulation for each product over a predetermined number of batches. The predetermined number of batches may be about two to about 1000. The predetermined number of batches is about two to about 100. The method of claim 4, wherein the predetermined number of batches may be about two to about 10. The predetermined number of batches may be about six. Labeling each cluster may be performed via unsupervised clustering. Labeling each cluster may be performed via supervised clustering. A plurality of patient profiles, each patient profile being characterized by a patient feature vector comprising a patient sex, a patient age, and one or more disease or wellness conditions may be read. Each of the patient profiles may be mapped to one or more of the plurality of clusters based on the patient feature vector. Mapping each of the patient profiles may include generating a score for each product in the plurality of clusters. The score for each product may represent a likelihood that a patient profile will benefit from the product. The score may range from 0.0 to 1.0. When the score is greater than or equal to 0.50, the product may be likely to benefit the patient. When the score is less than 0.50, the product may be unlikely to benefit the patient.

Systems, methods, and computer program products are provided for analyzing and providing recommendations of treatment protocols using artificial intelligence.

[0011] In various embodiments, a method is provided. A plurality of treatment protocols are read from a datastore. Each treatment protocol is characterized by a treatment protocol feature vector comprising information related to a plurality of cannabis products, nutritional supplements, diet recommendations, and exercise recommendations. The feature vectors are clustered into a plurality of clusters. Each cluster is labeled with a disease or wellness indication. The treatment protocols are ranked for a selected disease or wellness indication. The clustering may include at least one of: k-means clustering, hierarchical agglomerative clustering, and DBSCAN. Labeling each cluster may be performed via unsupervised clustering. Labeling each cluster may be performed via supervised clustering. A plurality of patient profiles, each patient profile being characterized by a patient feature vector comprising a patient sex, a patient age, and one or more disease or wellness conditions may be read. Each of the patient profiles may be mapped to one or more of the plurality of clusters based on the patient feature vector. Mapping each of the patient profiles may include generating a score for each treatment protocol in the plurality of clusters. The score for each treatment protocol may represent a likelihood that a patient profile will benefit from the treatment protocol. The score may range from 0.0 to 1.0. When the score is greater than or equal to 0.50, the treatment protocol may be likely to benefit the patient. When the score is less than 0.50, the treatment protocol may be unlikely to benefit the patient.

[0012] In various embodiments, a system is provided that includes a patient profile datastore, a treatment protocol datastore, and a computing node comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor of the computing node to cause the processor to perform a method. A plurality of treatment protocols are read from a datastore. Each treatment protocol is characterized by a treatment protocol feature vector comprising information related to a plurality of cannabis products, nutritional supplements, diet recommendations, and exercise recommendations. The feature vectors are clustered into a plurality of clusters. Each cluster is labeled with a disease or wellness indication. The treatment protocols are ranked for a selected disease or wellness indication. The clustering may include at least one of: k-means clustering, hierarchical agglomerative clustering, and DBSCAN. Labeling each cluster may be performed via unsupervised clustering. Labeling each cluster may be performed via supervised clustering. A plurality of patient profiles, each patient profile being characterized by a patient feature vector comprising a patient sex, a patient age, and one or more disease or wellness conditions may be read. Each of the patient profiles may be mapped to one or more of the plurality of clusters based on the patient feature vector. Mapping each of the patient profiles may include generating a score for each treatment protocol in the plurality of clusters. The score for each treatment protocol may represent a likelihood that a patient profile will benefit from the treatment protocol. The score may range from 0.0 to 1.0. When the score is greater than or equal to 0.50, the treatment protocol may be likely to benefit the patient. When the score is less than 0.50, the treatment protocol may be unlikely to benefit the patient.

[0013] In various embodiments, a computer program product for ranking treatment protocols is provided, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method. A plurality of treatment protocols are read from a datastore. Each treatment protocol is characterized by a treatment protocol feature vector comprising information related to a plurality of cannabis products, nutritional supplements, diet recommendations, and exercise recommendations. The feature vectors are clustered into a plurality of clusters. Each cluster is labeled with a disease or wellness indication. The treatment protocols are ranked for a selected disease or wellness indication. The clustering may include at least one of: k-means clustering, hierarchical agglomerative clustering, and DBSCAN. Labeling each cluster may be performed via unsupervised clustering. Labeling each cluster may be performed via supervised clustering. A plurality of patient profiles, each patient profile being characterized by a patient feature vector comprising a patient sex, a patient age, and one or more disease or wellness conditions may be read. Each of the patient profiles may be mapped to one or more of the plurality of clusters based on the patient feature vector. Mapping each of the patient profiles may include generating a score for each treatment protocol in the plurality of clusters. The score for each treatment protocol may represent a likelihood that a patient profile will benefit from the treatment protocol. The score may range from 0.0 to 1.0. When the score is greater than or equal to 0.50, the treatment protocol may be likely to benefit the patient. When the score is less than 0.50, the treatment protocol may be unlikely to benefit the patient.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS [0014] Fig. 1 illustrates a flow diagram of a system for providing cannabis recommendations according to embodiments of the present disclosure.

[0015] Figs. 2A-2B illustrate exemplary patient vectors and cannabis product recommendations according to embodiments of the present disclosure.

[0016] Fig. 3 illustrates a flow diagram of a system for providing cannabis product recommendations according to embodiments of the present disclosure.

[0017] Fig. 4 illustrates a flow diagram of a product platform for providing cannabis product recommendations according to embodiments of the present disclosure.

[0018] Fig. 5 illustrates an exemplary cluster analysis of cannabis products according to embodiments of the present disclosure.

[0019] Fig. 6 illustrates a flow diagram of classification of a user and recommendation of one or more cannabis products according to embodiments of the present disclosure.

[0020] Fig. 7 illustrates a flow diagram of a system for providing cannabis product COA data collection, clustering, and scoring according to embodiments of the present disclosure. [0021] Fig. 8 depicts an exemplary computing node according to embodiments of the present invention. DETAILED DESCRIPTION

[0022] The present disclosure relates to systems, methods, and computer program products for analyzing a database of cannabis products and providing recommendations of the most- suitable cannabis products from the database to a user. In various embodiments, one or more feature vectors may be determined from each cannabis product in the database. In various embodiments, the feature vectors may be clustered to determine similar groups of cannabis products associated with the feature vectors. In various embodiments, the feature vectors may include data representing the cannabinoids contained within the cannabis product. In various embodiments, the feature vectors may include data representing other active ingredients within the cannabis product. In various embodiments, the feature vectors may include data representing the terpenes contained within the cannabis product. In various embodiments, the system may analyze cannabis product data ( e.g ., of a single cannabis product) across one or more product databases to determine a quality metric for a particular product. For example, the system may determine a quality score where a higher score represents less variability in the advertised chemical (e.g., cannabinoid, terpene, etc.) composition and a lower score represents higher variability in the advertised chemical composition. In various embodiments, the system may associate each clustered group of feature vectors with a particular disease indication and/or wellness issue (e.g, sleep, anxiety, aches and pains, fatigue, intimacy, etc.). In various embodiments, the system may provide a recommendation of one or more products based on a patient profile (e.g, including a condition, disease, symptom, etc.). In various embodiments, the recommendation may include a ranked list of products from the relevant group(s) ranked based on the consistency metric and/or the overall score, as described below.

[0023] In various embodiments, the disclosed systems may provide healthcare professionals (e.g, doctors and other users, such as patients) with information that they need to confidently recommend cannabis products ( e.g ., products containing any suitable amount of a cannabinoid, such as CBD, CBDV, CBN, Delta-9 THC, Delta-8 THC, THCV, CBG, etc.) to their patients. In various embodiments, the cannabis products may be medical/pharmaceutical products (e.g., Epidiolex). In various embodiments, the cannabis products may be recreational products (e.g, tinctures, oils, waxes, flower, edibles, etc.). In various embodiments, a user may enter a search query and receive a list of well-defined and clearly described cannabis products to recommend to a patient. In various embodiments, the recommended products may be ranked via a score that may be determined from at least the chemical composition of the product. In various embodiments, the score may be determined across many (e.g, all) batches. In various embodiments, the score may be based on only those products that are legally available in the patient’s jurisdiction. In various embodiments, the products that are legally available in a patient’s jurisdiction may be filtered from results that are not legally available in the patient’s jurisdiction. In various embodiments, the system allows users to instantly compare selected products. In various embodiments, the system allows users to share a list of one or more appropriate products with their patient. In various embodiments, the system allows users to track products that patients purchase. In various embodiments, the system allows users (e.g, patients) to be notified if the products that they have recommended have significantly changed.

[0024] In various embodiments, a method is provided for matching patients with medically- appropriate cannabis products. In various embodiments, data is collected regarding the production and laboratory test results of products over time. In various embodiments, data is collected regarding a patient’s medical diagnoses and products previously recommended to them by healthcare professionals. In various embodiments, one or more machine learning models may be used to group similar products based on aggregated laboratory test results over a period of time for each product. In various embodiments, heuristic and/or probabilistic methods may be used to assign quality scores to each product based on its production data and aggregated laboratory test results. In various embodiments, one or more machine learning models may be used to classify patients into cohorts of patients with similar medical diagnoses or health and wellness goals. In various embodiments, one or more machine learning models may be used to match patient cohorts to product clusters appropriate for a patient’s condition.

[0025] Fig. 1 illustrates a flow diagram 100 of a system for providing cannabis recommendations. In various embodiments, a user may search for products by entering one or more patient health conditions into the system. For example, health conditions can range from formal medical diagnoses ( e.g ., ICD-10-CM codes) to colloquial descriptions (e.g, “joint pain”, “aches,” or “trouble sleeping”). In various embodiments, the system may return a list of products ranked by suitability for a patient with those health conditions. In various embodiments, a matching engine determines the suitability and/or quality of a product for a patient having a set of health conditions. In various embodiments, the matching engine may determine the likelihood that a patient with a set of health conditions will benefit from using a product. In various embodiments, a training set may be generated from patient history records (e.g, including diagnosis codes and/or cannabis products purchased). In various embodiments, doctor and other users search queries, recommendations to patients, and patient purchases may be recorded. In various embodiments, record labels may be reviewed and used to re-train the machine learning algorithm(s). For example, if a patient keeps using a product when their conditions don't change, the product may be labeled as likely providing positive benefits for a given condition or conditions that the patient has. In various embodiments, patient self-reported data may be recorded and used to train/re-train the machine learning algorithm(s). [0026] In various embodiments, if the molecular composition of a product is not consistent ( e.g ., if a product sometimes contains 25mg of CBD and other times contains 2mg of CBD), the therapeutic effect and therefore its benefit to the patient may not be consistent.

In various embodiments, the ranking is performed to “reward” products that are very consistent, even in ingredients that are not listed on the label, by listing them higher in the search results (i.e., providing a higher score to that product).

[0027] In various embodiments, each patient in a plurality of patients may be assigned a vector of conditions which can range from medical diagnoses (e.g., ICD-10-CM diagnosis codes) to broader wellness conditions (e.g, anxiety, pain, etc.). In various embodiments, each vector of patient conditions may be mapped to one or more cannabis products using the molecular profile of the cannabis product. In various embodiments, the molecular profile indicates suitability and/or other characteristics indicative of quality of the products as features. In various embodiments, the molecular profile of each product is determined by aggregating each analyte detected in the lab test results for the product collected over numerous production batches of the product (e.g, mean delta-9-THC over the last 6 batches of the product, standard deviation of delta-9 THC levels over the last 6 batches of the product, etc.). In various embodiments, other characteristics of the product can include manufacturing process (e.g, CO2, ethanol extraction, etc.), form (e.g, tincture, vape oil, flower, edible, etc.), and/or inactive ingredients (e.g, sugar, MCT oil, etc.).

[0028] In various embodiments, mapping a patient vector to products may include generating a training set of patient vectors to one or more individual cannabis products. In various embodiments, mapping a patient vector to one or more cannabis products may include applying a learning algorithm (e.g, supervised or unsupervised). For example, the learning algorithm may include supervised classification. In various embodiments, the training set of patient vectors may be manually labeled. In various embodiments, the training set of patient vectors may be labeled automatically. In various embodiments, when labeling the records, a human labeler might perform product classification based on the product’s major active ingredients as listed on the label ( e.g ., a 1:1 CBD:THC product). In various embodiments, the presence of other ingredients that often appear in test results and may influence a product’s suitability for a specific condition may be disregarded, even if they are not the label (e.g., CBG, CBN, etc.) In various embodiments, the system may ingest information regarding a product automatically. For example, when a new specification sheet (e.g, a laboratory analysis sheet) is distributed for a new batch of a particular cannabis product, the system may process the specification sheet using known methods, such as, for example, optical character recognition (OCR). In various embodiments, new/unique products that have non-standard or different molecular profiles (e.g, cannabinoids, terpenes, proprietary herbal formulation, etc.) may need to be manually labeled in order to be recognized as suitable for a patient vector and ranked appropriately in search results.

[0029] In various embodiments, molecular profiles of cannabis products are generated. In various embodiments, the molecular profiles identify products that have similar values of active ingredients measured as an average of each analyte over a predetermined number of test results from production batches of finished goods. In various embodiments, this approach may consider all of a product’s actual ingredients, regardless of what is on the label.

[0030] In various embodiments, molecular profiles may correspond to product clusters. In various embodiments, supervised clustering may be used to group product profiles. In various embodiments, supervised clustering may be applied to a labeled training set of products and a predetermined (e.g, manually-labeled) set of product clusters. In various embodiments, unlike directly mapping patients to products, as product molecular profiles change over time, the products can move from one cluster to another. In various embodiments, the patient vector to product cluster mappings may be more stable using this method. In various embodiments, when a new/unique product is introduced having a non standard or different product formulation, a new cluster may be added manually.

[0031] In various embodiments, unsupervised clustering may be applied to feature vectors representing product molecular profiles. In various embodiments, unsupervised clustering may be more flexible in adapting to the introduction of new/unique products with unique molecular profiles (when compared to more traditional commercially-available products). For example, some newer products blend cannabinoids, terpenes, and melatonin (a common nutritional supplement to help with sleep). If the cluster for this type of product does not already exist, this product may be placed in a new cluster using unsupervised clustering. [0032] Figs. 2A-2B illustrate exemplary patient vectors and cannabis product recommendations. In particular, Figs. 2A-2B show two examples of patient profiles with different conditions in a patient feature vector, and the patient feature vector is mapped to the same set of products. In this example, the mapping between the two patients includes different scores for each product because the probability the particular patient will benefit from the product is different due to the differences between the patient feature vectors. [0033] Fig. 2A shows a patient having (female, 59, insomnia, dysautonomia, anxiety} as the patient feature vector. This patient feature vector is mapped to a first product cluster having score of 0.92, a second product cluster having a score of 0.95, a third product cluster having a score of 0.80, and a fourth product cluster having a score of 0.21.

[0034] Fig. 2B shows a patient having (male, 54, insomnia} as the patient feature vector. This patient feature vector is mapped to a first product cluster having a score of 0.95, a second product cluster having a score of 0.93, a third product cluster having a score of 0.92, and a fourth product cluster having a score of 0.21. [0035] In various embodiments, a score of greater than or equal to 0.50 may be indicative of an effective product. In various embodiments, a score of greater than or equal to 0.60 may be indicative of an effective product. In various embodiments, a score of greater than or equal to 0.70 may be indicative of an effective product. In various embodiments, a score of greater than or equal to 0.80 may be indicative of an effective product. In various embodiments, a score of greater than or equal to 0.90 may be indicative of an effective product. In various embodiments, a score of greater than or equal to 0.95 may be indicative of an effective product. In various embodiments, a predetermined threshold for an effective product may be within the range of 0.50 and 1.00.

[0036] In various embodiments, a score of less than 0.50 may be indicative of an ineffective product. In various embodiments, a score of less than or equal to 0.40 may be indicative of an ineffective product. In various embodiments, a score of less than or equal to 0.30 may be indicative of an ineffective product. In various embodiments, a score of less than or equal to 0.20 may be indicative of an ineffective product. In various embodiments, a score of less than or equal to 0.10 may be indicative of an ineffective product. In various embodiments, a score of less than or equal to 0.05 may be indicative of an ineffective product. In various embodiments, a predetermined threshold for an ineffective product may be within the range of 0.00 and 0.50.

[0037] As shown in Figs. 2A-2B, there are three clusters of products that may be effective for patients with insomnia and one that may be ineffective ( e.g ., too high THC close to bed may disrupt the sleep cycle). Further, women over the age of 40 may be more sensitive to THC, so the low THC clusters scored higher for the female patient than for the male patient.

[0038] Fig. 3 illustrates a flow diagram of a system 300 for providing cannabis product recommendations. In various embodiments, the system 300 includes a data conductor configured to manage dependent workflows so that data can be independently collected from different systems ( e.g ., seed-to-sale, manufacturing, and e-commerce), and each workflow can run once it has received sufficient data, handling errors, monitoring progress, and troubleshooting issues.

[0039] In various embodiments, the system may include a product platform. In various embodiments, the product platform includes the product data collector, the product scoring engine, the product clustering engine, and the product data. In various embodiments, the product data collector may be in communication with one or more databases. In various embodiments, the one or more databases may include one or more external, third-party databases. In various embodiments, the one or more databases may include one or more internal databases. In various embodiments, the product data collector may periodically pull new data from the one or more databases, for example, through a fetch. In various embodiments, the one or more databases may include production data, laboratory test results, and/or lab information. In various embodiments, the product data collector may access the one or more databases via any suitable communications protocol, such as, for example, a third-party API.

[0040] In various embodiments, manufacturers may provide product test result data. In various embodiments, manufacturers may provide product test data by manually uploading PDF files or by using one or more APIs to automatically ingest test results (e.g., as PDF files or structured data). For many licensed cannabis operators, states operate a tracking system to maintain the chain-of-custody of products "from seed to sale." In various embodiments, these systems provide APIs to which the manufacturer may choose to grant the disclosed system access so that test result data may be ingested automatically. In various embodiments, CBD product manufacturers may not be obligated to report lab test results to the state, so direct integration with a larger number of Laboratory Management Systems (LMS) may be achieved via API integration. In various embodiments, to match lab test result data to products, seed-to-sale systems may require manufacturers to follow certain naming and sampling procedures; and so long as those procedures are followed, the test results are automatically associated with the correct product when the system queries them using an API. In various embodiments, CBD manufacturers may be required to follow similar naming/sampling procedures, as well. In various embodiments, when manually uploading, the user ( e.g ., someone who works for the manufacturer) may select the product to associate with the PDF file that they are about to upload.

[0041] In various embodiments, the product data collector may collect raw batch-level data about finished products. In various embodiments, the product data collector may provide for automated ingestion from product manufacturing, laboratory information, and/or point- of-sale/e-commerce systems. In various embodiments, the product data collector may manually enter manufacturing facility and laboratory certification status through Admin portal (or producer portal). In various embodiments, the product data collector may provide an option to manually upload/enter data through the producer portal. In various embodiments, the data may include at least one of: Manufacturing facility name and GMP certification status, product merchandising information (e.g. image, description, label claims, price, etc.), batch size, testing laboratory and ISO certification status, and/or Certificate of Analysis produced by the testing laboratory for the batch. In various embodiments, the product data collector may convert the COA from document (e.g. PDF) to structured data (e.g. JSON).

[0042] In various embodiments, the product data collector may validate that enough required data has been collected to produce a score. In various embodiments, the product data collector may, if any required data is not present, hold processing for the batch until the required data is provided. For example, if the COA is available but the system does not yet have information about the manufacturing facility, the information about the testing laboratory, or the label claims of the product, the COA may not be able to be fully processed.

[0043] In various embodiments, the product data collector may normalize the raw batch- level data. Because ingredients listed on product labels and ingredients measured by labs and listed on COAs may use different units of measurement, the product data collector may convert units so that the numbers are able to be easily compared. In various embodiments, the product data collector may convert listed units to standard units of measurement, which may vary by analyte. For example, cannabinoids may include LOQ %, a result % along with mg/g, mcg/g, mg/ml, mcg/ml, and a per unit mg per commercially available package. In another example, Terpenes may include LOQ % and a result: % along with mg/g or mcg/g. In another example, other active ingredients may be labeled in a variety of ways depending on the active ingredient (examples include Melatonin, Valerian Root, etc.). In another example, residual solvents, pesticides, microbials, mycotoxins, and heavy metals may also include a LOQ % and a result as a percent or other rate ( e.g ., mcg/ml).

[0044] In various embodiments, examples of Seed-to-Sale Adapters include METRO (16 states), Biotrack (8 states), Leaf Data Systems (3 states). In various embodiments, examples of Manufacturing System Adapters include MJ Freeway, Viridian Sciences, GrowFlow, Canix, and Biotrack. In various embodiments, examples of PO S/E-commerce System Adapters include WordPress/WooCommerce, Magento, Shopify (CBD), and B2B E-commerce Systems Adapters include Leaflink.

[0045] Fig. 4 illustrates a flow diagram of a product platform 400 for providing cannabis product recommendations. As shown in Fig. 4, the product platform 400 includes feedback loops between the system, producers, and the dispensary. In various embodiments, the product platform 400 is responsible for ingesting product-related data from producers and retailers (both CBD retailers and licensed cannabis dispensaries), analyzing the quality of products, assigning products to groupings of similar products, and managing all of this product data.

[0046] In various embodiments, a product database receives data from a seed-to-sale adapter. In various embodiments, the seed-to-sale adapter receives data from a state seed- to-sale system. In various embodiments, the state seed-to-sale system may receive certificates of authenticity (COA) corresponding to one or more products from one or more analytical labs. In various embodiments, the CO As may be received from a lab information system. In various embodiments, the analytical lab may receive samples from a production facility to thereby test the sample for a product molecular profile. Two or more product molecular profiles for a same product may be aggregated in the product database with date time stamps and batch numbers to identify the batch and when the molecular analysis was performed.

[0047] In various embodiments, the product platform includes a manufacturing system adapter. In various embodiments, manufacturing systems may implement Standard Operating Procedures and workflow, from extraction to assembly of finished goods, raw materials management, labor & materials cost management, etc. Specifically, all production batches for finished goods may be tracked. In various embodiments, the disclosed systems may collect data about these batches that isn't in the COA. For example, the system may collect data on size of the batch, how many times the batch was sampled, and/or what kind of processing was performed on the batch ( e.g ., CO2 or ethanol extraction). In various embodiments, manufacturing system adapters may integrate with manufacturing system APIs to thereby expose batch-level data that may or may not be listed in a COA. In various embodiments, the manufacturing system adapter may receive webhook calls from the manufacturing system. In various embodiments, the manufacturing system adapter may poll manufacturing system APIs to collect this data.

[0048] In various embodiments, the product platform 400 includes a point-of- sale/ecommerce system adapter. In various embodiments, the POS/e-commerce system adapter may track post-click activities, including conversion of product recommendations -> clicks -> purchases/pre-orders. In various embodiments, the POS/e- commerce system adapter may include an API and a tracking pixel tag (common in online advertising, affiliate marketing, and web analytics systems) that can be placed on any website that is expected to receive traffic from patient referrals. In various embodiments, websites may include CBD e-commerce sites or Cannabis dispensary websites with pre order capabilities. In various embodiments, the tracking tag may capture events from the web pages on which it is embedded, including navigation from page to page, and actions like add-to-cart and checkout, sending each event to the API. In various embodiments, the API may log the events it receives from the tracking tag. In various embodiments, the API may poll the POS/e-commerce system's API (or alternatively ingest a data feed generated by the POS/e-commerce system) so that the system can maintain updated product merchandising information ( e.g ., images, descriptions, prices, etc.) and inventory counts.

In various embodiments, the POS/ecommerce system adapter may be in communication with one or more dispensary and/or producer websites.

[0049] In various embodiments, the product platform 400 may include a permalink service. In various embodiments, a permalink may be a unique URL for a specific product. In various embodiments, the permalink may be added to any website or shared directly. In various embodiments, when a user navigates to a permalink for a product, the permalink service fetches public product information and formats it so that so that it can be displayed. In various embodiments, public product information may include the product's variance to label ingredients, the product’s overall quality score, a link to the latest CO A pdf, and/or links to e-commerce/dispensary sites where the product can be purchased.

[0050] In various embodiments, the product platform 400 may include an admin portal. In various embodiments, a user may access the product database via the admin portal to view/edit product data, set up data feeds into the database and/or manage the connections. [0051] In various embodiments, the product platform 400 may include a product scoring engine (alternatively referred to as a COA scoring engine). In various embodiments, the product scoring engine may be configured to receive product COA data from the product database and process the product COA data to thereby associate a score with the particular product. In various embodiments, the score may be associated with a particular batch for which the COA covers. In various embodiments, the product scoring engine may evaluate a product’s COA data based on data from other similar commercially-available products.

In various embodiments, the product scoring engine may score a COA based on a predetermined industry standard. In various embodiments, the COA scoring engine may determine if relevant molecules were analyzed by the analytical lab. For example, if one or more molecules that standard analyses would identify were not identified, then the COA would be scored lower than a COA that identified all relevant molecules from a standard molecular analysis.

[0052] In various embodiments, the product scoring engine determines a quality score of a product based on the information in the product's COAs, information about how the product was manufactured, and/or information about how the product was tested. In various embodiments, a good product may start with a product that has a reasonably consistent molecular profile from batch to batch ( e.g ., less than 1 standard deviation for any analyte reported on the respective COAs for the product, regardless of what ingredients are listed on the label). In various embodiments, rules may be applied to determine a score of the product. For example, if the lab that produced the CO As wasn't ISO certified, that may count against the product and lower the score by a predetermined amount. In another example, if the lab didn't test at least the common cannabinoids, that may count against the product and lower the score by a predetermined amount (similar, less, or more of a negative value). In another example, if the manufacturing facility is not GMP certified, that may count against the product and lower the score by a predetermined amount (similar, less, or more of a negative value). In various embodiments, the seed-to-sale adapter may extract structured data such as, for example, results, batch number, report date from the COA PDF files, etc. In various embodiments, batches in which harmful ingredients are detected may be handled as a special case. In practice, these batches of products should never make it to market as finished goods - they either get "fixed" or destroyed. In various embodiments, the seed-to-sale system may handle this workflow.

[0053] In various embodiments, the product platform 400 may include a product clustering engine. In various embodiments, the product clustering engine may cluster similar COAs into groups. As described above, the clustering engine may apply supervised learning or unsupervised learning.

[0054] In various embodiments, the system may include a product scoring engine. In various embodiments, the product scoring engine may calculate an updated product score for the product, based on normalized batch data. In various embodiments, a combination of heuristic and probabilistic methods may be used to evaluate characteristics of the manufacturing facility that produced the batch, the laboratory that tested the batch, the sensitivity of the tests performed by the laboratory (LOQs), and/or the results of the tests included in the COA and determine the likelihood that the next batch will be consistent with the current batch. In various embodiments, information about the manufacturing facility may be used in determining a score. For example, the product scoring engine may determine if the facility in which the batch was manufactured was Good Manufacturing Practices (cGMP) certified at the time the batch was manufactured. In this example, the score may be positively influenced if GMP certified or strongly negative if not GMP certified or if certification status is not known. In various embodiments, information about the Laboratory may be used in determining a score. For example, the product scoring engine may determine if the lab that produced the COA was ISO/IEC 17025:2017 certified at the time the batch was tested. In this example, the score may be positively influenced if ISO certified and strongly negative if not ISO certified or if certification status is not known. In another example, the product scoring engine may determine if the lab that produced the COA also has the following certifications, which all improve the lab’s credibility if present but are not considered negative if not present: Good Manufacturing Practices (cGMP), Good Laboratory Practice (GLP), 4329.03: Biological Field of Testing, and/or 4329.02: Chemical Field of Testing.

[0055] In various embodiments, the product scoring engine may determine quality management of the manufacturer/producer. In various embodiments, the product scoring engine may determine whether batch sampling meets standards ( e.g ., frequency, randomness). In various embodiments, the product scoring engine may determine the Cannabinoids, Terpenes, and/or Other Active Ingredients. For example, a score may be higher if the LOQ meets standards and/or the variance of the ingredients listed on the product label and the measured results on the COA is <10% (e.g., in accordance with the United States Pharmacopeia). In another example, the score may be higher (more positive) for testing other ingredients not listed on the label (e.g, minor cannabinoids, terpenes, other active ingredients, etc.), where LOQ meets standard and results within 1 standard deviation. If no label claims for an ingredient, the score may not be negatively affected, but the score may indicate to the user that particular ingredients are present but may vary. In another example, a score may be negatively affected if label claims change (indicating a change in formulation), LOQ is above standard, or the variance to label claims is > 10%. In various embodiments, the degree of negative impact to the score may depend on the variance. For example, a change in formulation or significant drop in COA may prompt a notification to the producer, doctor, patient, and or other users.

[0056] In various embodiments, the product scoring engine may determine harmful ingredients were detected. In various embodiments, the product scoring engine may identify a list of required tests across all categories of harmful ingredients: Residual Solvents, Mycotoxins, Metals, Pesticides, Microbials. For example, the score may be higher if, for a required test, LOQ meets standard and the result is Not Detected (ND). In another example, the score may be higher for optional tests where LOQ meets standard and result is Not Detected (ND). In another example, the score may be strongly lower if a required test is not included, LOQ is above standard, and/or if ingredient is detected. In another example, the score may not be affected by optional test results as these results cannot make up for the presence of harmful ingredients. In various embodiments, presence of harmful ingredients may disqualify the product from any recommendation and prompt a notification to the producer, doctor, patient, and or other users.

[0057] In various embodiments, the product scoring engine may take into account consistency of the product by, for example, determining the probability that future batches will be consistent with previous batches. In various embodiments, the product scoring engine may determine cannabinoid presence.

[0058] Examples of cannabinoids include: CBC, CBD, CBDa, CBDV, CBG, CBGa, CBN, A8-THC, A9-THC, THCa, THCV.

[0059] Examples of terpenes include: Borneol, Camphene, Camphor, Caryophyllene Oxide, Cedrol, cis-Nerolidol, cis-Ocimene, Endo-Fenchyl Alcohol, Eucalyptol, Farnesene, Fenchone, Geraniol, Geranyl Acetate, Guaiol, Hexahydro Thymol, Isoborneol, Isopul egol, Limonene, Linalool, Nerol, Nerolidol 1, Nerolidol 2, Ocimene 1, Ocimene 2, p-Cymene, Pulegone, Sabinene, Sabinene Hydrate, Terpinolene, trans-Nerolidol, trans-Ocimene, Valencene, y-Terpinene, y-Terpineol, oc-Bisabolol, oc-Cedrene, oc-Humulene, a- Phellandrene, oc-Pinene, oc-Terpinene, oc-Terpineol, b-Caryophyllene, b-Myrcene, b- Ocimene, b-Pinene, 5-3-Carene.

[0060] Examples of Residual Solvents include: Acetone, Benzene, Butane, Ethanol, Ethyl Acetate, Heptane, Isopropanol, Methanol, n-Hexane, Pentane, Propane, Toluene, and Xylenes.

[0061] Examples of Microbials include: Aerobic Bacteria, Aspergillus niger, Aspergillus flavus, Aspergillus fumigatus, Aspergillus terreus, Bile-Tolerant Gram-Negative Bacteria, Coliforms, E. Cob, Salmonella, STEC, Yeast & Mold.

[0062] Examples of heavy metals include: Arsenic, Cadmium, Lead, and Mercury.

[0063] Examples of Pesticides include: Abamectin, Aldicarb, Azoxystrobin, Bifenazate, Cyfluthrin, Daminozide, Diazinon, Dichlorvos, Dimethoate, Etoxazole, Flonicamid, Fludioxonil, Imazilil, Imidacloprid, Malathion, Myclobutanil, Paclobutrazol, Permethrins, Piperonyl Butoxide, Pyrethrin 1, Spinosyn A, Spinosyn D, Spiromesifen, Spirotetramat, Tebuconazole, Thiamethoxam, Trifloxystrobin.

[0064] Examples of My cotoxins include: Aflatoxin Bl, Aflatoxin B2, Aflatoxin Gl, Aflatoxin G2, Ochratoxin A.

[0065] In various embodiments, products may be scored along five dimensions which include: variance, which may be an average difference between ingredient label claims and the amount of corresponding ingredients detected in product test results; consistency, which may be an average standard deviation of ingredients detected in product test results; purity, which may be an absence of harmful ingredients detected in product test results; manufacturing, which may include certifications of manufacturing facilities as described herein; and/or laboratory, which may include certifications of laboratory facilities as described herein. A weighted average of the five dimension scores of a product may be computed to produce an overall score for the product. The current formula can assign an equal weight to each dimension. The weights of the dimensions may change.

[0066] In various embodiments, Scores for each dimension, as well as the overall score, may include a range, such as a range from 0 to 99. Scores may be computed based on test results from a number of the most recent batches of products, such as, for example, the ten most recent batches of products. Products that have fewer test results than for this number of batches, such as ten batches, may not have a sufficient number of test results to compute a variance, consistency, and/or purity score. When a product has fewer than this number of test results from which to compute a score for any dimension, such as fewer than ten test results, it may be assigned a score indicating this result, such as a score of -1, for that dimension. The decision to require, the particular number of batches, such as ten batches, may be based on a USP convention and may be changed.

[0067] In various embodiments, to compute the variance dimension, the average of the label ingredients’ average variance to label claim as a percentage may be scaled to a range, such as a range of 0 to 99. To compute the consistency score, the average of the standard deviations of the product ingredients may be scaled to a range, such as a range of 0 to 99. [0068] In various embodiments, the scoring may indicate other results. For example, if a value was tested but couldn't be parsed by the systems described herein, it may be assigned a value indicating this result, such as a value of -1. These values may be excluded from any computations. As another example, if an ingredient is not measured in all of the aforementioned number of most recent batches and/or the number of test results, such as in all ten test results, the test may have changed. This ingredient may be ignored until it is measured in all of the aforementioned number of test results. As yet another example, if a value was tested but not detected, it may be set to a nominal value, such as 0.0. If all of the values for an ingredient are set to this value, such as 0.0, the ingredient may not be not present by design, and this ingredient may be ignored. As yet another example, if some of the values for an ingredient are set to a nominal value, such as 0.0, the ingredient may either have been recently added to or removed from the formulation, or the ingredient may have been present in distillate that changed between batches or is not being consistently produced. In both of these cases the ingredient should be included in all computations as a negative reflection in product quality. In such instances, patients and practitioners should be aware that a formulation may be changing.

[0069] Fig. 5 illustrates an exemplary cluster analysis 500 of cannabis products. In various embodiments, the system includes a product clustering engine. In various embodiments, the product clustering engine may assign products to one or more clusters based on one or more values. In various embodiments, the product clustering engine may assign products based on the mean of each active ingredient test result ( e.g ., cannabinoids, terpenes, melatonin, herbs, vitamins, etc.) over a predetermined set of recent laboratory tests (e.g., last 6 months) for the product. In various embodiments, the product clustering engine may use a combination of unsupervised machine learning using techniques, such as, for example, K-means clustering, Hierarchical Agglomerative clustering, orDBSCAN, to cluster products.

[0070] In various embodiments, the product clustering engine may label product clusters with zero or more ICD 10 diagnosis codes that indicate the serious medical and clinically associated conditions for which the cluster of products may be effective. In various embodiments, the product cluster labels may include wellness issue (e.g, sleep, anxiety, aches and pains, fatigue, intimacy, etc.). For products that are frequently used, for which efficacy data can be collected, labeling of product clusters may be improved over time. In various embodiments, certain considerations may be taken into account. For example, lab test results for a given product that exceed a predetermined variance may move the product out of a cluster. This can happen due to manufacturing inconsistencies as well as formulation (label) changes. In either case, the product may no longer be effective for the same uses and may be removed from the cluster.

In another example, certain unique formulations might not be suitable to include in a cluster with other products ( e.g ., CBD + a unique herbal blend). In various embodiments, clusters may have dissimilar sizes and densities. In various embodiments, new products for which no prior test results exist may be included in clusters with chemically similar products, but lack of historical data might impact score. In various embodiments, the number of clusters may be variable. For example, a new product with a highly unique formulation might be introduced, creating a new cluster consisting of only that single product.

[0071] In various embodiments, the system may include a product database. In various embodiments, the product database may store product merchandising information, production data, and/or lab test result data. In various embodiments, product information may be manually entered or uploaded by spreadsheet and might be limited in size. In various embodiments, production and lab test result data may be entered automatically and might grow to be very substantial in size. In various embodiments, once ingested and processed, production and lab test result data may be read by the system.

[0072] Fig. 6 illustrates a flow diagram 600 of classification of a user and recommendation of one or more cannabis products. In various embodiments, the system includes a search platform. In various embodiments, the search platform may include a search engine, a patient data database, a patient data labeler, and a feature learning, model training & validation module. In various embodiments, the search engine may be in communication with external patient data. For example, the search engine may be in communication with an electronic medical record (EMR) database or similar database of patient information. [0073] In various embodiments, the search engine may receive an input as a query string.

In various embodiments, the search engine may accept any known and suitable input as a query string. In various embodiments, the search engine may resolve the inputs to a set of ICD-10-CM diagnosis codes. In various embodiments, the search engine may resolve the inputs to a set of wellness issues (e.g., anxiety, sleeplessness, aches and pain, fatigue, intimacy, etc) In various embodiments, the search engine may apply natural language processing (e.g., named entity recognition) to convert input strings into diagnosis codes and/or wellness issues. In various embodiments, the search engine may classify the vector of ICD-10-CM diagnosis codes and/or wellness issues to the ICD-10-CM and/or wellness issue labels on product clusters using one or more supervised classification techniques such as, for example, logistic regression, random forest, and gradient boosted tree models. In various embodiments, the search engine may return products from one or more labeled clusters of products that match the ICD-10-CM diagnosis codes and/or wellness issues provided as inputs to the search. In various embodiments, the search engine may sort the products based on the strength of the product cluster matching and the individual product scores. In various embodiments, the products may be sorted in reverse order starting with the strongest product cluster matches and the highest product scores. In various embodiments, the search engine may determine quality of returned product matches based on user action. For example, when a user saves products on a personal list or recommends products to a specific patient, the product may be presented before other products.

[0074] In various embodiments, the system may store a vector of ICD-10-CM diagnosis codes, wellness issues, and high quality search results. In various embodiments, if products were recommended to a patient, the system may store patient personally identifiable information ( e.g ., name, email address, etc.) in a secure manner as is known in the art. In various embodiments, if a patient purchases products from a recommendation, the system may store a record of patient purchase (e.g., date, retail source, product information, including batch #, if available, to match against the COA for the batch) in a secure manner as is known in the art. In various embodiments, patient data may be stored and/or accessed such that the use of the patient data is fflPAA compliant.

[0075] In various embodiments, the system includes a patient data labeler. In various embodiments, the patient data labeler allows newly collected patient data to be reviewed for accuracy of classification by ICD-10-CM diagnosis codes and/or wellness issues and matching against labeled product clusters. In various embodiments, the patient data labeler allows records to be manually refined as needed.

[0076] In various embodiments, the system includes a model training and validation module. In various embodiments, the model training and validation module allows machine learning models to be re-calibrated and/or improved based on the expanding set of patient and product data that is collected as searches are performed and labeled.

[0077] Fig. 7 illustrates a flow diagram of a system 700 for providing cannabis product COA data collection, clustering, and scoring. In various embodiments, the technical specification of the system may include user authentication and access control. In various embodiments, user authentication and access control may be developed with AWS Cognito. In various embodiments, a user interface may be provided using a web user interface developed with React. In various embodiments, a mobile user interface may be provided and developed in React Native (e.g, for both iOS and Android). In various embodiments, one or more application programming interfaces (APIs) may be provided. In various embodiments, the API may be developed using GraphQL/REST. In various embodiments, the API may be developed with Node and/or serverless hosting ( e.g ., AWS Lambda + API Gateway/AppSync).

[0078] In various embodiments, one or more databases may be provided. In various embodiments, application databases may be provided via AWS DynamoDB. In various embodiments, one or more product databases may be provided via AWS RDS (PostgreSQL or MySQL). In various embodiments, one or more analytical databases may be provided via AWS Redshift and/or AWS Athena.

[0079] In various embodiments, data processing may be performed through batch processing for dependent jobs. In various embodiments, admin UI for managing jobs may be performed via batch processing. In various embodiments, batch processing may be implemented via AWS Lambda, AWS Step Functions, and/or Airflow. In various embodiments, data transformation may be performed via AWS Glue DataBrew, AWS Glue, or dbt. In various embodiments, document parsing (e.g., extracting text and/or numbers for processing) may be performed with DocParser.

[0080] In various embodiments, machine learning may be implemented via AWS SageMaker. In some embodiments, the learning system is a trained classifier. In some embodiments, the trained classifier is a random decision forest. However, it will be appreciated that a variety of other classifiers are suitable for use according to the present disclosure, including linear classifiers, support vector machines (SVM), or neural networks such as recurrent neural networks (RNN).

[0081] In various embodiments, machine learning may include a neural network. In various embodiments, the artificial neural network comprises a feedforward neural network, a radial basis function network, a self-organizing map, learning vector quantization, a recurrent neural network, a Hopfield network, a Boltzmann machine, an echo state network, long short term memory, a bi-directional recurrent neural network, a hierarchical recurrent neural network, a stochastic neural network, a modular neural network, an associative neural network, a deep neural network, a deep belief network, a convolutional neural networks, a convolutional deep belief network, a large memory storage and retrieval neural network, a deep Boltzmann machine, a deep stacking network, a tensor deep stacking network, a spike and slab restricted Boltzmann machine, a compound hierarchical-deep model, a deep coding network, a multilayer kernel machine, or a deep Q-network.

[0082] In various embodiments, the artificial neural network comprises a processor, a field- programmable gate array, an adaptive neuromorphic processor, a memory network, a long short-term memory, or a memresistor. Although what is described herein provides doctors as an example user of various systems and techniques in various embodiments described herein, other users, such as patients, may be able to receive targeted recommendations.

Such recommendations may be provided, for example, after entering targeted information about the user and/or by the patient themselves into the various systems and techniques as input.

[0083] A treatment protocol may include one or more clusters of cannabis products, as defined herein, with dosing recommendations, possibly one or more nutritional supplements with dosing recommendations, one or more diet recommendations, and/or one or more exercise recommendations. In various embodiments, a feature vector may be constructed with information related to each of these elements of a treatment protocol. Although the clustering of products, labeling of product clusters, scoring of products, recommendation of products, and mapping of patient information to products is described herein, these techniques can be performed similarly with treatment protocols in the place of products.

Any instance of product or products, as used herein, may be replaced with treatment protocol or treatment protocols without departing from the scope and spirit of what is described herein. For example, treatment protocols may be ranked based on a quality metric.

[0084] For example, a treatment protocol for treating patients with migraine may include one or more clusters of cannabis products, such as a cluster of CBD dominant products with one capsule to be taken at breakfast and lunch, a cluster of 1 : 1 products with one capsule to be taken at bedtime, and/or a cluster of full-spectrum hemp products with 2ML to be taken at the first sign of migraine. The treatment protocol for treating patients with migraine may further include zero or more nutritional supplements, such as two tablets per day of Pharmagaba, two caps per day of Brain Vitale, one softgel twice per day of CannabOmega , and/or two capsules per day of Magnesium. The treatment protocol for treating patients with migraine may yet further include diet recommendations, such as a recommendation for an anti-inflammatory diet - free from processed foods and sugars, and/or a recommendation for a Paleo 30 day reset The treatment protocol for treating patients with migraine may also include exercise recommendations, such as a recommendation for 30 minutes of exercise per day (e.g. brisk walking, biking, running, or other cardiovascular activity). [0085] As another example, a treatment protocol for treating patients with insomnia may include one or more clusters of cannabis products, such as a cluster of 1:1 products with one capsule to be taken at breakfast and lunch, a cluster of medium THC dominant products with one capsule to be taken at bedtime, and/or a cluster of full-spectrum hemp products with 1ML to be taken at bedtime. The treatment protocol for treating patients with insomnia may further include zero or more nutritional supplements, such as two capsules of Designs for Health Insomnitol per day - 30 to 60 minutes before bedtime, and/or two softgels per day of Designs for Health Annatto-E Synergy . The treatment protocol for treating patients with insomnia may yet further include diet recommendations, such as a recommendation for intermittent fasting, and/or a recommendation for having no caffeine at all. The treatment protocol fortreating patients with insomnia may also include exercise recommendations, such as a recommendation for 30 minutes of exercise per day (e.g. brisk walking, biking, running, or other cardiovascular activity).

[0086] In various embodiments, rather than mapping vectors of patient information to clusters of products, alone, the systems and techniques described herein may similarly map vectors of patient information to an appropriate set of nutritional supplements, as well as diet and exercise recommendations. Together, the clusters of products, nutritional supplements, diet recommendations, and/or exercise recommendations may constitute a treatment protocol.

[0087] In various embodiments, vectors of patient information may continue to be mapped to clusters of plant-based products, as previously described herein. In addition, in various embodiments, vectors of patient information may also be mapped to sets of conventional nutritional supplements. Unlike plant-based products, conventional nutritional supplement matching may not initially utilize product clustering based on molecular profiles from third- party test results. Instead, in various embodiments, patients may be matched to specific brands of products. Over time, more conventional nutritional supplement brands may share third-party test results to allow for the scoring and clustering of their products, along with the cannabis products as described herein. In addition, in various embodiments, vectors of patient information may also be mapped to specific diets as well as to specific exercises. Mapping patient information to sets of conventional nutritional supplements, diets, and exercises may occur in personalized wellness solutions such as Care/Of and Persona. In various embodiments, it may be possible to implement this type of functionality by licensing it from a partner such as MBody360. [0088] Referring now to Fig. 8, a schematic of an example of a computing node is shown. Computing node 10 is only one example of a suitable computing node and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the invention described herein.

Regardless, computing node 10 is capable of being implemented and/or performing any of the functionality set forth hereinabove.

[0089] In computing node 10 there is a computer system/server 12, which is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with computer system/server 12 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.

[0090] Computer system/server 12 may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Computer system/server 12 may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

[0091] As shown in Fig. 8, computer system/server 12 in computing node 10 is shown in the form of a general-purpose computing device. The components of computer system/server 12 may include, but are not limited to, one or more processors or processing units 16, a system memory 28, and a bus 18 that couples various system components including system memory 28 to processor 16.

[0092] Bus 18 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.

[0093] Computer system/server 12 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system/server 12, and it includes both volatile and non-volatile media, removable and non removable media.

[0094] System memory 28 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and/or cache memory 32. Computer system/server 12 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 34 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a "hard drive"). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk ( e.g ., a "floppy disk"), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus 18 by one or more data media interfaces. As will be further depicted and described below, memory 28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the invention. [0095] Program/utility 40, having a set (at least one) of program modules 42, may be stored in memory 28 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 42 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.

[0096] Computer system/server 12 may also communicate with one or more external devices 14 such as a keyboard, a pointing device, a display 24, etc.; one or more devices that enable a user to interact with computer system/server 12; and/or any devices ( e.g ., network card, modem, etc.) that enable computer system/server 12 to communicate with one or more other computing devices. Such communication can occur via Input/Output (EO) interfaces 22. Still yet, computer system/server 12 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 20. As depicted, network adapter 20 communicates with the other components of computer system/server 12 via bus 18. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server 12. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

[0097] The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention. [0098] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non- exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media ( e.g ., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

[0099] Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

[0100] Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user’s computer, partly on the user’s computer, as a stand-alone software package, partly on the user’s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user’s computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

[0101] Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

[0102] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

[0103] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

[0104] A Picture Archiving and Communication System (PACS) is a medical imaging system that provides storage and access to images from multiple modalities. In many healthcare environments, electronic images and reports are transmitted digitally via PACS, thus eliminating the need to manually file, retrieve, or transport film jackets. A standard format for PACS image storage and transfer is DICOM (Digital Imaging and Communications in Medicine). Non-image data, such as scanned documents, may be incorporated using various standard formats such as PDF (Portable Document Format) encapsulated in DICOM.

[0105] An electronic health record (EHR), or electronic medical record (EMR), may refer to the systematized collection of patient and population electronically-stored health information in a digital format. These records can be shared across different health care settings and may extend beyond the information available in a PACS discussed above. Records may be shared through network-connected, enterprise-wide information systems or other information networks and exchanges. EHRs may include a range of data, including demographics, medical history, medication and allergies, immunization status, laboratory test results, radiology images, vital signs, personal statistics like age and weight, and billing information.

[0106] EHR systems may be designed to store data and capture the state of a patient across time. In this way, the need to track down a patient's previous paper medical records is eliminated. In addition, an EHR system may assist in ensuring that data is accurate and legible. It may reduce risk of data replication as the data is centralized. Due to the digital information being searchable, EMRs may be more effective when extracting medical data for the examination of possible trends and long term changes in a patient. Population-based studies of medical records may also be facilitated by the widespread adoption of EHRs and EMRs.

[0107] Health Level-7 or HL7 refers to a set of international standards for transfer of clinical and administrative data between software applications used by various healthcare providers. These standards focus on the application layer, which is layer 7 in the OSI model. Hospitals and other healthcare provider organizations may have many different computer systems used for everything from billing records to patient tracking. Ideally, all of these systems may communicate with each other when they receive new information or when they wish to retrieve information, but adoption of such approaches is not widespread. These data standards are meant to allow healthcare organizations to easily share clinical information. This ability to exchange information may help to minimize variability in medical care and the tendency for medical care to be geographically isolated.

[0108] In various systems, connections between a PACS, Electronic Medical Record (EMR), Hospital Information System (HIS), Radiology Information System (RIS), or report repository are provided. In this way, records and reports form the EMR may be ingested for analysis. For example, in addition to ingesting and storing HL7 orders and results messages, ADT messages may be used, or an EMR, RIS, or report repository may be queried directly via product specific mechanisms. Such mechanisms include Fast Health Interoperability Resources (FHIR) for relevant clinical information. Clinical data may also be obtained via receipt of various HL7 CDA documents such as a Continuity of Care Document (CCD). Various additional proprietary or site-customized query methods may also be employed in addition to the standard methods.

[0109] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

[0110] The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.