Condition List - Clinical Status

I agree with almost everything you described, @mseaton , except:

We need to make it as easy as possible to remove conditions from the condition list, since the only means of maintaining a reasonable condition list is for providers to go out of there way to maintain it. The best solution I’ve found is a single tap “(x)” that moves conditions to the PMH with a temporary undo to recover from a mistake or errant click. More options can be given in an edit dialog, but the quick & dirty removal from the condition list is critical to lower the barrier to maintaining/cleaning the list to barely more than a thought.

We could treat any condition without a category as PMH. This would mean conditions from OpenMRS-unaware systems would go into the patient’s list of conditions on their past medical history and only go onto the condition list (problem list) if they are explicitly labeled with category = problem-list-item.

I don’t think we should return encounter diagnoses when a client asks for conditions. Encounter diagnoses should be explicitly added as a condition by providers, since many encounter diagnoses are either presumptive or would only add noise to the patient’s longitudinal condition list. Ideally, clients should fetch encounter diagnoses by querying encounter data.

POST /Conditions could add to the past medical history (patient’s known conditions) by default or to the condition list when category = problem-list-item.

Encounter diagnoses should be added to encounters (i.e., within the context of an encounter) and not ad hoc through /Conditions, IMHO.

This is handled by the “Move to Past Medical History” use case I mentioned. Right now the “X” deletes/voids the Condition altogether, which is what I think we want to avoid encouraging. The fact that we’re having this back and forth only confirms that I think clinicians will be confused about what an “X” represents. Is it “moving to past medical history?” or is it “delete altogether as if it never happened?”

1 Like

If we can show a single tap button to move an item to the PMH that is intuitively seen as “get this off my problem list” and doesn’t detract the condition list with lots of additional text/icons, that’s fine.

It’s hard for me to imagine a symbol that more clearly says “get this off the list” than an (x) and if tapping the (x) showed something like “Moved to PMH” with buttons for “Undo” or “Delete” it could meet all the requirements.

Deleting Condition

  • condition.verificationStatus is there for that specific reason. and this verification status is not specific to “encounter diagnosis” - applies to problem-list as well. Condition should have associated to an encounter.
  • I am ok with not by default returning ‘encounter-diagnosis’ if we provide a filter like > /condition?category={encounter-diagnosis}

(x) here can be confusing, and would have to be aligned with rest of the UI. What would it mean - “cancel” or something like “entered-in-error”, “refuted”?

imho

  • specific action for “entered-in-error” / “refute”. (condition.verificationStatus)
  • if data is not persisted then (x) should just remove from model.
  • if condition was persisted, then change verificationStatus to entered-in-error (and voided=true)

Just because something is in the model doesn’t mean it is going to be reliably populated (or populated at all). There are decent incentives/forces for providers to create conditions (often billing-related). There are few incentives to clean the list, so it’s easy for condition lists to grow long without anyone bothering to remove items. I would have low expectations that anyone is going to reliable qualify conditions as presumptive vs confirmed.

I don’t really understand the link from condition to encounter. I can see how encounters could be linked to conditions, but a condition can be related to many encounters and a link to a single encounter seems arbitrary or easy to be misinterpreted.

I’m not trying to create the specific UX for this; rather, just trying to underscore that removing entries from the problem list (condition list) needs to be incredibly easy & intuitive (preferably a single click… with undo as a recovery for mistakes & reason/workflow options as optional secondary clicks) or I can guarantee we will be discussing how to deal with growing, unmaintained condition lists (we may be doing this anyway).

Tbf, FHIR’s Condition model also has a space for encounter, which seems applicable to more than just an encounter diagnosis, i.e., it might indicate the encounter where a condition was first recorded or an encounter where information about the condition was updated. The encounter field on the condition in the OpenMRS data model achieves the same goal, it seems to me.

In FHIR, though not in OpenMRS’s model, it’s also possible via the reasonReference field to declare that an encounter happened because of a Condition (and this is basically a many-to-many relationship).

@ibacher do you mean through condition.evidence[ ]?

Are we looking at Condition as only problem list a practitioner curates over time? Both description of Condition and the resource guide indicates it used on a wide contexts - from chief complaints of a patient (fever, cough, pain) to practitioner’s problem-list. It could also be a point-in-time diagnosis …

@burke imho, condition.verificationStatus to me is precisely for that purpose and to be used in combination with other attributes like clinicalStatus (active | inactive | remission | resolved). Also how to interpret the condition is not one dimensional. e.g. I would imagine that reference to condition with verification status as unconfirmed/provisional - would be surely be useful to the practitioner, but it would also be left to his/her interpretation/co-relations to other information that be used in decision making. I would leave that to the UX and client system to enable the practitioner so. What the core must do, is provide model/process for maintenance of condition in a system of record, and to unambiguously expose the information to any client system. Inference of information is enabled by the attributes and relations of the “Condition” for the client.

I think that the current OMRS model lacks in management of verificationStatus, clinicalStatus and onset & abatement recording (date, age, period).

If OMRS FHIR API would expose by default only conditions of type problem-list, that are only verified, I don’t know if that’s right. I am ok, if it returns at least with the specified filters/parameters to include whats not included by default

1 Like

I see Condition as covering medically significant conditions (i.e., the “condition list” aka “the problem list” and past medical history). Unless there is another place to put PMH items in FHIR.

