Decision Support
OMRS10 Decision Support
Why did people come to this session?
How do I deploy decision support in OpenMRS?
What are other people doing with CDSS in OpenMRS
How can we do this easier?
How is it defined?
High value areas where decision support would make a big impact
How to evaluate
Integration with external systems
How does CDSS relate to Business Intelligence?
Dyanmic forms
What is CDSS?
Giving information to help make a decision
Warnings and alerts
Can be given to clinicians and to patients
Business intelligence also seen as decision support but at the meta level for the facility (differentiating from clinical decision support)
Enforcing standards of care
Workflow support (ensuring that certain data get gathered, and that processes are actually working
Make it easiest to do the right thing
How are people using decision support?
HTML form module has added support to gray out portions of the forms when certain values are picked
AMPATH generates reminders for different patients (CD4 count overdue) by analyzing different observations using the logic service. Use a parser for ARDEN syntax
Big value for AMPATH will be to get other people on board to take advantage of the community
Patient flags module used by Albert Schweizer hospital in Haiti
Baobab implemented a weight graph with BMI, Wt/Age, Ht/Age, Wt/Ht with alerts for malnourishment
Growth chart module is doing the same thing as Baobab, using CDC graphs
PB: Chica module analyzes patient data and comes up with top questions that a clinician might like to know, can scan a paper to collect the info
Overview of the logic service:
The token (derived concept) is another level of abstraction that OpenMRS can know about, such as gender or CD4 count. You can ask the logic service about a token and get a result back, which looks like an observation. Rules can then consume other rules.
Better to return the piece of information that generates a result than the result itself, as it gives you more flexibility about how the information is displayed
If the patient is diabetic, what is the result that generated that information?
It should be easier for non-programmers to use this to get information from OpenMRS
We could show treatment failure for an HIV patient in a few ways
A big SQL statement, or
Nested logic rules (HIV positive, on treatment, treatment failure…)
The logic service has an index date under the hood, which can allow you to look at the patient's BMI over time
In a simpler example, could create logic rules to find out the correct appointment date if data is coming in from multiple sources
With a Groovy compiler, could take Java code and refine it to be more clinician-friendly.
Inference engine could feed data into data warehouse and allow you to get instant answers to complex queries
Right now, can write MLMs and Java classes with logic module in OpenMRS 1.6
In OpenMRS 1.9, will have a rules editor with Groovy support allowing you to do Java or Groovy right into the web interface. A quick win would be to allow you to embed a SQL function.
Questions on logic:
How can you display it?
Logic not designed to be everything to everybody. Built as the evaluator that gives you the result, modules can be built around it to visualize the data.
What is the strategy for using logic? Is it for clinicians or patients?
Should be generalizable, be able to generate alerts for patients and community healthcare workers
Where would people like to use decision support?
Inpatient care to help healthcare workers. Example, give a clinician a list of people with scheduled appointments.
Use it to score whether a woman is at risk of significant complications for a pregnancy in Nigeria
Use this to calculate important information for reporting, such as calculate initial states for TB patients from observations on a form
Get information to patients using phones
To dos and takeways
Share MLMs that people have built, publish it on the OpenMRS mailing lists
Put these on the wiki page
Be careful about what data is needed to make a decision. If you don't have all the data, the logic rules can look like a fool or even harm someone. Aim at low-hanging fruit.
Organize people who are interested in evaluation of decision support