訊息編碼
定義訊息語意並不足以讓 HL7 很有用。 判斷訊息內容之後,標準必須說明如何在實際介面中表示該內容。 也就是說,必須有指定的「訊息編碼」。 HL7 第 2 版支援兩種形式的訊息編碼、自訂分隔符號型編碼,以及 XML 編碼。
HL7 選擇以原始分隔符號為基礎的編碼方式,盡可能減少訊息的大小。 例如,如果您比較分隔符號分隔元素的資料結構與將每個元素放在固定位置的 結構,則如果) 訊息不包含某些元素,則分隔符號式結構會比較經濟實惠,而且 b) 某些元素不會填滿允許的所有空間。 以分隔符號為基礎的結構中唯一的額外負荷是分隔符號本身。
原始的 HL7 編碼會定義五個分隔符號,每個訊息都會在 MSH 區段內宣告。 這些表示:
使用者分佈
欄位
單元
子元件
欄位、元件或子元件的重複 ()
請注意,由於分隔符號是編碼的基本層面,因此您必須先定義它們。 其中一個結果是沒有子子分隔符號。 有時候,這項限制會對新資料類型的設計造成不良影響。
在 2003 年 6 月,HL7 發行了 HL7 第 2 版,XML 編碼語法第 1 版。 此標準會定義 HL7 2.3.1 版和 2.4 訊息的替代編碼規則,並提供機制來判斷後續 HL7 2.X 版本的替代編碼規則。 基本上,這個新標準會定義版本 2.3.1 和 V2.4 抽象訊息、區段、欄位和資料類型的 XML 元素標記,並建立規則來定義針對後續版本版本 2 標準建立之任何新結構所需的標記。 定義此標準的程式會導致 2.4 和 2.5 版的一系列改進。 這是因為建立 XML 標記,導致需要解決基礎標準中一些長期模棱兩可的情況。 因此,已建立) 定義完善的訊息結構程式碼,以指出與觸發程式事件相關聯的抽象訊息變化、b) 具有抽象訊息的重複區段群組已正式識別並命名,而 c) 本機定義的資料類型,CM 會取代為更特定的類型。
例如,以下是使用傳統管道分隔格式的簡單通知訊息:
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
相較之下,下列訊息與 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>
下列 Microsoft BizTalk Accelerator for HL7 (BTAHL7) 功能支援這些需求:
支援管道分隔和 XML 編碼。
支援 XML 與管道分隔編碼之間的轉譯。