27.11.2012 Views

HL7 message system: from RIM through DMIM, RMIM

HL7 message system: from RIM through DMIM, RMIM

HL7 message system: from RIM through DMIM, RMIM

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!