Date: Fri, 29 Mar 2024 21:33:00 +1000 (AEST) Message-ID: <903616781.1178.1711711980091@dsp-kbconf-01.ad.medicalobjects.com> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_1177_649064329.1711711980084" ------=_Part_1177_649064329.1711711980084 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Put the downloaded file mowgli_11.exe in a folder called 'Gello= '' for example in C: drive. You can make a shortcut to it if you like= , or pin it to the taskbar. Run it and you should have this:
On the left hand side (LHS) there is a debugging filter which we won't u= se so minimise up that window by adjusting the pane size, and make some mor= e room for the RHS panes as well:
So, looking at the editor now we have a largish workspace area where we = will write GELLO code, a top menu bar, and on the RHS, a Model Explorer, a = Data Explorer and a Results Explorer (in the tabs of the top RHS pane), and= a stack for debugging also. We won't use the Stack viewer very much howeve= r the pane above it is very important so give it some more vertical room.= p>
GELLO is a query language for writing computer executable decision suppo= rt in the health domain. It can access information out of a virtual medical= record (VMR). A VMR is an information model that presents what is us= eful for clinical decision support out of an Electronic Health Record. So t= his will be things like patient age and gender, their past illnesses, opera= tions, medications , allergies etc. GELLO also can perform logic against a = reference terminology such as SNOMED CT which means it can do things like a= sk if the patient has a respiratory disease, without having to type in all = possible codes for all possible respiratory diseases to find out.
Before we get started writing our first piece of code take a look at the= Model Explorer tab on RHS. Unfold on System Packages:
We'll take a look at the bottom two packages. These describe the ISO 210= 90 datatypes that GELLO uses (GELLO is strongly typed) and the HL7 v2 VMR w= hich is the default VMR model - although other VMRs may be used. Unfold on = iso_21090_datatypes, and scroll down and you can see a lar= ge number of types. We will use standard datatypes such as String, Real, Bo= olean (These are in fact in the System package further up = in the last screenshot), and from iso_21090_datatypes - mostly we will use = Concept Descriptor (CD), Physical Quantity (PQ), Timestamp (like a datetime= ) (TS) and the Sequence classes. Codes and code systems get used a lot in h= ealth IT and if you unfold the CD datatype class you can see the attributes= and operations available to this type:
Now fold all that up and have a look at the HL7_v2_VMR_V1 package. If you are a clinician you will recognise this as a fairly comp= rehensive summary of clinical information for a patient. Unfolding on Patie= nt class you can see patients have both gender and date of birth, which are= in turn of datatypes CD and TS respectively.
So lets write our first GELLO. It simply will be querying for a patients= gender.
GELLO can be used in different contexts. Here we will be looking at a si= ngle patient at a time. So in the workspace write:
Context SinglePatient
and hit the Compile button .
What happens? Yes there should be a couple of error messages in a new bo= ttom-most pane. The first message is saying it has no idea what you are tal= king about with the word "SinglePatient"and wants us to specify the model p= ackage that can define it. The best way to do this is to get in the habit o= f adding a line now above the one we have that says:
imports HL7_v2_VMR_V1
Compile that and we are left with the other error message that says in e= ffect , "would you state what it is that you want the code to give you back= " (GELLO is declarative). That's ok for now and this error does not stop th= ings from working.
So what we want is the gender of the patient.
Below this put in a blank line and then type:
patient.
and pause - Code autocomplete will give us some hints:
Choose the gender attribute. [Notice anything else about the code in gen= eral in this screenshot ? - yes, we can collapse the top two lines in= to one single line that specifies the imported package and the context.]
Now compile - all good. Ok we choose the Run button&nbs= p;. [ NB - Not the one on the left of this that = we can use to step through the code for debugging). The normal procedure is= to compile code so that it is syntactically correct, and then run it again= st some test clinical data.
Ok, it wants some test data. Here is a small xml file for us to ge= t started with. Cut and past the following text into a text editor such as = notepad++ and save as firstTest.xml . Then when we run the GELLO c= ode, navigate to where you have this file.
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<singlePatient xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance"
= xsi:noNamespaceSchemaLocation=3D"./iso-21090-datatypes.x= sd">
<patient>
<patientID
root= =3D"1.2.36.174030967"
exten= sion=3D"1234567892"
relia= bility=3D"VRF"
scope= =3D"OBJ"/>
<patientName>
<p= art type=3D"GIV" value=3D"Alice" />
<p= art type=3D"GIV" value=3D"A." />
<p= art type=3D"FAM" value=3D"Someone" />
</patientName>
<dob value=3D"19550621"/&g= t;
<gender code=3D"248152002"=
codeS= ystem=3D"2.16.840.1.113883.6.96"
codeS= ystemName=3D"SNOMED-CT">
<d= isplayName value =3D "Female" />
</gender>
<ssn value=3D"987-65-4320"= />
<address use=3D"WP">
<p= art type=3D"AL" value=3D"1050 W Wishard Blvd" />
<p= art type=3D"CTY" value=3D"Indianapolis" />
<p= art type=3D"STA" value=3D"IN" />
<p= art type=3D"ZIP" value=3D"46240" />
</address>
</patient>
</singlePatient>
And here is the result - we are looking at top RHS of the editor screen:=
That's it for the first tutorial - well done!
Next time we will write more GELLO code using the date of birth; s= ee how to set some test data in place for a GELLO editing session, and intr= oduce the implies method to check for an allergy.