Levels of use and extensibility

December 11, 2009 by user

EA=External application

1         Usage levels of the HealthFlow system

A higher level can always utilize strategies and applications from all lower usage levels.

During the last 6 years of developing the HF system, each usage level was populated with a set of EAs, however each level can evolve and have additional capabilities added.

1.1      Simple

EA Simple set

e.g., FindDiagnosis, ReverseFindDiagnosis,JumpToLastEHREvent

Current Position pointer concept built into all RGEAs calls (“strict pointer mode”)

Pointer jumps operations are necessary

Extremely limited use of variables

1.2      Advanced

EA Advanced set – more control over

e.g., FindEvent

Frequent use of variables

Pointer behavior can be modified to fit user needs (both strict and custom pointer mode possible)

Ability to export data using the data export tool (previous name “RGAdmin”)

1.3      Ultimate

EA Ultimate set

e.g., FindEventAdvanced  (level 8), FindandAnalyze

ability to do compute sums and averages on numerical data

use of HealthFlow Ontology to generate valuesets

use of loops and calculated nodeIDs

2         Extending the HealthFlow system

2.1      Extended usage level

Custom EA going after external data (requires collaboration with a programmer)

Updates

December 7, 2009 by user

We presented HealthFlow:
See http://www.marshfieldclinic.org/birc/pages/default.aspx?page=mcrf_birc_pubs_presentations
or
http://www.marshfieldclinic.org/proxy/MCRF-Centers-BIRC-RGuide-CRI_Huser_54×36_013-v5-SMALL-paper.1.pdf

RetroGuide: Upgraded to new engine version 2.5 (TWS community)
FlowGuide: now in validation stage of several scenarios.

Some documentation is now available at http://code.google.com/p/healthflow/

Names

November 5, 2009 by user

The analytical framework now has many components and this is the overview:

Overall system: HealthFlow system
explanation: shorther version for “Healthcare Workflow” = a system which is using a workflow technology (namely a worklow engine and editor) within an EHR system (in health care in general) 

components:
RetroGuide – retrospective execution of a scenario
FlowGuide – prospective execution of a scenario

HealthFlow system has an ontology model, a core instance of this ontology model (an internal ontology) and a browser for terms within this intology (the browser is called OntoBot)

Architecture:

scr 2009-11-05, 08_24_38

Upgrade of our editor

September 25, 2009 by user

There is a new editor from Enhydra.

Many nice improvements.

scr 2009-09-24, 09_40_22

BPM engine (workflow engine) as you decision support engine

August 11, 2009 by user

It is hard to buy stand alone DSS engines. There is no GLIF or SAGE or Arden syntax engine on the market.

You can buy a workflow engine though and the XPDL flowcharts are very similar to task-network models standards (SAGE and GLIF).

Here is a demo screenshot:

scr 2009-08-11, 12_53_31-3

XPDL file(s)

July 17, 2009 by user

The linked file(s) do not represent all the processes we work on but give us a chance to send an link in an email with at least some example.

links

all002.xpdl

(for optimal viewing: in Jawe 1.4, go to File – Configuration – Object sizes and change activity width to 110 and activity height to 60)

(this file contains library of RGEA – external apps called from within the nodes)

Use JaWE 1.4 to open them. Installer can be found here:

link

There are some TIBCO examples.

tibco

Research alerts

July 14, 2009 by user

Imagine this:

waiting room kiosk message:  “Based on your EHR profile, you qualify for the following clinical trials:

1. heart failure study

2. chronic back pain study

Or this:

next kiosk screen: Thank you for expressing interest in participating in chronick back pain study. Please answer the following 2 questions for further eligibility determination:

