Best way to produce Aggregate Diagnosis Reports using the CIEL dictionary

What is the best way to produce Aggregate Diagnosis Reports using the CIEL dictionary? (i.e. get summary data for multiple diagnoses consolidated in individual reporting categories?)

An example use case for this question is the Kenyan MoH 504 “Monthly Surveillance Report Form.” There are 32 specified clinical diagnostic categories to report on, plus “other.” Many of the 32 diagnostic categories are aggregates of multiple individual CIEL concepts.

For example, the MoH 504 diagnostic category “Malaria” could include at least each of the following thirty-six CIEL Concept IDs: 116125- Malarial Fever 116127- Malaria Complicated NEC 116128- MALARIA 118353- Falciparum Malaria (Malignant Tertian) 131377- Other Malaria 145851- Cerebral Malaria 152295- Plasmodium Falciparum Malaria with Cerebral Complications 158379- Plasmodium vivax malaria with rupture of spleen 159519- Cerebral malaria or meningitis before the seizure 159950- Uncomplicated malaria 160148- Malaria, confirmed 160149- Presumptive malaria with minor digestive system symptoms 160150- Malaria confirmed with minor digestive symptoms 160151- Presumptive malaria with pregnancy 160153- Presumptive malaria with minor digestive symptoms, pregnant 160154- Confirmed malaria with minor digestive symptoms, pregnant 160155- Severe malaria 162754- Non-falciparum malaria

… PLUS AT LEAST 18 OTHER CIEL CONCEPTS

Other than writing a report that manually queries each of these IDs, is there a way to harness the structure of the CIEL dictionary to make this diagnosis aggregation process more straightforward?

Is it true that these reports are most easily produced using concepts mapped to classification systems (e.g. ICD 9) than to a clinical terminology system (e.g. SNOMED)? If so, can we utilize any ICD-9 or ICD-10 mapping within the CIEL dictionary to facilitate this aggregation?

1 Like

I don’t know SNOMED well enough to know if you could use the classification structure to signify all similar diagnoses (ie. Malaria).

At Partners In Health, we have added mappings to simplify reporting. All the concepts in your example (‘Malaria’) would have a new mapping (ie. Relationship=NARROWER THAN + Source=KenyaMoH504 + Code=“Malaria”). When you write your report, you can add sql to check for all diagnoses where there is a mapping of “KenyaMoH504:Malaria”.

I hope you find an easier way, but this works for custom mappings.

Ellen Ball Partners In Health

Sorry for the delayed response. This actually has two answers… The first involves using with Concept IDs (from the CIEL: xxx mapping row) or leveraging a reference terminology like SNOMED. @darius and some GSOC students put together a way to leverage the REFERENCE-REFERENCE maps (hierarchy) to perform a subsumption query from a SNOMED CT code. For example, “Get me all patients with any form of DIABETES MELLITUS”. This would look for the SNOMED CT code for Diabetes Mellitus and then find all the SNOMED CT codes that are children of that Diabetes code. Then you can find all the CIEL entries that are mapped either as SAME-AS or NARROWER-THAN those codes.

The problem is that SNOMED is not perfect and has some weird behaviors. For example, patients with Diabetic retinopathy do not fall under Diabetes Mellitus, but under a separate SNOMED tree… which brings up the second answer. CIEL and OCL intend to distribute groupers/value sets/indicators. These will include all the relevant concepts for a given parent concept. These would work like convenience sets and would allow you to quickly pull a query together for a specific use case. These are not in CIEL yet (except for a few things like certain drug classes), but we intend to start with commonly used ones such as for HIV reporting. They will likely be atomic in nature rather than complete indicators. For example, an indicator might be for diabetes patients who have hemoglobin A1c readings over 7%. CIEL would distribute a group/value set for the “diabetes patients” and another for "hemoglobin A1c tests resulting in percentages. It would be up to the report writers to figure out how to calculate the actual indicator from these groups.

This is a good interim solution, but does not handle what happens when the dictionary changes (new items get added that should be part of the report). You would need to regularly check the original query which created the appropriate list and then add the reference map when it was missing. This is what the CIEL groupers would hope to avoid in the future.

I did work on this with Jenn Parise, but we didn’t quite get it to the point where I would recommend it out of the box. This was the project and this is the documentation of what we built. Feel free to take a look and see if this is valuable.

Thanks all! This is a great help. Let me get my head around it and come back with any questions we move forward.

Following up on the option of creating these aggregate reports by leveraging a reference terminology like SNOMED: Theoretically, is it similarly possible to set up Reference_Reference_Map to ICD-10 using CIEL, the way that the GSOC project began to set it up to leverage SNOMED mappings?