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