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