Representing Diagnoses
Representing diagnoses accurately is crucial for all healthcare systems. There are generally two types of diagnoses:
- Encounter Diagnoses
- Problem List Items
To capture these, along with other patient problems and concerns, FHIR provides the Condition
resource. Some applications of the Condition
resource include:
- Social Determinants of Health (SDOH)
- Chronic Conditions
- Substance Use/Abuse
- Mental/Cognitive Impairment
- Physical Disability/Impairment
Ongoing Medical Conditions
The Condition
resource provides a detailed record of any ongoing conditions or problems that a Patient
may have, as well as metadata to provide context about the condition. This context includes the type, onset/resolution date, severity, progression, and verification status of the Condition
.
It is important to note that a Condition
resource represents an instance of a diagnosis. For example, if a patient has a condition, then recovers from it, and then it recurs, the recurrence would be a separate Condition
. The fact that it is a recurrence can be noted using the clinicalStatus
field.
Element | Description | Code System | Example |
---|---|---|---|
code | A code identifying what the condition or problem is. | ICD-10, SNOMED | C46.50 - Kaposi's sarcoma of unspecified lung |
category | A category assigned to the condition. See below. | Condition Category Codes | problem-list-item or encounter-diagnosis |
clinicalStatus | The current clinical status of the condition. i.e., whether it is recurring, active, etc. | Condition Clinical Status Codes | active |
verificationStatus | The verification of the condition. For example, could indicate if a patient has claimed they have a condition that has not yet been verified by a physician. | Condition Verification Status Codes | provisional |
severity | A subjective measure of the severity of the condition. | Condition/Diagnosis Severity Codes | Severe |
subject | The patient that has the condition. | Patient/homer-simpson | |
onset[x] | The date or time that the condition began. Can be a dateTime , Age , Period , Range , or string . | 2024-01-04 | |
abatement[x] | The date or time that the condition ended. Can be a dateTime , Age , Period , Range , or string . | 2024-01-11 | |
recordedDate | When the condition was recorded and entered into the system. This is often system-generated. | Fri Jan 12 2024 09:45:28 GMT-0500 (Eastern Standard Time) | |
stage | A summary of the stage of the condition. This is specific to the condition, and many will not have a stage. | Stage 3 | |
evidence | Supporting evidence that provides the basis for determining the condition. This can include references to other resources, such as Observations . | Observation/collapsed-lung | |
note | Any additional notes about the condition. | The patient has a family history of cancer. |
Example Condition
{
resourceType: 'Condition',
subject: {
reference: 'Patient/homer-simpson',
},
code: {
coding: [
{
system: 'http://hl7.org/fhir/sid/icd-10',
code: 'C46.50',
display: "Kaposi's sarcoma of unspecified lung",
},
],
},
clinicalStatus: {
coding: [
{
system: 'http://hl7.org/fhir/ValueSet/condition-clinical',
code: 'active',
display: 'Active',
},
],
},
verificationStatus: {
coding: [
{
system: 'http://hl7.org/fhir/ValueSet/condition-ver-status',
code: 'confirmed',
display: 'Confirmed',
},
],
},
category: [
{
coding: [
{
system: 'http://hl7.org/fhir/ValueSet/condition-category',
code: 'encounter-diagnosis',
display: 'Encounter Diagnosis',
},
],
},
],
severity: {
coding: [
{
system: 'http://snomed.info/sct',
code: '24484000',
display: 'Severe',
},
],
},
onsetString: '2023-11-11',
stage: [
{
summary: {
coding: [
{
system: 'https://example-org.com/cancer-stages',
code: 'stage-3',
display: 'Stage 3',
},
],
},
},
],
evidence: [
{
detail: [
{
reference: 'Observation/lung-tumor',
},
],
},
],
note: [
{
text: 'Patient has a family history of cancer.',
},
],
};
Example ValueSet of Condition Codes
{
resourceType: 'ValueSet',
status: 'active',
url: 'http://hl7.org/fhir/sid/icd-10',
name: 'example-conditions',
title: 'Example Conditions',
compose: {
include: [
{
system: 'http://hl7.org/fhir/sid/icd-10',
concept: [
{
code: 'D63.1',
display: 'Anemia in chronic kidney disease',
},
{
code: 'D64.9',
display: 'Anemia, unspecified',
},
{
code: 'E04.2',
display: 'Nontoxic multinodular goiter',
},
{
code: 'E05.90',
display: 'Thyrotoxicosis, unspecified without thyrotoxic crisis or storm',
},
{
code: 'E11.9',
display: 'Type 2 diabetes mellitus without complications',
},
{
code: 'E11.42',
display: 'Type 2 diabetes mellitus with diabetic polyneuropathy',
},
{
code: 'E55.9',
display: 'Vitamin D deficiency, unspecified',
},
{
code: 'E78.2',
display: 'Mixed hyperlipidemia',
},
{
code: 'E88.89',
display: 'Other specified metabolic disorder',
},
{
code: 'F06.8',
display: 'Other specified mental disorders due to known physiological condition',
},
{
code: 'I10',
display: 'Essential (primary) hypertension',
},
{
code: 'K70.30',
display: 'Alcoholic cirrhosis of the liver without ascites',
},
{
code: 'K76.0',
display: 'Fatty (change of) liver, not elsewhere classified',
},
{
code: 'M10.9',
display: 'Gout, unspecified',
},
{
code: 'N13.5',
display: 'Crossing vessel and stricture of ureter without hyrdronephrosis',
},
{
code: 'N18.3',
display: 'Chronic kidney disease, stage 3 (moderate)',
},
{
code: 'R53.83',
display: 'Other fatigue',
},
{
code: 'Z00.00',
display: 'Encounter for general adult medical examination without abnormal findings',
},
{
code: 'Z34.90',
display: 'Encounter for supervision of normal pregnancy, unspecified, unspecified trimester',
},
],
},
],
},
};
Additional Use Cases
In addition to representing diagnoses, the Condition
resource also has some other uses that should be noted.
The Condition
resource should not be used when recording allergies. Instead, FHIR provides the more specific AllergyIntolerance
resource.
Additionally, the Condition
resource can also be used to record social factors. For example, if a patient is unemployed or living in poverty, that can be recorded as a Condition
.
Types of Diagnoses
As mentioned earlier, the Condition
resource can be used to represent two types of diagnoses:
- Encounter Diagnoses
- Problem List Items
Encounter Diagnosis
A Condition
with type encounter-diagnosis
represents the outcome of a specific visit or interaction with between a Patient
and a Practitioner
.
To model an encounter diagnosis, the Condition.category
field must be set to encounter-diagnosis
. Additionally, the Condition.encounter
should link to the Encounter
resource during which the diagnosis was made.
The US Core implementation of encounter diagnoses provides further guidelines on how they should be modeled.
Problem List Item
To provide clinicians with an accurate Patient
history across visits, most EHRs provide a 'problem list' of the Patient's
active conditions. Each issue on the list is represented by a Condition
with a category
code of problem-list-item
.
When implementing a problem list in your system, it is a best practice to keep separate Condition
resources for Encounter Diagnoses and Problem List Items. This allows for easy tracking of the Condition
as it changes over time using the Problem List version, while also having a record of the original diagnosis in the Encounter Diagnosis version.
Clinicians should exercise judgement on when to add something to the problem list, and most systems require them to take an explicit action to promote an Encounter Diagnosis to a Problem List Item.
Symptoms vs. Conditions
Recording symptoms and differentiating them from long-term problems can be difficult in FHIR, so it is important to clarify when an Observation
and a Condition
should be used. At a high level, an Observation
represents a a point-in-time measurement and a Condition
represents an ongoing problem or diagnosis.
The Observation
resource should be used for symptoms that can be resolved without long-term management. Additionally, an Observation
often contributes to the establishment of a Condition
. For example, there may be an Observation
of high blood pressure that leads to a Condition
to track and manage that high blood pressure. For more details on the Observation
resource, see the Capturing Vital Signs docs.
A Condition
should be used for symptoms that require long-term management or as a proxy for a diagnosis. Additionally, it can be used in some cases when a symptom that might otherwise be an Observation
persists over a longer period. For example, a fever measured at a given time may be an Observation
, but if it persists for multiple days, it would become a Condition
to track and manage.