N-ary Data predicate use case
[1-8 from Sebastian; 9-16 from Robert Stevens; 17 from Vipul]
1. Valid measurements
- In any patient, the systolic blood pressure is always greater or equal than the diastolic blood pressure. (The patient is dead if it is equal unless he has a continuous artificial heart implant.)
- Similarly, the body's core temperature is always greater or equal than the peripherially measured one.
- Similarly, the forced vital lung capacity is always smaller or equal than the total lung capacity.
- literally tons of other cases exist, especially when it comes to lab or function tests
2. Derived measurements
- The vital capacity of the lung is defined as the sum of the inspiratory reserve volume, the tidal volume, and the expiratory reserve volume. It would be very useful to be able to compute this sum from the individual measurements. The vital capacity is used for diagnostics and for ventilator settings, see (7).
- Body mass index: the body mass index (BMI) of a patient is defined as 703 times weight in pounds divided by the square of the height in inches. The BMI is (among many other things) taken into consideration for insulin administration regimens. Similar to the examples above, it is used to derive an envelope within which a standard regimen should be.
- Shock index: among the things documented for patients admitted with (suspicion of) shock (i.e., circulation does not work) is the "shock index", defined by the heart rate in beats per minute divided by the blood pressure in millimeter Hg. Different consequences apply for the case that the shock index is above 0.9.
- Cardiac ejection fraction: computed by dividing the patient's stroke volume by the end-diastolic volume. Healthy individuals have an Ef of 0.55, outside some normal range you have to do something.
3. Drug administration regimens
- Several drip and IV drugs have a maximum loading dose or maximum bolus dose. For every single administration of this drug, these maximum values must be observed. Hence, it would be extremely useful to define the pattern of a single administration as one where the total administered dose is below the maximum dose for that drug.
4. Pediatric drug administration regimens
- Especially in pediatry (but also elsewhere), the age of a child alone offers no good guidance for maximum or minimum dosages. Usually, the maximum total daily dose and the maximum single dose are computed as milligram per kilogram body weight. When documenting the doses the patient received during treatment, it would be great to check this against norm values for single and total doses. Hence, we would like to define a pediatric drug regimen as having a single dose between x and y times the patient's body weight.
(It would be equally great if we could compute the total daily dose as the sum of all doses administered on one day, but I assume that you have to know the exact set of things to sum in advance.)
5. Hypothesis checking for diagnoses
- A patient is admitted with chest pain. Next day: if the patient's current body weight is more that two pounds above the admission body weight you look for congestive cardiac failure and give diuretics. (Other care plans refine the two pounds criterion to 115 to 120 per cent of the admission weight.) Hence, it would be great to be able to infer critical weight gains such that the current weight exceeds the admission weight by some quantity (or even better by some percentage).
6. Monitoring therapy effectiveness
- On admission, a patient's body temperature is measured and (due to fever) he is given antibiotics. Next day: if the patient's current temperature is not significantly below the admission temperature, you discontinue that specific antibiotic, try another one, or do more diagnostics. Hence it would be great to define a negative treatment response characterizing the fact that the temperature did not come down (i.e., admission temperature versus current one).
- Tons of variations exist, especially w.r.t. lab data (especially for cardiology patients). Within our Siemens ontology, we mostly distinguish admission vs. current measurement, pre- vs. post procedure measurement, admission vs discharge, or compare the two most recent measurements. *We do not explicitly model time in any way*.
- Cardiac index targets: For patients with heart insufficiency, you often implement a Catecholamine therapy to reach a so-called Cardiac Index (CI) target, i.e., you carry on the treatment until some CI value is reached. The CI is computed as: heart rate times stroke volume divided by the patient's body surface. (Unit: l/min/m^2). It would be great to represent this index directly using the actual measurements. The patient record (in these cases) holds the body surface, while stroke volume and heart rate are measured in certain intervals.
7. Representing ventilator settings
- For intubated patients, the initial ventilator setup has to be computed using some measures of the patient. The settings are documented in the patient record and should be checked against norm values. For instance, the "initial tidal volume" is usually between 8 and 10 ml per kilogram patient weight. It would be great if we could define a class "normal initial tidal volume" as being 10 times the patient's body weight, or an interval between both limits.
- Moreover, the inspiratory positive airway pressure (IPAP) chosen for the patient should always be below his or her esophageal opening pressure (Or else you are ventilating the stomach and not the lung :-)). The definition of other ventilator settings include similar computations, only that they additionally take into account the patient's height in inches. There are any number of complications to this.
8. Checking local codes against external ones
- Although we use external sources as references for drugs (for instance the list of FDA approved drugs published by FirstDataBank), our clients have established their own internal codes for these drugs. The internal codes are effectively a concatenation of the FDB code and some prefix. It would be great to define the class of valid-coded drugs as those where the internal code equals the FDB code plus this prefix. Both codes are strings that could be represented by datatype properties.
9. I can write motifs (patterns) found in nucleic acid or protein sequences as regular expressions. I can also represent the sequence themsleves as strings of letters. I want to find motifs in strings. I also want to find if one pattern subsumes another pattern
robert is a kind of robert*
Much of this is the kind of thing we hacked in our lists, but could also be done with strings
10. relative humidity is an interesting one
11. my mouse phenotypes will have ratios -- distance between eyes over distance between ears
12. I want to say that for the alkali metals (which I have defined), that as atomic number increases (number of protons, atomic radius, etc.) then melting point also decreases, or reactivity increases. Basic periodic table stuff.
13. boiling point is always >= melting point. Third ioonisation energy > second ioisation energy > first ionisation energy. Many, many more of these.
14. I'm planning ontologies defining mouse phenotypes. These are defined in terms of asssays where the individuals have measurements recorded (length, wriggles per second, weight, speed, etc. etc.); drug dose, etc etc. using ranges, comparisions, arithmetic on these would be essential.
15. The Overall charge on a molecule is the sum of all the charges on the constituent atoms. I guess it would be nice to have charge "transitive" across other relationships, so the charge on an atom, becomes the charge (quantified) on the host molecule
16. Otherwise, being able to capture basic physical laws, sujch as boyle's Law, would be great. I'd also like to be able to constrain chemical reaction equations to be bvalanced.
17. I need the ability to say something like: Patient that (testdate > enrollmentdate + 60) Was trying to represent the following inclusion criteria in a clinical trial: The patient must have negative gadolinium based MRI of the contralateral breast, no more than 6 months prior to study entry. (See Issue 53)