Several people have expressed interest in helping with the site. Looking at skill sets and past issues with open source, I decided to direct interested people towards new features that serves my primary goal: Well documented suggestions to help people deal with a variety of health issues based on the latest studies.
Most people have a different tech stack then I do. My approach is to build a series of mini-console applications that intakes and writes to files. People are welcome to port these to their prefer tech stacks, for example PHP, JAVA or GO.
The projects are located at: https://github.com/Lassesen/SupplementPrescription, please email Ken/at\lassesen.com to get an invite.
We will be looking for reviewers (no coding skills needed, just the ability to read studies) to verify the medical facts added to the database (likely early 2022)
Possible Additions
The following are possible additions
- Medication Condition to Modifier Improves, Worsen, No Impact, percentages
- Modifier to Lab Results: Increases, no effect, decreases, percentages
- Lab Results to Medical Conditions. ranges, percentages
- Bacteria to Medical Conditions. ranges, percentages
Terms:
- Modifier (drug, supplement, herb etc):
- Lab Results: Cytokine (i.e. Interleukins (IL-10)), IgE, IgG, IgM,
- Medical Conditions — open ended, but ideally with ICD-10 codes
- Bacteria identified by NCBI Number
Ontology is critical
Information from study is often complex with a vast multiplicity of ‘world perspectives’
Components
PubMed Scanner
This takes a list of key words or phrases and search https://pubmed.ncbi.nlm.nih.gov/ for summaries containing those words. New summaries (not in prior downloads) are identified and written to a datetime file (removing duplicates).
Initial version: Net Core 3.1 with self-contained distribution, https://github.com/Lassesen/SupplementPrescription/tree/main/Source/PubMedScanner/PubMedScanner
PubMed Downloader
This takes the IDs from the scanner and downloads the summaries as individual XML files (can be changed to JSON)
The files follows PubMed specifications, an example is below:
First version: Net Core 3.1 with self-contained distribution https://github.com/Lassesen/SupplementPrescription/tree/main/Source/PubMedScanner/PubMedDownloader
Text Scanner and Data Encoder
This is up to individual developers to do. There are many text analysis tools available in R, PHP, Python, Ruby etc. The video below illustrates what I created for MicrobiomePrescription
Completed: Data Storage REST API (Json)
The following API specification is the current draft. The site is http://dev.microbiomeprescription.com.
The syntax is a simple [Subject] [Verb] [Object] with the option to support i.e. [Magnesium] [Reduces] [hypertension]
- [Subject] [Subject Adjective] [Verb] [Adverb] [Object] [Object Adjective]
Example: [Licorice] [200 mg/day] [increases] [statistically Significant] [hypertension] [pregnant] [females]
- Compound subjects are intended to be supported with AND always assumed
- Compound objects are not supported
Public API – no credentials needed
- /modifiers/ – get keys: m-
- /conditions/ – get keys: d-
- /labs/ – get keys:l-
- /verbs/ -get keys: v-
- /units/ – get keys: u-
- /adverbs/ – get keys: a-
- /citations/ – get keys: c-
Subject and Object Adjectives are expected to be in this pattern “objectadjective”:{ “value”: 20, “units”:”mm Hg”}
Developer API – Credentials needed
Documentation on the current API and how to do rapid development is available on this page
Delete will be supported but only for items lacking any reference (i.e. foreign key)
Adding Facts
Format is intended to be simple, but requires the use of identifiers as shown below.
The following are supported (with credentials)
- facts/get – list
- facts/show – converts the encoding to plain English (intended for reviewers to confirm interpretation)
- facts/put – update existing facts
- facts/post – add new facts
- facts/delete – remove facts, this is a soft-delete unless the original person who added it is the person doing it. The original person must confirm the delete before it becomes a hard delete.
This is encoded via the keys, as shown below.
{
"facts":[
{
"fact":{
"subject":"m-1",
"verb":"v-4",
"object":"c-1"
}
},
{
"fact":{
"subject":"m-1",
"verb":"v-9",
"object":"l-1"
},
"objectadjective":{
"value":20,
"units":"u-20"
}
},
{
"fact":{
"subject":"m-1",
"subjectadjective":{
"value":200,
"units":"u-89"
},
"verb":"v-9",
"object":"l-1",
"objectadjective":{
"value":20,
"units":"u-20"
}
}
}
]
}
Recent Comments