Medication Reason Codes

Skip to first unread message

Julian Sniffen

Jul 10, 2018, 8:07:14 AM7/10/18
to Cerner FHIR Developers

My app is attempting to determine if a patient is being treated for certain conditions. For example, whether they are currently being treated for Diabetes.

The documentation specifies that the MedicationStatement resource provides a reasonForUse code that I could map to a the condition I was interested in (i.e. Diabetes).  However, all of the test data I've looked at does not have reasonForUse codes in the MedicationStatement resources.

The alternative that I came up with was:
1. query all conditions and determine if patient has diabetes
2. query all medications and determine if patient is taking a medicine that is known to treat diabetes
3. If both of these are true, I assume the patient is being treated for diabetes.

This seems to work, however it is a very expensive query, and I am hoping for a simpler way.

Is there a recommended way to find out this type of data? Do MedicationStatements in production have reasonForUse codes filled out?

Thanks for your help,

kevin maloy

Jul 10, 2018, 9:46:00 AM7/10/18
to Cerner FHIR Developers,
Hi --

I don't know about reasonForUse ...  I imagine that it is not always filled out or correct.

I've actually had the same question about your alternative approach for a time.

Sometimes you can find guidance in by searching for administrative data studies and seeing what codes (icd10, icd9) they used.

For example in diabetes ...

At the end of the day, nothing is perfect, there are always false positives and false negatives.  Also, your search is only as good as how many codes are returned (ie if one hospital system only has 2 codes on that person and neither is for DM then what does that mean?)

I've started trying to put together some of the codes (and their sensitivity/specificity) at ... 

I think everyone is focused on getting data out through REST APIs, but having the data answer questions is another thing.

The other way to think about it is if you are making this "app" for some performance measure (like MIPS) ... if so, use the CMS definition.

Hope that helps a little,

You received this message because you are subscribed to the Google Groups "Cerner FHIR Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To post to this group, send email to
To view this discussion on the web visit
For more options, visit

Mark Butler

Jul 10, 2018, 1:29:45 PM7/10/18
to Cerner FHIR Developers
As Kevin mentions, different systems/implementations could see different ways of mapping patients to conditions. I'm working with the same thing right now. Though in my situation I'm only working with one I have thought about how I might manage the situation if the apps I develop get utilized in the real world. 

Anyway, what I came up with is that the criteria for the searches should be configurable. Use something like a resource file or a lookup database for the arguments. Additionally, you might need to look in different places and not just different codes. Then you'd need a different code path for each situation.

BTW: If you come up with a decent way to determine if a person is Diabetic please let us/me know. I wrote a Framingham Coronary Heart Disease Risk Score Calculator application as an example/proof of concept/training/learning device and one key part I couldn't get via Fhir was if the person was Diabetic or not.

MArk B.

Julian Sniffen

Jul 11, 2018, 9:28:12 PM7/11/18
to Cerner FHIR Developers
Thanks for your comment; it's really helpful.

Our team has compiled a list of codes and coding systems that could be used to reference diabetes.  In order to determine if a patient has diabetes, we use the Condition resource and return all of their valid conditions.  We then iterate over the conditions, checking for a match against our list of codes.

The solution is neither elegant nor efficient, but it has worked against all of the test patients that Cerner provides.
Reply all
Reply to author
0 new messages