observation series for v3 a way to represent table-like, multi-dimensional observations in hl7’s...
TRANSCRIPT
Observation Series for V3
A way to represent table-like, multi-dimensional Observations in
HL7’s Version 3.
Presented by
Barry D. Brown
Mortara Instrument, Inc.
September 30, 2002
Background
• FDA wishes to receive annotated ECG’s in support of New Drug Applications.
• Work is underway to create clinical trials information models in HL7 V3 (RCRIM TC, CDISC).
• Need a way to cast ECG’s and similar types of information in HL7 V3 information model.
Single-valued Observations
• The value attribute of Observation has the data type ANY.
• ANY can hold a wide range of values.
• It is clear how to communicate single-valued observations in V3, but not so clear when multiple values are observed.
Multi-valued Observations
• An Observation instance has one cd attribute, so all values must represent the same type of observation.
• Generic collections like BAG<>, LIST<> and SET<> can be used for the value attribute.
• When LIST<> is used for a multi-valued observation, call it an Observation Sequence.
Example
• Cardiac stress exam.• Technician asks patient
perceived level of exertion at different points in the exam.
• Technician records those observations in a list.
• This is an Observation Sequence with a cd for perceived exertion.
Perceived Exertion
(Borg)
7
10
10
13
15
15
17
19
Correlated Sequences
• A single observation sequence communicates an ordinal relationship between the values, but we don’t know if it’s temporal or something else.
• Correlating each value in the list with some other type of observation gives more information.
Example Continued
• Technician observes the clock in the room and records the time in a parallel list.
• There are 2 observation sequences, and the values in each row are correlated.
• Call this Correlated Observation Sequences.
Perceived Exertion
(Borg)
Time Of
Day
7 10:02
10 10:10
10 10:12
13 10:13
15 10:15
15 10:20
17 10:22
19 10:27
Table-like Observations
• A set of observations that can be represented in a table can be Correlated Observation Sequences.
• Each column is an Observation Sequence.
• Each row is a correlation between the values of each sequence.
Example Continued
• Observe HR and BP.
Perceived Exertion
(Borg)
Time Of
Day
Heart
Rate
(BPM)
Systolic
BP
(mmHg)
Diastolic
BP
(mmHg)
7 10:02 75 120 72
10 10:10 94 130 77
10 10:12 108 148 84
13 10:13 116 156 93
15 10:15 124 163 101
15 10:20 154 175 108
17 10:22 163 189 115
19 10:27 168 202 123
- 10:35 145 176 118
- 10:50 108 164 107
- 10:58 89 157 92
- 11:04 83 154 85
- 11:10 78120 142 78
Example Continued
• Observe ECG Leads.
Test time
(ms)
Lead I
(µV)
Lead II
(µV)
Lead V5
(µV)
Other leads
0 33 54 35 …
2 34 67 37 …
4 33 93 39 …
6 68 115 72 …
8 102 124 106 …
10 155 143 157 …
12 145 165 147 …
14 104 147 106 …
16 57 107 59 …
18 12 78 15 …
20 -43 46 -42 …
22 -78 23 -75 …
… … … … …
Correlated Sequences Model
ObservationEventSequenceclass_cd* <= OBSmood_cd* <= EVNid:SET<II> (sequence unique identifier)cd:CD (sequence type)txt:ED (text/plain comments)independent_ind:BL =falsevalue:LIST<ANY> (sequence of values)method_cd:SET<CE> (sequence collection method)
CorrelatedObservationSequencesEventclass_cd* <= OBSCORmood_cd* <= EVNid:SET<II> (correlation unique identifier)cd:CD (correlation type)txt:ED (text/plain comments)effective_time:IVL<TS> (acquisition time)method_cd:SET<CE> (method of correlating sequences)
1..* srcActName
1..1 tgtActName
(has component)
anActRelntype_cd*<= COMP
0..* srcActName
0..* tgtRoleName
(originating device)
aParticipationtype_cd*<= ODV
CMET: (AGNT) R_ResponsibleDevice
[universal](COCT_MT040200)
ObservationEventControlVariableclass_cd* <= OBSmood_cd* <= EVNcd: CD (control variable type)value: ANY (variable value)independent_ind:BL =false
0..* srcActName
1..1 tgtActName
(has component)
anActRelntype_cd*<= COMP
0..* srcActName
1..1 tgtActName
(has component)
anActRelntype_cd*<= COMP
Observation Series
• Multiple tables (correlated sequences) observed in the same frame of reference can be grouped into an Observation Series.
• Sequences of the same type (cd) appearing in different tables can be compared.
• E.g. relative time, ECG electrode placement, patient position…
Example Continued
Record relative time so observations can be compared with ECG.
Perceived Exertion
(Borg)
Test time (ms)
Heart
Rate
(BPM)
Systolic
BP
(mmHg)
Diastolic
BP
(mmHg)
7 120000 75 120 72
10 600000 94 130 77
10 720000 108 148 84
13 780000 116 156 93
15 900000 124 163 101
15 1200000 154 175 108
17 1320000 163 189 115
19 1620000 168 202 123
- 2100000 145 176 118
- 3000000 108 164 107
- 3480000 89 157 92
- 3840000 83 154 85
- 4200000 78120 142 78
Observation Series CMET
ObservationEventSequenceclass_cd* <= OBSmood_cd* <= EVNid:SET<II> (sequence unique identifier)cd:CD (sequence type)txt:ED (text/plain comments)independent_ind:BL =falsevalue:LIST<ANY> (sequence of values)method_cd:SET<CE> (sequence collection method)
CorrelatedObservationSequencesEventclass_cd* <= OBSCORmood_cd* <= EVNid:SET<II> (correlation unique identifier)cd:CD (correlation type)txt:ED (text/plain comments)effective_time:IVL<TS> (acquisition time)method_cd:SET<CE> (method of correlating sequences)
1..* srcActName
1..1 tgtActName
(has component)
anActRelntype_cd*<= COMP
ObservationSeriesEventclass_cd* <= OBSSERmood_cd* <= EVNid:SET<II> (series unique identifier)cd:CD (series type)txt:ED (text/plain comments)
1..* srcActName
1..1 tgtActName
(has component)
anActRelntype_cd*<= COMP
ObservationSeries(UUDD_RMnnnnnn)
Correlated Observation Sequencesobserved within a stationary referencesystem.
0..* srcActName
0..* tgtRoleName
(originating device)
aParticipationtype_cd*<= ODV
CMET: (AGNT) R_ResponsibleDevice
[universal](COCT_MT040200)
ObservationEventControlVariableclass_cd* <= OBSmood_cd* <= EVNcd: CD (control variable type)value: ANY (variable value)independent_ind:BL =false
0..* srcActName
1..1 tgtActName
(has component)
anActRelntype_cd*<= COMP
0..* srcActName
1..1 tgtActName
(has component)
anActRelntype_cd*<= COMP
Region
• Secondary observations can be made from other observations.
• Series observations contain many observation values.
• Need a way to identify subsets of the Series from which the secondary observation is made.
• Call it a Region.
Region Boundary
• Each Region is defined by a set of boundaries, one for each observed Sequence type.
• The Region Boundary cd is the same as the Observation Sequence cd.
• The Region Boundary value defines the interval inside the Region.
Region CMET
RegionEventCriterionclass_cd* <= REGNmood_cd* <= EVN.CRTid:SET<II> (region unique identifier)txt:ED (text/plain comments)
RegionBoundaryEventCriterionclass_cd* <= REGNBmood_cd* <= EVN.CRTcd:CD (boundary’s sequence type)independent_ind:BL =falsevalue:IVL<ANY> (range of sequence values included in region)
1..* srcActName
1..1 tgtActName
(has component)
anActRelntype_cd*<= COMP
Region(UUDD_RMnnnnnn)
Description
Reference:Observation SeriesCMET
1..1 srcActName
0..* tgtActName
(region of,subclass of ActRelationPertains)
anActRelntype_cd*<= ?
Observations on Regions
• Secondary observations can be made on the Regions within the Series.
• No special Observation class is required.
• Use the “supported by” relationship.
Observations on Regions
Observationclass_cd* <= OBSmood_cd* <= EVNcd:CD (observation type)txt:ED (text/plain comments)value:<ANY> (observation value)
Reference:Region CMET
1..1 srcActName
0..* tgtActName
(supported by)
anActRelntype_cd*<= SPRT