{"id":11234,"date":"2023-12-02T14:05:00","date_gmt":"2023-12-02T05:05:00","guid":{"rendered":"https:\/\/www.sambuichi.jp\/?p=11234"},"modified":"2023-12-10T18:14:41","modified_gmt":"2023-12-10T09:14:41","slug":"unified-table-design-for-enhancing-hl7-r-mim-hmd-structures-and-graph-walk","status":"publish","type":"post","link":"https:\/\/www.sambuichi.jp\/?p=11234&lang=en","title":{"rendered":"Unified Table Design for Enhancing HL7 R-MIM, HMD Structures, and Graph Walk"},"content":{"rendered":"<p>Views: 16<\/p><div id=\"header\">\n<h1>Unified Table Design for Enhancing HL7 R-MIM, HMD Structures, and Graph Walk<\/h1>\n<div id=\"toc\" class=\"toc2\">\n<div id=\"toctitle\">Table of Contents<\/div>\n<ul class=\"sectlevel1\">\n<li><a href=\"#_overview\">1. Overview<\/a><\/li>\n<li><a href=\"#_design_features\">2. Design Features<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_hierarchical_structure\">2.1. Hierarchical Structure<\/a><\/li>\n<li><a href=\"#_consistency\">2.2. Consistency<\/a><\/li>\n<li><a href=\"#_flexibility\">2.3. Flexibility<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_example_representation\">3. Example Representation<\/a><\/li>\n<li><a href=\"#_challenges_in_implementing_the_two_table_approach_an_analysis_of_study_report_part_2_clause_4\">4. Challenges in Implementing the Two-Table Approach: An Analysis of Study Report Part 2, Clause 4<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_the_problem_with_study_report_part_2_clause_4_two_table_approach\">4.1. The Problem with Study Report Part 2 Clause 4 Two Table Approach<\/a><\/li>\n<li><a href=\"#_problems_with_two_table_definition\">4.2. Problems with Two-Table Definition:<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_solutions_with_a_single_table_definition\">5. Solutions with a Single Table Definition:<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_unified_table_structure\">5.1. Unified Table Structure:<\/a><\/li>\n<li><a href=\"#_the_proposed_single_table_design\">5.2. The Proposed Single-Table Design<\/a><\/li>\n<li><a href=\"#_explanation_of_the_design\">5.3. Explanation of the Design:<\/a><\/li>\n<li><a href=\"#_advantages_of_a_unified_table_approach_in_uml\">5.4. Advantages of a Unified Table Approach in UML<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_steps_for_the_graph_walk_in_hl7_r_mim_to_hmd\">6. Steps for the Graph Walk in HL7 R-MIM to HMD<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_overview_2\">6.1. Overview<\/a><\/li>\n<li><a href=\"#_choose_the_root_class\">6.2. Choose the Root Class<\/a><\/li>\n<li><a href=\"#_build_the_hierarchical_message_definition_hmd\">6.3. Build the Hierarchical Message Definition (HMD)<\/a><\/li>\n<li><a href=\"#_deal_with_cardinalities_greater_than_one\">6.4. Deal with Cardinalities Greater than One:<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_example_message_information_model_in_hl7_version_3_message_development_framework\">7. Example Message Information Model in HL7 Version 3 Message Development Framework<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_uml_diagram\">7.1. UML Diagram<\/a><\/li>\n<li><a href=\"#_r_mim_table\">7.2. R-MIM Table:<\/a><\/li>\n<li><a href=\"#_partial_listing_of_the_resultant_hmd_table\">7.3. Partial Listing of the Resultant HMD Table:<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_enhancing_clarity_in_hl7_data_structures\">8. Enhancing Clarity in HL7 Data Structures<\/a><\/li>\n<li><a href=\"#_hl7_graph_walk\">9. HL7 Graph Walk<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_choose_the_root_class_2\">9.1. Choose the Root Class<\/a><\/li>\n<li><a href=\"#_constructing_the_hierarchical_message_definition_hmd_using_graph_walk\">9.2. Constructing the Hierarchical Message Definition (HMD) Using Graph Walk:<\/a><\/li>\n<li><a href=\"#_continuing_with_step_1_and_2\">9.3. Continuing with Step 1 and 2:<\/a><\/li>\n<li><a href=\"#_dealing_with_cardinalities_greater_than_one\">9.4. Dealing with Cardinalities Greater than One<\/a><\/li>\n<li><a href=\"#_continuing_steps\">9.5. Continuing Steps:<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#_final_summary\">10. Final Summary<\/a><\/li>\n<li><a href=\"#_generating_unified_tables_from_multiple_csv_sheets\">11. Generating Unified Tables from Multiple CSV Sheets<\/a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_objectclass_py\">11.1. ObjectClass.py<\/a><\/li>\n<li><a href=\"#_hl7graphwalk_py\">11.2. HL7graphWalk.py<\/a><\/li>\n<li><a href=\"#_purpose_of_these_open_source_programs\">11.3. Purpose of These Open-Source Programs<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div id=\"content_adoc\">\n<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Nobuyuki SAMBUICHI<br \/>\n<a href=\"https:\/\/www.iso.org\/committee\/5648297.html\">ISO\/TC295 Audit data services<\/a><br \/>\nConvener at SG1 Semantic model<br \/>\nCo-project leader at WG1 <a href=\"https:\/\/www.iso.org\/standard\/86895.html?browse=tc\">AWI 21926 Semantic data model for audit data services<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_overview\">1. Overview<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>The semantic model necessitates consistent, flexible, and concise message formats for effective data interchange. Addressing this, HL7 offers a robust representation and binding methodology through Graph Walk <sup class=\"footnote\">[<a id=\"_footnoteref_1\" class=\"footnote\" title=\"View footnote.\" href=\"#_footnotedef_1\">1<\/a>]<\/sup>, transitioning from the Refined Message Information Model (R-MIM) to the Hierarchical Message Definition (HMD). However, the current representation using two tables can be verbose, leading to potential inconsistencies and a lack of clarity. To mitigate these issues, we propose a single-table design approach that effectively streamlines the representation. This approach captures the hierarchical relationship between super classes and their specialized counterparts in a clear, concise manner.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Despite the efforts of TC215\/SC\/WG2 in drafting ISO 17113:2004(E), a standard for Health Informatics focusing on message development, as a Final Draft International Standard (FDIS) in 2005, the standard was not completed and was eventually abandoned. This text revisits the original HL7 graph walk and introduces the Unified Table Design to bridge the gaps left by this unfinished standard.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The unified table design conforms to the HL7 10.2.2.2 Tabular Refined Message Information Model, modified to align with ISO\/IEC 19505 OMG UML terminology. This design is versatile, applicable for both R-MIM and HMD tables. Additionally, open-source Python programs by JISC ensure the standard\u2019s independence from proprietary design tools, enhancing its long-term maintainability.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_design_features\">2. Design Features<\/h2>\n<div class=\"sectionbody\">\n<div class=\"sect2\">\n<h3 id=\"_hierarchical_structure\">2.1. Hierarchical Structure<\/h3>\n<div class=\"paragraph\">\n<p>The design introduces a <code>Level<\/code> column to indicate the hierarchy of classes and their properties. Level 1 represents primary classes (e.g., <code>Super Class<\/code> and <code>Specialized Class<\/code>), while Level 2 details the attributes and associations of these classes.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_consistency\">2.2. Consistency<\/h3>\n<div class=\"paragraph\">\n<p>The unified table ensures that attributes and associations are consistently represented across both super and specialized classes. This eliminates redundancy and the need to re-specify properties for specialized classes when they inherit properties from the super class.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_flexibility\">2.3. Flexibility<\/h3>\n<div class=\"paragraph\">\n<p>The design retains the flexibility of the HL7 framework, allowing for the easy addition of new specialized classes or properties without disturbing the existing structure.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_example_representation\">3. Example Representation<\/h2>\n<div class=\"sectionbody\">\n<table class=\"tableblock frame-all grid-all stretch\">\n<colgroup>\n<col style=\"width: 4.7619%;\" \/>\n<col style=\"width: 14.2857%;\" \/>\n<col style=\"width: 14.2857%;\" \/>\n<col style=\"width: 14.2857%;\" \/>\n<col style=\"width: 4.7619%;\" \/>\n<col style=\"width: 9.5238%;\" \/>\n<col style=\"width: 14.2857%;\" \/>\n<col style=\"width: 23.8096%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-center valign-top\">Level<\/th>\n<th class=\"tableblock halign-left valign-top\">Type<\/th>\n<th class=\"tableblock halign-left valign-top\">Class Name<\/th>\n<th class=\"tableblock halign-left valign-top\">Property Name<\/th>\n<th class=\"tableblock halign-center valign-top\">Multiplicity<\/th>\n<th class=\"tableblock halign-center valign-top\">Datatype<\/th>\n<th class=\"tableblock halign-left valign-top\">Associated Class<\/th>\n<th class=\"tableblock halign-left valign-top\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Super Class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Association<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">User ID<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">BAS User<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The reference identifier for the person who did the activity.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Attribute<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Date<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Date<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The date of activity.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Attribute<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Time<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Time<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The time of activity.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specialized Class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Created<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A version of the Activity that has been input or recorded.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specialized Class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Approved<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A version of the Activity that has been validated or confirmed.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specialized Class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Posted<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A version of the Activity that has been made official or finalized.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p>With this approach, the representation is clearer and reduces potential errors in interpretation. The design seamlessly integrates the detailed information of the R-MIM and the hierarchical structure of the HMD into a unified table, making it more straightforward to use for information exchange implementations.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_challenges_in_implementing_the_two_table_approach_an_analysis_of_study_report_part_2_clause_4\">4. Challenges in Implementing the Two-Table Approach: An Analysis of Study Report Part 2, Clause 4<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Interoperability and clarity in data modeling are essential, especially when constructing and interpreting complex structures like the Refined Message Information Model (R-MIM) and Hierarchical Message Definition (HMD). In such scenarios, every byte of information matters, and any ambiguity or redundancy can lead to errors and confusion.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_the_problem_with_study_report_part_2_clause_4_two_table_approach\">4.1. The Problem with Study Report Part 2 Clause 4 Two Table Approach<\/h3>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 1. Attributes Table<\/caption>\n<colgroup>\n<col style=\"width: 16.6666%;\" \/>\n<col style=\"width: 16.6666%;\" \/>\n<col style=\"width: 8.3333%;\" \/>\n<col style=\"width: 16.6666%;\" \/>\n<col style=\"width: 41.6669%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">Object class<\/th>\n<th class=\"tableblock halign-left valign-top\">Attribute term<\/th>\n<th class=\"tableblock halign-center valign-top\">Status<\/th>\n<th class=\"tableblock halign-center valign-top\">Representation<\/th>\n<th class=\"tableblock halign-left valign-top\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">User ID<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">M<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Identifier<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The unique identifier for the person who did the activity.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Date<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">O<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Date<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The date of activity.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Time<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">O<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Time<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The time of activity.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 2. Relations Table<\/caption>\n<colgroup>\n<col style=\"width: 27.2727%;\" \/>\n<col style=\"width: 9.0909%;\" \/>\n<col style=\"width: 9.0909%;\" \/>\n<col style=\"width: 9.0909%;\" \/>\n<col style=\"width: 18.1818%;\" \/>\n<col style=\"width: 27.2728%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">Object class term from<\/th>\n<th class=\"tableblock halign-center valign-top\">E\/R card.<\/th>\n<th class=\"tableblock halign-center valign-top\">Mult. From<\/th>\n<th class=\"tableblock halign-center valign-top\">Mult. To<\/th>\n<th class=\"tableblock halign-left valign-top\">Relation type<\/th>\n<th class=\"tableblock halign-left valign-top\">Object class term to<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">N:1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..n<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Association<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">BAS User<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Entered<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1:1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specialization<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Approved<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1:1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specialization<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Posted<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1:1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specialization<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_problems_with_two_table_definition\">4.2. Problems with Two-Table Definition:<\/h3>\n<div class=\"paragraph\">\n<p>To explain the problems with the two-table definition in the context of UML and how it differs from ER (Entity-Relationship) diagrams in relational modeling, let\u2019s first understand the key distinctions between UML and ER diagrams:<\/p>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_uml_vs_er_diagrams\">4.2.1. UML vs. ER Diagrams:<\/h4>\n<div class=\"paragraph\">\n<p>While ER diagrams focus on the relational aspects of a database, UML class diagrams provide a more integrated view of both structure and relationships in a system. The two-table approach risks fragmenting this view and creating confusion, particularly when complex associations are involved. A unified table approach better aligns with UML principles, offering clarity and ease of interpretation.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>Scope and Usage:<\/strong><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>UML (Unified Modeling Language):<\/strong> UML is a comprehensive modeling language used in software engineering, covering a wide range of diagrams to represent different aspects of a system. It includes class diagrams, sequence diagrams, state diagrams, and more, offering a holistic view of both the static structure and dynamic behavior of a system.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>ER Diagrams:<\/strong> ER diagrams are specifically focused on database modeling. They represent the entities (tables in a database), their attributes (columns), and relationships (foreign keys, many-to-many relationships) among them. ER diagrams are primarily used in designing and understanding relational database schemas.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>Representation of Relationships:<\/strong><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>UML:<\/strong> In UML, relationships (associations) are treated as first-class citizens, equally important as the entities (classes) themselves.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>ER Diagrams:<\/strong> In ER diagrams, relationships are often represented more implicitly, primarily focusing on how entities are connected, typically through foreign keys.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect3\">\n<h4 id=\"_problems_with_two_table_definition_in_uml_context\">4.2.2. Problems with Two-Table Definition in UML Context<\/h4>\n<div class=\"paragraph\">\n<p>Using two separate tables to represent attributes and relationships in a UML class diagram can introduce several challenges:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li><strong>Lack of Integrated View<\/strong>:<br \/>\nUML excels in providing an integrated system view. Splitting attributes and associations into separate tables may obscure the comprehensive structure and interactions of classes, contrary to UML\u2019s holistic approach.<\/li>\n<li><strong>Confusion with ER Modeling<\/strong>:<br \/>\nDistinctly dividing attributes and associations could make UML representations resemble ER diagrams, potentially causing confusion. Unlike ER diagrams focused solely on static data structures, UML class diagrams also emphasize relationships and system interactions.<\/li>\n<li><strong>Complexity in Association Representation<\/strong>:<br \/>\nUML associations are often more complex than ER diagram\u2019s foreign key relationships, entailing multiplicity, directionality, and other features. Their separation into a different table may oversimplify these elements, making them less comprehensible. Moreover, managing and updating two separate tables can increase maintenance complexity, heighten the risk of discrepancies, and complicate cross-referencing, especially for elements serving dual roles, such as &#8216;User ID&#8217;.<\/li>\n<li><strong>Potential Misinterpretation<\/strong>:<br \/>\nWhen an attribute in a class also references another class, similar to a foreign key in ER diagrams, separate tables can lead to ambiguity. It may become unclear if such an attribute is solely data-centric or indicative of a relationship, leading to potential misinterpretations.<\/li>\n<li><strong>Duplication and Overlap<\/strong>:<br \/>\nThe two-table approach risks duplication and overlapping definitions, particularly when elements like &#8220;User ID&#8221; function as both an attribute and an association. This can cause uncertainty about their role, whether as an intrinsic class property or as a connector to another class.<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>Overall, these issues underscore the need for a more unified approach in UML modeling to maintain clarity, context, and the integrity of class structures and relationships.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_solutions_with_a_single_table_definition\">5. Solutions with a Single Table Definition:<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>The proposed single-table design seamlessly merges the attributes and associations of UML class diagrams into a unified structure, effectively addressing the complications inherent in the two-table approach. This design enhances clarity and simplifies interpretation.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_unified_table_structure\">5.1. Unified Table Structure:<\/h3>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li><strong>Level<\/strong>: Indicates the hierarchy or the level of the class within the overall structure. For example, &#8216;1&#8217; for primary classes and &#8216;2&#8217; for their attributes or associations.<\/li>\n<li><strong>Type<\/strong>: Specifies whether the entry is a &#8216;Super Class&#8217;, &#8216;Association&#8217;, &#8216;Attribute&#8217;, or &#8216;Specialized Class&#8217;. This helps in differentiating between the nature of each entry.<\/li>\n<li><strong>Class Name<\/strong>: The name of the class to which the entry belongs, such as &#8216;Activity&#8217;.<\/li>\n<li><strong>Property Name<\/strong>: For attributes and associations, this column names the specific attribute or association, like &#8216;User ID&#8217;, &#8216;Date&#8217;, and &#8216;Time&#8217;.<\/li>\n<li><strong>Multiplicity<\/strong>: Defines the quantity of instances allowed for a property. For example, &#8216;1..1&#8217; signifies a one-to-one relationship, while &#8216;0..1&#8217; indicates that the property is optional.<\/li>\n<li><strong>Datatype<\/strong>: Applicable for attributes, this column specifies the type of data each attribute holds, such as &#8216;Date&#8217; or &#8216;Time&#8217;.<\/li>\n<li><strong>Associated Class<\/strong>: Relevant for associations, this column identifies the class that the current class is associated with. For instance, the &#8216;User ID&#8217; in &#8216;Activity&#8217; is associated with the &#8216;BAS User&#8217;.<\/li>\n<li><strong>Description<\/strong>: Provides a brief explanation or context for each attribute or association. This column is crucial for understanding the purpose and use of each property in the class.<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_the_proposed_single_table_design\">5.2. The Proposed Single-Table Design<\/h3>\n<div class=\"paragraph\">\n<p>To address these challenges, a single-table design approach is proposed.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 3. Unified Table Structure<\/caption>\n<colgroup>\n<col style=\"width: 5.2631%;\" \/>\n<col style=\"width: 10.5263%;\" \/>\n<col style=\"width: 15.7894%;\" \/>\n<col style=\"width: 15.7894%;\" \/>\n<col style=\"width: 5.2631%;\" \/>\n<col style=\"width: 5.2631%;\" \/>\n<col style=\"width: 15.7894%;\" \/>\n<col style=\"width: 26.3162%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-center valign-top\">Level<\/th>\n<th class=\"tableblock halign-left valign-top\">Type<\/th>\n<th class=\"tableblock halign-left valign-top\">Class Name<\/th>\n<th class=\"tableblock halign-left valign-top\">Property Name<\/th>\n<th class=\"tableblock halign-center valign-top\">Multiplicity<\/th>\n<th class=\"tableblock halign-center valign-top\">Datatype<\/th>\n<th class=\"tableblock halign-left valign-top\">Associated Class<\/th>\n<th class=\"tableblock halign-left valign-top\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Super Class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Association<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">User ID<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">BAS User<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The reference identifier for the person who did the activity.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Attribute<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Date<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Date<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The date of activity.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">2<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Attribute<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Time<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Time<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The time of activity.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specialized Class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Created<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A version of the Activity that has been input or recorded.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specialized Class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Approved<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A version of the Activity that has been validated or confirmed.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Specialized Class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Posted<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Activity<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A version of the Activity that has been made official or finalized.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_explanation_of_the_design\">5.3. Explanation of the Design:<\/h3>\n<div class=\"ulist\">\n<ul>\n<li>The table starts with the &#8216;Super Class&#8217;, &#8216;Activity&#8217;, setting the context for the entries that follow.<\/li>\n<li>It then details the associations and attributes of &#8216;Activity&#8217;, like &#8216;User ID&#8217;, &#8216;Date&#8217;, and &#8216;Time&#8217;, along with their characteristics and roles.<\/li>\n<li>The specialized classes like &#8216;Created&#8217;, &#8216;Approved&#8217;, and &#8216;Posted&#8217; are extensions of the &#8216;Activity&#8217; class, each representing a different state or version of &#8216;Activity&#8217;.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>By consolidating all this information into a single table, the design enhances readability and comprehension. It allows users to see at a glance the relationships and properties of a class, along with detailed information like multiplicity and data types. This unified approach simplifies the understanding of the class structure and its various relationships, reducing the complexity and potential ambiguity associated with multiple tables.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_advantages_of_a_unified_table_approach_in_uml\">5.4. Advantages of a Unified Table Approach in UML<\/h3>\n<div class=\"paragraph\">\n<p>A unified table approach in UML offers significant benefits over the traditional two-table method, addressing key issues and enhancing the overall modeling process:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li><strong>Clarity and Cohesion<\/strong>:<br \/>\nThe unified table merges attributes and associations into one comprehensive view. This integrated perspective aligns with UML\u2019s holistic approach, facilitating a clearer understanding of each class\u2019s properties and relationships.<\/li>\n<li><strong>Clarifying Relationships<\/strong>:<br \/>\nBy distinctly labeling properties as either attributes or associations, the unified table format effectively reduces ambiguity. It represents UML\u2019s focus on detailed association treatment more accurately, making it easier to comprehend the nature of each relationship within the model.<\/li>\n<li><strong>Simplified Understanding and Maintenance<\/strong>:<br \/>\nThe unified format\u2019s straightforward structure simplifies both comprehension and maintenance. With all class-related information consolidated in one table, updates and changes are more manageable, ensuring consistency and minimizing errors. This approach significantly reduces maintenance efforts compared to managing separate tables for attributes and associations.<\/li>\n<li><strong>Enhanced Data Integrity<\/strong>:<br \/>\nA single, unified table reduces the risk of conflicting or inconsistent data representations. It allows for easier identification and correction of discrepancies, ensuring a more accurate and consistent depiction of class structures and their relationships.<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>In conclusion, the unified table approach in UML offers a more streamlined, clear, and integrated view of class structures and relationships. While the two-table format has its uses, it can introduce complexity and ambiguity, especially in models where relationships play a crucial role. By consolidating information into a single table, the unified approach enhances the understanding, maintenance, and integrity of UML class diagrams.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_steps_for_the_graph_walk_in_hl7_r_mim_to_hmd\">6. Steps for the Graph Walk in HL7 R-MIM to HMD<\/h2>\n<div class=\"sectionbody\">\n<div class=\"sect2\">\n<h3 id=\"_overview_2\">6.1. Overview<\/h3>\n<div class=\"paragraph\">\n<p>A step-by-step guide on how to perform a Graph Walk from the Refined Message Information Model (R-MIM) to the Hierarchical Message Definition (HMD) within the context of HL7 (Health Level Seven International) standards.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_choose_the_root_class\">6.2. Choose the Root Class<\/h3>\n<div class=\"paragraph\">\n<p>It starts with the &#8220;Patient&#8221; as the root class or another class that has a mandatory relationship to the root class in the specified direction. It considers the relationships and cardinalities to determine the appropriate root class.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_build_the_hierarchical_message_definition_hmd\">6.3. Build the Hierarchical Message Definition (HMD)<\/h3>\n<div class=\"paragraph\">\n<p><strong>Step 1:<\/strong> Copy the class from R-MIM to HMD, including all attributes and associations that will or may appear in the message. Also, place the class on top of the LIFO list.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>Step 2:<\/strong> Select another class related to the currently selected class and continue this process, following the rules specified (from Gen-to-Spec to None).<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_deal_with_cardinalities_greater_than_one\">6.4. Deal with Cardinalities Greater than One:<\/h3>\n<div class=\"paragraph\">\n<p>If associations have cardinalities greater than one, create distinct message elements to represent the association as a set or a list.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_example_message_information_model_in_hl7_version_3_message_development_framework\">7. Example Message Information Model in HL7 Version 3 Message Development Framework<\/h2>\n<div class=\"sectionbody\">\n<div class=\"sect2\">\n<h3 id=\"_uml_diagram\">7.1. UML Diagram<\/h3>\n<div class=\"paragraph\">\n<p>Following UML diagram illustrates a Message Information Model (MIM) specified in the HL7 Version 3 Message Development Framework.<\/p>\n<\/div>\n<div class=\"imageblock\">\n<div class=\"content\"><img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2023\/12\/231202Fig1.png\" alt=\"UML diagram for MIM\" \/><\/div>\n<div class=\"title\">Figure 1. UML diagram for MIM<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_r_mim_table\">7.2. R-MIM Table:<\/h3>\n<div class=\"paragraph\">\n<p>The R-MIM (Refined Message Information Model) provides a detailed description of a specific use case, highlighting the classes, attributes, and associations pertinent to a given healthcare interaction.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>HL7 has established the Tabular Refined Message Information Model, which we have streamlined to represent UML class diagrams in a concise tabular format.<\/p>\n<\/div>\n<div class=\"quoteblock\">\n<blockquote>\n<div class=\"paragraph\">\n<p><strong>10.2.2.2 Tabular Refined Message Information Model<\/strong><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Exhibit 10-1, at the end of this chapter, is an example of the tabular version of the Refined Message<br \/>\nInformation Model shown in. It has two major sections:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u00b7 The information model section, on the left, lists the information model entities (classes, associations, and attributes), one per row.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u00b7 The constraints and defaults section states specific constraints on the information model entities that will be applied to all message formats that are in Hierarchical Message Definitions derived from the Refined Message Information Model. Some of the constraints are also a part of the Message Information Model, although they may be tightened in the Refined Message Information Model. Many of the constraints are not UML constructs; they apply specifically to the HL7 messages defined based on the Refined Message Information<br \/>\nModel.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Some column headings in the constraints and defaults section contain the number sign. This indicates that the value for a given cell can be stated in a separate list of constraints, defaults and comments that accompanies the Refined Message Information Model and its associated Hierarchical Message Definitions.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The columns that compose these sections are defined below.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>10.2.2.2.1 Information Model Section<\/strong><\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><strong>Row Number.<\/strong> This column is the row number in the spreadsheet that is used to generate the tabular<br \/>\nformat. It is useful during discussions about the spreadsheet.<\/li>\n<li><strong>Row type.<\/strong> This column identifies the kind of information model entity that the row represents. The<br \/>\npossible values are:<\/p>\n<div class=\"openblock\">\n<div class=\"content\">\n<div class=\"paragraph\">\n<p><strong>rmim<\/strong> always the first row of the table, identifies the particular Refined Message Information Model in the nomenclature of the HL7 Repository<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>class<\/strong> identifies a \u201cclass\u201d in the Refined Message Information Model attr identifies an attribute of the \u201cclass\u201d that is most directly above this row<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>attr<\/strong> identifies an attribute of the \u201cclass\u201d that is most directly above this row<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>assoc<\/strong> Identifies an association leading from the class that is most directly above this row<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>stc<\/strong> subtype constraint: this row corresponds to a subcomponent of the row above; it would not normally be included in an Refined Message<br \/>\nInformation Model, but it is included in order to be able to state a constraint on the subtype. This is explained in 10.2.2.4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>It is natural to believe that every row identified with assoc has a corresponding assoc row under the row that represents the distal class of the association. However, this is not always true. Where the committee has determined that the association will only be traversed in one direction the corresponding assoc row will not be present.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<li><strong>Class or Property.<\/strong> This column contains the information model name of the entity that is described by the row. The term property is used to lump together attributes and associations. This is because they will be treated in a very similar manner in the Hierarchical Message Definition. In an rmim row, this column contains the identifier of the parent Message Information Model.<\/li>\n<li><strong>Short name.<\/strong> This is an abbreviated form of the name of the information model entity that will be used to tag the corresponding message elements in ITS-specific syntaxes that use tags. In an rmim row, this column contains the name of the parent Message Information Model.<\/li>\n<li><strong>Inherited from.<\/strong> This is the class where the property (attribute or association) appears in the Message Information Model. The column is only filled in when the property appears in a different class in the Message Information Model. See 10.2.2.3. In an rmim row, this column contains the name of the Refined Message Information Model.<\/li>\n<li><strong>Message Element Type.<\/strong> For attributes, this is the data type of the attribute. For associations, this is the name of the distal class.<\/li>\n<\/ul>\n<\/div>\n<\/blockquote>\n<div class=\"attribution\">\u2014 HL7 Message Development Framework Version 3.3 in December 1999<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Following table shows selected columns for some classes from Exibit 10-1.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<colgroup>\n<col style=\"width: 8.3333%;\" \/>\n<col style=\"width: 8.3333%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 8.3334%;\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Row Number<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Row Type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Class or Property (Attribute or Association)<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Inherited From<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">MessageElementType<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Cardinality<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">3<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">rmim<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">C00_RIM_0092D<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">4<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">5<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">id<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">II<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">6<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">status_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..*<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">7<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">encounter_classification_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">8<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">start_dttm<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TS<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">9<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">end_dttm<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TS<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">10<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">expected_insurance_plan_qty<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INT<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">11<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">first_similar_illness_dttm<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TS<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">12<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">has_as_participant<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..*<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">13<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">generalizes<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Inpatient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">14<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">involves<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">15<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Inpatient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">16<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">id<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">II<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">17<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">status_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..*<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">18<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">encounter_classification_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">19<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">end_dttm<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TS<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">20<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">expected_insurance_plan_qty<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INT<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">21<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">first_similar_illness_dttm<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TS<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">22<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">start_dttm<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">TS<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">23<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">actual_days_qty<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INT<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">24<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">estimated_days_qty<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">INT<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">25<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">specializes<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">26<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">27<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">participation_type_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">28<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">is_associated_with<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">29<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">is_participant_for<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Individual_healthcare_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">47<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">class<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">48<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">id<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Set&lt;II&gt;<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..*<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">49<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">status_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Set&lt;CV&gt;<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..*<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">50<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">has_a_primary_provider<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Individual_healthcare_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">51<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">is_a_role_of<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Person_as_Patient<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">52<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">has<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">SetList&lt;Patient_billing_account&gt;<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">0..*<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">53<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">is_involved_in<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p>The data types detailed in the table are defined as per the following quotation:<\/p>\n<\/div>\n<div class=\"quoteblock\">\n<blockquote>\n<div class=\"paragraph\">\n<p><strong>6.2.2.2.2 Overview of defined data types<\/strong><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The following table tries to give a short overview of the defined data types that are commonly assigned to attributes. This table is neither complete nor detailed enough to provide anything more than a coarse overview. The complete and detailed definition of HL7 data types is found in the HL7 Version 3 Data<br \/>\nType Specification. The RIM also contains a special subject area where data types are represented as information model classes.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 4. Defined Data Types<\/caption>\n<colgroup>\n<col style=\"width: 22.2222%;\" \/>\n<col style=\"width: 11.1111%;\" \/>\n<col style=\"width: 66.6667%;\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Name<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Symbol<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Description<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Boolean<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">BL<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The Boolean type stands for the values of two-valued logic. A Boolean value can be either true or false.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Character String<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">ST<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Used when the appearance of text does not bear meaning, which is true for formalized text and all kinds of names. Do not use this data type for attributes intended to contain free text. Scarcely any attribute will be declared directly as a Character String.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Encapsulated Data<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">ED<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Can convey any data that is primarily meant to be shown to human beings for interpretation. Whenever attributes should contain text entered and shown to users, the Encapsulated Data type should be used, not the plain character string type. Encapsulated Data can be any kind of text, whether unformatted or formatted written language or other multi-media data. Instead of the data itself, an ED may contain only a reference (URL).<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Instance Identifier<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">II<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Used to uniquely identify some individual entity, a piece of data or a real world entity. Examples are medical record number, placer and filler order id, service catalog item number, etc.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Telecommunication Address<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">TEL<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A telephone number or e-mail address specified as a URL. In addition this type contains a time specification when that address is to be used, plus a code describing the kind of situations and requirements that would suggest that address to be used (e.g., work, home, pager, answering machine, etc.)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Code Value<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Exactly one symbol in a code system. The meaning of the symbol is defined exclusively and completely by the code system that the symbol is from. Used primarily for technical concepts, concepts which is crucial to HL7 operations, and concepts which are defined or adopted under the discretion of HL7.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Concept Descriptor<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">CD<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A descriptor for a real world (\u201cnatural\u201d) concept, such as a finding, a diagnosis, or of any semantic field, that is not under the sole discretion of HL7. A given concept may be expressed in multiple terms where each term is a translation of some other term, or is a (re-)encoding of the original human readable text, that can also be sent in this data type. This data type is suitable for multi-axial code systems.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Integer Number<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">INT<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Integer numbers are precise numbers that are results of counting and enumerating. Integer numbers are discrete, the set of integers is infinite but countable. No arbitrary limit is imposed on the range of integer numbers. Two special integer values are defined for positive and negative infinity.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Real Number<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">REAL<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Fractional numbers as approximations to real numbers. Fractional numbers occur whenever quantities of the real world are measured or estimated, or where quantities are the result of calculations based on other floating point numbers. This type preserves the precision in terms of significant digits.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Physical Quantity<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">PQ<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A dimensioned quantity expressing the result of a measurement. Consists of a floating point value and a physical unit. Physical Quantities should be preferred instead of two attributes expressing a number and a unit separately. Physical quantities are often constrained to a certain dimension. This can be by specifying some unit representing the dimension (e.g., m, kg, s, kcal\/d, etc.)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Monetary Amount<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">MO<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The amount of money in some currency. Consists of a value and a denomination (e.g., U.S.$, Pound sterling, Euro, Indian Rupee).<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Point in Time<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">TS<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A scalar defining a point on axis of natural time.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">General Timing Specification<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">GTS<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A data type used to specify the timing of events. Every event spans one time interval (occurrence interval), i.e., a continuous range of natural time between a start-point and an end-point in time. A repeating event is timed through a sequence of such occurrence intervals. Such timings are often specified not directly as a sequence of intervals but as a rule, e.g., \u201cevery other day (Mo \u2013 Fr) between 8:00 and 17:00 for 10 minutes.\u201d GTS is treated as a primitive data type (like TS) where there is a special syntax for specifying time of day, day of week, repetition pattern, etc.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Ratio<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">RTO<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A ratio quantity is a quantity that comes about through division of any numerator quantity with any denominator quantity (except zero). Ratios occur in laboratory medicine as &#8220;titers&#8221;, i.e., the maximal dissolutions at which an analyte can still be detected. Other Ratios are price expressions, such as dollar per gram.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Postal and Residential Address<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">AD<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">The main use of such declared data is to be printed on mailing labels (postal address,) or to allow a person to physically visit a location (residential address). The difference between postal and residential address is whether or not there is just a post box.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Person Name<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">PN<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Used for one full name of a natural person. Names usually consist of several name parts that can be classified as given, family, nickname etc. This data type is intended to be used only in the Person_name class. Instead of directly using this data type for an attribute of another class, one should consider drawing an association to the Person_name class.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Organization Name<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">ON<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Used to name an organization. Similar but simpler than the name of a natural person<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Any type<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">ANY<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Used where data of any data type can be sent. This data type must not be used except in very special cases where it needs extensive documentation as to how this can be used interoperable. Currently there is only one use for the ANY data type (i.e., the Observation.value). An attribute of ANY data types can be constrained in subordinate models (r-MIM, HMD).<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 5. Generic (Parameterized) Data Types<\/caption>\n<colgroup>\n<col style=\"width: 22.2222%;\" \/>\n<col style=\"width: 11.1111%;\" \/>\n<col style=\"width: 66.6667%;\" \/> <\/colgroup>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Name<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">Symbol<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Description<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Set Collection<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">SET<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A collection of values of any type T without a specifying an order among the elements.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">List Collection<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">LIST<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">An ordered set of values of any type T.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Bag Collection<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">BAG<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">An unordered set of values of any type T where each value can occur more than once (rare).<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Interval<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">IVL<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Ranges (intervals) of values of type T. An interval is a set of consecutive values of any ordered data type, such as, integer, floating point, point in time, physical quantity, monetary amount, and ratio.) Intervals should be preferred instead of two attributes expressing a start and an end separately.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Uncertain value using probabilities<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">UVP<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A nominal value with a probability number indicating the level of certainty for the value to apply in the given context.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Parametric probability distribution<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">PPD<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">A probability distribution used to indicate certainty (accuracy) of a quantitative value. Allows specifying a distribution type and applicable parameters. All distribution types have the parameters mean and standard distribution. The mean is the value that would be reported if no probability distribution were available.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/blockquote>\n<div class=\"attribution\">\u2014 HL7 Message Development Framework Version 3.3 in December 1999<\/div>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_partial_listing_of_the_resultant_hmd_table\">7.3. Partial Listing of the Resultant HMD Table:<\/h3>\n<div class=\"paragraph\">\n<p>Below is a selection from the HMD table, showcasing a subset of the results obtained from the HL7 graph walk based on the previous example. For associations, the message element name merges the association\u2019s name with its associated class name. Additionally, a new &#8220;Item&#8221; type has been introduced to manage associations with cardinalities greater than one.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 6. Subset of R-MIM table in HL7<\/caption>\n<colgroup>\n<col style=\"width: 11.7647%;\" \/>\n<col style=\"width: 23.5294%;\" \/>\n<col style=\"width: 23.5294%;\" \/>\n<col style=\"width: 17.647%;\" \/>\n<col style=\"width: 17.647%;\" \/>\n<col style=\"width: 5.8825%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">row type<\/th>\n<th class=\"tableblock halign-left valign-top\">message element name<\/th>\n<th class=\"tableblock halign-left valign-top\">in message element type<\/th>\n<th class=\"tableblock halign-left valign-top\">source of message element<\/th>\n<th class=\"tableblock halign-left valign-top\">of message element type<\/th>\n<th class=\"tableblock halign-center valign-top\">Card.<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">is_involved_in_Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">encounter_classification_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Data type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">&#8211;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">has_as_participant_Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Set&lt;Encounter_ practitioner &gt;<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">1..1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">item<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">_Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Set&lt;Encounter_ practitioner &gt;<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">participation_type_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Data type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<td class=\"tableblock halign-center valign-top\">\n<p class=\"tableblock\">&#8211;<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p><strong>Explanation:<\/strong><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong><code>assoc<\/code> Row:<\/strong><br \/>\nIt\u2019s showing an association between &#8220;Patient&#8221; and &#8220;Patient_encounter.&#8221;<br \/>\nThe message element type is &#8220;Patient,&#8221; derived as a new type, and it`s associated with &#8220;Patient_encounter.&#8221;<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong><code>attr<\/code> Row:<\/strong><br \/>\nAn attribute row where the &#8220;encounter_classification_cd&#8221; attribute is part of the &#8220;Patient_encounter&#8221; message element, with data type CV.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong><code>assoc<\/code> and <code>item<\/code> Rows for Cardinalities Greater than One:<\/strong><br \/>\nFor associations, like the association between &#8220;Patient_encounter&#8221; and &#8220;Encounter_practitioner,&#8221; a new type, &#8220;Set&lt;Encounter_practitioner&gt;,&#8221; is created.<br \/>\nAn &#8220;item&#8221; row type is added, with the message element name &#8220;_Encounter_practitioner&#8221; representing the entity within the set.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_enhancing_clarity_in_hl7_data_structures\">8. Enhancing Clarity in HL7 Data Structures<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>HL7 standards typically utilize a shared column for both attributes and associations within their data structures. However, in this unified table approach, we have extended the column dedicated to associations and their associated classes. This modification allows users to more easily distinguish between properties and their relationships.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>In this enhanced format, what was previously labeled as &#8220;Attribute\/Association&#8221; is now renamed as &#8220;Property Name.&#8221; This change simplifies understanding and improves clarity. Additionally, the &#8220;Data Type&#8221; and &#8220;Associated Class&#8221; are now separated into distinct columns, offering a more organized and straightforward representation.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>The table presented here offers a clear and concise representation of the Unified Modeling Language (UML). It lists each class along with its specific attributes, associations, and data types in a structured manner. Moreover, a dedicated &#8220;Cardinality&#8221; column is included, which represents the nature and strength of the relationships between the classes involved in each association. This comprehensive format ensures a more accessible and intuitive understanding of the complex relationships and elements within the HL7 standards.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_hl7_graph_walk\">9. HL7 Graph Walk<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>The following outlines the steps in the HL7 Graph Walk process. It begins with selecting the root class, progresses to copying classes and attributes from the R-MIM to the HMD, and addresses associations with cardinalities exceeding one. This structure encapsulates the message\u2019s content and structure and serves as a guide for both implementation and documentation in health information exchanges.<br \/>\nBelow, you\u2019ll find an in-depth, step-by-step breakdown of the Graph Walk procedure, complemented by examples and outcomes for each phase.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_choose_the_root_class_2\">9.1. Choose the Root Class<\/h3>\n<div class=\"paragraph\">\n<p><strong>Action<\/strong><br \/>\nSubject Class: <code>Patient<\/code><br \/>\nGiven the relationship and cardinality, <code>Patient<\/code> is the root class. Push ` Patient ` onto LIFO list<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>Result<\/strong><br \/>\nRoot class selected: <code>Patient<\/code><\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 7. Intermediate HMD<\/caption>\n<colgroup>\n<col style=\"width: 12.5%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 18.75%;\" \/>\n<col style=\"width: 18.75%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">row type<\/th>\n<th class=\"tableblock halign-left valign-top\">message element name<\/th>\n<th class=\"tableblock halign-left valign-top\">In message element type<\/th>\n<th class=\"tableblock halign-left valign-top\">source of message element<\/th>\n<th class=\"tableblock halign-left valign-top\">of message element type<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">(empty)<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 8. LIFO list<\/caption>\n<colgroup>\n<col style=\"width: 100%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">Patient<\/th>\n<\/tr>\n<\/thead>\n<\/table>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_constructing_the_hierarchical_message_definition_hmd_using_graph_walk\">9.2. Constructing the Hierarchical Message Definition (HMD) Using Graph Walk:<\/h3>\n<div class=\"paragraph\">\n<p><strong>Step 1<\/strong><br \/>\nAction: Transfer the Patient class to the HMD and remove it from the LIFO list.<br \/>\nResult: The <code>Patient<\/code> class is added to the HMD.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 9. Intermediate HMD Table<\/caption>\n<colgroup>\n<col style=\"width: 12.5%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 18.75%;\" \/>\n<col style=\"width: 18.75%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">row type<\/th>\n<th class=\"tableblock halign-left valign-top\">message element name<\/th>\n<th class=\"tableblock halign-left valign-top\">In message element type<\/th>\n<th class=\"tableblock halign-left valign-top\">source of message element<\/th>\n<th class=\"tableblock halign-left valign-top\">of message element type<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">is_involved_in_Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p>Push <code>Patient_encounter<\/code> onto LIFO list.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 10. LIFO list<\/caption>\n<colgroup>\n<col style=\"width: 100%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">Patient<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p><strong>Step 2<\/strong><br \/>\nAction: Select a class related to <code>Patient<\/code>. For instance, select <code>Patient_encounter<\/code> based on the mandatory relationship.<br \/>\nResult: <code>Patient_encounter<\/code> class is added next in the HMD.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_continuing_with_step_1_and_2\">9.3. Continuing with Step 1 and 2:<\/h3>\n<div class=\"paragraph\">\n<p><strong>Action:<\/strong> From <code>Patient_encounter<\/code>, pick an attribute, e.g., <code>encounter_classification_cd<\/code>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>Result:<\/strong> This attribute is added to the HMD table.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 11. Updated HMD Table<\/caption>\n<colgroup>\n<col style=\"width: 12.5%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 18.75%;\" \/>\n<col style=\"width: 18.75%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">row type<\/th>\n<th class=\"tableblock halign-left valign-top\">message element name<\/th>\n<th class=\"tableblock halign-left valign-top\">In message element type<\/th>\n<th class=\"tableblock halign-left valign-top\">source of message element<\/th>\n<th class=\"tableblock halign-left valign-top\">of message element type<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">is_involved_in_Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u00a0\u00a0\u00a0\u00a0encounter_classification_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Data type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p>Push <code>Encounter_practitioner<\/code> onto LIFO list.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 12. LIFO list<\/caption>\n<colgroup>\n<col style=\"width: 100%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">Patient<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Encounter_practitioner<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_dealing_with_cardinalities_greater_than_one\">9.4. Dealing with Cardinalities Greater than One<\/h3>\n<div class=\"paragraph\">\n<p><strong>Action:<\/strong> Encounter an association with cardinality greater than one between <code>Patient_encounter<\/code> and <code>Encounter_practitioner<\/code>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>Result:<\/strong> Create distinct message elements to represent the association as a set or list.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 13. Updated HMD Table with Cardinality Handling<\/caption>\n<colgroup>\n<col style=\"width: 12.5%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 18.75%;\" \/>\n<col style=\"width: 18.75%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">row type<\/th>\n<th class=\"tableblock halign-left valign-top\">message element name<\/th>\n<th class=\"tableblock halign-left valign-top\">In message element type<\/th>\n<th class=\"tableblock halign-left valign-top\">source of message element<\/th>\n<th class=\"tableblock halign-left valign-top\">of message element type<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">is_involved_in_Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u00a0\u00a0\u00a0\u00a0encounter_classification_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Data type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u00a0\u00a0\u00a0\u00a0has_as_participant_Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Set&lt;Encounter_practitioner&gt;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">item<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0_Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Set&lt;Encounter_ practitioner &gt;<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Encounter_practitioner<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p>The association <code>has_as_participant_Encounter_practitioner<\/code> from <code>Patient_encounter<\/code> is of type Set&lt;Encounter_practitioner&gt;, reflecting the cardinality greater than one.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A new item row is added to the HMD to represent the <code>Encounter_practitioner<\/code> entities within the set.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>After processing <code>Encounter_practitioner<\/code>, pop it off the LIFO list.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 14. LIFO list<\/caption>\n<colgroup>\n<col style=\"width: 100%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">Patient<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"paragraph\">\n<p>After processing <code>Patient_encounter<\/code>, pop it off the LIFO list.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 15. LIFO list<\/caption>\n<colgroup>\n<col style=\"width: 100%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">Patient<\/th>\n<\/tr>\n<\/thead>\n<\/table>\n<div class=\"paragraph\">\n<p>After processing <code>Patient<\/code> , pop it off the LIFO list.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 16. LIFO list<\/caption>\n<colgroup>\n<col style=\"width: 100%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">(empty)<\/th>\n<\/tr>\n<\/thead>\n<\/table>\n<div class=\"paragraph\">\n<p>Now the Graph Walk has been corrected to ensure the LIFO list is emptied at the end of the process.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_continuing_steps\">9.5. Continuing Steps:<\/h3>\n<div class=\"paragraph\">\n<p>You will continue the steps of the graph walk, copying classes, attributes, and associations to the HMD, and following the LIFO list until it\u2019s empty, which signals the completion of the process.<\/p>\n<\/div>\n<table class=\"tableblock frame-all grid-all stretch\">\n<caption class=\"title\">Table 17. Result of HL7 graph walk<\/caption>\n<colgroup>\n<col style=\"width: 12.5%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 25%;\" \/>\n<col style=\"width: 18.75%;\" \/>\n<col style=\"width: 18.75%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">row type<\/th>\n<th class=\"tableblock halign-left valign-top\">message element name<\/th>\n<th class=\"tableblock halign-left valign-top\">In message element type<\/th>\n<th class=\"tableblock halign-left valign-top\">source of message element<\/th>\n<th class=\"tableblock halign-left valign-top\">of message element type<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">is_involved_in_Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u00a0\u00a0\u00a0\u00a0encounter_classification_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Data type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u2026\u200b<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">assoc<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u00a0\u00a0\u00a0\u00a0has_as_participant_Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Patient_encounter<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New Type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Set &lt;Encounter_practitioner&gt;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">item<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0_Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Set &lt;Encounter_practitioner&gt;<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">New type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Encounter_practitioner<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">attr<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0participation_type_cd<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Encounter_practitioner<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">Data type<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">CV<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">\u2026\u200b<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<td class=\"tableblock halign-left valign-top\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_final_summary\">10. Final Summary<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>The HL7 graph walk procedure currently employs distinct formats for R-MIM (Refined Message Information Model) and HMD (Hierarchical Message Definition), leading to challenges in user comprehension. The inability of ISO 17113 to effectively redefine these two tables for graph walk purposes has been a notable shortfall. However, this unified table design addresses the issue by adopting a consistent format for both R-MIM and HMD, thereby simplifying the understanding for business experts.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Through these systematic steps, all necessary information and data elements are captured in the HMD, ensuring a comprehensive representation of the HL7 message structure, content, and associations according to the specific R-MIM and use case at hand. The LIFO list helps in managing and tracking the classes being considered during the graph walk process. Each step is essential to ensure that the final HMD is complete and accurate, facilitating effective and standardized health information exchange.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_generating_unified_tables_from_multiple_csv_sheets\">11. Generating Unified Tables from Multiple CSV Sheets<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>IBM Rational Rose, previously integral to the HL7 Message Development Framework Version 3.3 in December 1999, is now unsupported, underscoring the perils of depending exclusively on proprietary software. This development stresses the need for flexible, non-proprietary tools in crafting durable semantic models for standards. Initially, IBM provided a complimentary migration path from Rational Rose to Rational Software Architect in early 2005. However, as of May 19, 2010, this transition became a paid service, reflecting IBM\u2019s evolving software modeling strategies. The specifics of this shift are detailed in IBM\u2019s software announcement letter RTL10038, issued on March 17, 2010.<\/p>\n<\/div>\n<div class=\"quoteblock\">\n<blockquote>\n<div class=\"imageblock\">\n<div class=\"content\"><img decoding=\"async\" src=\"https:\/\/www.sambuichi.jp\/wp-content\/uploads\/2023\/12\/231202Fig3.png\" alt=\"Example of a model in RoseTree view\" \/><\/div>\n<div class=\"title\">Figure 2. Example of a model in RoseTree view<\/div>\n<\/div>\n<\/blockquote>\n<div class=\"attribution\">\u2014 HL7 Message Development Framework Version 3.3 in December 1999<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Additionally, a proprietary graphical design tool caters to ISO 21377 and other extensions, capable of generating multiple CSV files for the ISO\/AWI project. JISC-developed Python scripts, particularly ObjectClass.py, play a critical role in assembling a unified table sheet that merges UML object classes and properties. This table, editable by experts, serves as the R-MIM for the HL7 graph walk process. Complementing this, the HL7graphWalk.py script conducts the graph walk, producing a Hierarchical Message Definition (HMD), a hierarchical logical model.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_objectclass_py\">11.1. ObjectClass.py<\/h3>\n<table class=\"tableblock frame-all grid-all stretch\">\n<colgroup>\n<col style=\"width: 33.3333%;\" \/>\n<col style=\"width: 33.3333%;\" \/>\n<col style=\"width: 33.3334%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">IN<\/th>\n<th class=\"tableblock halign-left valign-top\">Program<\/th>\n<th class=\"tableblock halign-left valign-top\">OUT<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\"><strong>Directory:<\/strong> .\/object_class\/<br \/>\n<strong>Files:<\/strong><br \/>\nAttributes.csv<br \/>\nCodelista.csv<br \/>\nCodelists.csv<br \/>\nCodevalues.csv<br \/>\nDomains.csv<br \/>\nEntities.csv<br \/>\nIsas.csv<br \/>\nRelations.csv<br \/>\nRules.csv<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">ObjectClass.py<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\"><strong>Directory:<\/strong> .\/semantic\/<br \/>\n<strong>File:<\/strong> ObjectClass.csv<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"admonitionblock note\">\n<table>\n<tbody>\n<tr>\n<td class=\"icon\">\n<div class=\"title\">Note<\/div>\n<\/td>\n<td class=\"content\">For those interested in exploring further, the Python source code is available for access on GitHub.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_hl7graphwalk_py\">11.2. HL7graphWalk.py<\/h3>\n<table class=\"tableblock frame-all grid-all stretch\">\n<colgroup>\n<col style=\"width: 33.3333%;\" \/>\n<col style=\"width: 33.3333%;\" \/>\n<col style=\"width: 33.3334%;\" \/> <\/colgroup>\n<thead>\n<tr>\n<th class=\"tableblock halign-left valign-top\">IN<\/th>\n<th class=\"tableblock halign-left valign-top\">Program<\/th>\n<th class=\"tableblock halign-left valign-top\">OUT<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\"><strong>Directory:<\/strong> .\/semantic\/<br \/>\n<strong>File:<\/strong> ObjectClass.csv<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\">HL7graphWalk.py<\/p>\n<\/td>\n<td class=\"tableblock halign-left valign-top\">\n<p class=\"tableblock\"><strong>Directory:<\/strong> .\/semantic\/<br \/>\n<strong>File:<\/strong> LogicalModel.csv<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"admonitionblock note\">\n<table>\n<tbody>\n<tr>\n<td class=\"icon\">\n<div class=\"title\">Note<\/div>\n<\/td>\n<td class=\"content\">For those interested in exploring further, the Python source code is available for access on GitHub.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_purpose_of_these_open_source_programs\">11.3. Purpose of These Open-Source Programs<\/h3>\n<div class=\"paragraph\">\n<p>The primary objective of these open-source Python programs is to facilitate a more efficient and transparent process in data handling and analysis within the field of semantic model development. The programs are designed with the following goals in mind:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li><strong>Enhanced Data Integration<\/strong>: By generating unified table sheets from multiple CSV files, these programs aim to streamline the integration of diverse data sets. This integration is crucial for complex projects where data consistency and accuracy are paramount.<\/li>\n<li><strong>Ease of Use and Accessibility<\/strong>: Open-source availability on GitHub ensures that these tools are easily accessible to a wide range of users, from professional developers to academic researchers. This accessibility fosters a collaborative environment where improvements and customizations can be shared and implemented by the community.<\/li>\n<li><strong>Standardization in Semantic Modeling<\/strong>: The tools support TC 295 audit data services data modeling, helping users in adhering to these standards in their projects. This standardization is vital for ensuring compatibility and interoperability in health data exchange.<\/li>\n<li><strong>Facilitation of HL7 Graph Walks<\/strong>: The <code>HL7graphWalk.py<\/code> script, in particular, is instrumental in executing HL7 graph walks. This process is key to producing hierarchical logical models (HMDs), which are essential in structuring and understanding audit data more effectively.<\/li>\n<li><strong>Expert Involvement and Customization<\/strong>: The ability to manually edit the unified tables ensures that expert input can be incorporated, allowing for tailored solutions that meet specific project needs. This flexibility is crucial in a field as dynamic and varied as health informatics.<\/li>\n<li><strong>Support for Jurisdictional Localization and Extension<\/strong>: This design framework intends to facilitate further jurisdictional localization and extension. However, the implementation of these functions is currently pending due to the absence of a standardized extension framework for audit data services. We are prepared to support these functions as soon as the standard for extension becomes available.<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>In summary, these open-source programs are not just tools for data manipulation; they are part of a larger effort to improve the standardization, accessibility, and efficiency of health informatics practices worldwide, with a readiness to adapt to future developments in standardization and data services.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"footnotes\">\n<hr \/>\n<div id=\"_footnotedef_1\" class=\"footnote\"><a href=\"#_footnoteref_1\">1<\/a>. &#8220;Message Development Framework Version 3.3,&#8221; edited by George W Beeler and others under Health Level Seven, Inc. (HL7), was published in December 1999. It was last accessed on September 20, 2022, from <a class=\"bare\" href=\"http:\/\/cplire.ru\/rus\/telemed\/HL7\/HL7Method.pdf\">http:\/\/cplire.ru\/rus\/telemed\/HL7\/HL7Method.pdf<\/a>. However, as of December 3, 2023, this webpage is no longer available online. Archived versions can be found via the Wayback Machine at <a class=\"bare\" href=\"https:\/\/web.archive.org\/web\/20121222001455\/http:\/\/cplire.ru\/rus\/telemed\/HL7\/HL7Method.pdf\">https:\/\/web.archive.org\/web\/20121222001455\/http:\/\/cplire.ru\/rus\/telemed\/HL7\/HL7Method.pdf<\/a>.<\/div>\n<\/div>\n<div id=\"footer\">\n<div id=\"footer-text\">Last updated 2023-12-03 16:14:15 +0900<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Views: 16 Unified Table Design for Enhancing HL7 R-MIM, HMD Structures, and Graph Walk Table of Contents 1. Ov [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":11184,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[32],"tags":[],"_links":{"self":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/11234"}],"collection":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11234"}],"version-history":[{"count":15,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/11234\/revisions"}],"predecessor-version":[{"id":11258,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/posts\/11234\/revisions\/11258"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=\/wp\/v2\/media\/11184"}],"wp:attachment":[{"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sambuichi.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}