Monday, July 15, 2013

An OGMS-Based Model for Clinical Information

In a paper presented at the International Conference on Biomedical Ontology (ICBO) in Montreal, Heiner Oberkampf and colleagues from Siemens Corporate Technology and the Universities of Augsburg and Erlangen propose an interesting strategy to advance semantic integration of patient data. As they point out, such integration would require annotation with terms from established domain ontologies "based on an ontologically well-founded information model" and they choose Ontology for General Medical Science (OGMS) as the basis of their work.

Among several other ICBO papers devoted to the creation of OGMS-conformant clinical ontologies was a contribution by Josh Hanna and colleagues at the University of Arkansas for Medical Sciences entitled "Building a Drug Ontology based on RxNorm and Other Sources." DrOn is built in a modular fashion to facilitate incorporation of content from RxNorm and other sources within a manually built, realist, upper-level framework based on BFO.

Tuesday, July 02, 2013

Ontology for General Medical Science vs. HL7 RIM

The Ontology for General Medical Science (OGMS) is intended to provide a very simple framework for representing the entities involved in a clinical encounter. It starts out from what the supporters of OGMS take to be a commonsensical distinction between

1. entities on the side of the patient, for example diseases, conditions, symptoms, states of health or disease

2. entities on the side of the clinician, for example diagnoses, observations, records, clinicians' acts.

As has been asserted ad nauseam since the very beginning of this blog, HL7 RIM is based on a denial of this distinction. For the RIM, diseases, conditions, symptoms are what HL7 calls 'Observations'.
In a recent post to the HL7 Patient Care Work Group reproduced below, Kevin Coonan has rediscovered some of the basic ideas currently exercising the developers of OGMS (see, most recently, here). But because he is still working within the RIM framework, he has at the same time revealed the degree to which this framework causes problems when the attempt is made to formulate these basic ideas and thereby to generate a coherent strategy for coding the corresponding information.

As Kevin points out, for HL7 'Condition' means an "Observation, event or risk, whose value is a clinical finding or disorder that represents an undesired state of health which names--provides the clinical semantic for--a Health Concern.

We shall focus, first, on the identification of a Condition as an "Observation, event or risk". This seems, from an ontological point of view, to be a dangerous mixing of categories.

It is for example not clear to me how an 'event, or risk' can 'name' an undesired state of health. Nor how an event, or risk, can provide a 'semantics' for a Health Concern. (Nor is it clear to me what 'Health Concern' is intended to mean.) However, if we focus just an 'Observation', then we can make some sort of sense from the definition provided. Observations have values -- clinical findings, which is to say findings on the side of the clinician -- representing undesired states of health on the side of the patient.

The Condition, for the RIM, is something on the side of the clinician, and has a Condition.effectiveTime,  which may for several reasons 'be open or null, including someone forgetting to record when you no longer had that liver laceration.' The Condition is then not the liver laceration. It is (something like) the recording of the liver laceration. But then in regard to the Condition of acute stroke, Kevin tells us that he would put as endpoint 'the time that the stroke stopped progressing'. Thus (we are tempted to say): the Condition can end in two ways; when the stroke stops progressing; or when the clinician stops bothering to record its progression.

From: "Kevin Coonan, MD"
Subject: Health Concerns: clinical status of the naming Condition -- RFC/RFI
Date: 1 juli 2013 23:21:00 CEST
To: "Patient Care Work Group"

