GELLO code will be used to determine the reference range for a Physical Quantity. This functionality is crucial for the pathology domain. Patient characteristics such as age, gender, weight, pregnancy status and fasting status can be used in the GELLO algorithm. Reference Ranges can be simply set by typing the value in the ReferenceRange attribute and setting HasReferenceRange to True. However when the reference range changes depending on retrieved patient state data (from the virtual medical record (vMR) for example) you need to use GELLO in OnCalcReferenceRange, not the ReferenceRange attribute.
We'll keep it nice and simple and build on earlier work with our fruity friend again.
Open CEN-Apple.v1.xml one more time. What we are going to do is write GELLO that goes in the OnCalcReferenceRange tag on the RHS. As reference ranges normally apply in the human pathology domain, the GELLO that can describe them is really meant to be the result of GELLO query and processing on patient data such as age and gender, available from the PMS through the V.3 vMR interface. So for our apple example, it is best to specify a reference range for a 'humanoid' apple which will have some given date of birth.
Put the following GELLO v.1 code in the OnCalcReferenceRange attribute, for the 'Weight' node:
Context CEN_Apple_v1::ArchetypeRoot Let days28: PQ = PQ{value=28*24*60*60, unit='s'} Let dob: TS = vmr.patient.dob Let dobPlusFourWeeks: TS = dob + days28 Let isBabyApple: Boolean = dobPlusFourWeeks > factory.TS('now') Let result: String = if isBabyApple = true then '30-70' else '150-200' endif result |
Cut and paste the following HL7 file text in its entirety into any text editor and save the file somewhere on your computer as a text file named 'BabyApple.oru'
MSH|^~\&|EDITOR^EDITOR:Unknown^L|MO^123^GUID|||20070424153908+1100||ORU^R01|XX04241539656.7589|P|2.3.1^AUS&&ISO^AS4700.2&&L|||||AUS PID|1||4024728675^^^AUSHIC^MC||Apple^Baby||20210619|M|||1 Woodgrove Lane^^Anytown^QLD^4556 |