HL7 Patient Record Architecture Tutorial Spring HL7 Meeting April 27, Toronto Instructors Liora Alschuler, Co-chair, HL7 SGML/XML SIG, Chair KEG (“Kona” Editorial Group), The Word Electric Bob Dolin, MD, PRA Co-editor, Kaiser Permanente Lloyd Harding, PRA Co-editor, IAAI Jason P. Williams, Oceania Clinical Information Systems Tutorial Outline Overview – Origin – Goals & Design Principles – Theory – Practice Implementing the PRA – Provider perspective – HIMSS – Mapping an H&P Issues in Implementation Tutorial Materials Printed handouts Floppy disk Website Overview Origin of the PRA Goals & Design Principles Theory Practice Overview Origin Goal/ DP Theory Practice Implement Issues Pre-HL7 – Document-based exchange – Value of narrative Kona and Operation Jumpstart Overview Origin Goal/ DP Theory Practice Implement Provider HIMSS Map Issues April, 1996: 1st ad hoc meeting April–Dec: meet (almost) every month Oct –Dec: negotiate with HL7 Jan, 1997: 1st meeting as HL7 SIG July, 1997: Operation Jumpstart at Kona Mansion, Lake Winnipesaukee, NH drafts “Kona Architecture” August, 1997: HL7 SGML Mixer Sept, 1997: Initial presentation to HL7 Sept, 1998: HL7 adopts XML as V3 msg syntax Feb. 1999, HL7 HIMSS demo HL7 XML Overview Theory Exchange “arch” Why Bennies Practice Implement Issues Purpose: expand EMR to include document-based clinical information – support exchange of documents – support reuse of documents – support longevity through system-independent electronic medical records Scope: exchange of attested documents Incremental design and implementation: do simple things first Local specialization interacting with global generalization Supports broad spectrum of business needs Overview Origin Goal/ DP Theory Practice Implement Provider HIMSS Map Issues GOALS (1/2): • Use open standards. • Support exchange of documents between users, including those with different levels of technical sophistication. • Give priority to delivery of patient care. • Enable a wide range of post-exchange processing applications • Promote exchange independent of the underlying transfer or storage mechanism. Overview Origin Goal/ DP Theory Practice Implement Provider HIMSS Map Issues GOALS (2/2): •Prepare the design reasonably quickly. •Enable policy-makers to control their own information requirements without extension to this specification. •Specification of document types for creation and processing other than for exchange lie outside the scope of this effort. Overview Origin Goal/ DP Theory Practice Implement Provider HIMSS Map Issues •Design Principles (1/2): •Shall be compatible with XML and the HL7 RIM. •Technical barriers to entry shall be minimized. •The architecture shall specify the document types required for exchange. •The architecture shall establish minimal constraints or requirements on document structure and content required for exchange. Overview Origin Goal/ DP Theory Practice Implement Issues Design Principles (2/2): •The architecture shall be scalable to accommodate highly granular markup such as highly structured text and coded data. •Document types based on this architecture shall accommodate such constraints and requirements as supplied by appropriate professional, commercial, and regulatory agencies. •Documents types for document creation and processing intended for exchange must map to the exchange architecture. Overview Theory Exchange “arch” Why Bennies Practice Implement Issues The central problem of information exchange is the tension between: Local Global Specialization Generalization In other words, “Why can’t everyone just agree to do things my way?” is not the right question. Overview Theory Exchange “arch” Why Bennies Practice Implement Issues The right question is: How can we: – impose minimal constraints on local practice yet... – ensure that senders and receivers can share meaning where meaning is, indeed, shared and can apply common processing applications based on a well-understood semantic? Overview Theory Exchange “arch” Why Bennies Practice Implement Issues The “arch” in PRA Taxonomy of document types Classed by type of document Classed by degree of granularity of markup Overview Theory Exchange “arch” Why Bennies Practice Implement Issues Specifies and allows: – mapping from sender’s local schema to standard exchange schema – mapping between different levels of markup granularity – mapping between domain-specific exchange schemas Overview Theory Exchange “arch” Why Bennies Practice Implement Issues Scalable document architecture relates documents in a hierarchy according to the degree of encoding also relates documents with equivalent granularity of markup but different languages or terms Overview Theory Exchange “arch” Why Bennies Practice Implement Issues The “arch” in PRA Overview Theory Exchange “arch” Why Bennies Practice Implement Issues Extending the PRA Overview Theory Exchange “arch” Why Bennies Practice Implement Issues Extending the PRA Overview Theory Exchange “arch” Why Bennies Practice Implement Issues Why an “arch” not a DTD? Local and exchange requirements vary Authoring and processing requirements vary Simple inheritance between document types – levels of granularity – language – lateral (domains of clinical practice) Overview Theory Exchange “arch” Why Bennies Practice Implement Issues Benefits Information can be encoded at varying levels of specificity and understood at the highest, or most appropriate, level of encoding Information encoded at varying levels can be analyzed at the highest common level Where a greater level of specificity is required than what is presented, there may be value in the simpler taxonomic categories. Diverse, local DTDs for document creation, validation, local processing with minimal constraint for exchange Common processing applications in exchange context Overview Theory Exchange “arch” Why Bennies Practice Implement Issues Benefits (Some) preservation of local markup within exchange document Scalable wrt DTD complexity Scalable wrt implementation Permits added level of abstraction, indirection in exchange model Not a winner-take-all approach to single exchange model; allows distribution of work, cooperation among standards orgs Overview Theory Exchange “arch” Why Bennies Practice Implement Issues Benefits Scalable taxonomy for exchange, indexing, searching, other processing applications Graduated cost/benefit analysis Graduated levels of conformance Overview Theory Practice Header Body Implement Issues PRA Header :: Overview Purpose Enable clinical document exchange across and within institutions. Facilitate clinical document management. Facilitate compilation of an individual's documents into a lifetime EHR. Principles Every HL7 Patient Record Document contains a Patient Record Header. The header contains required information that uniquely identifies and classifies the document, attestation details, event, patient, and practitioner. The PRA Header is not intended to replace and does not preclude use of localized header information or local document management information in either the source or the interchange documents. The PRA Header specifies whether a document is an "original", an "addendum", or a "replacement". Header component "document.parent.id" references the updated document. Unique Identifiers All unique identifiers (components containing ".id") are assigned by the document.originating.system. To the extent that originating system names are globally unique, a concatenation of document.originating.system with any unique identifier in the document header results in a globally unique identifier. All header components that are unique identifiers contain an element "id.value" in their content model. For required identifiers, this subcomponent is required. Overview Theory Practice Header Body Implement Issues PRA Header :: Overview People involved with a clinical document A person should be included as the value for each appropriate header component, even if the person represents the value for more then one component. Header DTD design principles Header components are mapped to the RIM, and use HL7 data type definitions. (Currently, RIM 0.86 and V2.3 data types.) The following #FIXED attributes are used: HL7.datatype : the HL7 V2.3 data type of the element. RIM.attribute : the corresponding RIM attribute. RIM.version: the RIM version mapped to. domain: the HL7 table where enumerated values are drawn from. Where there is a closed enumerated value list (i.e. HL7 V2.3 data type is "ID - coded values for HL7 tables"), header components are modeled as EMPTY, the set of allowable values are enumerated in the DTD, and the value is conveyed in an attribute named "value" (e.g. document.state, patient.sex). V2.3 data type "IS - Coded values for user-defined tables" is modeled as an HL7 V2.3 "CE - coded element" data type (e.g. document.type, practitioner.role). Overview Theory Practice Header Body Implement Issues PRA Header :: Current Draft <LevelOne> <header> <document>...</document> <event>...</event> <patient>...</patient> <practitioner>...</practitioner> </header> <body> ... </body> </LevelOne> Overview Theory Practice Header Body Implement Issues PRA Header :: Current Draft <document> <document.creation.date>19990212</document.creation.date> <document.id> <id.value>1009</id.value> </document.id> <document.originating.system> <id.value>systemX</id.value> <organization.name>Global Healthcare, INC</organization.name> </document.originating.system> <document.originator.id> <id.value>24680</id.value> <family.name>Levin</family.name> <given.name>Henry</given.name> <suffix>the 7th</suffix> <degree>MD</degree> </document.originator.id> <document.state value="original"/> <document.type> <identifier>11492-6</identifier> <text>HISTORY AND PHYSICAL</text> <name.of.coding.system>LN</name.of.coding.system> </document.type> </document> Overview Theory Practice Header Body Implement Issues PRA Header :: Current Draft <document> <document.creation.date>19990212</document.creation.date> <document.id> <id.value>1009</id.value> </document.id> <document.originating.system> <id.value>systemX</id.value> <organization.name>Global Healthcare, INC</organization.name> </document.originating.system> <document.originator.id> <id.value>24680</id.value> <family.name>Levin</family.name> <given.name>Henry</given.name> <suffix>the 7th</suffix> <degree>MD</degree> </document.originator.id> <document.state value="original"/> <!ENTITY % Time_stamp "( #PCDATA | local.header )*"> <document.type> (YYYY[MM[DD[HHMM[SS[.S[S[S[S]]]]]]]][+/-ZZZZ]) <identifier>11492-6</identifier> <text>HISTORY AND PHYSICAL</text> <!ELEMENT document.creation.date %Time_stamp;> <name.of.coding.system>LN</name.of.coding.system> <!ATTLIST document.creation.date </document.type> </document> %common-atts; HL7.datatype CDATA #FIXED "TS" RIM.attribute CDATA #FIXED "Clinical_document_header.origination_dt"> Overview PRA Header :: Current Draft Theory Practice <document> Header <document.creation.date>19990212</document.creation.date> Body <document.id> Implement <id.value>1009</id.value> </document.id> Issues <document.originating.system> <id.value>systemX</id.value> <organization.name>Global Healthcare, INC</organization.name> </document.originating.system> <document.originator.id> <id.value>24680</id.value> <family.name>Levin</family.name> <given.name>Henry</given.name> <suffix>the 7th</suffix> <!ELEMENT document.id %Entity_identifier;> <degree>MD</degree> <!ATTLIST document.id </document.originator.id> <document.state %common-atts; value="original"/> HL7.datatype CDATA #FIXED "EI" <document.type> RIM.attribute CDATA #FIXED "Clinical_document_header.id"> <identifier>11492-6</identifier> <text>HISTORY AND PHYSICAL</text> <!ELEMENT document.originating.system %Extended_org_name_and_id;> <name.of.coding.system>LN</name.of.coding.system> <!ATTLIST document.originating.system </document.type> %common-atts; </document> HL7.datatype CDATA #FIXED "XON" RIM.attribute CDATA #FIXED "Patient_service_location.id"> Overview PRA Header :: Current Draft Theory Practice <document> Header <!ENTITY % document.state.table <document.creation.date>19990212</document.creation.date> Body " ( original <document.id> Implement | addendum <id.value>1009</id.value> | replacement )" > </document.id> Issues <document.originating.system> <id.value>systemX</id.value> <!ELEMENT document.state EMPTY> <!ATTLIST document.state <organization.name>Global Healthcare, INC</organization.name> %common-atts; </document.originating.system> HL7.datatype CDATA #FIXED "ID.EN" <document.originator.id> RIM.attribute CDATA #FIXED "" <id.value>24680</id.value> <family.name>Levin</family.name>domain CDATA #FIXED "HL7Z001" <given.name>Henry</given.name> value %document.state.table; #REQUIRED> <suffix>the 7th</suffix> <degree>MD</degree> </document.originator.id> <document.state value="original"/> <document.type> <identifier>11492-6</identifier> <text>HISTORY AND PHYSICAL</text> <name.of.coding.system>LN</name.of.coding.system> </document.type> </document> Overview PRA Header :: Current Draft Theory Practice <document> Header <!ENTITY % Coded_element <document.creation.date>19990212</document.creation.date> Body <document.id> "( identifier?, Implement text?, <id.value>1009</id.value> name.of.coding.system?, </document.id> Issues alternate.identifier?, <document.originating.system> alternate.text?, <id.value>systemX</id.value> name.of.alternate.coding.system?, <organization.name>Global Healthcare, INC</organization.name> local.header* )"> </document.originating.system> <document.originator.id> <!ELEMENT document.type %Coded_element;> <id.value>24680</id.value> <!ATTLIST document.type <family.name>Levin</family.name> %common-atts; <given.name>Henry</given.name> HL7.datatype CDATA #FIXED "IS" <suffix>the 7th</suffix> RIM.attribute CDATA #FIXED Clinical_document_header.type_cd"> <degree>MD</degree> </document.originator.id> <document.state value="original"/> <document.type> <identifier>11492-6</identifier> <text>HISTORY AND PHYSICAL</text> <name.of.coding.system>LN</name.of.coding.system> </document.type> </document> Overview PRA Header :: Current Draft Theory Practice <header> Header <document>...</document> Body <event> Implement <event.id><id.value>1009</id.value></event.id> <event.date>19990212</event.date> Issues </event> <patient> <patient.id><id.value>P001</id.value></patient.id> <patient.name> <family.name>Lantry</family.name> <given.name>Connie</given.name> </patient.name> <patient.date.of.birth>19630613</patient.date.of.birth> <patient.sex value="female"/> </patient> <practitioner> <practitioner.id> <id.value>24680</id.value> </practitioner.id> <practitioner.role> <text>ATTENDING PHYSICIAN</text> <name.of.coding.system>HL70133</name.of.coding.system> </practitioner.role> </practitioner> </header> Overview PRA Header :: Current Draft Theory Practice <header> Header <document>...</document> Body <event> Implement <event.id><id.value>1009</id.value></event.id> <event.date>19990212</event.date> Issues </event> <patient> <patient.id><id.value>P001</id.value></patient.id> <patient.name> <family.name>Lantry</family.name> <given.name>Connie</given.name> </patient.name> <patient.date.of.birth>19630613</patient.date.of.birth> <patient.sex value="female"/> </patient> <practitioner> <practitioner.id> <id.value>24680</id.value> </practitioner.id> <practitioner.role> <text>ATTENDING PHYSICIAN</text> <name.of.coding.system>HL70133</name.of.coding.system> </practitioner.role> </practitioner> </header> Overview PRA Header :: Current Draft Theory Practice <header> Header <document>...</document> Body <event> Implement <event.id><id.value>1009</id.value></event.id> <event.date>19990212</event.date> Issues </event> <patient> <patient.id><id.value>P001</id.value></patient.id> <patient.name> <family.name>Lantry</family.name> <given.name>Connie</given.name> </patient.name> <patient.date.of.birth>19630613</patient.date.of.birth> <patient.sex value="female"/> </patient> <practitioner> <practitioner.id> <id.value>24680</id.value> </practitioner.id> <practitioner.role> <text>ATTENDING PHYSICIAN</text> <name.of.coding.system>HL70133</name.of.coding.system> </practitioner.role> </practitioner> </header> Overview Theory Practice Header Body Implement Issues PRA Header :: Current Draft "local.header" provides a slot for local (non-exchange related) markup. The default action for the receiver is to ignore the local.header and its contents. If the sender chooses to replace the default with the value of 'markup' they are informing the receiver that they think the content enclosed in the markup may be useful. There is no requirement that the receiver do anything with the markup and content. descriptor: describes the local header. render: may give indication of how the origin would render the content. <!ELEMENT local.header (#PCDATA | local.header)* > <!ATTLIST local.header ignore (all | markup) "all" descriptor CDATA #IMPLIED render CDATA #IMPLIED %common-atts;> Overview Theory Practice Header Body Issues PRA Body:: Current Draft Minimal markup •Minimal amount of markup at level one. •Prose structures. •Sections have an optional section.title. •Sections consist of paragraphs, lists, and tables. •Sections can nest. Overview Theory Practice Header Body Implement Issues PRA Body:: Current Draft Example of sections with titles and paragraphs. <LevelOne> <header>...</header> <body> <section> <section.title>ADMITTING PHYSICAL EXAMINATION</section.title> <section> <section.title>GENERAL</section.title> <paragraph>The blood pressure is 170/88, pulse 80 and regular, and respirations 18. She weighs 240 pounds. </paragraph> </section> <section> <section.title>HEENT</section.title> <paragraph>Examination of the head is normocephalic. The patient has bilateral carotid bruit. There is no jugular venous distention or lymphadenopathy. </paragraph> </section> </section> </body> </LevelOne> Overview Theory Practice Header Body Implement Issues PRA Body:: Current Draft Lists •A list contains zero or more items followed by an optional list. •Items can contain zero or more paragraphs followed by an optional list. •The structure allows nesting of lists. Overview Theory Practice Header Body Implement Issues PRA Body:: Current Draft Tables •The table captures the structural aspects of multi-dimensional tables and the content relationships. •Tables contain an optional table.title and one or more fields. •Fields contain a field.title and a mixture of zero or more fields and cells. Overview Theory Practice Header Body Implement Issues PRA Body:: Current Draft Local.markup •Links are used in a number of elements besides tables. The link element is similar to an HTML link. •Local.markup can be used to indicate to the receiver that this information is not exchange information. The receiver may optionally use the information. •Local.markup includes a descriptor and render attribute. Overview Theory Practice Header Body Implement Issues PRA Body:: Current Draft Healthcare.code •Healthcare.code should be used to derive medically-related in line items such as coded vocabularies. •Contains attributes to indicate the code and the coding system. •A healthcare.code may apply to non-contiguous text through the use of XML ID/IDREF attributes. <!ATTLIST healthcare.code identifier CDATA #REQUIRED preferred.name CDATA #IMPLIED name.of.coding.system CDATA #REQUIRED coding.system.version CDATA #IMPLIED local.coding.system (Y|N) #REQUIRED instance.id CDATA #IMPLIED original.text IDREFS #IMPLIED > Overview Theory Practice Header <LevelOne> Body <header>...</header> Implement <body> Issues <section> PRA Body:: Current Draft <section.title>ADMITTING PHYSICAL EXAMINATION</section.title> <section> <section.title>GENERAL</section.title> <paragraph>The blood pressure is 170/88, pulse 80 and regular, and <healthcare.code identifier="9279-1" preferred.name="RESPIRATORY RATE" name.of.coding.system="LN" local.coding.system=“N”> respirations </healthcare.code> 18. She weighs 240 pounds. </paragraph> </section> <section> <section.title>HEENT</section.title> <paragraph>Examination of the head is normocephalic. The patient has bilateral<healthcare.code identifier="F-F5480" preferred.name="carotid bruit" name.of.coding.system="SN3" local.coding.system=“N”> carotid bruit </healthcare.code>. There is no jugular venous distention or lymphadenopathy. </paragraph> </section> </section> </body> </LevelOne> Overview Theory Practice Implement Issues Implementing the PRA – Provider perspective – HIMSS – Mapping an H&P Overview Theory Practice Implement Provider HIMSS Map Issues Provider perspective Analyze local requirements Document analysis and DTD creation Document generation & markup Document management & processing Document display & transmission Overview Theory Practice Implement Provider HIMSS Map Issues Overview Theory Practice Implement Provider HIMSS Map Issues Overview Theory Practice Implement Provider HIMSS Map Issues Overview Theory Practice Implement Provider HIMSS Map Issues Stakeholder_identifier id : ST identifier_type_cd : ID is_assigned_to 0..* is_assigned 1 Stakeholder addr : XAD phon : XTN 1 Person birth_dttm : DTM gender_cd : CNE 1 is_a_role_of marital_status_cd : CNE primary_name_representation_cd : CNE takes_on_role_of 0..1 primary_name_type_cd : CNE primary_prsnm : PN race_cd : CNE Patient ambulatory_status_cd : ID birth_order_number : NM living_arrangement_cd : ID living_dependency_cd : ID multiple_birth_ind : ID newborn_baby_ind : ID organ_donor_ind : ID preferred_pharmacy_id : IID Overview Theory Practice Implement Provider HIMSS Map Issues Using Messages to Transport Documents HIMSS Message Creation Use a PRA LevelOne H&P document to create a Lab Order message Use header information for the message. Base 64 encode the LevelOne document and include in the message. Overview Theory Practice Implement Provider HIMSS Map Issues Technique Architectural transformation is not possible as the structures of the message and the LevelOne document are not similar. Create a DOM of the LevelOne document and a DOM of a message template. Walk the LevelOne DOM to find the information. Walk the message DOM to insert the information. Overview Theory Practice Implement Provider HIMSS Map Issues DOM - Document Object Model An XML document can be represented as a tree of nodes. The DOM is a platform and language-neutral interface for application programs in terms of a standard set of objects to create, access, and manipulate internal structures of XML documents. APIs are defined for OMG IDL, and Java. Examples: • getChildNodes() • getParentNode() • getElementsByTagName() We used IBM’s ‘XML for Java’ parser which includes an implementation of the DOM interfaces. Overview Theory Practice Implement Provider HIMSS Map Issues H&P to Lab Order Mapping Go to Word doc HIMSSMapping.doc Overview Theory Practice Implement Provider HIMSS Map Issues PRA Implementation exercise See sample H&P Map sample H&P to PRA LevelOne – header – body Transform to architectural instance Display with XSL stylesheet Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Issues in Implementation Limits of architectural transformations Available tools & technology Header issues RIM mapping Other future KEG issues Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Creating PRA Documents using an Architectural Forms Processing Engine Document-centric vs. non-documentcentric model Managing expectations Additional processing required Mapping mechanism between client and architectural DTD Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Document-centric model assumes that all needed data is in single document instance itself includes document metadata prescribed by the PRA Header – document creation date; sign date – document creator; physician id; facility id example H & P follows this model lends itself better to AF processing, but problems do exist Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Non Document-centric model core data is in the document(s) itself, but other data lives outside of the document PRA header data – document creation date; sign date – document creator; physician id; facility id coding data Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Managing Expectations AF processing does not propose to: – provide an API to external processes for incorporating ancillary system data – provide an API to the XML document itself for the addition of doctype declarations, stylesheet references, etc. Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Managing Expectations AF does propose to: – offer a solution for providing different interfaces (each defined by a DTD) to one XML document instance or type – provide a simple, declarative syntax for defining the transformation (i.e., casting) rules for creating and accessing the different interfaces – provide an AF processing engine to convert a client document to its architectural instance(s) Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Limitations of AF for Transformations optimized for simple, one-to-one mappings between client and architectural DTDs – PhysicalExam ==> Section possible, but tricky, to manage some one-tomany mappings – Paragraph ==> Sentence + Sentence + Sentence – doesn't always have desired effects not possible to re-arrange data in the document hierarchy Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Final Thoughts use architectural forms if situation is right – provides for easy transformations when requirements are non-complex – provides a quick and dirty development tool for rapid prototyping – with an appropriate API, could be used to do some significant part of a transformation Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Final Final Thoughts use more powerful declarative language, such as XSL-T, (with the added capability to interact with processes external to the document, if possible) when possible create a custom transformation software module using an API to the document, such as the DOM or the SAX Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future PRA Header :: MIM -> MOD -> HMD -> DTD (Other Message Object Diagrams) Message Information Model Per son bir th_dt tm : bir thpl a TS ce_nm : deceased_dt tm : ST educat TS i on_l e vel gender_cd: _cd IS m ar it al_stat us_cd : IS pr i mar y_ pr snm : re cig e_cd : i lf iati on_cd rXPN la io us_af IS : IS 0.. 1 1 part icipat es_ as si _t he _pr im ary_provide 0.. * r_ f or is_pari ci t pa nt _ Encount er_prforacti ti oner part icipat ion_type _cd 1 t kes_on_rol e a _of si _a_r o l e_ of 0.. 1 Pat ient ambul a t ory_stat us_c cl d :Mn IS ssi f icat on _cdent : _cd liCa vi g_ar r iangem li: vi ISng_depe ndency_cd : IS m ul tibor l e_bi p r th_ind new n_baby_i nd: ID : IgD or an_donor_i nd tr: ia ISge_classif icati on _cd Indi vidual _healt hca r e_pr ac t it i one r posit ion_ pract it ioner_t ype cd pri mar y_ _cd car e_i 0.. 1nd re si den cy_f ield _cd is_a_r o l e_ of takes_on_rol e _of 1 0.. * has_a_ pr im ary_pro vider si _invol ved_ in 1 1.. * is_associated_ wi th has_as_par ti cip 1 ant Pat ient _ encount er encoun t er_cl a ssii cat f ion_c d end_dt : I S t m : expected_insurance_plan_qt TS i volve iyf rs: tN_s n Mi mi lar_i lness_dt s : DT id :i ent_classif icati o pat n_c 1.. * CX da st : rI t_ Sdt t stat us_cd : m IS Hierarchical Message Definitions Message Object Diagram Message Message Informatio Structures Elements Message Model n C D Informatio Mapping Message Structures Elements Model n C D Mapping 1r oot 1 r oot Pat ient _ encount er Pat ient _ encount er M 1 M stat us _cd 1 CE stat us_cd 26 M 1 M 1 encoun t er_cl a ssii cat f ion_cd 1 CE encoun t er_cl a ssii cat f io2 n_cd 12 M 1 M 1 id1 1EN ST C 1 id 3 M 1 M M1 1 M 1 1 st VTS at us_cd 1 end_dtt m 26 R M1 1 R 1 R 1 M 1 R 1 R 1 M 1 R1 R 1 R 1 M 1 1 1 ENC 1 ENC ENC 1 1 stat us_cd end_dt 1 CE tm 4 M 1 encoun t er_cl a ssii cat f ion_cd expected_insurance_plan_qt expected_insurance_plan_qty 1 NM 5 1 CE encoun t er_cl a ssii cat f ion_cd 2 y12 M 1 id end_dtt m fi rst _simi lar_i lness_dt 1 ST pati ent_classif icati o n_cd 1r VTS sta t_dt tm 1 VTS id 1 CE end_dtt m 1 VTS 3 4 fi rst _simi lar_i lness_dt 6 M 3 1 pati ent_classif icati o n_cd 7 13 3 1 star t_dt tm 8 R 4 R 3 M 1 1 expected_insurance_plan_qty 1 NM y expected_insurance_plan_qt 5 R 1 R 1 fi rst _simi lar_i lness_dt 1 VTS fi rst _simi lar_i lness_dt 6 R 1 R 1 pati ent_classif icati o n_cd 1 CE pati ent_classif icati o n_cd7 R 1 R 1 star t_dt tm 1 VTS star t_dt tm M 1 M 1 8 13 4 3 1 PRA Header :: Future Directions :: MIM PRA Header :: Future Directions :: MOD PRA Header :: Future Directions :: HMD Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future LevelTwo :: Coded Sections* <section identifier="10203-8" preferred.name="PHYSICAL FINDINGS" name.of.coding.system="LN"> <section.title>ADMITTING PHYSICAL EXAMINATION</section.title> <section identifier="8716-3" preferred.name="VITAL SIGNS" name.of.coding.system="LN"> <section.title>GENERAL</section.title> <paragraph> The blood pressure is 170 / 88, pulse 80 and regular, and respirations 18. She weighs 240 pounds. </paragraph> </section> <section> <section.title>HEENT</section.title> <section identifier="10199-8" preferred.name="HEAD" name.of.coding.system="LN"> <paragraph>Examination of the head is normocephalic. </paragraph> </section> <section identifier="1142-1" preferred.name="NECK" name.of.coding.system="LN"> <paragraph> The patient has bilateral carotid bruit. There is no jugular venous distention or lymphadenopathy. </paragraph> </section> </section> </section> *This example has not been reviewed by the KEG or the SGML/XML SIG, and is intended to show that it can be done, and not how it should be done. Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future LevelThree :: RIM Mapping <LevelThree> <header>...</header> <body> Service_reason Master_service 1 is_instantiated_as •determination_dttm •documentation_dttm •reason_txt • ... •challenge_information_txt •service_desc •universal_service_id 0..* delivers 1 is_delivered_during 0..* is_reason_for Service_event 0..1 has_as_reason 0..* is_an_instance_of •… •begin_dttm •end_dttm •filler_id •filler_order_status_cd •service_desc Service_intent_or_order • ... •expected_performance_time_qty •order_id Assessment Observation_intent_or_order •patient_hazard_code •reason_for_study_cd •relevant_clinical_information_txt •reporting_priority_cd •specimen_action_cd </body> </LevelThree> Clinical_observation •… •abnormal_result_ind •observation_value_txt •references_range_text •value_units_code Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future LevelThree :: RIM Mapping "The content of a document can be represented with one or more observation segments." V2.3, Chap 9 Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future LevelThree :: RIM Mapping* <section> <section.title>ADMITTING PHYSICAL EXAMINATION</section.title> <section identifier="8716-3" preferred.name="PHYSICAL FINDINGS.VITAL SIGNS" name.of.coding.system="LN"> <section.title>GENERAL</section.title> <paragraph> The blood pressure is 170 / 88, pulse 80 and regular, and respirations 18. She weighs 240 pounds. </paragraph> <RIM> <Clinical_observation identifier="9279-1" preferred.name="RESPIRATORY RATE" name.of.coding.system="LN"> <observation_value_txt>18</observation_value_txt> <value_type_cd type="ST"/> </Clinical_observation> <Clinical_observation identifier="3141-9" preferred.name="BODY WEIGHT" name.of.coding.system="LN"> <observation_value_txt>240</observation_value_txt> <value_type_cd type="ST"/> <value_units_cd units="pounds"/> </Clinical_observation> </RIM> </section> </section> *This example has not been reviewed by the KEG or the SGML/XML SIG, and is intended to show that it can be done, and not how it should be done. Overview LevelThree :: RIM Mapping* Theory Practice <section> Implement <section.title>HEENT</section.title> Issues <section identifier="1142-1" preferred.name="PHYSICAL FINDINGS:NECK" name.of.coding.system="LN"> ArchTran <paragraph>The patient has bilateral carotid bruit. There is no jugular venous Tools distention or lymphadenopathy. </paragraph> Header/2 <RIM> RIM <Clinical_observation ID="OBS1" identifier="F-F5480" Future preferred.name="carotid bruit" name.of.coding.system="SN3"/> <Clinical_observation ID="OBS2" identifier="G-A102" preferred.name="bilateral" name.of.coding.system="SN3"/> <Service_event_relationship has_as_source = "OBS1" has_as_target = "OBS2"> <relationship_type_cd identifier = "G-C220" preferred.name = "with laterality" name.of.coding.system = "SN3"/> </Service_event_relationship> <Clinical_observation identifier="DC-72130" preferred.name="lymphadenopathy" name.of.coding.system="SN3"> <observation_value_txt identifier="G-A204" preferred.name="absent" name.of.coding.system="SN3"/> <value_type_cd type="CE"/> </Clinical_observation> </RIM> </section> *This example has not been reviewed by the KEG or the SGML/XML SIG, and is </section> intended to show that it can be done, and not how it should be done. Overview Theory Practice Implement Issues ArchTran Tools Header/2 RIM Future Future KEG/PRA Issues Header derivation Goals for L2, L3 RIM mapping Tables non-XML data ??