One topic which comes up any time we talk about Health Concerns (e.g. "Problems"), is how to represent the clinical status (activity) of the Condition (Condition here meaning an Observation, event or risk, who's value is a clinical finding or disorder that represents an undesired state of health which names--provides the clinical semantic for--a Health Concern).  One thing I don’t address is the relevance to the current context.
Given how long this has been a ‘problem with problems’, we must be missing something from earlier discussions, hopefully a solid solution.  This is not just gilding the lily or syntactic sugar.  This is a real thing we need, likely as a component Observation of the Condition.  Like so many (all?) things in clinical and biomedical informatics, simple solutions (e.g. binary, isActive; simple value sets like “active”, ”resolved”, ”inactive”) reflect insufficient analysis of how these are used and what information is used by a clinician, given a specific context, to determine whether or not some Condition belongs on the problem list, and if so, whether or not it is “active”.  There are other uses besides populating a problem list, and requirements for other patient care decision making, clinical decision support, billing diagnosis coding, research, public health reporting, etc. need to be considered.

Example:  If you have an acute MI or stroke you may really benefit (live) if given anticoagulant and/or fibrinolytic therapy.  If you have “active” gastrointestinal or other non-compressible bleeding

(e.g. hepatic or splenic injury e.g. 65324009| Minor laceration of liver without open wound into abdominal cavity (disorder) |)

your risk of complications alters the calculus to determine if the potential benefit outweigh the potential harm.  Knowing whether or not your “grade II liver laceration” is an active problem may determine whether you live or die.  I also would not depend on the Condition.effectiveTime.high, since there are several reasons why this may be open or null, including someone forgetting to record when you no longer had that liver laceration.  Many other conditions may not have such a nice endpoint to record, e.g. it would be hard to figure out what to put there for an acute stroke.  I would put the time that the stroke stopped progressing, focusing on the vascular aspect. Others might use the time signs and symptoms resolved, focusing on the neurologic impact.  Still others would just leave it blank, because neither of the two end points make much sense for a stroke.  Also, we likely want something other than Condition.effectiveTime.high.lessThan(now()) to determine what shows up in the problem list.

We know that it is an error to try and use Act.statusCode for this, since that just tells you the status of the observation, and is nearly always 'completed' (i.e. you made the observation) or 'obsolete'. (i.e. the observation you made before was replaced by a different one, e.g. to correct an error).

Here is a sketch of the semantic I have been toying with.  It has some overlap with SNOMED-CT Clinical finding (or Disorder) clinical course and episodicity concept model attribute, but not precisely.  Part of the design grew out of frustration with trying to use those two attributes.

I think it is multi-hierarchical, and dimension/property values which at first seem to be exclusive of each other often are not.  My (albeit limited) analysis suggests that some problems are both active and inactive.
E.g. healed distal tibia fracture resulting in a compartment syndrome and chronic neuropathy has features of both--even splitting the fracture and compartment syndrome into two independent entries doesn't resolve this, but it does provide a use case to look at need for, rules, and representation of splitting a Concern into two (or more) and/or using multiple Conditions to name a Concern.  Perhaps you could split further into “chronic neuropathy”, “compartment syndrome”, and “distal tibia fracture” (and if we do, do these belong to the same Health Concern, or do they name their own and what are the semantics of association between the them).  If the compartment syndrome ran its course a decade back, but there are continued manifestations (e.g. contracture, loss of strength), we are faced with the same problem and now have to split the initial naming Condition into five Conditions, each linked by one or more ActRelationshipTypes.  While you may not want to have to write those down every time you see the patient, a computer shouldn’t have any more difficulty with a patient who has five Health Concerns than just one, or for that matter, a patient with 5K (we can talk about why 5K is more useful than it sounds some other time).

I started by assuming there were going to be multiple defining dimensions/properties, and that the values for those dimensions/properties were likely fuzzy, and probably somewhat contextual.  We don’t typically talk about speed of onset with a fracture, but definitely go into detail with something like a headache.  One concept which is problematic (while SNOMED mentions this, it still doesn’t have the full capability to describe the different uses) is “acute”.  Acute can mean sudden onset, early in the disease, and/or self-limiting.  I tried to avoid its use in those cases where it could be ambiguous.

The defining dimensions/properties I came up with were:

1.    Phase of disease, with early being relative (depending on the duration of the disorder) to the first half of the condition, and late being relative to the second half.  So “late” into a common cold could be much shorter than “early” chronic renal insufficiency.  I also added a third half, that of “preclinical” to represent disease activity.  This starts with ‘risk’, e.g. if you inherit a brca1 gene, you don’t have breast or ovarian cancer, but, if you have those tissues in your body, you are at risk. You could, theoretically, follow this risk as culprit mutations accumulated in individual cells until true malignant transformation occurred.  Even then you are going to have a significant period where you do not have detectable or definitively diagnostic disease. Similarly, myocardial ischemic disease doesn’t usually occur until after other disease processes have existed for some time (e.g. atherosclerotic changes to coronary arteries, systemic inflammation).  In this preclinical period (or after, I suppose) you may have abortive disease where you never even know it (or may have had minimal symptoms, often non-specific, such as we see in a lot of infectious diseases, e.g. West-Nile Virus encephalitis and histoplasmosis occur in a minority of those infected, most people contain the infection w/ minimal nonspecific symptoms or are totally asymptomatic).

2.    Stability addresses the homeostasis of the individual due to the disorder, not the disorder activity.  The far ends are “stable” i.e. homeostasis preserved, to “unstable”, i.e. loss of homeostasis, usually with shock,  injury to unrelated end-organs and death.  I include a state of “metastable” meaning that between compensatory mechanisms and/or clinical interventions the individual is not at homeostasis, but is also not progressing towards death.  This is a temporary (hence “meta-“) state, very energy consuming to maintain, and will eventually result in decompensation or stabilization.  We see this all the time as “compensated shock”, as well as it being fairly common in injuries like high cervical spine fractures (where you may have no or minimal evidence of a cord injury, but excessive movement with low energy could result in serious if not permanent/fatal cord injury*) and splenic injuries.

3.    Static v. dynamic addresses change is the disease activity, severity, course, or need for intervention.  You can be static and be quite sick (as people die, fewer and fewer variables are needed to differentiate their physiology one minute to the next, and equilibrium with the environment is the eventual fate of us all).  The difficulty is how to represent disorders which are episodic in nature.  E.g. epilepsy in most people doesn’t show any sort of activity, until they actual have a seizure.  Generalized seizures are quite dynamic, but the interictal period most decidedly dull.  If you back up a step or two, you can look at (measure) seizure frequency, duration, and sensitivity to provocation (e.g. sleep deprivation) and end up with a picture of the disorder’s activity (with increased frequency, duration and/or sensitivity to sleep deprivation all marking an increase in the disease activity).  So this needs some further refinement and thought.  Maybe even a latent variable is lurking about and we need to tease out the hidden dimension.

4.    Activity.  This is what we started out thinking was the problem to be solved.  It was in trying to define this that I ended up with the other dimensions surfacing as independent aspects.  Obviously, acute Ebola hemorrhagic fever is an active problem.  In those on the list, any history of benign neonatal jaundice is an inactive problem.  My conceptualization is whether or not the pathogenesis and pathophysiology continues to occur, and/or manifestations of the disorder are evident.  The hard cases are those disorders which are inherently episodic in nature (e.g. migraine headaches, asthma, seizures) where it is very hard to even detect the presence of the disorder most of the time (e.g. you can have “migraine headaches” which occur once every few years, so now that you haven’t had a MHA for two years, is this active or inactive?)

5.    Chronic v. self-limiting/resolved.  Typically, for a symptom, we set some time limit (6 weeks, a year, etc.) beyond which the disorder suddenly changes its character from acute to chronic

6.    Course.  Is the condition improving/resolving or getting worse/progressing.  I tend to worry a lot more about things which don’t get better on their own.

If someone has the time, and/or a graduate student, having a literature review may be enlightening.
Thanks for any questions, comments, or criticisms.