XML-Technologien

XML-Technologien

Posts 1-10 of 11
  • Dr. Markus Mohr
    Dr. Markus Mohr    Premium Member   Group moderator
    The company name is only visible to registered members.
    XML-Datei in eizelne Teile segmentieren - welcher Weg ist der effektivste?
    Hallo,

    medizinische Dokumente aus einem Krankenhaus-Informations-System können im Rahmen der VHitG-Spezifikation für die Erstellung eines Arztbriefes auf der Basis von HL7 CDA Release 2 in ein CDA-Dokument (Clinical Document Architecture) "konvertiert" werden.

    Nun ist es möglich, aus einem derarztigen Arztbrief im Format eines solchen CDA-XML-Dokumentes (, welches strukturierte wie unstrukturierte Informationen enthalten kann,) interessante Inhalte zu erkennen, zu extrahieren und in eine andere, vorgebene XML-Struktur zu "kopieren".

    Ansers ausgedrückt: Der Arztbrief enthält z. B. Informationen über mehrere Blutdruckmessungen. Diese sollen in ein anderes, nur den Blutdruck betreffendes XML-Dokument kopiert werden.

    Dazu eignen sich Verfahren wie XPath 2.0 und XSLT.

    Gibt es Ihrerseits Erfahrungswerte bei der segmentalen Extraktion von Dateninhalten aus XML-Dokumenten und deren Abspeichern in andere XML-Dokumente? Gibt es dabei eine vorzugsweise verwendbare Methode? Auf was ist besonders aufzupassen?

    Herzliche Grüsse


    Markus Mohr
  • Markus Wiedenmaier
    Markus Wiedenmaier    Premium Member
    The company name is only visible to registered members.
    Re: XML-Datei in eizelne Teile segmentieren - welcher Weg ist der effektivste?
    Guten Tag Herr Dr. M.

    aus der Fragestellung ist mir nicht ganz klar, ob Sie die Eingabedatei nur in einzelne Dokumente aussplitten wollen, oder ob Daten aus der Eingabedatei in anderen bestehenden Dateien ergänzt werden sollen:

    '''Aufsplitten'''

    xslt2.0 bietet hier fürdas Element result-document http://www.w3.org/TR/xslt20/#element-result-document. Relativ einfach handhabbar. Allerdings ist saxon derzeit der einzig relevante Prozessor der den 2.0-Standard untersützt. Wenn ich allgmein bleiben will, versuche ich wo es geht mit dem 1.0-Standard zu arbeiten.

    Mit xslt1.0 bietet sich beispielsweise die XALAN Extension redirekt an xmlns:redirect="http://xml.apache.org/xalan/redirect" an. Mit redirect-write können Sie die entsprechende Ausgaben erzeugen.Aber auch hier begibt man sich in eine Abhängigkeit.

    Je nachdem wie das in den Gesamtprozess integriert sein soll, bietet sich evtl. auch an, mehrere XSLTs in eine Anwendung/einen Prozess zu integrieren, und die Transformation und das Splitten der Dateien dieser Anwendung zu überlassen.Da die XSLT-Transformation im Prozess oft nicht alleine steht, und oft andere Anwendungen die Transformation beeinflussen/aufrufen, ist dies sicherlich auch ein gangbarer weg.

    Die Frage ist: was wollen Sie nach der Transformation mit den einzelnen XML-Files anfangen?
    Wenn die Ergebnisse wieder direkt in andere Dokumente (z.B. PDF) transformiert werden sollen, macht es eventuell auch Sinn, alle benötigten Dokumente aus der einen Datenbasis mit jeweils einer eigenen XSL-Transformation in mehreren Prozessschritten automatisiert in die benötigten Dokumente zu überführen...

    '''Ergänzung bestehender Dateien"

    Übergeben Sie der XSLT-Datei beim Tansformationsaufruf eine der beiden Dateien als Parameter und holen sich die gewünschten Informationen aus dieser zweiten XML-Instanz, so dass Sie diese mit den bekannten XSLT-Mitteln in eine Zieldatei überführen können. Z.B.

    <xsl:param name="DataDocument" select="'Arztbrief.xml'"/> <!--default-Value-->
    <xsl:template match="xyz">
    <xsl:apply-templates select="document($DataDocument)/Blutdruck/value"/>
    </xsl:template>

    Hoffe das hilft weiter
    Markus Wiedenmaier
  • Dr. Markus Mohr
    Dr. Markus Mohr    Premium Member   Group moderator
    The company name is only visible to registered members.
    Re^2: XML-Datei in eizelne Teile segmentieren - welcher Weg ist der effektivste?
    Sehr geehrter Herr Wiedenmeier,

    danke für die ausführliche Antwort. Es geht in der Tat darum, den Inhalt aus einer "XML-Hauptdatei" sozusagen "zu sichten" und Teile daraus in andere XML-Dateien zu schreiben. Dazu habe ich XSD-Dateien, die im Prinzip das Strukturgerüst für diese anderen XML-Dateien beschreiben.

    Die XML-Hauptdatei besitzt nach einer standardisierten Konvention (HL7 CDA Release 2) entsprechende Datentypen und Attribute, die mit denen der in der XSD-Datei enthaltenen nicht übereinstimmen müssen. Das Kunststück ist es jetzt, die entsprechenden Bereiche aus der YML-Hauptdatei auf interessante Inhalte, z. B. den bereich "Blutdruck" hin zu untersuchen und die daraus ersichtlichen Inhalte mittels einer "blutdruck.xsd" in eine andere XML-Datei zu überführen, also darin zu speichern.

    Ist hier nicht eine "einfache" XSL-Transformation ausreichend, um diesen Kontext zu bedienen?

    Herzliche Grüsse


    Markus Mohr
  • Post visible to registered members
  • Markus Wiedenmaier
    Markus Wiedenmaier    Premium Member
    The company name is only visible to registered members.
    Re^4: XML-Datei in eizelne Teile segmentieren - welcher Weg ist der effektivste?
    Hallo Herr Dr. Mohr,

    ich kenne Ihre Strukturdefinition nicht, deshalb einfach etwas Pseudo code :


    [Datei main.xml]
    <main>
        <someContent>...</someContent>
            <relevantContent>
                <someContent>...</someContent>
                    <values>
                        <pressure>20</pressure>
                        <moreValues>...</moreValues>
                    </values>
                <someContent>...</someContent>
            </relevantContent>
        <someContent>...</someContent>
    </main>

    [Datei Blutdruck.xml]
    <Blutdruck>
        <Werte>
            <Messung="xyz">20</Messung>
        </Werte>
    </Blutdruck>

    [Datei style.xsl]
    <xsl:stylesheet>
        <xsl:param name="Main" />
        <xsl:template match="Werte">
            <xsl:element name="{name()}">
                <xsl:apply-templates/>
                <xsl:apply-templates select="document("$Main")/main/relevantContent/values/pressure"/>
            </xsl:element>
        </xsl:template>
        <xsl:template match="main//pressure">
            <xsl:element name="Messung">
                <xsl:attribute name="name">pressure</xsl:attribute>
                <xsl:value-of select="."/>
                <xsl:text> kPa</xsl:text>
            </xsl:element>
        </xsl:template>
    </xsl:stylesheet>

    [Transformation mit MSXSL]
    msxsl Blutdruck.xml style.xsl -o out.xml Main=main.xml

    In diesem Beispiel wird die besehende Blutdruck.xml mittels styles.xsl transformiert. Als Parameter wird die XML-Datei (main.xml) übergeben, die die Werte enthält, welche Sie in die Blutdruck.xml übernehmen wollen.
    Unterhalb des Elements Werte soll jetzt der Blutdruckmessdaten eingetragen werden. Dazu wird mittels document($Main) das im Parameter übergebene XML geöffnet und das template für pressure aufgerufen.

    pressure wird jetzt in das anders benannte Element Messung mit dem Attribute name="pressure" umgesetzt, der Wert ausgegeben und die Einheit dahinter gesetzt.

    Zur Transformation (hier mit MSXSL) wird der Parameter Main, dann mit der Datei belegt, welche die Daten enthält.

    Wenn ich das Prob jetzt immer noch nicht erfasst habe, wäre ein Beispiel hilfreich.

    Schöne Grüsse
    Markus Wiedenmaier

    PS: Code ist nicht getestet, aber das Prinzip sollte klar werden.
    This post was modified on 15 Jan 2011 at 02:44 pm.
  • Dr. Markus Mohr
    Dr. Markus Mohr    Premium Member   Group moderator
    The company name is only visible to registered members.
    Re^4: XML-Datei in eizelne Teile segmentieren - welcher Weg ist der effektivste?
    Sehr geehrter Herr Olschimke,

    der Workflow definiert, dass ein Krankenhaus auf Wunsch und Aufforderung des Patienten einen dort erstellten Arztbrief - dieser befindet sich im XML-Format - in das Portal z. B. einer Krankenkasse transferieren und dort speichern soll; damit die vielen und z. T. unübersichtlichen Daten jedoch für einen Patienten in dessen krankenkassenportal besser sichtbar sind, soll die "grosse" XML-Datei in kleine Segmente zerlegt werden. Diese Segmente sollen dann auf der Basis einer XSD-Datei dann in kleinere XML-Dateien zerlegt werden, d. h. der dazu notwendige Inhalt aus der grossen in mehrere kleine XML-Dateien gespeichert werden, damit diese kleinen XML-Dateien in chronologischer Form gruppiert und dem Patienten einen Zeitverlauf z. B. seines Blutdruckwertes anzeigen können.

    Herzliche Grüsse


    Markus Mohr
  • Dr. Markus Mohr
    Dr. Markus Mohr    Premium Member   Group moderator
    The company name is only visible to registered members.
    Re^5: XML-Datei in eizelne Teile segmentieren - welcher Weg ist der effektivste?
    Sehr geehrter Herr Wiedenmaier,

    ich denke, Sie haben ziemlich genau das erfasst, was ich meine.

    Eine typische XSD-Datei (surgical_procedure.xsd) sieht z. B. folgendermassen aus:

    <surgical-procedure>
    <when>
    <date>
    <y>2010</y>
    <m>10</m>
    <d>30</d>
    </date>
    <time>
    <h>10</h>
    <m>0</m>
    <s>0</s>
    <f>0</f>
    </time>
    </when>
    <title>
    <text>Transanale endoskopische Vorderwandabtragung am 30.10.2010</text>
    <code>
    <value>5-319.0</value>
    <family>OPS</family>
    <type>-</type>
    <version>3</version>
    </code>
    </title>
    <primary-provider>
    <name>
    <full>Markus Mohr</full>
    <title>
    <text>Dr.</text>
    <code>
    <value>Dr.</value>
    <family>wc</family>
    <type>name-prefixes</type>
    <version>1</version>
    </code>
    </title>
    <first>Markus</first>
    <middle>-</middle>
    <last>Mohr</last>
    </name>
    <organization>Universitätsklinikum Regensburg</organization>
    <professional-training>Klinik und Poliklinik für Chirurgie</professional-training>
    <id>123456</id>
    <contact>
    <address>
    <description>Chirurgische Abteilung</description>
    <is-primary>true</is-primary>
    <street>Franz-Josef-Strauss-Allee 11</street>
    <city>Regensburg</city>
    <state>Bayern</state>
    <postcode>93053</postcode>
    <country>Deutschland</country>
    </address>
    <phone>
    <description>Station 54</description>
    <is-primary>true</is-primary>
    <number>499419446540</number>
    </phone>
    <email>
    <description>email-Adresse</description>
    <is-primary>true</is-primary>
    <address>markus.mohr@klinik.uni-regensburg.de</address>
    </email>
    </contact>
    <type>
    <text>Leistungserbringer</text>
    <code>
    <value>2</value>
    <family>wc</family>
    <type>person-types</type>
    <version>1</version>
    </code>
    </type>
    </primary-provider>
    <secondary-provider>
    <name>
    <full>Regina Hoffmann</full>
    <title>
    <text>Dr.</text>
    <code>
    <value>Dr.</value>
    <family>wc</family>
    <type>name-prefixes</type>
    <version>1</version>
    </code>
    </title>
    <first>Regina</first>
    <middle>-</middle>
    <last>Hoffmann</last>
    </name>
    <organization>Universitätsklinikum Regensburg</organization>
    <professional-training>Klinik und Poliklinik für Chirurgie</professional-training>
    <id>123456</id>
    <contact>
    <address>
    <description>Chirurgische Abteilung</description>
    <is-primary>true</is-primary>
    <street>Franz-Josef-Strauss-Allee 11</street>
    <city>Regensburg</city>
    <state>Bayern</state>
    <postcode>93053</postcode>
    <country>Deutschland</country>
    </address>
    <phone>
    <description>Station 54</description>
    <is-primary>true</is-primary>
    <number>499419446540</number>
    </phone>
    <email>
    <description>email-Adresse</description>
    <is-primary>true</is-primary>
    <address>regina.hoffmann@klinik.uni-regensburg.de</address>
    </email>
    </contact>
    <type>
    <text>Leistungserbringer</text>
    <code>
    <value>2</value>
    <family>wc</family>
    <type>person-types</type>
    <version>1</version>
    </code>
    </type>
    </secondary-provider>
    </surgical-procedure>

    Diese Inhalte sind natürlich nicht real, sondern testweise an diese Struktur angepasst. Wenn ich aber die klare Transformationsanweisung, wie von Ihnen beschrieben habe (XML_alt via XSL nach XML_neu), wozu benötige ich dann noch die XSD-Datei?

    Herzliche Grüsse


    Markus Mohr
  • Markus Wiedenmaier
    Markus Wiedenmaier    Premium Member
    The company name is only visible to registered members.
    Re^6: XML-Datei in eizelne Teile segmentieren - welcher Weg ist der effektivste?
    Guten Tag Herr Dr. Mohr,

    die XSD definiert die Struktur in die sie transformieren wolllen. Das Ergebnis der Transformation können Sie gegen diese XSD validieren und so prüfen, ob alles korrekt lieft. Die Anwendung, die das transformierte XML verarbeiten will, kann, wenn sie es will, die Eingabe-XML gegen diese XSD validieren und den Prozess mit einem Fehler abbrechen, bevor die Anwendung überhaupt mit Ihrer Arbeit beginnen will.
    Betrachten Sie die XSD also eine Spezifikation einer Schnittstelle.

    Was wir bisher getan haben ist das Mapping der Elemente über eine manuell programmierte XSLT-Transformation herzustellen. Aus Ihrer Frage heraus schließe ich, dass Sie das Mapping aus den beiden XSDs automatisch erstellen wollen. Die Regeln zur Überführung müssen Sie natürlich definieren. Das geht auch visuell über sogenannte XMLtoXMLMapper, wie bei Altova MapForce http://www.altova.com/de/mapforce/xml-mapping.html oder Stylusstudio http://www.stylusstudio.com/xml_to_xml_mapper.html um mal zwei zu nennen. Hierzu ist es natürlich ideal auf XSDs/DTDs aufzusetzen.

    Das Ergebnis ist dann aber wieder ein XSLT, das eben visuell und vielleicht intuitiver erstellt wurde.

    Wenn Sie eine bestehende Blutdruck.xml um Informationen ergänzen wollen, müssen Sie dieses XSLT dann wie oben beschrieben (etwas intelligenter natürlich) anpassen.

    Schöne Grüsse
    Markus Wiedenmaier
    This post was modified on 15 Jan 2011 at 05:04 pm.
  • Dr. Markus Mohr
    Dr. Markus Mohr    Premium Member   Group moderator
    The company name is only visible to registered members.
    Re^7: XML-Datei in eizelne Teile segmentieren - welcher Weg ist der effektivste?
    Sehr geehrter Herr Wiedenmaier,

    danke für die ausführliche Antwort. Die beschriebene XSD-Datei ist nur als ein Beispiel gedacht und besitzt den nicht unsubstantiellen Nachteil, auch nicht-deutsche medizinische Klassifikationselemente zuzulassen, was ich gerne ausblenden möchte.

    Die Transformation in manueller oder visueller Art und Weise führt ja immer zum selben Ergebenis: Der Vorschrift für eine derartige Transformation, den Prozess selbst und das Erzeugen eines neuen Dokumenten (in unserem Falle hier). Wichtig ist mir hier, aber das haben Sie bereits gut beleuchtet, ist die Verwendung der Inhalte des einen XML-Dokumentes in einer anderen Struktur des durch Transformation nachfolgend erzeugten Dokumentes.

    Was halten Sie davon, diese Aufgabe mittels XPath zu erledigen?

    Herzliche Grüsse


    Markus Mohr
  • Dr. Markus Mohr
    Dr. Markus Mohr    Premium Member   Group moderator
    The company name is only visible to registered members.
    Re^8: XML-Datei in eizelne Teile segmentieren - welcher Weg ist der effektivste?
    Sehr geehrte Herr Wiedenmaier,

    anbei eine echte Aufgabe, die ich hier trotz deren Länge in den Text reinschreibe (ein Download andernorts ist auf Wunsch auch möglich):

    ****************************************************************************************************************************
    BEGINN: Der ursprüngliche Arztbrief im HL7 CDA Release 2-Standard-konformen Format
    ****************************************************************************************************************************
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="vhitg-cda-v3.xsl"?>
    <ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:voc="urn:hl7-org:v3/voc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd">
    <!--
    ********************************************************
    CDA Header
    ********************************************************
    -->
    <typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040"/>
    <templateId root="2.16.840.1.113883.3.27.1776"/>
    <id extension="c266" root="2.16.840.1.113883.19"/>
    <code code="11488-4" codeSystem="2.16.840.1.113883.6.1" displayName="Consultation note"/>
    <title>Good Health Clinic Consultation Note</title>
    <effectiveTime value="20000407"/>
    <confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25"/>
    <setId extension="BB35" root="2.16.840.1.113883.19"/>
    <versionNumber value="2"/>
    <recordTarget>
    <patientRole>
    <id extension="12345" root="2.16.840.1.113883.19"/>
    <patient>
    <name>
    <given>Henry</given>
    <family>Levin</family>
    <suffix>the 7th</suffix>
    </name>
    <administrativeGenderCode code="M" codeSystem="2.16.840.1.113883.5.1"/>
    <birthTime value="19320924"/>
    </patient>
    <providerOrganization>
    <id extension="M345" root="2.16.840.1.113883.19"/>
    </providerOrganization>
    </patientRole>
    </recordTarget>
    <author>
    <time value="2000040714"/>
    <assignedAuthor>
    <id extension="KP00017" root="2.16.840.1.113883.19"/>
    <assignedPerson>
    <name>
    <given>Robert</given>
    <family>Dolin</family>
    <suffix>MD</suffix>
    </name>
    </assignedPerson>
    <representedOrganization>
    <id extension="M345" root="2.16.840.1.113883.19"/>
    </representedOrganization>
    </assignedAuthor>
    </author>
    <custodian>
    <assignedCustodian>
    <representedCustodianOrganization>
    <id extension="M345" root="2.16.840.1.113883.19"/>
    <name>Good Health Clinic</name>
    </representedCustodianOrganization>
    </assignedCustodian>
    </custodian>
    <legalAuthenticator>
    <time value="20000408"/>
    <signatureCode code="S"/>
    <assignedEntity>
    <id extension="KP00017" root="2.16.840.1.113883.19"/>
    <assignedPerson>
    <name>
    <given>Robert</given>
    <family>Dolin</family>
    <suffix>MD</suffix>
    </name>
    </assignedPerson>
    <representedOrganization>
    <id extension="M345" root="2.16.840.1.113883.19"/>
    </representedOrganization>
    </assignedEntity>
    </legalAuthenticator>
    <relatedDocument typeCode="RPLC">
    <parentDocument>
    <id extension="a123" root="2.16.840.1.113883.19"/>
    <setId extension="BB35" root="2.16.840.1.113883.19"/>
    <versionNumber value="1"/>
    </parentDocument>
    </relatedDocument>
    <componentOf>
    <encompassingEncounter>
    <id extension="KPENC1332" root="2.16.840.1.113883.19"/>
    <effectiveTime value="20000407"/>
    <encounterParticipant typeCode="CON">
    <time value="20000407"/>
    <assignedEntity>
    <id extension="KP00017" root="2.16.840.1.113883.19"/>
    <assignedPerson>
    <name>
    <given>Robert</given>
    <family>Dolin</family>
    <suffix>MD</suffix>
    </name>
    </assignedPerson>
    <representedOrganization>
    <id extension="M345" root="2.16.840.1.113883.19"/>
    </representedOrganization>
    </assignedEntity>
    </encounterParticipant>
    <location>
    <healthCareFacility classCode="DSDLOC">
    <code code="GIM" codeSystem="2.16.840.1.113883.5.10588" displayName="General internal medicine clinic"/>
    </healthCareFacility>
    </location>
    </encompassingEncounter>
    </componentOf>
    <!--
    ********************************************************
    CDA Body
    ********************************************************
    -->
    <component>
    <structuredBody>
    <!--
    ********************************************************
    History of Present Illness section
    ********************************************************
    -->
    <component>
    <section>
    <code code="10164-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>History of Present Illness</title>
    <text>
    <content styleCode="Bold">Henry Levin, the 7<sup>th</sup>
    </content> is a 67 year old male referred for further asthma management. Onset of asthma in his <content revised="delete">twenties</content>
    <content revised="insert">teens</content>. He was hospitalized twice last year, and already twice this year.<paragraph/> He has not been able to be weaned off steroids for the past several months.
    </text>
    </section>
    </component>
    <!--
    ********************************************************
    Past Medical History section
    ********************************************************
    -->
    <component>
    <section>
    <code code="10153-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Past Medical History</title>
    <text>
    <list>
    <item>
    <content ID="a1">Asthma</content>
    </item>
    <item>
    <content ID="a2">Hypertension (see HTN.cda for details)</content>
    </item>
    <item>
    <content ID="a3">Osteoarthritis,
    <content ID="a4">right knee</content>
    </content>
    </item>
    </list>
    </text>
    <entry>
    <observation classCode="COND" moodCode="EVN">
    <code code="39154008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="clinical diagnosis"/>
    <effectiveTime value="1950"/>
    <value xsi:type="CD" code="195967001" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Asthma">
    <originalText>
    <reference value="#a1"/>
    </originalText>
    </value>
    <reference typeCode="XCRPT">
    <!-- A reference of type "XCRPT" can be used to show that this problem list value is excerpted from the referenced external observation. -->
    <externalObservation>
    <id root="123.456.789.23.17"/>
    </externalObservation>
    </reference>
    </observation>
    </entry>
    <entry>
    <observation classCode="COND" moodCode="EVN">
    <code code="39154008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="clinical diagnosis"/>
    <value xsi:type="CD" code="59621000" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="HTN">
    <originalText>
    <reference value="#a2"/>
    </originalText>
    </value>
    <reference typeCode="SPRT">
    <seperatableInd value="false"/>
    <externalDocument>
    <id root="123.456.789"/>
    <text mediaType="multipart/related">
    <reference value="HTN.cda"/>
    </text>
    <setId root="147.89.9001"/>
    <versionNumber value="1"/>
    </externalDocument>
    </reference>
    <reference typeCode="XCRPT">
    <externalObservation>
    <id root="123.456.789.23.18"/>
    </externalObservation>
    </reference>
    </observation>
    </entry>
    <entry>
    <observation classCode="COND" moodCode="EVN">
    <code code="39154008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="clinical diagnosis"/>
    <value xsi:type="CD" code="396275006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Osteoarthritis">
    <originalText>
    <reference value="#a3"/>
    </originalText>
    </value>
    <targetSiteCode code="49076000" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Knee joint">
    <originalText>
    <reference value="#a4"/>
    </originalText>
    <qualifier>
    <name code="78615007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="with laterality"/>
    <value code="24028007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="right"/>
    </qualifier>
    </targetSiteCode>
    <reference typeCode="XCRPT">
    <externalObservation>
    <id root="123.456.789.23.18"/>
    </externalObservation>
    </reference>
    </observation>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Medications section
    ********************************************************
    -->
    <component>
    <section>
    <code code="10160-0" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Medications</title>
    <text>
    <list>
    <item>Theodur 200mg BID</item>
    <item>Proventil inhaler 2puffs QID PRN</item>
    <item>Prednisone 20mg qd</item>
    <item>HCTZ 25mg qd</item>
    </list>
    </text>
    <entry>
    <substanceAdministration classCode="SBADM" moodCode="EVN">
    <text>Theodur 200mg BID</text>
    <effectiveTime xsi:type="PIVL_TS" institutionSpecified="true">
    <period value="12" unit="h"/>
    </effectiveTime>
    <routeCode code="PO" codeSystem="2.16.840.1.113883.5.112" codeSystemName="RouteOfAdministration"/>
    <doseQuantity value="200" unit="mg"/>
    <consumable>
    <manufacturedProduct>
    <manufacturedLabeledDrug>
    <code code="66493003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Theophylline"/>
    </manufacturedLabeledDrug>
    </manufacturedProduct>
    </consumable>
    </substanceAdministration>
    </entry>
    <entry>
    <substanceAdministration classCode="SBADM" moodCode="EVN">
    <text>Proventil inhaler 2puffs QID PRN</text>
    <effectiveTime xsi:type="PIVL_TS" institutionSpecified="true">
    <period value="6" unit="h"/>
    </effectiveTime>
    <priorityCode code="PRN"/>
    <routeCode code="IPINHL" codeSystem="2.16.840.1.113883.5.112" codeSystemName="RouteOfAdministration" displayName="Inhalation, oral"/>
    <doseQuantity value="2"/>
    <consumable>
    <manufacturedProduct>
    <manufacturedLabeledDrug>
    <code code="91143003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Albuterol"/>
    </manufacturedLabeledDrug>
    </manufacturedProduct>
    </consumable>
    </substanceAdministration>
    </entry>
    <entry>
    <substanceAdministration classCode="SBADM" moodCode="EVN">
    <id root="10.23.27.123"/>
    <text>Prednisone 20mg qd</text>
    <effectiveTime xsi:type="PIVL_TS" institutionSpecified="true">
    <period value="24" unit="h"/>
    </effectiveTime>
    <routeCode code="PO" codeSystem="2.16.840.1.113883.5.112" codeSystemName="RouteOfAdministration"/>
    <doseQuantity value="20" unit="mg"/>
    <consumable>
    <manufacturedProduct>
    <manufacturedLabeledDrug>
    <code code="10312003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Prednisone preparation"/>
    </manufacturedLabeledDrug>
    </manufacturedProduct>
    </consumable>
    </substanceAdministration>
    </entry>
    <entry>
    <substanceAdministration classCode="SBADM" moodCode="EVN">
    <text>HCTZ 25mg qd</text>
    <effectiveTime xsi:type="PIVL_TS" institutionSpecified="true">
    <period value="24" unit="h"/>
    </effectiveTime>
    <routeCode code="PO" codeSystem="2.16.840.1.113883.5.112" codeSystemName="RouteOfAdministration"/>
    <consumable>
    <manufacturedProduct>
    <manufacturedLabeledDrug>
    <code code="376209006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Hydrochlorothiazide 25mg tablet"/>
    </manufacturedLabeledDrug>
    </manufacturedProduct>
    </consumable>
    </substanceAdministration>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Allergies & Adverse Reactions section
    ********************************************************
    -->
    <component>
    <section>
    <code code="10155-0" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Allergies and Adverse Reactions</title>
    <text>
    <list>
    <item>Penicillin - Hives</item>
    <item>Aspirin - Wheezing</item>
    <item>Codeine - Itching and nausea</item>
    </list>
    </text>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <value xsi:type="CD" code="247472004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Hives"/>
    <entryRelationship typeCode="MFST">
    <observation classCode="OBS" moodCode="EVN">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <value xsi:type="CD" code="91936005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Allergy to penicillin"/>
    </observation>
    </entryRelationship>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <value xsi:type="CD" code="56018004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Wheezing"/>
    <entryRelationship typeCode="MFST">
    <observation classCode="OBS" moodCode="EVN">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <value xsi:type="CD" code="293586001" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Allergy to aspirin"/>
    </observation>
    </entryRelationship>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <value xsi:type="CD" code="32738000" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Pruritis"/>
    <entryRelationship typeCode="MFST">
    <observation classCode="OBS" moodCode="EVN">
    <id root="2.16.840.1.113883.19.25.47"/>
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <value xsi:type="CD" code="62014003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Adverse reaction to drug">
    <qualifier>
    <name code="246075003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="causative agent"/>
    <value code="1476002" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="codeine"/>
    </qualifier>
    </value>
    </observation>
    </entryRelationship>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <value xsi:type="CD" code="73879007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Nausea"/>
    <entryRelationship typeCode="MFST">
    <observation classCode="OBS" moodCode="EVN">
    <id root="2.16.840.1.113883.19.25.47"/>
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96"/>
    </observation>
    </entryRelationship>
    </observation>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Family History section
    ********************************************************
    -->
    <component>
    <section>
    <code code="10157-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Family history</title>
    <text>
    <list>
    <item>Father had fatal MI in his early 50's.</item>
    <item>No cancer or diabetes.</item>
    </list>
    </text>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <effectiveTime value="1970"/>
    <value xsi:type="CD" code="22298006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="MI"/>
    <subject>
    <relatedSubject classCode="PRS">
    <code code="FTH"/>
    </relatedSubject>
    </subject>
    <entryRelationship typeCode="CAUS">
    <observation classCode="OBS" moodCode="EVN">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <effectiveTime value="1970"/>
    <value xsi:type="CD" code="399347008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="death"/>
    </observation>
    </entryRelationship>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN" negationInd="true">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <effectiveTime>
    <high value="20000407" inclusive="true"/>
    </effectiveTime>
    <value xsi:type="CD" code="275937001" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Family history of cancer"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="84100007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="history taking (procedure)"/>
    <effectiveTime>
    <high value="20000407" inclusive="true"/>
    </effectiveTime>
    <value xsi:type="CD" code="160274005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="No family history of diabetes"/>
    </observation>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Social History section
    ********************************************************
    -->
    <component>
    <section>
    <code code="29762-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Social History</title>
    <text>
    <list>
    <item>Smoking :: 1 PPD between the ages of 20 and 55, and then he quit.</item>
    <item>Alcohol :: rare</item>
    </list>
    </text>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="229819007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Tobacco use and exposure"/>
    <effectiveTime>
    <low value="1955"/>
    <high value="1990"/>
    </effectiveTime>
    <value xsi:type="CD" code="266924008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="ex-heavy cigarette smoker (20-39/day)"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="160625004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Date ceased smoking"/>
    <value xsi:type="TS" value="1990"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="160573003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Alcohol intake"/>
    <value xsi:type="CD" code="266917007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Trivial drinker - less than 1/day"/>
    </observation>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Physical Exam section
    ********************************************************
    -->
    <component>
    <section>
    <code code="11384-5" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Physical Examination</title>
    <!--
    ********************************************************
    Physical Exam - Vital Signs
    ********************************************************
    -->
    <component>
    <section>
    <code code="8716-3" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Vital Signs</title>
    <text>
    <table>
    <tbody>
    <tr>
    <th>Date / Time</th>
    <th>April 7, 2000 14:30</th>
    <th>April 7, 2000 15:30</th>
    </tr>
    <tr>
    <th>Height</th>
    <td>177 cm (69.7 in)</td>
    </tr>
    <tr>
    <th>Weight</th>
    <td>194.0 lbs (88.0 kg)</td>
    </tr>
    <tr>
    <th>BMI</th>
    <td>28.1 kg/m2</td>
    </tr>
    <tr>
    <th>BSA</th>
    <td>2.05 m2</td>
    </tr>
    <tr>
    <th>Temperature</th>
    <td>36.9 C (98.5 F)</td>
    <td>36.9 C (98.5 F)</td>
    </tr>
    <tr>
    <th>Pulse</th>
    <td>86 / minute</td>
    <td>84 / minute</td>
    </tr>
    <tr>
    <th>Rhythm</th>
    <td>Regular</td>
    <td>Regular</td>
    </tr>
    <tr>
    <th>Respirations</th>
    <td>16 / minute, unlabored</td>
    <td>14 / minute</td>
    </tr>
    <tr>
    <th>Systolic</th>
    <td>132 mmHg</td>
    <td>135 mmHg</td>
    </tr>
    <tr>
    <th>Diastolic</th>
    <td>86 mmHg</td>
    <td>88 mmHg</td>
    </tr>
    <tr>
    <th>Position / Cuff</th>
    <td>Left Arm</td>
    <td>Left Arm</td>
    </tr>
    </tbody>
    </table>
    </text>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="50373000" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Body height measure"/>
    <effectiveTime value="200004071430"/>
    <value xsi:type="PQ" value="1.77" unit="m">
    <translation value="69.7" code="[in_I]" codeSystem="2.16.840.1.113883.6.8" codeSystemName="UCUM"/>
    </value>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="363808001" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Body weight measure"/>
    <effectiveTime value="200004071430"/>
    <value xsi:type="PQ" value="194.0" unit="[lb_ap]">
    <translation value="88.0" code="kg" codeSystem="2.16.840.1.113883.6.8" codeSystemName="UCUM"/>
    </value>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="60621009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Body mass index"/>
    <effectiveTime value="200004071430"/>
    <value xsi:type="RTO_PQ_PQ">
    <numerator value="28.1" unit="kg"/>
    <denominator value="1" unit="ar"/>
    </value>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="301898006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Body surface area"/>
    <effectiveTime value="200004071430"/>
    <value xsi:type="PQ" value="2.05" unit="ar"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="386725007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Body temperature"/>
    <effectiveTime value="200004071430"/>
    <value xsi:type="PQ" value="36.9" unit="Cel">
    <translation value="98.5" code="[degF]" codeSystem="2.16.840.1.113883.6.8" codeSystemName="UCUM"/>
    </value>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="364075005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Heart rate"/>
    <effectiveTime value="200004071430"/>
    <value xsi:type="RTO_PQ_PQ">
    <numerator value="86"/>
    <denominator value="1" unit="min"/>
    </value>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="364075005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Heart rate"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="RTO_PQ_PQ">
    <numerator value="84"/>
    <denominator value="1" unit="min"/>
    </value>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="364074009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Regularity of heart rhythm"/>
    <effectiveTime value="200004071430"/>
    <value xsi:type="CD" code="248649006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Heart regular"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="364074009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Regularity of heart rhythm"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="CD" code="248649006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Heart regular"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="86290005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Respiratory rate"/>
    <effectiveTime value="200004071430"/>
    <value xsi:type="RTO_PQ_PQ">
    <numerator value="16"/>
    <denominator value="1" unit="min"/>
    </value>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="278907009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Respiratory pattern"/>
    <effectiveTime value="200004071430"/>
    <value xsi:type="CD" code="276362002" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Breathing easily"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="86290005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Respiratory rate"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="RTO_PQ_PQ">
    <numerator value="14"/>
    <denominator value="1" unit="min"/>
    </value>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="251076008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Cuff blood pressure"/>
    <effectiveTime value="200004071430"/>
    <targetSiteCode code="368208006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Left arm"/>
    <entryRelationship typeCode="COMP">
    <observation classCode="OBS" moodCode="EVN">
    <code code="271649006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Systolic BP"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="PQ" value="132" unit="mm[Hg]"/>
    </observation>
    </entryRelationship>
    <entryRelationship typeCode="COMP">
    <observation classCode="OBS" moodCode="EVN">
    <code code="271650006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Diastolic BP"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="PQ" value="86" unit="mm[Hg]"/>
    </observation>
    </entryRelationship>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="251076008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Cuff blood pressure"/>
    <effectiveTime value="200004071530"/>
    <targetSiteCode code="368208006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Left arm"/>
    <entryRelationship typeCode="COMP">
    <observation classCode="OBS" moodCode="EVN">
    <code code="271649006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Systolic BP"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="PQ" value="135" unit="mm[Hg]"/>
    </observation>
    </entryRelationship>
    <entryRelationship typeCode="COMP">
    <observation classCode="OBS" moodCode="EVN">
    <code code="271650006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Diastolic BP"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="PQ" value="88" unit="mm[Hg]"/>
    </observation>
    </entryRelationship>
    </observation>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Physical Exam - Skin
    ********************************************************
    -->
    <component>
    <section>
    <code code="8709-8" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Skin Exam</title>
    <text>Erythematous rash, palmar surface, left index finger.
    <renderMultiMedia referencedObject="MM1"/>
    </text>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="106076001" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Skin finding"/>
    <value xsi:type="CD" code="271807003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Rash"/>
    <targetSiteCode code="48856004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Skin of palmer surface of index finger">
    <qualifier>
    <name code="78615007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="with laterality"/>
    <value code="7771000" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="left"/>
    </qualifier>
    </targetSiteCode>
    <entryRelationship typeCode="SPRT">
    <regionOfInterest classCode="ROIOVL" moodCode="EVN" ID="MM1">
    <id root="10.23.4567.4489"/>
    <code code="ELLIPSE"/>
    <value value="3"/>
    <value value="1"/>
    <value value="3"/>
    <value value="7"/>
    <value value="2"/>
    <value value="4"/>
    <value value="4"/>
    <value value="4"/>
    <entryRelationship typeCode="SUBJ">
    <observationMedia classCode="OBS" moodCode="EVN">
    <id root="10.23.4567.345"/>
    <value mediaType="image/gif">
    <reference value="lefthand.gif"/>
    </value>
    </observationMedia>
    </entryRelationship>
    </regionOfInterest>
    </entryRelationship>
    </observation>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Physical Exam - Lungs
    ********************************************************
    -->
    <component>
    <section>
    <code code="8710-6" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Lungs</title>
    <text>Clear with no wheeze. Good air flow.</text>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="301708006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Respiratory sounds"/>
    <value xsi:type="CD" code="48348007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Chest clear"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN" negationInd="true">
    <code code="52653008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Respiratory sounds"/>
    <value xsi:type="CD" code="56018004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Wheezing"/>
    </observation>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Physical Exam - Cardiac
    ********************************************************
    -->
    <component>
    <section>
    <code code="10223-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Cardiac</title>
    <text>RRR with no murmur, no S3, no S4.</text>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="364066008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Cardiovascular observable"/>
    <value xsi:type="CD" code="76863003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Normal heart rate"/>
    <methodCode code="37931006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Auscultation"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN" negationInd="true">
    <code code="364066008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Cardiovascular observable"/>
    <value xsi:type="CD" code="88610006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="heart murmur"/>
    <methodCode code="37931006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Auscultation"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN" negationInd="true">
    <code code="364066008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Cardiovascular observable"/>
    <value xsi:type="CD" code="277455002" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Third heart sound"/>
    <methodCode code="37931006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Auscultation"/>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <code code="364066008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Cardiovascular observable"/>
    <value xsi:type="CD" code="60721002" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Fourth heart sound inaudible"/>
    <methodCode code="37931006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Auscultation"/>
    </observation>
    </entry>
    </section>
    </component>
    </section>
    </component>
    <!--
    ********************************************************
    Labs section
    ********************************************************
    -->
    <component>
    <section>
    <code code="11502-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Labs</title>
    <text>
    <list>
    <item>CXR 02/03/1999: Hyperinflated. Normal cardiac silhouette, clear lungs.</item>
    <item>Peak Flow today: 260 l/m</item>
    </list>
    </text>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <id root="10.23.4573.15877"/>
    <code code="282290005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Imaging interpretation"/>
    <value xsi:type="CD" code="249674001" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Chest hyperinflated"/>
    <reference typeCode="SPRT">
    <externalObservation classCode="DGIMG">
    <id root="123.456.2557"/>
    <code code="56350004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Chest-X-ray"/>
    </externalObservation>
    </reference>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <id root="10.23.4573.15878"/>
    <code code="282290005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Imaging interpretation"/>
    <value xsi:type="CD" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" nullFlavor="OTH">
    <originalText>normal cardiac silhouette</originalText>
    </value>
    <reference typeCode="SPRT">
    <externalObservation classCode="DGIMG">
    <id root="123.456.2557"/>
    <code code="56350004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Chest-X-ray"/>
    </externalObservation>
    </reference>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN" negationInd="true">
    <id root="10.23.4573.15879"/>
    <code code="282290005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Imaging interpretation"/>
    <value xsi:type="CD" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" nullFlavor="OTH">
    <originalText>radiopacities</originalText>
    </value>
    <reference typeCode="SPRT">
    <externalObservation classCode="DGIMG">
    <id root="123.456.2557"/>
    <code code="56350004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Chest-X-ray"/>
    </externalObservation>
    </reference>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="EVN">
    <id root="10.23.4573.15879"/>
    <code code="313193002" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Peak flow"/>
    <effectiveTime value="20000407"/>
    <value xsi:type="RTO_PQ_PQ">
    <numerator value="260" unit="l"/>
    <denominator value="1" unit="min"/>
    </value>
    </observation>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    In-office Procedure section
    ********************************************************
    -->
    <component>
    <section>
    <code code="29554-3" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>In-office Procedures</title>
    <text>
    <list>
    <item>Suture removal, left forearm.</item>
    </list>
    </text>
    <entry>
    <procedure classCode="PROC" moodCode="EVN">
    <code code="30549001" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Suture removal"/>
    <effectiveTime value="200004071430"/>
    <targetSiteCode code="66480008" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Left forearm"/>
    </procedure>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Assessment section
    ********************************************************
    -->
    <component>
    <section>
    <code code="11496-7" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"/>
    <title>Assessment</title>
    <text>
    <list>
    <item>Asthma, with prior smoking history. Difficulty weaning off steroids. Will try gradual taper.</item>
    <item>Hypertension, well-controlled.</item>
    <item>Contact dermatitis on finger.</item>
    </list>
    </text>
    <entry>
    <observation classCode="COND" moodCode="EVN">
    <code code="14657009" codeSystem="2.16.840.1.113883.6.961" codeSystemName="SNOMED CT" displayName="Established diagnosis"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="CD" code="195967001" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Asthma">
    <translation code="49390" codeSystem="2.16.840.1.113883.6.2" codeSystemName="ICD9CM" displayName="ASTHMA W/O STATUS ASTHMATICUS"/>
    </value>
    <reference typeCode="ELNK">
    <externalObservation classCode="COND">
    <id root="10.23.27.111.17"/>
    <code code="14657009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Established diagnosis"/>
    </externalObservation>
    </reference>
    </observation>
    </entry>
    <entry>
    <observation classCode="COND" moodCode="EVN">
    <code code="14657009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Established diagnosis"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="CD" code="59621000" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Essential hypertension">
    <translation code="4019" codeSystem="2.16.840.1.113883.6.2" codeSystemName="ICD9CM" displayName="HYPERTENSION NOS"/>
    </value>
    <reference typeCode="ELNK">
    <externalObservation classCode="COND">
    <id root="10.23.27.111.1732"/>
    <code code="14657009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Established diagnosis"/>
    </externalObservation>
    </reference>
    </observation>
    </entry>
    <entry>
    <observation classCode="COND" moodCode="EVN">
    <code code="14657009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Established diagnosis"/>
    <effectiveTime value="200004071530"/>
    <value xsi:type="CD" code="40275004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Contact dermatitis">
    <translation code="692.9" codeSystem="2.16.840.1.113883.6.2" codeSystemName="ICD9CM" displayName="Contact Dermatitis, NOS"/>
    </value>
    <targetSiteCode code="48856004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Skin of palmer surface of index finger">
    <qualifier>
    <name code="78615007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="with laterality"/>
    <value code="7771000" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="left"/>
    </qualifier>
    </targetSiteCode>
    </observation>
    </entry>
    </section>
    </component>
    <!--
    ********************************************************
    Plan section
    ********************************************************
    -->
    <component>
    <section>
    <templateId root="2.16.840.1.113883.3.27.354"/>
    <code code="1150x-y" codeSystem="2.16.840.1.113883.19.278.47" codeSystemName="MyLocalCodeSystem"/>
    <title>Plan</title>
    <text>
    <list>
    <item>Complete PFTs with lung volumes.</item>
    <item>Chem-7 tomorrow.</item>
    <item>Teach peak flow rate measurement.</item>
    <item>Decrease prednisone to 20qOD alternating with 18qOD.</item>
    <item>Hydrocortisone cream to finger BID.</item>
    <item>RTC 1 week.</item>
    </list>
    </text>
    <entry>
    <observation classCode="OBS" moodCode="INT">
    <id/>
    <code code="23426006" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Pulmonary function test"/>
    <text>Complete PFTs with lung volumes.</text>
    <entryRelationship typeCode="COMP">
    <observation classCode="OBS" moodCode="INT">
    <code code="252472004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Lung volume test"/>
    </observation>
    </entryRelationship>
    </observation>
    </entry>
    <entry>
    <observation classCode="OBS" moodCode="INT">
    <code code="24320-4" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC">
    <originalText>Chem-7</originalText>
    <translation code="aYU7t6" codeSystem="2.16.840.1.113883.19.278.47" codeSystemName="MyLocalCodeSystem" displayName="Chem7"/>
    </code>
    <text>Chem-7 tomorrow</text>
    <effectiveTime value="20000408"/>
    </observation>
    </entry>
    <entry>
    <act classCode="ACT" moodCode="INT">
    <id/>
    <code code="223468009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Teaching of skills">
    <qualifier>
    <name code="363702006" displayName="has focus"/>
    <value code="29893006" displayName="Peak flow rate measurement"/>
    </qualifier>
    </code>
    </act>
    </entry>
    <entry>
    <substanceAdministration classCode="SBADM" moodCode="RQO">
    <text>prednisone 20qOD alternating with 18qOD.</text>
    <routeCode code="PO" codeSystem="2.16.840.1.113883.5.112" codeSystemName="RouteOfAdministration"/>
    <consumable>
    <manufacturedProduct>
    <manufacturedLabeledDrug>
    <code code="10312003" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Prednisone preparation"/>
    </manufacturedLabeledDrug>
    </manufacturedProduct>
    </consumable>
    </substanceAdministration>
    </entry>
    <entry>
    <substanceAdministration classCode="SBADM" moodCode="RQO">
    <text>Hydrocortisone cream to finger BID.</text>
    <effectiveTime xsi:type="PIVL_TS" institutionSpecified="true">
    <period value="12" unit="h"/>
    </effectiveTime>
    <routeCode code="SKIN" codeSystem="2.16.840.1.113883.5.112" codeSystemName="RouteOfAdministration" displayName="Topical application, skin"/>
    <approachSiteCode code="48856004" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Skin of palmer surface of index finger">
    <qualifier>
    <name code="78615007" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="with laterality"/>
    <value code="7771000" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="left"/>
    </qualifier>
    </approachSiteCode>
    <consumable>
    <manufacturedProduct>
    <manufacturedLabeledDrug>
    <code code="331646005" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Hydrocortisone cream"/>
    </manufacturedLabeledDrug>
    </manufacturedProduct>
    </consumable>
    </substanceAdministration>
    </entry>
    <entry>
    <encounter classCode="ENC" moodCode="RQO">
    <code code="185389009" codeSystem="2.16.840.1.113883.6.96" codeSystemName="SNOMED CT" displayName="Follow-up visit"/>
    <effectiveTime>
    <low value="20000412"/>
    <high value="20000417"/>
    </effectiveTime>
    </encounter>
    </entry>
    </section>
    </component>
    </structuredBody>
    </component>
    </ClinicalDocument>
    ****************************************************************************************************************************
    ENDE: Der ursprüngliche Arztbrief im HL7 CDA Release 2-Standard-konformen Format
    ****************************************************************************************************************************

    In diesem Arztbrief sind Hinweise auf den Blutdruck ("bloof pressure") enthalten. Diese sollen nun extrahiert und in eine "blood_pressure.xml" geschrieben werden. Dazu gibt es das folgende XSD:

    <blood-pressure>
    <when>
    <date>
    <y>2006</y>
    <m>1</m>
    <d>1</d>
    </date>
    <time>
    <h>9</h>
    <m>30</m>
    <s>0</s>
    <f>0</f>
    </time>
    </when>
    <systolic>115</systolic>
    <diastolic>76</diastolic>
    <pulse>80</pulse>
    <irregular-heartbeat>false</irregular-heartbeat>
    </blood-pressure>

    mit dem nachfolgenden Schema:

    <schema xmlns:BloodPressure="urn:com.microsoft.wc.thing.BloodPressure" xmlns:t="urn:com.microsoft.wc.thing.types" xmlns:d="urn:com.microsoft.wc.dates" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:com.microsoft.wc.thing.BloodPressure">
    <import namespace="urn:com.microsoft.wc.thing.types" schemaLocation="base.xsd" />
    <import namespace="urn:com.microsoft.wc.dates" schemaLocation="..\..\..\platform\web\xsd\dates.xsd" />
    <annotation>
    <documentation>
    <type-id>ca3c57f4-f4c1-4e15-be67-0a3caf5414ed</type-id>
    <type-name>Blood Pressure Measurement</type-name>
    <wrapper-class-name>BloodPressure</wrapper-class-name>
    <wrapper-class-fwlink>136059</wrapper-class-fwlink>
    <sample-xml-fwlink>136060</sample-xml-fwlink>
    <data-type-guide-fwlink>136058</data-type-guide-fwlink>
    <summary>Defines a single blood pressure reading.</summary>
    <effective-date-element>when</effective-date-element>
    </documentation>
    </annotation>
    <element name="blood-pressure">
    <complexType>
    <annotation>
    <documentation>
    <summary>Defines a single blood pressure reading.</summary>
    </documentation>
    </annotation>
    <sequence>
    <element name="when" type="d:date-time">
    <annotation>
    <documentation>
    <summary>The date and time the reading was taken.</summary>
    </documentation>
    </annotation>
    </element>
    <element name="systolic" type="t:nonNegativeInt">
    <annotation>
    <documentation>
    <summary>The systolic pressure at the time of the reading.</summary>
    <remarks>The systolic pressure is the peak pressurein the arteries during a cardiac cycle. Itis measured in millimeters of mercury (mmHg).</remarks>
    </documentation>
    </annotation>
    </element>
    <element name="diastolic" type="t:nonNegativeInt">
    <annotation>
    <documentation>
    <summary>The diastolic pressure at the time of thereading.</summary>
    <remarks>The diastolic pressure is the lowest pressurein the arteries during a cardiac cycle. Itis measured in millimeters of mercury (mmHg).</remarks>
    </documentation>
    </annotation>
    </element>
    <element name="pulse" type="t:nonNegativeInt" minOccurs="0">
    <annotation>
    <documentation>
    <summary>The person's pulse rate at the time of the reading.</summary>
    <remarks>The pulse is measured in beats per minute.</remarks>
    </documentation>
    </annotation>
    </element>
    <element name="irregular-heartbeat" type="boolean" minOccurs="0" maxOccurs="1">
    <annotation>
    <documentation>
    <summary>Indicates whether an irregular heartbeat (arrhythmia) was detected when the measurement was taken.</summary>
    <remarks>The irregular heartbeat is a boolean indicator.</remarks>
    </documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>
    </element>
    </schema>

    Eine Alternative dazu ist eine "allergic episode":

    <allergic-episode>
    <when>
    <date>
    <y>2005</y>
    <m>1</m>
    <d>1</d>
    </date>
    <time>
    <h>6</h>
    <m>0</m>
    <s>0</s>
    <f>0</f>
    </time>
    </when>
    <name>
    <text>allergy to insects</text>
    <code>
    <value>V1506</value>
    <family>icd</family>
    <type>icd9cm</type>
    <version>1</version>
    </code>
    </name>
    <reaction>
    <text>itchy, watery eyes</text>
    <code>
    <value>372.14</value>
    <family>wc</family>
    <type>reactions</type>
    <version>1</version>
    </code>
    </reaction>
    <treatment>
    <text>Topical steroid cream and Antihistamines</text>
    </treatment>
    </allergic-episode>

    mit dem nachfolgenden Schema

    <schema xmlns:allergic-episode="urn:com.microsoft.wc.thing.allergic-episode" xmlns:t="urn:com.microsoft.wc.thing.types" xmlns:d="urn:com.microsoft.wc.dates" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:com.microsoft.wc.thing.allergic-episode">
    <import namespace="urn:com.microsoft.wc.thing.types" schemaLocation="base.xsd" />
    <import namespace="urn:com.microsoft.wc.dates" schemaLocation="dates.xsd" />
    <annotation>
    <documentation>
    <type-id>d65ad514-c492-4b59-bd05-f3f6cb43ceb3</type-id>
    <type-name>Allergic Episode</type-name>
    <wrapper-class-name>AllergicEpisode</wrapper-class-name>
    <wrapper-class-fwlink>136032</wrapper-class-fwlink>
    <sample-xml-fwlink>136033</sample-xml-fwlink>
    <data-type-guide-fwlink>136031</data-type-guide-fwlink>
    <summary>Information related to a single instance of an allergicreaction.</summary>
    <effective-date-element>when</effective-date-element>
    </documentation>
    </annotation>
    <element name="allergic-episode">
    <complexType>
    <annotation>
    <documentation>
    <summary>Information related to a single instance of an allergicreaction.</summary>
    </documentation>
    </annotation>
    <sequence>
    <element name="when" minOccurs="1" maxOccurs="1" type="d:date-time">
    <annotation>
    <documentation>
    <summary>The date and time the episode occurred.</summary>
    </documentation>
    </annotation>
    </element>
    <element name="name" minOccurs="1" maxOccurs="1" type="t:codable-value">
    <annotation>
    <documentation>
    <summary>The name of the allergy.</summary>
    </documentation>
    </annotation>
    </element>
    <element name="reaction" minOccurs="0" maxOccurs="1" type="t:codable-value">
    <annotation>
    <documentation>
    <summary>The description of the symptoms of this allergic reaction.</summary>
    </documentation>
    </annotation>
    </element>
    <element name="treatment" type="t:codable-value" minOccurs="0" maxOccurs="1">
    <annotation>
    <documentation>
    <summary>A description of the treatment taken for thisallergic reaction.</summary>
    </documentation>
    </annotation>
    </element>
    </sequence>
    </complexType>
    </element>
    </schema>

    Lässt sich daraus eine direkte Transformation erzeugen? Ist dieser Prozess Ihrer Beurteilung nach "einfach" ausgelegt oder sehr als komplex zu bewerten? Gerne nenne ich Ihnen auch die entsprechende URL zum Nachschauen.

    Herzliche Grüsse


    Markus Mohr
    This post was modified on 15 Jan 2011 at 06:40 pm.