HL7 message system: from RIM through DMIM, RMIM
HL7 message system: from RIM through DMIM, RMIM
HL7 message system: from RIM through DMIM, RMIM
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Dipartimento di<br />
Elettronica e Informazione<br />
V School of Information Engineering<br />
Master of Science in Information Engineering<br />
ICT for Health Care and Life Sciences<br />
Emanuele Della Valle emanuele.dellavalle@polimi.it
ICT for Health Care and Life Sciences<br />
<strong>HL7</strong> <strong>message</strong> creation process<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
2
<strong>HL7</strong> V3 Message Constrained Information Models<br />
• <strong>RIM</strong>: Reference Information Model<br />
• D-MIM: Domain Message Information Model<br />
• R-MIM: Refined Message Information Model<br />
• HMD: Hierarchical Message Definition<br />
<strong>RIM</strong><br />
R-MIM<br />
HMD<br />
Derive<br />
D-MIM<br />
Restrict<br />
Serialize<br />
[Source: http://www.slideshare.net/AShakir/hl7-v3-reference-models-20091123 ]<br />
3 of 164
Storyboard<br />
Example<br />
<strong>HL7</strong> V3 Message Development Framework<br />
References<br />
Storyboard<br />
Example<br />
Application<br />
Role<br />
Sender Receiver<br />
Interaction<br />
Interaction Modeling<br />
Content<br />
Use Case Modeling<br />
Trigger<br />
Event<br />
Information Modeling<br />
Triggers<br />
Message Design<br />
<strong>RIM</strong><br />
D-MIM<br />
R-MIM<br />
HMD<br />
Derive<br />
Restrict<br />
Serialize<br />
Restrict<br />
Message<br />
Type<br />
[Source: http://www.slideshare.net/AShakir/hl7-v3-reference-models-20091123 ] 4 of 164
The idea: one reference model, multiple<br />
domains, as many <strong>message</strong>s as needed<br />
ITS<br />
(serialization format<br />
of instances)<br />
R-MIM / SIM<br />
Serializable Model<br />
Refinement of<br />
D-MIM / DIM<br />
Domain Model<br />
Refinement of<br />
<strong>RIM</strong><br />
Stable model,<br />
Domain agnostic<br />
Pharmacy<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
<strong>RIM</strong><br />
Clinical<br />
Documents<br />
5
<strong>HL7</strong> v.3 <strong>message</strong> creation process<br />
Analysis<br />
Design<br />
Implementation<br />
Guide<br />
• Requirements Analysis<br />
• Domain Analysis<br />
• Use Case Model (UCM)<br />
• Information Model (<strong>RIM</strong> & DIM)<br />
• Vocabulary Domain Specification<br />
• Component and Object Interaction Design<br />
• Message Design<br />
• Interaction Model (IM)<br />
• Message Information Model (MIM)<br />
• Hierarchical Message Description (HMD)<br />
• Implementation Technology Specification (ITS)<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
6
2-nd Order<br />
1 choice of<br />
0-n Drug<br />
0-1 Nursing<br />
V3 process in <strong>HL7</strong> Development Framework (MDF)<br />
Use Case Model<br />
Information Model<br />
Interaction Model<br />
Message Specification<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
Captures healthcare requirements<br />
Defines scope for TSC approval<br />
Specifies data and its semantics<br />
Specifies major state transitions<br />
Specifies vocabulary for domains<br />
Defines information flows<br />
Defines communication roles<br />
Forms basis for conformance claims<br />
Defines <strong>message</strong> contents<br />
Apply constraints to the information<br />
model and vocabulary<br />
7
HDF Model Relationships<br />
Requirements<br />
Analysis<br />
Use Case<br />
Model<br />
(UCM)<br />
<strong>RIM</strong><br />
Analysis Design<br />
Domain<br />
Analysis<br />
Domain<br />
Information<br />
Model<br />
(DIM)<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
Interaction<br />
Design<br />
Interaction<br />
Model<br />
(IM)<br />
Message<br />
Design<br />
2-nd Order<br />
1 choice of<br />
0-n Drug<br />
0-1 Nursing<br />
Hierarchical<br />
Message<br />
Descriptions<br />
(HMD)<br />
Reference Model Repository<br />
Voting<br />
Approval<br />
Ballots<br />
8
Models are used to build the HMD<br />
Reference<br />
Information Model<br />
Domain Specification Database<br />
Hierarchical<br />
Message<br />
Description<br />
Domain<br />
Information<br />
Model<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
Encounter_practitioner<br />
Person_name_for_IHCP<br />
is_participant_for 0..*<br />
1<br />
is_associated_with<br />
participation_type_cd<br />
cd : CV<br />
Person_as_IHCP<br />
has<br />
1..*<br />
purpose_cd : CV<br />
phon : TIL<br />
type_cd : CV<br />
1<br />
Exactly one<br />
nm : PN<br />
is_for<br />
1 takes_on_role_of<br />
occurrence<br />
1 participates_as<br />
has_as_participant 1<br />
1 Individual_healthcare_practitioner<br />
Patient_encounter<br />
is_a_role_of id : TII<br />
id : TII<br />
status_cd : CV<br />
Person_as_Patient<br />
0..1 is_the_primary_provider_for<br />
encounter_classification_cd : CV<br />
birth_dttm : TS<br />
start_dttm<br />
birthplace_addr : ST<br />
0..* has_a_primary_provider involves end_dttm<br />
expected_insurance_plan_qty : NM<br />
1<br />
deceased_dttm : TS<br />
Patient<br />
1<br />
education_level_cd : CV 1..1<br />
first_similar_illness_dttm<br />
has gender_cd : CV<br />
takes_on_role_of id : TII<br />
marital_status_cd : CV<br />
status_cd : CV 1<br />
race_cd : CV<br />
1..1 newborn_baby_ind<br />
religious_affiliation_cd : CV is_a_role_of multiple_birth_ind is_involved_in<br />
phon : TIL<br />
organ_donor_ind<br />
Inpatient_encounter<br />
1<br />
1..*<br />
has<br />
actual_days_qty<br />
Patient_admission<br />
is_for<br />
estimated_days_qty<br />
admission_dttm<br />
Person_name_for_Patient<br />
Patient_billing_account<br />
admission_reason_cd<br />
1<br />
nm : PN<br />
id : TII<br />
admission_referral_cd is_preceded_by<br />
effective_dt : TS<br />
status_cd : CV<br />
admission_source_cd 1<br />
cd : CV<br />
0..1<br />
billing_status_cd : CV<br />
admission_type_cd<br />
purpose_cd : CV<br />
patient_financial_class_cd : CV<br />
pre_admit_test_ind preceded<br />
termination_dt : TS<br />
price_schedule_id : TII<br />
belongs_to readmission_ind<br />
type_cd : CV<br />
Use Case Model<br />
Message<br />
Information<br />
Model<br />
Interaction<br />
Model<br />
Common<br />
Message<br />
Element<br />
Types<br />
10
The HMD & ITS then give <strong>message</strong>s<br />
Implementation<br />
Technology<br />
Specifications<br />
ITS<br />
"Send as ASCII<br />
string in XML<br />
Data<br />
format"<br />
<strong>HL7</strong><br />
Message<br />
Creation<br />
<strong>HL7</strong>-Conformant<br />
Application<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
Message<br />
Instance<br />
Hierarchical<br />
Message<br />
Definition<br />
<strong>HL7</strong><br />
Message<br />
Parsing<br />
<strong>HL7</strong>-Conformant<br />
Application<br />
"Discontinue<br />
pharmacy order"<br />
Data<br />
11
The <strong>HL7</strong> Development Framework in detail
Use Case Model: Definitions<br />
• Scope statement<br />
§� A high level use case for the entire project<br />
• Use case<br />
§� Describes specific situations in which communication between<br />
healthcare entities is needed<br />
• Actor<br />
§� An entity which initiates or participates in the use case. Discovered in<br />
the process of developing use cases<br />
• Use Case Diagram<br />
§� Provides a graphical form to develop the use case model <strong>from</strong> the<br />
business process analysis - UML notation<br />
§� Makes it easy to show the relationship between use cases<br />
• Use cases can be decomposed<br />
• Use cases can be shared<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
14
Sample Use Case Model<br />
Manage<br />
Membership<br />
Manage Health Plans<br />
Manage Membership<br />
Enroll Member<br />
Approve Services<br />
Discharge<br />
Member<br />
Manage<br />
Health Plans<br />
Manage<br />
Network<br />
Manage Network<br />
Evaluate Provider<br />
Market Services<br />
Health Care Enterprise<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
Provide<br />
Services<br />
Treat Patient<br />
Treat Patient<br />
Administer Procedure<br />
Record Results<br />
Evaluate<br />
Outcomes<br />
Provide Services<br />
Perform Triage<br />
Schedule<br />
Service<br />
Schedule Service<br />
Create Appointment<br />
Monitor<br />
Appointment<br />
Order Service<br />
Order Service<br />
Create Order<br />
Status Order<br />
Sign<br />
Order<br />
16
The Information Model<br />
• A detailed and precise definition for the information <strong>from</strong> which all<br />
data content of <strong>HL7</strong> <strong>message</strong>s are drawn.<br />
• Follows object-oriented modeling and diagramming techniques, and<br />
is centered on a depiction of the classes that form the basis for the<br />
objects in <strong>HL7</strong> <strong>message</strong>s.<br />
• Provides a means for expressing and reconciling differences in data<br />
definition independent of <strong>message</strong> structure.<br />
• Forms a shared view of the information domain used across all <strong>HL7</strong><br />
<strong>message</strong>s.<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
18
Parts of the Information Model<br />
• Classes, Attributes, and Relationships<br />
§� Documented in the Reference Information Model, the Domain<br />
Message Information Model, and the Refined Message Information<br />
Model (see also slides <strong>from</strong> 31 to 41)<br />
§� Consistency ensured by a Style Guide<br />
• State Transition Models<br />
§� For certain selected classes (Subject Classes)<br />
• Data Types and Constraints<br />
§� Vocabulary definitions, Domains<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
19
<strong>RIM</strong> Subject Classes<br />
• The Subject Classes are those classes in the <strong>RIM</strong> that express the<br />
concepts that are central to managing healthcare, e.g. Patient,<br />
Order.<br />
• Subject Classes are the focus for trigger events, use cases &<br />
application roles.<br />
• State transition modeling of Subject Classes discovers potential<br />
trigger events.<br />
• Subject Classes capture the domain behaviors that the <strong>HL7</strong><br />
committee feels are most important<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
20
State Transition Modeling<br />
• Identify States<br />
§� From Use Cases<br />
• Document States<br />
§� Which attributes must be valued/unvalued?<br />
§� What are the constraints on the values?<br />
§� What associations must be established?<br />
§� What associations must not exist?<br />
• Capture State Model<br />
§� UML State Transition Model<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
21
State Transition Diagrams<br />
• Figure State diagram for Patient class.<br />
Scheduled<br />
s chedule_encounter ^C00XMT003<br />
null<br />
s tart_encounter ^C00XMT004<br />
s tart_encounter ^C00XMT005<br />
Active<br />
Transitions include reference to<br />
the trigger event.<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
delete_s cheduled_encounter ^C00XMT006<br />
delete_ac tive_ encounter ^C00XMT007<br />
dis charge_patient ^C00XMT008<br />
cancel_discharge ^C00XMT009<br />
Deleted<br />
delete_dis charged_encounter<br />
Discharged<br />
• State diagram for Patient_encounter class<br />
22
Vocabulary and Domains<br />
• Attributes in the <strong>RIM</strong> must be associated with a Domain to have<br />
meaning<br />
• Domains are associated with Vocabularies<br />
§� Held in the Domain Specification Database<br />
• The vocabulary and domain define the values that may be taken on<br />
by an attribute in a defined <strong>message</strong><br />
§� Set of coded values or defined words/phrases<br />
§� Statements in a constraint language<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
23
Modeling Interactions<br />
• Derived <strong>from</strong> the leaf-level Use Cases<br />
• Specifies all Trigger Events and Message Flows<br />
• Does not define standard <strong>system</strong> or application functions, only<br />
messaging roles<br />
• Fine-grained abstraction; every <strong>system</strong> will claim several roles<br />
• Basis for contractual agreement: describes roles to which <strong>system</strong>s<br />
may claim conformance<br />
• Potential basis for conformance testing<br />
• Captured in<br />
§� an Interaction Diagram and<br />
§� an Application Role Diagram<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
25
Interaction Model Contents<br />
• Each Interaction consists of:<br />
§� Trigger event<br />
• Event dependency usually expressed as the state of one or more<br />
classes<br />
§� Message ID<br />
• Each interaction sends one particular <strong>message</strong><br />
§� Sender role<br />
• When trigger event detected, <strong>message</strong> is sent<br />
§� Receiver role<br />
• Receiver responsibility - a specific functional responsibility for the<br />
receiver to initiate another (consequential) interaction<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
26
Interaction Model Diagram<br />
Figure Interactions for Patient subject class.b<br />
AR _Patient_m anager :<br />
AR_Patient_m anager<br />
Interaction -<br />
Trigger Event causes a Message<br />
to be sent by a Sending role to a<br />
Receiving role for which there may<br />
be a Receiver responsibility<br />
1: add_patient(tid)<br />
3: delete_patient<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
2: add_patient(tidx)<br />
4: delete_patient(tidx)<br />
AR_Patient_trac ker :<br />
AR_Patient_tracker<br />
Application Role -<br />
identifies an information<br />
management responsibility for<br />
one of the subject classes.<br />
Responsibilities typically are:<br />
Creator, Manager, Tracker<br />
and Archivist.<br />
Healthcare applications are<br />
assumed to take on one or<br />
more application roles.<br />
27
Application Roles<br />
• All Application Roles that participate in the interactions for a trigger<br />
event must be identified<br />
• All trigger events that a particular application role participates in<br />
must be identified<br />
• All Classes that participate in the interactions must be identified<br />
• Captured in an Application Role Diagram<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
28
Application Role Diagram<br />
• Application role diagram for example model.<br />
<strong>RIM</strong> Classes<br />
Patient<br />
AR_Patient_manager<br />
add_patient()<br />
delete_patient()<br />
SC_Application_role_root<br />
SC_Patient<br />
AR_Patient_tracker<br />
add_patient()<br />
delete_patient()<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
SC_Patient_encounter<br />
Patient_encounter<br />
AR_Encounter_archivist<br />
admit_patient()<br />
activate_scheduled_encounter()<br />
delete_active_encounter()<br />
discharge_patient()<br />
cancel_discharge()<br />
Application Roles<br />
AR_Encounter_tracker<br />
schedule_encounter()<br />
admit_patient()<br />
activate_scheduled_encounter()<br />
delete_scheduled_encounter()<br />
delete_active_encounter()<br />
discharge_patient()<br />
cancel_discharge()<br />
AR_Encounter_manager<br />
admit_patient()<br />
activate_scheduled_encounter()<br />
delete_active_encounter()<br />
discharge_patient()<br />
cancel_discharge()<br />
29
Application Roles and Conformance Claims<br />
• A conformance claim is a commitment to fulfill one or more<br />
interactions relating to an Application Role<br />
• For each Role, the application must send and receive all of the<br />
interactions (<strong>message</strong>s) specified for that Role:<br />
§� At specified trigger events, obeying specifications about conditionality,<br />
required presence, etc.<br />
§� Upon receipt of certain <strong>message</strong>s, perform the receiver responsibilities<br />
• Provides a consistent, unambiguous vocabulary for precontract<br />
understanding of vendor capabilities<br />
• Grouped into a Conformance Claim Set<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
30
Message Specification<br />
Reference<br />
Information<br />
Model (<strong>RIM</strong>)<br />
Domain<br />
Message<br />
Information<br />
Model (D-MIM)<br />
Refined<br />
Message<br />
Information<br />
Model<br />
(R-MIM)<br />
Encounter_practitioner<br />
Person_name_for_IHCP<br />
is_participant_for 0..*<br />
1<br />
is_associated_with<br />
participation_type_cd<br />
cd : CV<br />
Person_as_IHCP<br />
has<br />
1..*<br />
purpose_cd : CV<br />
phon : TIL<br />
type_cd : CV<br />
1<br />
Exactly one<br />
nm : PN<br />
is_for<br />
1 takes_on_role_of<br />
occurrence<br />
1 participates_as<br />
has_as_participant 1<br />
1 Individual_healthcare_practitioner<br />
Patient_encounter<br />
is_a_role_of id : TII<br />
id : TII<br />
status_cd : CV<br />
Person_as_Patient<br />
0..1 is_the_primary_provider_for<br />
encounter_classification_cd : CV<br />
birth_dttm : TS<br />
start_dttm<br />
birthplace_addr : ST<br />
0..* has_a_primary_provider involves end_dttm<br />
expected_insurance_plan_qty : NM<br />
1<br />
deceased_dttm : TS<br />
Patient<br />
1<br />
education_level_cd : CV 1..1<br />
first_similar_illness_dttm<br />
has gender_cd : CV<br />
takes_on_role_of id : TII<br />
marital_status_cd : CV<br />
status_cd : CV 1<br />
race_cd : CV<br />
1..1 newborn_baby_ind<br />
religious_affiliation_cd : CV is_a_role_of multiple_birth_ind is_involved_in<br />
phon : TIL<br />
organ_donor_ind<br />
Inpatient_encounter<br />
1<br />
1..*<br />
has<br />
actual_days_qty<br />
Patient_admission<br />
is_for<br />
estimated_days_qty<br />
admission_dttm<br />
Person_name_for_Patient<br />
Patient_billing_account<br />
admission_reason_cd<br />
1<br />
nm : PN<br />
id : TII<br />
admission_referral_cd is_preceded_by<br />
effective_dt : TS<br />
status_cd : CV<br />
admission_source_cd 1<br />
cd : CV<br />
0..1<br />
billing_status_cd : CV<br />
admission_type_cd<br />
purpose_cd : CV<br />
patient_financial_class_cd : CV<br />
pre_admit_test_ind preceded<br />
termination_dt : TS<br />
price_schedule_id : TII<br />
belongs_to readmission_ind<br />
type_cd : CV<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
Use Case<br />
Model<br />
Hierarchical<br />
Message<br />
Description (HMD)<br />
Interaction<br />
Model<br />
32
Message Specification<br />
• The <strong>RIM</strong> must first be refined by subsetting and constraining it<br />
§� Create a Domain Message Information Model (D-MIM) with <strong>RIM</strong><br />
classes needed<br />
§� Develop an Refined Message Information Model (R-MIM) <strong>from</strong> these<br />
classes<br />
• Define the structure for the <strong>message</strong><br />
§� Tree walk the R-MIM (Define a Path)<br />
§� Identify Message Element Types (MET, CMET)<br />
• Document the Message Specification<br />
§� Create the Hierarchical Message Definition (HMD)<br />
• <strong>HL7</strong> Tooling to assist with these steps<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
33
Subset the <strong>RIM</strong> ⇒ D-MIM<br />
• Select the portion of the <strong>RIM</strong> that contains the classes of interest in<br />
the <strong>message</strong><br />
§� Classes that participate in the Use Cases as documented in the Use<br />
Case Model<br />
§� Classes that participate in interactions and application roles as<br />
documented in the Interaction Model<br />
§� Attributes of interest in these interactions<br />
• Collection of classes with some constraints<br />
• Collection of attributes and associations to support the R-MIM<br />
• No need for high precision at this point, can be corrected later – this<br />
is the first draft stage<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
34
Convert the D-MIM ⇒ R-MIM<br />
• Constrain cardinality on Associations<br />
§� May be limited in the interactions for which <strong>message</strong>s are being<br />
designed<br />
• Constraints on Attributes<br />
§� Some may be left out<br />
§� Sub-components may be individually constrained<br />
• Classes are duplicated for different uses<br />
• May modify the Inheritance structure<br />
§� Some specializations may subsume the generalization<br />
§� Always inherit downwards to specializations<br />
• One block for each class structure<br />
• Defines patterns of constraints for each class<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
35
Refine and Document R-MIM<br />
• Document the R-MIM in tabular form<br />
§� Identify information not in graphical form<br />
• Domains, Update Semantics, Conditionality, etc.<br />
• Contains all information needed for the HMD<br />
§� But the classes are shown in arbitrary order<br />
§� Usually multiple class instances shown for some <strong>RIM</strong> classes<br />
• Tooling simplifies entire process<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
36
Sample D-MIM<br />
Person_name_for_IHCP<br />
cd : CV<br />
purpose_cd : CV<br />
type_cd : CV<br />
nm : PN<br />
has<br />
1..*<br />
is_for<br />
1<br />
1<br />
1<br />
has<br />
is_for<br />
Person_as_Patient<br />
Person_as_IHCP<br />
phon : TIL<br />
birth_dttm : TS<br />
birthplace_addr : ST<br />
deceased_dttm : TS<br />
education_level_cd : CV<br />
gender_cd : CV<br />
marital_status_cd : CV<br />
race_cd : CV<br />
religious_affiliation_cd : CV<br />
phon : TIL<br />
This example will include<br />
those <strong>message</strong>s<br />
requiring data <strong>from</strong><br />
Patient and<br />
Patient_admission<br />
Person_name_for_Patient<br />
nm : PN<br />
effective_dt : TS<br />
cd : CV<br />
purpose_cd : CV<br />
termination_dt : TS<br />
type_cd : CV<br />
1 Individual_healthcare_practitioner<br />
is_a_role_of id : TII<br />
Patient_billing_account<br />
id : TII<br />
status_cd : CV<br />
0..1<br />
billing_status_cd : CV<br />
patient_financial_class_cd : CV<br />
price_schedule_id : TII<br />
belongs_to<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
1<br />
takes_on_role_of<br />
0..1<br />
is_participant_for 0..*<br />
1 participates_as<br />
is_the_primary_provider_for<br />
0..* has_a_primary_provider<br />
1..1<br />
Patient<br />
takes_on_role_of id : TII<br />
status_cd : CV<br />
1..1 newborn_baby_ind<br />
is_a_role_of multiple_birth_ind<br />
organ_donor_ind<br />
1<br />
has<br />
1<br />
Encounter_practitioner<br />
participation_type_cd<br />
Exactly one<br />
occurrence<br />
is_involved_in<br />
involves<br />
1<br />
Patient_admission<br />
admission_dttm<br />
admission_reason_cd<br />
admission_referral_cd<br />
admission_source_cd<br />
admission_type_cd<br />
pre_admit_test_ind<br />
readmission_ind<br />
1<br />
is_associated_with<br />
1..*<br />
has_as_participant 1<br />
Patient_encounter<br />
id : TII<br />
status_cd : CV<br />
encounter_classification_cd : CV<br />
start_dttm<br />
end_dttm<br />
expected_insurance_plan_qty : NM<br />
first_similar_illness_dttm<br />
Inpatient_encounter<br />
actual_days_qty<br />
estimated_days_qty<br />
preceded<br />
1<br />
is_preceded_by<br />
37
Sample Tabular R-MIM<br />
A small piece of it …<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
38
Construct the HMD by defining<br />
the Message Element Types (METs)<br />
• The HMD combines the structure and semantics of the <strong>message</strong><br />
contents<br />
• Produced by performing a tree walk<br />
§� Select nodes to start each tree based on the Interactions and Use<br />
Cases<br />
§� Follow the appropriate connections in the R-MIM<br />
§� Re-orders and structures the information in the R-MIM to follow a Path<br />
<strong>through</strong> the Information Model<br />
• Note each class instance block in the R-MIM is a MET; the entire<br />
table is the full <strong>message</strong> MET, which is the HMD<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
39
MET and Common MET (CMET)<br />
• Some Message Element Types are unique<br />
§� Used only for a specific <strong>message</strong><br />
• e.g. structure for an EKG waveform result<br />
• Some Message Element Types may be reused in many<br />
<strong>message</strong>s<br />
§� Analogous to v2.x segments like PID, PV1, etc.<br />
§� May have finer granularity than v2.x<br />
§� Have certain constraints loosened for re-use<br />
§� CMETs (Common Message Element Types)<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
40
Build the HMD<br />
• All of the information of the MET and CMET is documented in the<br />
Hierarchical Message Description – HMD<br />
• Tabular<br />
• Stored in the repository<br />
• Final specification of a particular <strong>message</strong><br />
• Contains conformance parameters<br />
© Alessio Carenini - Revised by Emanuele Della Valle<br />
41