If FHIR forces us to publish encounter diagnoses under /Conditions (rather than as Condition resources under their associated Encounter), then I can’t argue with it. I think it’s wrong (unless someone is specifically requesting encounter diagnoses), but I don’t presume to change the FHIR spec. I wouldn’t return them by default. Clients should be able to easily get the patients conditions (i.e., problem list +/- past medical history) from /Conditions without having to wade through the frequent noisy mess of encounter diagnoses. Condition list management is hard enough without polluting it with every med refill, toothache, flu, and car accident that a patient may have been seen for over time).

I agree with you having a place for verification status and that it could be helpful to providers. My experience is data like these are aspirational – i.e., theoretically helpful and used by some users or implementations, but vastly underused/underutilized due to time constraints or lack of data entry. It’s often a struggle to get providers to enter conditions, more of a struggle to get anyone to maintain the condition list (clear off old entries), and virtually impossible to reliably maintain fine details like onset dates, statuses, etc.

This has been done. See: [TRUNK-6170] - OpenMRS Issues

2 Likes

Encounter diagnoses may reference a condition, but not always. In FHIR, the Encounter.diagnosis.condition is actually a CodeableReference type, which can be a concept or a reference to a Condition.

What I’m proposing is for OpenMRS Condition be used to store a list of longitudinally clinical significant conditions – i.e., conditions that are either chronic/lifelong or are clinically important historically. In simple clinical terms, this means the all conditions that would be in the “Problem List” (in recent years renamed the “Condition List”) and the “Past Medical History.” If someone is seen for an acute illness (e.g., a laceration or an acute viral illness), these could be noted on the encounter (as an encounter diagnosis), but would not be added to the condition list.

A simple example:

Peter has high blood pressure and no other chronic medical issues. He had tuberculosis 10 years ago, but was successfully treated. When his doctor opens his medical record, she would see something like this:

Conditions Past Medical History
High blood pressure Tuberculosis
High blood pressure

When Bob comes in to be seen today for a routine follow up of his high blood pressure, he complains of a headache for the past few days and, on a screening test, is newly diagnosed with HIV. After an exam, Bob’s doctor tells him the headache is likely due to dehydration, should resolve if he drinks more water, and to let her know if it’s not better soon.

In the EMR during today’s encounter, the doctor:

  • Copies high blood pressure from Bob’s condition list to the encounter as an encounter diagnosis
  • Adds headache as an encounter diagnosis
  • Adds HIV as an encounter diagnosis and copies it to Bob’s condition list, since this will now be an ongoing condition to track & treat

So, we end up with these three lists:

Encounter diagnoses Conditions Past Medical History
High blood pressure High blood pressure Tuberculosis
Headache HIV High blood pressure
HIV
  • The high blood pressure encounter diagnosis references the existing Condition
  • The headache diagnosis is stored as a Concept, since it is only relevant to today’s encounter
  • The HIV encounter diagnosis might be a Concept when it is first added as a new diagnosis by the provider, but when she clicks on something to “Add this to the patient’s Condition List”, we would probably add HIV as a new Condition for Bob and then convert the encounter diagnosis to a reference to it (so the outcome would be the same if she first added HIV to the Condition list and then copied it to today’s encounter)

A client calling the API should be able to make requests like:

  • GET /Conditions?category=problem-list-item to get High blood pressure & HIV
  • GET /Conditions to get High blood pressure, HIV, and Tuberculosis (all conditions in Condition List or PMH)
  • GET /Encounters/:uuid and something like GET /Encounters?diagnosis=CIEL:139084 to find encounter diagnoses for a specific encounter or search encounter for a specific diagnosis

This example shows that not all encounter diagnoses are conditions. It also points out why Condition.category = problem-list-item would help us control what is in the “Problem list” (aka “Condition list”), but it also highlights one issue we’ve overlooked: there are cases where providers might expect a condition to be on both the Condition list and the Past Medical History.

This last point suggests that, while we could use category to label items on the condition list, we can’t assume (as I was earlier) that items are mutually exclusive across Condition List PMH – i.e., we can’t assume items are in the PMH if they aren’t categorized as a problem list item. If we adopt FHIR’s many-to-one categorization, then we could define the Condition List as only those conditions categorized as problem-list-item and the Past Medical History as any items without a category or categorized as past-medical-history-item (where, in the example, High blood pressure would have both categories).

It’s not fully clear to me where FHIR is expecting past medical history items to be stored, but it seems like Conditions would be the most logical place from my perspective/experience.

In any case, if we head this direction, then controlling which items appear in the Condition List (or Past Medical History) would be explicitly & independently controlled, allowing Clinical Status to be managed independently without conflicting with what is or isn’t on the patient’s Condition List.

Thanks @burke for taking the time to write this all out.

Couldn’t this be equally solved by just having 2 Condition records in OpenMRS with the same Concept? One with a category of problem-list-item and one with a category of null? Or is it not typical to have the same Condition recorded multiple times with different onset dates, end dates, and/or clinical statuses to reflect different episodes / recurrences?

LOL. I’m surprised anyone would take the time to read it. If I had more time, I’m sure I could’ve made it shorter. :slight_smile:

I supposed it could. It’s probably sufficient to connect these implicitly by their concept. Metadata (e.g., comments) would be changed independently, but there are probably use cases where that would be preferred (i.e., annotate items on a problem list without having those same annotations show up on the past medical history).