Skip to Navigation | Skip to Content

openEHR-DecisionSupport mailing list archives

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

GELLO v.1 as a candidate openEHR CDS language - message reduced to <40kb


Dear CDSSers

I am a newbie on this list but have followed and worked with archetypes for a little while now. I would like to talk about the strongly typed, OO, declarative CDS language called GELLO. This is a HL7 standrd that wasn't really ever implemented. OpenClinical gives a fair treatment of the topic. Our group (Medical Objects) has implemented it after some work on resolving ambiguities in the BNF and the development of various editors and interpreters such as a GELLO v.1 editor/ interpreter; an ADL editor (that saves to ADL 1.2, basic xhtml and en13606), a GLIF editor, an existing Snomed- CT server of ours and a virtual medical record (vMR) layer.

We use GELLO almost as a scripting language to calculate values on nodes, to initialise values, to allow node visibility to preserve screen real estate and to calculate reference ranges and autocoments for pathology systems. It is useful for querying (and processing) data retrieved from EN13606 archetypes which we have persisted in HL7 v2 and abstracted to a simple vMR. An example of this would be in a full blood count (or CBC) lab archetype where many elements of type quantity/physical quantity are derived from other values.Indeed we retrieve patient deomgraphic data from the PMS for things like age and gender in 'invariant' ELEMENT node calculations. We propose and have implemented functionality in the GELLO class hierachy for SCT validation and implies methods, as well as general property retrieval on Snomed Descriptor calasses which are a type of Coded Value.

A pathology system built on this technology is real, deployed and used every day by an Australian pathology lab. It uses about 40 lab archetypes which I would like to contribute in openEHR ADL 1.4 form to the CKM. While I am waiting for the new pathology archetypes to specialise or comment on, I just don't know how to do our existing functionality with AQL. Is A-Path capable , what is CLIPS?

for example eGFR (a derived value which indicates renal function) eg:

                   Let o:observation = parameter[1]

                   Let Gender = Patient.gender
                   Let Age: Integer =
                   patient.age_at(factory.absolutetime("0").now())

                   // get the creatinine level value from higher in the
                   tree
                   Let Cr: Real =

                     if o.isdefined() then
                        o.find_observation('1.1.9').value_asPQ().value
                      else
                        0.0
                      endif

                   //do the agorithm and return the PQ

                        Let x: Real = Cr*0.0113
                        Let y: Real = Age


                     Let Result: Real =
                         If y > 17.0 then
                   186*x.power(-1.154)*y.power(-0.203)
                         else  0.0
                         endif

                      Let FemaleResult: Real = Result*0.742


                   if Gender = 'M' then Factory.PhysicalQuantity
                   (Result, 'mL/min/1.73m2')
                   else  Factory.PhysicalQuantity (FemaleResult,
                   'mL/min/1.73m2')
                   endif


 Ok its a it ugly but hey I did it and I am a clinician.

You may have noticed the term GLIF earlier in this post - this higher level guideline vehicle uses GELLO and archetypes for an Australian Govt funded demonstration project around the management of lymphoma, a complex use case again.

happy to discuss further. I think GELLO is a candidate along with AQL and A-Path. Perhaps they complement each other. The BNF for GELLO v1.x is available from the www.medical-objects.com.au website .

Best regards


Peter Scott
GP and health informatician