1. Our EHR records indicate one acute attack of back pain. Did you have other episodes (undocumented  in EHR record tethered to “NextGen” Clinic ?  (YES    NO)

2. Did you take any OTC medication for back pain in the last 6 months?   (YES  NO)

Arden syntax decision support modules were used to notify research coordinators about elligible patients in the past.

RetroGuide is an attempt to adress this problem as well.

See related post here : http://healthcareworkflow.wordpress.com/2009/06/16/retroguide-i2b2-and-stride-comparison

RG progress update

June 25, 2009 by user

The summary report has now the flowchart and links to xpdl files.

Also the complexity of our flowcharts is growing.

scr 2009-06-25, 10_29_40

RetroGuide and other DSS projects

June 18, 2009 by user

There is a good article about a DSS engine: (SAGE)

P. Ram, D. Berg, S. Tu, G. Mansfield, Q. Ye, R. Abarbanel, and N. Beard, “Executing Clinical Practice Guidelines Using the SAGE Execution Engine,” Medinfo, vol. 2004, pp. 251-5, 2004

RetroGuide can model DSS logic and execute it retrospectively(with some contrains) and prospectively.

For example Ram’s example here

scr 2009-06-18, 11_55_32

would looke like this in XPDL (TIBCO – for colors):

scr 2009-06-18, 11_54_39

SAGE’s decision maps can be similarly represented as subflows. Rule-in and Rule-out contructs would require additional flowchart logic, but it could be generally done.

RetroGuide, i2b2 and STRIDE comparison

June 16, 2009 by user

i2b2 (repository cell) is a way to query data.

STRIDE is a query tool done at Stanford.

RetroGuide tries to go beyond cohort estimation and provide a query tool (with a friendly flowchart query metaphor) to not only query data but to do procedural logic:

e.g., test decision support logic, research eligibility protocol.

RetroGuide also goes beyond the underlying DBMS query technology (SQL in both i2b2 and STRIDE) by providing a layer where any technology can be combined with any technology (SQL combined with R, WSDL webservices, Java, etc.)

RetroGuide design objective was to have “retrospective/prospective” switch option. Which means: test your idea retrospectively, and with a switch of a button – change it into prospective logic.

e.g., research alerts functionality.

 

See the screenshots:

RetroGuide screenshot shows implementation of an Arden Syntax rule – pasted below.

scr 2009-06-16, 09_23_34-i2b2

scr 2009-06-16, 09_11_12-stride

scr 2009-06-16, 09_29_37

Arden Syntax MLM translated above:

KEY PART:

logic:
    if (eos is not number) or (inpatient_case is null) then
      conclude false;  /* pt must be inpt with valid eos count */
    endif;
    if eos > eos_upper_normal_limit then  /* elevated eos in diff */
      conclude true;
    else
      conclude false;
    endif;

 

Full MLM:

maintenance:

  title: Eosinophilia Research Screen;;
  filename: EOSINOPHILIA_1;;
  version: 1.06;;
  institution: Columbia-Presbyterian Medical Center;;
  author: 
  specialist: ;;
  date: 1995-04-24;;
  validation: research;;

library:

  purpose: To send a log of inpatients with a CBC differential
    signifying eosinophilia (> 6%).  The study investigates the
    association between eosinophilia and CAD;;
  explanation: ;;
  keywords: ;;
  citations: ;;

knowledge:

  type: data-driven;;

  data:
    cbc_storage := event {‘32506′,’41903′};
    eos := read last {‘evoking’,'dam’=”PDQRES2″,
      ‘constraints’=”C****”; ; ‘32925′};
    inpatient_case := read last {‘dam’=”GYDAPMP”,
      ‘constraints’=” IA**”; “HCASE”; “K”};
    eos_upper_normal_limit := 6;
    location := read last {‘dam’=”GYDAPMP”; “HLOC”; “HLOCNURS”};
    email_dest := destination {‘email’,
      ‘name’=”xxxxx@columbia.edu“};
;;

  evoke: cbc_storage;;

  logic:
    if (eos is not number) or (inpatient_case is null) then
      conclude false;  /* pt must be inpt with valid eos count */
    endif;
    if eos > eos_upper_normal_limit then  /* elevated eos in diff */
      conclude true;
    else
      conclude false;
    endif;

;;

  action:
    write “Eos = ” || eos || “% on ” || time of eos ||
          “\nLocation = ” || location
    at email_dest;
;;

end: