Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Another way to access tabular data is to embed employ a lookup table structure in a package. This example takes various obstetric ultrasound measured parameters and looks up a calculated gestational age.

...

Then the table declaration:


--

...

Table

...

Declaration

Let

...

FLToGestationalAgeTable:
 

...

 

...

 

...

 

...

FLToGestationalAgeTableType

...

=
 

...

 

...

 

...

 

...

 

...

 

...

Sequence{
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.0,

...

AgeinWeeks

...

=

...

12.8},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.1,

...

AgeinWeeks

...

=

...

13.1},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.2,

...

AgeinWeeks

...

=

...

13.4},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.3,

...

AgeinWeeks

...

=

...

13.6},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.4,

...

AgeinWeeks

...

=

...

13.9},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.5,

...

AgeinWeeks

...

=

...

14.2},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.6,

...

AgeinWeeks

...

=

...

14.5},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.7,

...

AgeinWeeks

...

=

...

14.8},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.8,

...

AgeinWeeks

...

=

...

15.1},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

1.9,

...

AgeinWeeks

...

=

...

15.4},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.0,

...

AgeinWeeks

...

=

...

15.7},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.1,

...

AgeinWeeks

...

=

...

16.0},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.2,

...

AgeinWeeks

...

=

...

16.3},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.3,

...

AgeinWeeks

...

=

...

16.6},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.4,

...

AgeinWeeks

...

=

...

16.9},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.5,

...

AgeinWeeks

...

=

...

17.2},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.6,

...

AgeinWeeks

...

=

...

17.6},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.7,

...

AgeinWeeks

...

=

...

17.9},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.8,

...

AgeinWeeks

...

=

...

18.2},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

2.9,

...

AgeinWeeks

...

=

...

18.6},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

3.0,

...

AgeinWeeks

...

=

...

18.9},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

3.1,

...

AgeinWeeks

...

=

...

19.2},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

3.2,

...

AgeinWeeks

...

=

...

19.6},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

3.3,

...

AgeinWeeks

...

=

...

19.9},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

3.4,

...

AgeinWeeks

...

=

...

20.3},
 

...

 

...

 

...

 

...

 

...

 

...

FLToGestationalAgeMap{FLMeasurement

...

=

...

3.5,

...

AgeinWeeks

...

=

...

20.7}
 

...

 

...

 

...

 

...

 

...

 

...

 

...

}

And

...

finally

...

the

...

code.

...

In

...

this

...

example,

...

the

...

input

...

could

...

have

...

come

...

from

...

an

...

archetype

...

and

...

this

...

section

...

is

...

commented

...

out.


imports iso_21090_datatypes


/*
Let femurLength: Real = If template.Third_Trimester_Growth_Scan
                            .Findings
                            .Fetal_Biometry
                            .Femur_Length_FL
                            .Measurement
                            .oclIsDefined() then
                    template.Third_Trimester_Growth_Scan
                            .Findings
                            .Fetal_Biometry
                            .Femur_Length_FL
                            .Measurement
                            .value.oclAsType(PQ)
                            .value
                            else null
                           endif
*/

Let femurLength: PQ = PQ{value = 3.2, unit='cm'}


If (femurLength.value >= FLToGestationalAgeTable.first().FLMeasurement) and (femurLength.value <= FLToGestationalAgeTable.last().FLMeasurement) then

  FLToGestationalAgeTable->select(o | femurLength.value >= o.FLMeasurement).last().AgeinWeeks.toChar()

else
  ''
endif


Here is how that looks in Result Explorer:

Image AddedThe result in the data explorer is this: