Freigeben über


Nachrichtencodierungen

Es reicht nicht aus, Nachrichtensemantik zu definieren, damit HL7 nützlich ist. Nachdem der Nachrichteninhalt bestimmt wurde, muss der Standard erklären, wie dieser Inhalt in einer tatsächlichen Schnittstelle dargestellt werden kann. Das heißt, es muss eine angegebene "Nachrichtencodierung" vorhanden sein. HL7 Version 2 unterstützt zwei Formen der Nachrichtencodierung, eine benutzerdefinierte Trennzeichen-basierte Codierung und eine XML-Codierung.

HL7 hat sich für die ursprüngliche trennzeichenbasierte Codierung entschieden, um die Größe von Nachrichten so weit wie möglich zu reduzieren. Wenn Sie beispielsweise eine Datenstruktur, in der Trennzeichen Elemente trennen, mit einer Struktur vergleichen, die jedes Element in einer festen Gruppe von Positionen positioniert, ist die trennzeichenbasierte Struktur viel wirtschaftlicher, wenn a) Nachrichten keine Elemente enthalten und b) einige Elemente nicht den gesamten zulässigen Platz ausfüllen. Der einzige Mehraufwand in trennzeichenbasierten Strukturen sind die Trennzeichen selbst.

Die ursprüngliche HL7-Codierung definiert fünf Trennzeichen, die jede Nachricht innerhalb des MSH-Segments deklariert. Diese weisen auf Folgendes hin:

  • Segmente

  • Felder

  • Komponenten

  • Unterkomponenten

  • Wiederholung (eines Felds, einer Komponente oder eines Teilelements)

    Beachten Sie, dass Sie sie zuerst definieren müssen, da Trennzeichen ein grundlegender Aspekt der Codierung sind. Ein Ergebnis davon ist, dass es kein Unteruntertrennzeichen geben kann. Manchmal hat diese Einschränkung unglückliche Auswirkungen auf den Entwurf neuer Datentypen.

    Im Juni 2003 veröffentlichte HL7 HL7 Version 2, XML Encoding Syntax, Release 1. Dieser Standard definiert alternative Codierungsregeln für HL7-Nachrichten der Versionen 2.3.1 und 2.4 und bietet einen Mechanismus zum Bestimmen alternativer Codierungsregeln für nachfolgende HL7 2.X-Versionen. Im Wesentlichen definiert dieser neue Standard XML-Elementtags für die abstrakten Nachrichten, Segmente, Felder und Datentypen der Version 2.3.1 und V2.4 und erstellt Regeln zum Definieren der Tags, die für alle neuen Strukturen erforderlich sind, die für nachfolgende Versionen des Standards von Version 2 erstellt wurden. Der Prozess der Definition dieser Norm führte zu einer Reihe von Verbesserungen in den Versionen 2.4 und 2.5. Dies geschah, weil die Erstellung von XML-Tags dazu führte, dass einige langjährige Mehrdeutigkeiten im zugrunde liegenden Standard gelöst werden mussten. Infolgedessen wurden a) klar definierte Nachrichtenstrukturcodes erstellt, um Variationen in den abstrakten Nachrichten anzugeben, die Triggerereignissen zugeordnet sind, b) sich wiederholende Gruppen von Segmenten mit einer abstrakten Nachricht wurden formal identifiziert und benannt, und c) der lokal definierte Datentyp, CM wurde durch spezifischere Typen ersetzt.

    Die folgende Meldung ist beispielsweise eine einfache Bestätigungsmeldung, die das herkömmliche Format mit Pipetrennzeichen verwendet:

MSH|^~\&|LAB|767543|ADT|767543|199003141304-0500||ACK^^ACK|XX3657|P|2.4  
MSA|AR|ZZ9380  
ERR|PID^1^16^103&Table value not found&HL70357  

Im Gegensatz dazu ist die folgende Nachricht wie ein XML-Dokument dargestellt:

<ACK  
xmlns="urn:hl7-org:v2xml"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xsi:schemaLocation="urn:hl7-org:v2xml ACK.xsd">  
   <MSH>  
      <MSH.1>|</MSH.1>  
      <MSH.2>^~\&</MSH.2>  
      <MSH.3>  
         <HD.1>LAB</HD.1>  
      </MSH.3>  
      <MSH.4>  
         <HD.1>767543</HD.1>  
      </MSH.4>  
      <MSH.5>  
         <HD.1>ADT</HD.1>  
      </MSH.5>  
      <MSH.6>  
         <HD.1>767543</HD.1>  
      </MSH.6>  
      <MSH.7>  
         <TS.1>199003141304-0500</TS.1>  
      </MSH.7>  
      <MSH.9>  
         <MSG.1>ACK</MSG.1>  
         <MSG.3>ACK</MSG.3>  
      </MSH.9>  
      <MSH.10>XX3657</MSH.10>  
      <MSH.11>  
         <PT.1>P</PT.1>  
      </MSH.11>  
      <MSH.12>  
         <VID.1>2.4</VID.1>  
      </MSH.12>  
   </MSH>  
   <MSA>  
      <MSA.1>AR</MSA.1>  
      <MSA.2>ZZ9380</MSA.2>  
   </MSA>  
   <ERR>  
      <ERR.1>  
         <ELD.1>PID</ELD.1>  
         <ELD.2>1</ELD.2>  
         <ELD.3>16</ELD.3>  
         <ELD.4>  
            <CE.1>103</CE.1>  
            <CE.2>Table value not found</CE.2>  
            <CE.3>HL70357</CE.3>  
         </ELD.4>  
      </ERR.1>  
   </ERR>  
</ACK>  

Die folgenden Funktionen von Microsoft BizTalk Accelerator for HL7 (BTAHL7) unterstützen diese Anforderungen:

  • Unterstützung von Pipetrennzeichen und XML-Codierung.

  • Unterstützung der Übersetzung zwischen XML- und Pipetrennzeichencodierungen.

Weitere Informationen

Verarbeiten von HL7-Nachrichten
Nachrichtenverarbeitung
Verwenden von HL7 2.X-Schemas