V3 Education: Building the HMD
Download
Report
Transcript V3 Education: Building the HMD
V3 Education: Building the HMD
From MIM-to-MOD-to-HMD
Using the tools
George W. Beeler, Jr.
[email protected]
http://www.mcis.duke.edu/standards/HL7/hl7.htm
1/25/1999
© 1999, Health Level Seven, Inc.
1
How we got here
• Developed use cases
• Developed a RIM
• Defined our interactions
• Defined the Message Information Model (MIM)
1/25/1999
© 1999, Health Level Seven, Inc.
2
MIM for this exercise
HL7 Tutorial MIM - January 1999
RIM_0087T
Healthcare_stakeholders
Healthcare_finances
Stakeholder_identifier
id : ST
identifier_type_cd : ID
participates_in
Active_participation
participation_type_cd : ID 0..*
Healthcare_finances
Master_tables
0..*
is_assigned_to
Healthcare_finances
Patient_encounters
1
is_assigned
0..1
participates_in
1
Stakeholder
addr : XAD
phon : XTN
collects
Organization
organization_name_type_cd : CNE
organization_nm : ST
1 standard_industry_class_cd
0..1
takes_on_role_of
has_as_a_subdivision
0..*
is_a_subdivision_of
0..*
has_as_participant
0..*
is_collected_by
Person
birth_dttm : DTM
gender_cd : CNE
marital_status_cd : CNE
primary_name_representation_cd : CNE
primary_name_type_cd : CNE
primary_prsnm : PN
race_cd : CNE
0..*
participates_in
Service_intent_or_order
0..*
filler_order_id : IID
is_entered_at
has_as_participant filler_txt : TX
order_id
0..1 order_placed_dttm : DTM
order_quantitytiming_qt : TQ
placer_order_id : IID
placer_txt : TX
is_an_instance_of
has_as_target
report_results_to_phone : XTN
0..*
intent_or_order_cd : ID
0..1
Collected_specimen_sample
body_site_cd : CE
collection_end_dttm : DTM
collection_start_dttm : DTM
collection_volume_amt : CQ
handling_cd : ID
id : IID
method_of_collection_desc : TX
specimen_additive_txt : ST
specimen_danger_cd : ID
specimen_source_cd : CE
0..*
is_sourced_from
0..1
is_fulfilled_by
Observation_intent_or_order
patient_hazard_code
reason_for_study_cd
relevant_clinical_information_txt
reporting_priority_cd
specimen_action_cd
0..1
has_as_active_participant
is_target_of
is_source_for
0..1
is_target_of
has_as_target
0..*
1..*
0..1
fulfills
0..*
delivers
0..1
Service_event
Patient
has_as_target
0..*
service_desc : ST
0..*
Target_participation
is_instantiated_as
0..1 ambulatory_status_cd
service_event_desc
0..*
has_as_targetparticipation_type_cd : CE
birth_order_number
specimen_received_dttm : DTM is_delivered_during
Healthcare_service_provider
1
is_a_role_of living_arrangement_cd 0..1
1
is_target_of
name : CE
specialty_cd : CNE
Master_service
living_dependency_cd
0..*
0..*
is_target_of
multiple_birth_ind
method_cd : CE
is_performed_at
has_as_target
newborn_baby_ind
method_desc : TX
has_a_primary_provider organ_donor_ind
service_desc : TX
Assessment
preferred_pharmacy_id
target_anatomic_site_cd : CE
0..*
universal_service_id : CE
is_the_primary_provider_for
is_a_role_of
is_a_role_of
0..*
0..1
0..1
0..1
has_as_primary_facility
Individual_healthcare_practitioner
Healthcare_provider_organization
Clinical_observation
desc : TX
abnormal_result_ind : ID
practitioner_type_cd : CNE
1..*
last_observed_normal_values_dttm : DTM
nature_of_abnormal_testing_cd : CE
is_primary_facility_for
clinically_relevant_begin_dttm : DTM
0..1
clinically_relevant_end_dttm : DTM
provides_patient_services_at
is_target_for
Master_patient_service_location
0..*
0..1
observation_value_txt : NM
provides_services_on_behalf_of
addr : XAD
probability_number : NM
0..1
email_address
:
XTN
references_range_text : ST
0..*
id : ID
value_units_code : CE
is_location_for
is_included_in
nm : ST
phon : XTN
is_entry_location_for
1
takes_on_role_of
1
takes_on_role_of
includes 0..1
1/25/1999
1
© 1999, Health Level Seven, Inc.
3
HMD - message structure
Message Elements
1
1
M
1
encounter_classification_cd
1
3
end_dttm
2
M
1
4
expected_insurance_plan_qty
3
M
1
5
first_similar_illness_dt
4
M
1
6
patient_classification_cd
5
M
1
7
start_dttm
6
M
1
8
status_cd
7
M
1
M
1
1
M
1
1
Choice
10
13
22
IPChoice
Tag
N
2
Tag
I
2
Note
Required Value
Conditional
Presence
Note
M
2
9
12
Repetitions
ENC
Data
Field
Domain
Spec.
Inclusion
ENC
Slot Name
Union U1
Slot
1
Segment
Slot Type
/ Tag
Value
Segment or Data Field
Shared Type?
Nesting
1
Structure
Row Number
Segment
Message Structure A01
11
12
13
2
IPE
IPE
14
actual_days_qty
1
R
1
15
estimated_days_qty
2
R
1
2
M
1
M
1
R
1
16
2
PADM
PADM
17
admission_dttm
1
18
admission_reason_cd
2
1/25/1999
© 1999, Health Level Seven, Inc.
555
4
Next steps from MDF 3.1 (Jan 1998)
• Build a Message Object Diagram (MOD)
– Starting from that root class, the committee will step from one
class in the MIM to another by following the relationships
appropriate to the use case. As each class is visited the icon
for an object view is created on the message object diagram.
This process is complete when an icon for each object view
that will contribute some attributes has been placed on the
diagram.
• Build a Hierarchical Message Description (HMD)
– Establish rows for each object view in the Message Object
Diagram
• This is done by transcribing the material from the Message Object
Diagram into the Information Model Mapping portion of the HMD
1/25/1999
© 1999, Health Level Seven, Inc.
5
Next steps from MDF 3.1 (Jan 1998)
• Build a Message Object Diagram (MOD)
– Starting from that root class, the committee will
• step from one class in the MIM to another by
• following the relationships appropriate to the use case.
• As each class is visited
– the icon for an object view is created on the message object diagram.
– This process is complete when an icon for each object view
that will contribute some attributes has been placed on the
diagram.
• Build a Hierarchical Message Description (HMD)
– Establish rows for each object view in the Message Object
Diagram
• This is done by transcribing the material from the Message Object
Diagram into the Information Model Mapping portion of the HMD
1/25/1999
© 1999, Health Level Seven, Inc.
6
Message Object Diagram
Patient_encounter
none
C
Inpatient_encounter
is_preceded_by 1..1
involves 1..1
Patient_admission
Patient
is_a_role_of 1..1
Person[Pt]
Stakeholder[Pt]
is_assigned 1..1
has_a_primary_provider 0..1
Stakeholder_identifier
[Pt]
Individual_HC_practioner
[Prim care phys]
Person
[Prim care phys]
is_a_role_of 1..1
Stakeholder
[Prim care phys]
has 0..*
is_assigned 1..1 Stakeholder_identifier
[Prim care phys]
Patient_billing_account
Encounter_practitioner
includes 1..*
is_participant_for 1..1
Individual_healthcare_practitioner
[Participant HCP]
is_a_role_of 1..1
Person
[Participant HCP]
Stakeholder
[Participant HCP]
is_assigned 1..1
1/25/1999
© 1999, Health Level Seven, Inc.
Stakeholder_identifier
[Participant HCP]
7
Hierarchical Message Description
Message Elements
encounter_classification_cd
n
y
end_dttm
n
y VTS
3
expected_insurance_plan_qty
n
y
Information Model Mapping
CE
2
encounter_classification_cd
1
end_dttm
2
4
expected_insurance_plan_qty
3
Message Elements
12
NM
first_similar_illness_dt
n
y VTS
5
first_similar_illness_dt
4
patient_classification_cd
n
y
6
patient_classification_cd
5
start_dttm
n
y VTS
7
start_dttm
6
status_cd
n
y
8
status_cd
7
CE
CE
9
1
10
Choice
IPChoice
Tag
N
Tag
I
13
22
M
1
Message
Structure
M
1
M
1
M
1
M
1
M
1
M
1
M
1
M
1
2
2 specialization
none
11
2 specialization
Inpatient_encounter
1
13
2
IPE
IPE
1
M
1
3 is_preceded_by
Patient_admission
1
16
2
PADM
PADM
2
M
1
12
End
Choice
24
2 involves
Patient
3 is_a_role_of
generalize
is_assigned
has_a_primary_
3
provider
4 is_a_role_of
3 has
Person [Pt]
1
25
1
32
Stakeholder
Person [Prim care phys]
Patient_billing_account
1
PTP
PTP
3
M
1
1
PCP
PCP
4
M
0,1
ListPTBA
AccountList
5
R
0,M
1
M
1
6
M
42
Stakeholder_identifier
Individual_HC_provider
[Prim care phys]
44
0,1
46
1
47
0,M
53
1
54
2
59
60
61
1/25/1999
2
List
PTBA
PTBA
End List
1
List
Group
ListEP
EncPracList
EncPrac
EncPrac
© 1999, Health Level Seven, Inc.
8
Note
Conditional
Presence
Repetitions
1
Note
Slot Name
ENC
Data Field
Domain
Spec.
Inclusion
ENC
Union U1
Slot
1
Segment
Slot Type
/ Tag Value
Message Structure A01
Segment or Data Field
Shared Type?
1
Structure
Nesting
1
Segment
Row Number
Data Type
Name
Patient_encounter
Optional?
Relationship
1 root
Attrib
Cardinality/
Rep Allowed?
Nesting
Object Views and Attributes
Required Value
Information Model Mapping
Object View
HMD - MOD correspondence
Message Elements
Information Model Mapping
1
Patient_encounter
1
2 specialization
C
none
Tag
12
Inpatient_encounter
3 is_preceded_by
Patient_admission
1
13
involves
1 1..1
IPChoice
N
2
11
Inpatient_encounter
2 specialization
ENC
1
Choice
10
Note
9
none
ENC
Slot
1
Shared Type?
1
Segment
S
D
l
a
o
t
Segment
t
a
Slot Type N
F
/ Tag
a
i
Value
m
e
Structure
Nesting
Patient_encounter
Segment
Row Number
1 root
Name
Optional?
Relationship
Attrib
Data Type
Object Views and Attributes
Cardinality/
Rep Allowed?
Nesting
Object View
Tag
I
2
I
IPE
1
Patient_admission
P
P
PADM
2
A
is_preceded_by 1..1
2
16
2
Patient
1
End
is_a_role_of
1..1
Choice
Person[Pt]
25
1
PTP
PTP
3
1
32
24
2 involves
3 is_a_role_of
generalize
is_assigned
has_a_primary_
3
provider
4 is_a_role_of
3 has
Patient
Person [Pt]
Stakeholder
Stakeholder_identifier
Individual_HC_provider
[Prim care phys]
Person [Prim care phys]
Patient_billing_account
1/25/1999
Stakeholder[Pt]
42
is_assigned 1..1
44
0,1
46
1
has_a_primary_provider 0..1
1
0,M
© 1999, Health Level Seven, Inc.
Individual_HC_practioner
PCP
4
[Prim care phys]PCP
47
Perso
53
1
54
2
has 0..*
List is_a_role_of
ListPTBA
1..1
PTBA
[Prim
AccountL
5 care
P
1Stakeho
[Prim
T care
Patient_billing_account
9
is
Next steps from MDF 3.1 (continued)
– Add attributes
• Underneath each row that represents an object view, the committee
adds rows to contain the attributes that represent data appropriate
for the messages. It adds attributes for all of the interactions that are
described by the HMD.
– Determine the message elements
• The Technical Committee now fills in the center portion of the HMD.
Generally, an object view in the Message Object Diagram will be
type in the message. However, the committee
represented by a segment
type as will
has the ability to combine object views into a single segment
be described. Attributes in the information model are related to
types
data
fields in the message.
– Establish the various message structures that will be used
• NOT COVERED IN THIS TUTORIAL
1/25/1999
© 1999, Health Level Seven, Inc.
10
HOW ???? Tools, techniques
http://www.mcis.duke.edu/standards/HL7/committees
/ methodology-modeling/Rose_tooling/
– AccessTools.EXE
• Self extracting archive of Access97 databases, including the latest
hl7Tools.mdb, which manages repositories and provides reference files
– RoseTre_1011.EXE
• An application that is the primary MOD/HMD tool. This will INSTALL
RoseTree.exe on your system.
– ExImWizard_1011.EXE
• An application to manage movement of models from Rose to the
repository, validation of Rose models, and extraction of WMFs from Rose.
– hl7Rosie_102.EXE
• A utility that assists in setting properties for attributes in a model and for
working with Rose diagrams. Helps in preparing MIMs. This will
INSTALL hl7_Rosie.exe on your system
1/25/1999
© 1999, Health Level Seven, Inc.
12
RoseTree basics
• Creates an in-memory, object representation of a model
– Extracts from a Rose model
– Assembles from a repository
• Methods in the object representation simplify
modifying the software and extending its capability
• Complete representation of meta-model in-memory
allows direct navigation through the model - software
and human
• Provides an interface to support multiple “open”
models and representations
• Has subsumed RosToAcc98 functions.
1/25/1999
© 1999, Health Level Seven, Inc.
13
RoseTree menu correspondence
• File menu
– Refers to whole things
• Models
• MODs
• CMEDs
• Edit menu
– Refers to parts of things
•
•
•
•
1/25/1999
Nodes
Object views
Rows
etc
© 1999, Health Level Seven, Inc.
14
Introducing RoseTree
File menu:
“Files” are external models or
MODs (Rose models, models or
MODs in Access databases)
Open, close save are “typical”
Reload restores the state of a
previously loaded “file”
Up to eight previous files are
remembered.
File open action:
*.mdb - Access repository - If repository holds single model, that model
is loaded. If it holds several, a dialog box is presented to allow
selection of one model to load.
*.mdl - Rose model - Will (a) load Rose, if it is not already open,
(b) load the file into Rose (if Rose does not already have that file
loaded) and then (c) use Rose to extract the information into RoseTree.
1/25/1999
© 1999, Health Level Seven, Inc.
15
Model is loaded
Check to include subject
areas in the tree
Model identifier
Subject areas
Tree window:
Used for browsing a model or MOD
Text window:
Describes element selected in tree
1/25/1999
© 1999, Health Level Seven, Inc.
16
Browsing a model
“Standard” tree controls Expand/collapse
Selecting a node may
“reveal” that it has
children
Can navigate as well with
the keyboard (next slide).
Text
window
provides
RIM
description
and detail
for the
selected
node.
“Resetting” the tree:
1) Menu select File.Reload
2) Select any Class in the
tree and menu select
Edit.Reset to node. This
reloads the tree without
Subject Areas, selects
the class chosen and
scrolls to assure the
class is visible.
1/25/1999
© 1999, Health Level Seven, Inc.
17
Keyboard navigation of a tree
Users can navigate through a tree using the keyboard as well.
UP ARROW and DOWN ARROW keys cycle downward through all
expanded Node objects. Node objects are selected from left to right, and
top to bottom. At the bottom of a tree, the selection jumps back to the top
of the tree, scrolling the window if necessary.
RIGHT ARROW and LEFT ARROW keys also tab through expanded
Node objects, but if the RIGHT ARROW key is pressed while an
unexpanded Node is selected, the Node expands; a second press will
move the selection to the next Node.
Conversely, pressing the LEFT ARROW key while an expanded Node has
the focus collapses the Node.
Pressing the ENTER key while a Node is selected, alternately expands or
collapses a Node.
If a user presses an ANSI key, the focus will jump to the nearest Node that
begins with that letter. Subsequent pressings of the key will cause the
selection to cycle downward through all expanded nodes that begin with
that letter.
1/25/1999
© 1999, Health Level Seven, Inc.
18
MOD - Step one - select the MIM
a) Reload tree with Use
subject areas checked
b) Select the subject area
that contains the MIM
c) Menu select
Edit.Use as MIM
(or right-click on the
subject area)
1/25/1999
© 1999, Health Level Seven, Inc.
19
MOD Step two A,B - Choose the ROOT object
A) Select the root class
B) Select menu:
Edit.Set MOD Root
MOD window identified
by labels, like
Tree starts as Browser for
the MIM
(Later will provide the tree
view of the MOD)
Information window
supports MIM browsing
(Later will be replaced with
two windows - the MOD
construction options, and the
LIFO list of classes visited.)
1/25/1999
© 1999, Health Level Seven, Inc.
20
MOD Step two C,D - Describe the ROOT object
C) Enter Version (optional in
next release)
D) Select Root (message)
cardinality, usually 1..1
1/25/1999
© 1999, Health Level Seven, Inc.
21
MOD Step three - Build MOD
Tree window displays the
MOD as you build it
Options window - make your
choices by selecting a
row in this window
When needed, will get a
cardinality popup menu.
Prompts at each step of
the way, providing the
options that are
permitted according to
5.3.2.4 of MDF 3.1 (98)
Keeps track of your choices
for each instance to
provide only the possible
choices
LIFO list of objects that
have been started, but
not finished.
1/25/1999
© 1999, Health Level Seven, Inc.
22
Editing the MOD
Select a node
Use Edit menu to edit the
label. Offers chance to
change BOTH the qualifier
and the cardinality.
Re-open the MOD
Use Edit…Change Node
...Re-open MOD
presents all choices that
were by-passed the first
time through,
Includes option to
“Replace with CMED”
Move siblings up or down to
change order.
1/25/1999
© 1999, Health Level Seven, Inc.
23
“Super”-MOD - includes attributes
MDF Fig. 5.9
1/25/1999
© 1999, Health Level Seven, Inc.
24
Let’s try it
HL7 Tutorial MIM - January 1999
RIM_0087T
Healthcare_stakeholders
Healthcare_finances
Stakeholder_identifier
id : ST
identifier_type_cd : ID
participates_
Active_participation
participation_type_cd : ID 0..*
Healthcare_finances
Master_tables
0..*
is_assigned_to
Healthcare_finances
Patient_encounters
is_assigned
0..1
Stakeholder
participates_in
addr : XAD
1
phon : XTN
collects
0..*
has_as_participant
0..*
participate
1
Organization
organization_name_type_cd : CNE
organization_nm : ST
1 standard_industry_class_cd
0..1
takes_on_role_of
has_as_a_subdivision
0..*
is_a_subdivision_of
0..*
Collected_specimen_sample
body_site_cd : CE
is_collected_by
collection_end_dttm : DTM
collection_start_dttm : DTM
collection_volume_amt : CQ
handling_cd : ID
id : IID
method_of_collection_desc : TX
specimen_additive_txt : ST
specimen_danger_cd : ID
specimen_source_cd : CE
Person
birth_dttm : DTM
gender_cd : CNE
marital_status_cd : CNE
primary_name_representation_cd : CNE
primary_name_type_cd : CNE
primary_prsnm : PN
race_cd : CNE
1
takes_on_role_of
1
takes_on_role_of
0..*
is_sourced_from
is_source_for
0..1
0..1
is_target_of
has_as_ta
0..*
Patient
0..*
Targe
ambulatory_status_cd
0..1
participat
has_as_target
birth_order_number
Healthcare_service_provider
is_a_role_of living_arrangement_cd 0..1
specialty_cd : CNE
living_dependency_cd
0..*
is_target_of
multiple_birth_ind
has_as_t
newborn_baby_ind
has_a_primary_provider organ_donor_ind
preferred_pharmacy_id
0..*
is_the_primary_provider_for
is_a_role_of
is_a_role_of
0..*
0..1
0..1
0..1
has_as_primary_facility
Individual_healthcare_practitioner
Healthcare_provider_organization
: TX Level Seven, Inc.
1/25/1999
© 1999, desc
Health
25
What do we get?
1/25/1999
© 1999, Health Level Seven, Inc.
26
Extract the Person stuff as a CMED
1/25/1999
© 1999, Health Level Seven, Inc.
27
And use it in the previous MOD
1/25/1999
© 1999, Health Level Seven, Inc.
28
Build a more
J complex one
ary 1999
Stakeholder_identifier
id : ST
identifier_type_cd : ID
participates_in
Active_participation
participation_type_cd : ID 0..*
G
are_finances
s
0..*
is_assigned_to
is_assigned
0..1
akeholder
participates_in
r : XAD
1
n : XTN
collects
0..*
has_as_participant
0..*
1
H
bdivision_of
participates_in
Service_intent_or_order
0..*
filler_order_id : IID
is_entered_at
has_as_participant filler_txt : TX
order_id
0..1 order_placed_dttm : DTM
order_quantitytiming_qt : TQ
placer_order_id : IID
placer_txt : TX
is_an_instance_of
has_as_target
report_results_to_phone : XTN
0..*
intent_or_order_cd : ID
0..1
A
0..*
Collected_specimen_sample
body_site_cd : CE
is_collected_by
collection_end_dttm : DTM
collection_start_dttm : DTM
collection_volume_amt : CQ
handling_cd : ID
id : IID
method_of_collection_desc : TX
specimen_additive_txt : ST
specimen_danger_cd : ID
specimen_source_cd : CE
Person
birth_dttm : DTM
gender_cd : CNE
marital_status_cd : CNE
primary_name_representation_cd : CNE
primary_name_type_cd : CNE
primary_prsnm : PN
race_cd : CNE
I
0..1
is_fulfilled_by
F
0..*
is_sourced_from
Observation_intent_or_order
patient_hazard_code
reason_for_study_cd
relevant_clinical_information_txt
reporting_priority_cd
specimen_action_cd
0..1
is_target_of
is_source_for
0..1
has_as_active_participant
is_target_of
E
0..1
fulfills
0..*
has_as_target
1..*
delivers
0..1
Service_event
0..*
Patient
has_as_target
0..*
service_desc : ST
0..*
Target_participation
is_instantiated_as
0..1 ambulatory_status_cd
service_event_desc
participation_type_cd : CE 0..*
has_as_target
birth_order_number
specimen_received_dttm : DTM is_delivered_during
ervice_provider
1
is_a_role_of living_arrangement_cd 0..1
1
is_target_of
name : CE
CNE
Master_service
living_dependency_cd
0..*
0..*
is_target_of
multiple_birth_ind
method_cd : CE
is_performed_at
has_as_target
newborn_baby_ind
method_desc : TX
has_a_primary_provider organ_donor_ind
service_desc : TX
Assessment
preferred_pharmacy_id
target_anatomic_site_cd : CE
0..*
universal_service_id : CE
is_the_primary_provider_for
is_a_role_of
0..*
0..1
0..1
has_as_primary_facility
Individual_healthcare_practitioner
Clinical_observation
desc : TX
abnormal_result_ind : ID
practitioner_type_cd : CNE
last_observed_normal_values_dttm : DTM
nature_of_abnormal_testing_cd : CE
is_primary_facility_for
clinically_relevant_begin_dttm : DTM
0..1
clinically_relevant_end_dttm : DTM
is_target_for
observation_value_txt : NM
provides_services_on_behalf_of 0..* Master_patient_service_location 0..1
addr : XAD
probability_number : NM
0..1
references_range_text : ST
0..* email_address : XTN
id : ID
value_units_code : CE
is_location_for
is_included_in
nm : ST
phon : XTN
is_entry_location_for
1
takes_on_role_of
1
takes_on_role_of
K
L
includes 0..1
1/25/1999
B
M
D C
1
© 1999, Health Level Seven, Inc.
30
And get MOD
1/25/1999
© 1999, Health Level Seven, Inc.
31
Populate the attributes
1/25/1999
© 1999, Health Level Seven, Inc.
32
… and ...
1/25/1999
© 1999, Health Level Seven, Inc.
33
… and… and
1/25/1999
© 1999, Health Level Seven, Inc.
34
… and… and… and
1/25/1999
© 1999, Health Level Seven, Inc.
35
… and… and… and… and
1/25/1999
© 1999, Health Level Seven, Inc.
36
… and… and… and… and… and finally
1/25/1999
© 1999, Health Level Seven, Inc.
37
Make an ACTP CMED
1/25/1999
© 1999, Health Level Seven, Inc.
38
and now the HMD - raw form
automatic
from MOD
Slot types & names to be filled
1/25/1999
© 1999, Health Level Seven, Inc.
39
filling it in ...
1/25/1999
© 1999, Health Level Seven, Inc.
40
and finish!
1/25/1999
© 1999, Health Level Seven, Inc.
41
Save your work!!!
1/25/1999
© 1999, Health Level Seven, Inc.
42
HMD with attributes suppressed
1/25/1999
© 1999, Health Level Seven, Inc.
43