Condividi tramite


Codifiche dei messaggi

Non è sufficiente definire la semantica dei messaggi affinché HL7 sia utile. Dopo aver determinato il contenuto del messaggio, lo standard deve spiegare come rappresentare tale contenuto in un'interfaccia effettiva. Ciò significa che deve essere presente una "codifica dei messaggi" specificata. HL7 versione 2 supporta due forme di codifica dei messaggi, una codifica personalizzata basata su delimiter e una codifica XML.

HL7 ha scelto la codifica originale basata sul delimitatore per ridurre le dimensioni dei messaggi il più possibile. Ad esempio, se si confronta una struttura di dati in cui i delimitatori separano gli elementi con una struttura che posiziona ogni elemento in un set fisso di posizioni, la struttura basata sul delimitatore è molto più economica se a) i messaggi non contengono alcuni elementi e b) alcuni elementi non riempiono tutto lo spazio consentito. L'unico overhead nelle strutture basate su delimitatori è rappresentato dai delimitatori stessi.

La codifica HL7 originale definisce cinque delimitatori, che ogni messaggio dichiara all'interno del segmento MSH. Questi indicano:

  • Segmenti

  • Campi

  • Componenti

  • Sottocomponenti

  • Ripetizione (di un campo, di un componente o di un sottocomponente)

    Si noti che poiché i delimitatori sono un aspetto fondamentale della codifica, è necessario definirli per primi. Un risultato di questo è che non può essere presente alcun delimitatore secondario. A volte, questa limitazione ha effetti sfortunati sulla progettazione di nuovi tipi di dati.

    Nel giugno 2003, HL7 ha pubblicato HL7 versione 2, sintassi di codifica XML, versione 1. Questo standard definisce regole di codifica alternative per i messaggi HL7 versione 2.3.1 e 2.4 e fornisce un meccanismo per determinare regole di codifica alternative per le versioni successive di HL7 2.X. In sostanza, questo nuovo standard definisce i tag degli elementi XML per i messaggi astratti versione 2.3.1 e V2.4, segmenti, campi e tipi di dati e crea regole per definire i tag necessari per le nuove strutture create per le versioni successive dello standard versione 2. Il processo di definizione di questo standard ha portato a una serie di miglioramenti nelle versioni 2.4 e 2.5. Ciò si è verificato perché la creazione di tag XML ha portato alla necessità di risolvere alcune ambiguità di lunga durata nello standard sottostante. Di conseguenza, sono stati creati codici di struttura dei messaggi ben definiti per indicare le variazioni nei messaggi astratti associati agli eventi trigger, b) i gruppi ripetuti di segmenti con un messaggio astratto sono stati formalmente identificati e denominati e c) il tipo di dati definito localmente, CM è stato sostituito con tipi più specifici.

    Ad esempio, di seguito è riportato un semplice messaggio di riconoscimento usando il formato delimitato dalla pipe tradizionale:

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  

Al contrario, di seguito è riportato lo stesso messaggio rappresentato da un documento XML:

<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>  

Le funzioni seguenti di Microsoft BizTalk Accelerator per HL7 (BTAHL7) supportano questi requisiti:

  • Supporto della codifica XML e delimitata dalla pipe.

  • Supporto della conversione tra codifiche delimitate da XML e pipe.

Vedere anche

Elaborazione dei messaggi HL7
Elaborazione di messaggi
Uso degli schemi di HL7 2.X