@dkayiwa I donāt think so. @ssmusoke references in-app decision support.
For instance it could be about introducing useful UI changes to a patient file to which special attention should be given because of abnormal values (whatever they are.)
Awesome to hear about the interest in this. Yes, @dkayiwa is right; we planned for this work to end up being housed in the Analytics Engine Squad (not necessarily saying it has to happen this way, and weād hope to see more people join that squad specifically with CDS interests). Idea was that weād be able to feed on live-time data from the Analytics Engine which would run in parallel to the frontend (@burke@akimaina@bashir anything to add about that idea?). But ideas are just ideasā¦ so next stepsā¦
@jennifer was thinking we could kick this off with a Lightning Talk soon - @ssmusoke would you be interested in that, and in demo-ing how your team is handling CDS so far? We could use that as our kick-off to start clearly laying out the requirements and next steps.
Your timing is awesome @ssmusoke because both @ddesimone and @paulamendola have recently expressed interest in demo-ing how they are handling Decision Support. Probably would be helpful to see how AMPATH handles it as well in the backend (@jdick) - I think thereās a whole combo happening throughout the OMRS community of custom-build rule building tools and mostly hard-coded rules.
Out of nerdy curiosity - @ssmusoke has your team looked at using CDS Hooks? (https://cds-hooks.org/) Iāve been hearing this term used in the context of āone day it would be nice toā¦ā so Iām just curious.
CDS Hooks is definitely in the āone dayā¦ā category. It seems like a fundamentally solid architecture, but AFAICT, hasnāt really been implemented anywhere and really only has one well-defined āhookā (patient-view).
Where/how to define CDS rules? Is CDS-Hooks a standard, is there any other standards?
On which data to run the CDS rules: within OpenMRS itself (looks like thatās the Bahmni approach), or on transformed data out there in the analytics engine?
If the latter, how does the analytics engine feed its outcome back to OpenMRS in a timely and robust way?
Where exactly to feed the outcome in OpenMRS?
How to display usefully the outcome alert/notification on the UI?
How to silence/acknowledge/ā¦ the outcome alert/notification?
Hi. There are lots of things to talk about and lots that can be done, including complete solutions that are very complex and more practical starter solutions that are pretty simple. Iād be happy to co-facilitate a couple of discussions or threads to make this happen. A few notes:
In-app CDS includes alerts (to stop errors, such as bad dosing), reminders (to let you know of missing items, like a vaccination thatās due), order sets, smart input forms that reconfigure themselves for the current patient, intelligent data summaries, and a few others. Itās going to be most useful and easiest to start with alerts and reminders ā they have similar UIs (pop-ups for the most urgent, and notification lists for the rest).
Thereās a small number of triggers (places in the data workflow where you need to check rules) that will cover most use cases. Triggering on new orders, new lab results, new ADT events, and chart open (for reminders) goes a long way.
Similarly, a small number of logic āprimitivesā (compare result or observation to value, check if patient is on med, check if patient has a particular condition, check if patient has had a particular treatment) will cover most needs. Thereās only about 10 or 12 main types, and itās fairly easy to design a usable rule builder if you build around these building blocks. I havenāt seen the Analytic Engine, so I donāt know if thatās intended to be a rule builder.
CDS Hooks is nice for connecting different types of systems together, and can be used as an underlying framework, but doesnāt add much to basic functionality. If you want a standard more appropriate for rule building, the current favorite is Clinical Quality Language (CQL), although we may not need to go into all of its detail at the start.
Agreeing with @jteich here. My team has been doing a lot of CDS in US-based systems of late, and I think we would be better off in OpenMRS to aim for adoption of an appropriate CQL engine and use CQL for doing CDS. We could bring Bryn Rhodes into this discussion with his work that he is doing to turn the WHO clinical guidelines into machine readable guidelines for ingesting into tooling like OpenMRS.
If we can get some kind of discussion around CQL going with Bryn Rhodes, I think that could be quite valuable to the community. Weāve discussed CQL a bit on the analytics engine calls, but there are some questions about the performance characteristics of CQL relative to the volume of data we need to execute it against.
@grace, why donāt you and I get together by phone and set up some agenda items and times to get this group together at a design meeting or two, and see if we can make some headway as a group on a common and effective CDS capability. Separately, we can bring in Bryn for CQL conversation.
Hey @jteich! I thought that Iād give @grace a hand with organizing a Lightning Talk or a Design Forum around this. Since those sessions each have a slightly different purpose, Iāve started picking @graceās and @ibacherās brains about what theyād like to see come out of each. And it sounds like @janflowers has a good sense of what Bryn has presented in the past and what could be particularly valuable for us. Iād love to hear your ideas. Why donāt we try to connect later this week?