My understanding is that, in general, for standard EHR use-cases, FHIR encodes ICD-10 diagnosis codes in Condition resources on a Patient, which may be linked to an Encounter that established the Condition. That Encounter may refer to one or more Observations that were used to diagnose the condition. This is of course helpful for long-term tracking of the patient's condition and care plan.
In my company's case specific case, however, we perform transactional diagnostic services on behalf of other payers/health systems (who are responsible for the actual care of the patient), and so use a more encounter/observation-oriented model rather than patient-oriented model for our data systems (databases, APIs, and data exports), much as a reference lab or 3rd party imaging provider might. This however leaves us with a question of how best to model CPT II procedure codes and ICD-10 diagnosis codes within the Observation resource.
For example, for a patient with Type 2 diabetes, we might perform a diabetic retina exam on both eyes and receive the following diagnoses from our ophthalmology vendor:
- Left eye: Type 2 diabetes mellitus with mild nonproliferative diabetic retinopathy without macular edema (ICD-10: E11.3292; CPT II: 2022F)
- Right eye: No diabetic retinopathy found. Glaucoma: Optic nerve cupping (ICD-10: E11.9, H40.011; CPT II: 2023F)
Based on https://chat.openai.com/c/95831f6d-befc-4eaa-aa7c-948772308753 we're led to believe that the Observation.code
field could be used to support both the CPT II code and the ICD-10 code. But it's unclear whether the Observation.code
field is really appropriate for results of the observation. We could instead use Observation.value[x]. valueCodeableConcept
field, which is more suggestive of a "result" than an observation type, but we're not sure if it is closer to an "interpretation" than a result.
So, in cases like ours:
- Are ICD-10 diagnose codes generally encoded in the
code
,valueCodeableConcept
, orinterpretation
fields? - Are CPT II codes (which, unlike CPT I codes, include the results of the procedure) generally encoded in the
code
,valueCodeableConcept
, orinterpretation
fields?
Either code or value are possible. The guidance that exists is here: https://build.fhir.org/observation.html#code-interop.
There are diverse perspectives (often use-case driven) about whether it's better to have
code="diagnosis", value="diabetes"
orcode="diabetes", value="present"
.Interpretation would not be an appropriate place to capture a diagnosis.