1.介紹
HL7 縮寫於Health Level Seven,是創建於1987年,用來發展獨立衛生保健行業的電子交換交換標準,經過多年的發展,HL7已經有多個版本。
簡單的理解其實就像XML,JSON格式一樣,HL7也是一種數據格式,可以理解爲一個包含很多行字符串的消息體,這一整個就是一個HL7消息內容。
HL7官網 http://www.hl7.org/,可下載對應版本文檔
Hapi官網 https://hapifhir.github.io/hapi-hl7v2/
2.傳輸協議規範
2.1. MLLP
MLLP是目前HL7標準採用的標準接入規範,其他還有Netty等技術手段。其定義主要包括如下幾個方面:
² 傳輸協議
MLLP協議採用標準的TCP協議進行消息發送和接收。接入時請參考相關的TCP/IP 技術文檔。
² 數據頭定義
說明 |
定義 |
開始(Start Block character) |
0x0B |
結束(End Block character) |
0x1C |
回車(Carriage return) |
0x0D |
² 轉義字符集
在通過MLLP接口傳輸HL7消息時,下列字符集需進行轉義:
轉義序列 |
說明 |
\Cxxyy\ |
單字節字符集的轉義序列,由兩16進制數值組成,不轉換 |
\E\ |
Escape符的轉義序列 (e.g., ‘\’) |
\F\ |
Field分隔符的轉義序列 (e.g., ‘|’) |
\H\ |
高亮段的起始,不轉換 |
\Mxxyyzz\ |
多字節字符集的轉義序列,由兩至三個16進制數值組成 (zz可選),不轉換 |
\N\ |
正常文字 (結束高亮) ,不轉換 |
\R\ |
Repetition分隔符的轉義序列 (e.g., ‘~’) |
\S\ |
Component分隔符的轉義序列 (e.g., ‘^’) |
\T\ |
Subcomponent分隔符的轉義序列 (e.g., ‘&’) |
\Xdd…\ |
16進制數據 (dd必須是16進制符號) 成對轉換爲相應字符 |
2.2. 規範說明
² 通用段消息中常見的段進行統一說明
² 對於域(Field)紅色字體表示該域是必填的,整行綠色字體表示該域擴展用法,非HL7標準含義。
2.3. 消息格式說明
² 大括號“{}”表示該部分可以重複
² 中括號“[]”表示該部分可選
² 黃色背景標示的是該文檔中主要用到的段(Segment)
3.HL7結構介紹
例如:下面就是一個ADT^A28類型下的A28的消息:
3.1. 患者建檔(ADT^A28)
*說明*:A28是用於患者基本信息建檔,區別於門診掛號、住院入院等就診活動消息。
3.1.1. 患者建檔(ADT^A28)消息規範
Field |
Data Type |
Data Element |
Data Source |
Notes |
|||
MSH |
消息頭信息段 |
||||||
MSH-3-1 |
|
Namespace ID |
HIS |
發送方 |
|||
MSH-5-1 |
|
Namespace ID |
MediII |
接受方 |
|||
PID |
患者基本信息段 |
||||||
PID-2 |
CX |
Patient ID |
患者主索引信息 |
|
|||
PID-2-1 |
ST |
ID |
患者全院唯一標識(患者主索引ID) |
若爲0表示,需要EMPI系統創建並返回新的主索引號。 |
|||
[{NK1}] |
患者聯繫人信息段 |
||||||
PV1 |
患者就診信息段 |
||||||
PV1-2 |
IS |
Patient Class |
患者分類 |
E:急診 I:住院 O:門診 T:體檢 |
|||
PV1-52 |
XCN |
Other Healthcare Provider |
操作人信息 |
|
|||
PV1-52(1)-1 |
ST |
ID Number |
員工號 |
|
|||
PV1-52(1)-3 |
FN |
GivenName |
姓名 |
|
² 回覆(ACK):
² 說明:ADT^A28根據醫院業務,若接收方爲EMPI系統(主索引系統),則建檔時會返回主索引ID,否則不返回主索引。
Field |
Data Type |
Data Element |
Data Source |
Notes |
|
MSH |
消息頭信息段 |
||||
MSH-3-1 |
|
Namespace ID |
發送方 |
MediII |
|
MSH-3-2 |
|
Universal ID |
發送方院區ID |
|
|
MSH-5-1 |
|
Namespace ID |
接受方 |
HIS |
|
MSH-5-2 |
|
Universal ID |
接收方院區ID |
|
|
MSA |
回覆結果信息段 |
||||
MSA-1 |
ID |
Acknowledgment Code |
AA 成功 AE 失敗 AR 拒絕 |
|
|
MSA-2 |
ST |
Message Control ID |
響應消息的控制ID |
|
|
MSA-3 |
ST |
Text Message |
消息描述 |
若MSA-2=AE,表示錯誤原因描述; 若MSA-2=AA,表示PID-2-1(主索引ID) |
3.1.2. 患者建檔(ADT^A28)消息示例
消息說明 |
消息內容 |
患者建檔 |
MSH|^~\&|HIS|MediInfo|MediII|MediInfo|20120123210401||ADT^A28^ADT_A05|8890fd1647d541130c8e50e322f989|P|2.4 EVN|A28|20120123210401||||20120123210401 PID||3102209|3101409^^^JG01~1004209^^^JG02~00345685^^^JG03~330107331108002^^^JG04~014211589^^^JG05~30114174~06D958112F11^^^JG06~01411589^^^JG07~A12231645^^^JG08~33213154^^^JG09~1011409^^^JG10||XiaoHua^小華||19890101000000|2|||浙江杭州建德新安江街道&新安江街道&19號^建德市^杭州市^浙江省^311600^^H^鄉鎮信息^330182^街道標準編碼~農夫山泉新安江飲料有限公司&新安江街道&10號^建德市^杭州市^浙江省^311600^^W^農夫山泉新安江飲料有限公司^縣地區編碼^街道標準編碼||^^01^^^^18205710973~^^02^^^^8318764|^^^^^^18258476654||O^其他||330182192232210412^^^01|330182192221012212|||01^漢族|浙江省|||Y^退休||40^中國||||0 NK1|1|TANMOUMOU^譚某某|30^女兒|浙江杭州建德新安江街道華&新安江街道華&13號^建德市^杭州市^浙江省^311600^^H^鄉鎮信息^330182^街道標準編碼|^^^^^^1821110973~^^^^^^8318764~^^^^^^182111113||||||||農夫山泉新安江飲料有限公司<20003711> PV1||O||||||||||||||||01||||||||||||||||||||||||||||||||||1295^^孟子 |
回覆消息[成功] |
MSH|^~\&|UEHIS|UEHIS|MediII|MediII|20150123210520||ACK^A28^ACK|83bc94f0eb82428ea8e7482f7def130e|P|2.4 MSA|AA|8890fd1647d54362b30c8e50e322f989 |
EMPI系統 回覆消息[成功] |
MSH|^~\&|UEHIS|UEHIS|MediII|MediII|20150123210520||ACK^A28^ACK|83bc94f0eb82428ea8e7482f7def130e|P|2.4 MSA|AA|8890fd1647d54362b30c8e50e322f989|1000100 |
回覆消息[失敗] |
MSH|^~\&|UEHIS|UEHIS|MediII|MediII|20150123210520||ACK^A28^ACK|83bc94f0eb82428ea8e7482f7def130e|P|2.4 MSA|AE|8890fd1647d54362b30c8e50e322f989|失敗原因 |
4.通用段消息值域說明
4.1. 消息頭(MSH)
Field |
Data Type |
Data Element |
Notes |
Data Source |
MSH-1 |
ST |
Field Separator |
| |
|
MSH-2 |
ST |
Encoding Characters |
^~\& |
|
MSH-3 |
HD |
Sending Application |
發送程序 |
|
MSH-3-1 |
|
Namespace ID |
發送程序簡稱 |
如HIS |
MSH-4 |
HD |
Sending Facility |
發送設備。目前等同MSH-3 |
|
MSH-5 |
HD |
Receiving Application |
接收程序 |
|
MSH-5-1 |
|
Namespace ID |
發送程序簡稱 |
如PASC |
MSH-6 |
HD |
Receiving Facility |
接收設備。目前等同MSH-5 |
|
MSH-7 |
TS |
Date/Time of Message |
消息發生的時間 |
20141023090101 |
MSH-9 |
CM |
Message Type |
|
如:ADT^A01^ADT_A01 |
MSH-9-1 |
|
Message Type |
消息類型 |
如ADT |
MSH-9-2 |
|
Trigger Event |
事件 |
如A01 |
MSH-9-3 |
|
Message Structure |
消息結構 |
如ADT_A01 |
MSH-10 |
ST |
Message Control ID |
用於唯一標識某條消息。在ACK消息中,必須使用到該Field |
全球唯一標識符32位長度 |
MSH-11 |
PT |
Processing ID |
|
|
MSH-11-1 |
|
Processing ID |
處理ID號 |
生產系統使用 ’P’ |
MSH-12 |
VID |
Version ID |
|
|
MSH-12-1 |
|
Version ID |
版本號 |
2.4 |
4.2. 消息確認(MSA)
Field |
Data Type |
Data Element |
Data Source |
Notes |
MSA-1 |
ID |
Acknowledgment Code |
|
AA 成功 AE 失敗 AR 拒絕 |
MSA-2 |
ST |
Message Control ID |
|
響應消息的控制ID |
MSA-3 |
ST |
Text Message |
|
錯誤信息 |
MSA-6 |
CE |
Error Condition |
|
錯誤情況 參見HL7表0357 |
HL7 表 0357 – 信息出錯情況代碼
出錯情況代碼 |
出錯情況文本 |
描述/說明 |
成功 |
AA |
|
0 |
信息被接受 |
成功。可選,即AA傳輸成功,用於必返回一狀態代碼的系統中 |
出錯 |
AE |
|
100 |
信息系列號出錯 |
信息中的信息段的順序不正確,或者必須的信息段丟失。 |
101 |
必須的字段丟失 |
某一信息段的必須字段丟失 |
102 |
數據類型出錯 |
字段包含有錯誤的數據類型。比如:一數值(NM)字段包含“FOO” |
103 |
未發現相應的表格中的取值 |
將一數據類型爲ID或IS的字段於相應的取值表格進行比較,未發現性匹配的取值。 |
拒絕 |
AR |
|
200 |
不支持的信息類型 |
此信息類型不被支持 |
201 |
不支持的事件代碼 |
此事件代碼不被支持 |
202 |
不被支持的處理ID號 |
此處理ID號不被支持 |
203 |
不被支持的版本ID號 |
此版本ID號不被支持 |
204 |
不認識的關鍵標識符 |
未發現患者預定等的ID號。用於對患者的處理時而不是添加患者,比如:試圖傳輸一個不存在的患者的數據。 |
205 |
關鍵標識符出現重複 |
患者預定等的ID號已經存在。用於添加患者的操作中(如:入院,新預定等) |
206 |
應用程序紀錄鎖定 |
在程序進行存儲工作時,處理不能被執行。如:數據庫被鎖定。 |
207 |
應用程序內部錯誤 |
以上錯誤代碼不能覆蓋的其他內部錯誤 |
4.3. 患者基本信息信息PID
Field |
Data Type |
Data Element |
Data Source |
Notes |
PID-1 |
SI |
Set ID |
順序號 |
默認值1 |
PID-2 |
CX |
Patient ID |
患者主索引信息 |
如: 患者主索引ID^先診療後付費標誌^^^綠色通道患者標誌^^^ |
PID-2-1 |
ST |
ID |
患者全院唯一標識(患者主索引ID) |
|
PID-2-2 |
ST |
Check Digit |
VIP-先診療後付費標誌(0/1) |
|
PID-2-5 |
ID |
Identifier Type Code |
綠色通道患者標誌 |
|
PID-3 |
CX |
Patient identifier List |
|
如:患者相關ID^^^授權機構 |
PID-3(n)-1 |
ST |
ID |
患者相關ID |
患者相關ID授權機構代碼 |
PID-3(n)-4 |
HD |
Assigning Authority |
||
PID-4 |
CX |
Alternate Patient ID PID |
|
門診不填,住院必填 |
PID-4-1 |
ST |
ID |
嬰兒標誌 |
非嬰兒0嬰兒1 |
PID-4-5 |
ID |
Identifier Type Code |
患者信息保密級別 |
0/空-不需要保密; 1-保密 |
PID-5 |
XPN |
Patient Name |
|
如:ZHANGSAN^張三 |
PID-5-1 |
FN |
Family Name |
拼音 |
如:ZHANGSAN |
PID-5-2 |
ST |
Given Name |
患者姓名 |
如:張三 |
PID-7 |
TS |
Date/Time of Birth |
出生日期 |
如:20141023090101 |
PID-8 |
IS |
Administrative sex |
性別 |
F: Female M:Male O:Others 以醫院標準值域爲參考 |
PID-11 |
XAD |
Patient Address |
地址信息 |
如:浙江杭州市濱江區浦沿街道110號&沿街道&110號^濱江區^杭州市^浙江省^310000^H^^^ |
PID-11(n)-1 |
SAD |
Street Address |
詳細地址描述 |
|
PID-11(n)-1-1 |
ST |
Street or mailing address |
詳細地址信息 |
如:浙江杭州市濱江區浦沿街道110號 |
PID-11(n)-1-2 |
ST |
Street name |
街道信息(村/街道) |
如:濱江區浦沿街道 |
PID-11(n)-1-3 |
ST |
Dwelling number |
門牌號碼 |
如:110號 |
PID-11(n)-2 |
ST |
Other Designation |
縣地區(縣) |
如:濱江區 或 富春縣 |
PID-11(n)-3 |
ST |
City |
城市(市) |
如:杭州市 |
PID-11(n)-4 |
ST |
State Or Province |
省,自治區,直轄市 |
如:浙江省 |
PID-11(n)-5 |
ST |
Zip Or PostalCode |
郵編 |
如:310000 |
PID-11(n)-7 |
ID |
Address type |
詳見字典代碼說明 如:H |
|
PID-11(n)-8 |
ST |
Other geographic designation |
鄉鎮信息
|
依需錄入 地址類型是工作單位時,填“工作單位名稱信息” |
PID-11(n)-9 |
IS |
County/parish code |
縣地區編碼 |
縣地區標準編碼 |
PID-11(n)-10 |
IS |
Census tract |
街道標準編碼(保留) |
街道標準編碼 |
PID-13 |
XTN |
Phone Number Home |
|
|
PID-13(n)-3 |
ID |
Telecommunication Equipment Type |
詳見字典說明 |
|
PID-13(n)-7 |
NM |
PhoneNumber |
電話號碼 |
手機號碼,如類電話型代碼爲01時,表示聯繫電話號碼。 |
PID-14 |
XTN |
Phone Number Business |
|
|
PID-14-7 |
NM |
PhoneNumber |
工作電話 |
手機號碼 |
PID-16 |
CE |
Marital Status |
婚姻狀況 |
如: M^已婚或S^未婚或O^其他 |
PID-16-1 |
ST |
Identifier |
婚姻狀況代碼 |
|
PID-16-2 |
ST |
Text |
婚姻狀況名稱 |
|
PID-18 |
CX |
Patient Account Number |
證件信息 |
|
PID-18-1 |
ST |
ID |
證件號碼 |
|
PID-18-4 |
HD |
Assigning Authority |
詳見字典說明 |
|
PID-19 |
ST |
SSN Number |
身份證號 |
|
PID-21 |
CX |
Mother's Identifier |
|
門診不填,住院必填 |
PID-21-1 |
ST |
ID |
母親住院ID |
|
PID-22 |
CE |
Ethnic Group |
民族 |
如:12^漢族 |
PID-22-1 |
ST |
Identifier |
民族ID |
|
PID-22-2 |
ST |
Text |
民族名稱 |
|
PID-23 |
ST |
Birth Place |
出生地 |
如:浙江省 |
PID-26 |
CE |
Citizenship |
職業 |
如:0-71^醫生 |
PID-26-1 |
ST |
Identifier |
職業代碼 |
|
PID-26-2 |
ST |
Text |
職業名稱 |
|
PID-28 |
CE |
Nationality |
國籍 |
如:1010^中國 |
PID-28-1 |
ST |
Identifier |
國籍ID |
|
PID-28-2 |
ST |
Text |
國籍名稱 |
|
PID-30 |
ID |
Patient Death Indicator |
死胎標誌 |
默認是0/空,1-死胎 |
PID-32 |
IS |
Identity Reliability Code |
黑名單病人 |
默認是0/空 |
5.HL7 消息結構
HL7 標準包含256個事件、116個消息類型、139個段、55種數據類型、408個數據字典,涉及79種編碼系統。
在 HL7 中,有四個最基本的術語概念:
- 觸發事件(trigger events):當現實世界中發生的事件產生了系統間數據流動的需求,則稱其爲觸發事件。也可以理解爲一個數據請求
- 消息(message):它是系統間傳輸數據的最小單位,由一組有規定次序的段組成。每個消息都是用一個消息類型來表示其用途。
- 段(segment):它是數據字段的一個邏輯組合。每個段都用一個唯一的三字符代碼所標誌,這個代碼稱作段標誌。
- 字段(field):它是一個字符串,是段的最小組成單位。
在 HL7 中,消息(Message)是數據在系統之間交換的基本單元,每條消息都有各自的消息類型,消息類型用於定義消息目的,包含了觸發事件。一個消息由多個段(Segment)組成,每一個段都有相應的名稱,用於界定其內容或者功能。
一個段又由多個字段(Field)組成。一個消息中的第一個段總是消息頭段(Message head segment),它指明瞭發送和接收的程序名、消息類型、以及一個唯 一的消息ID號碼等,接下去段的構成由消息的類型決定。
一個字段又有可能由多個組件(Component)組成。有些消息可進一步由事件碼(event code)細分。
- 每個消息會包含多個段,如上述代碼,表示一個消息,每個段之間通過分割回車
- 每個段又會包含多個字段,消息頭段定義了段的類型,比如 MSH 表示這個段是消息頭,段中又會包含多個字段
- 每個字段使用 | 分隔,如果對應的字段沒有數據也不能省略 | ,這是因爲每個字段在段中都有一個序號(SEQ),每個段有多少個字段、各個字段的序號和含義等都是在 HL7 協議中規定好的!
- 每個字段會包含多個組件,字段中不同的組件使用 ^ 分隔,比如 2302^BloodType
- 每個組件又可以包含多個子組件,子組件之間用 & 分隔,比如 ICU&Bed5&3232241659&0&0 (包含5個子組件)
6.HL7數據類型
7.HL7 message type消息類型
1. ADT admit disCharge transfer 入院、出院、轉院 2. ACK acknowledgement message 應答消息 3. BAR biling account record 賬單賬戶記錄 4. DFT detailed financial transactions 詳細的金融交易 5. MDM Medical document management 醫療文件管理 6. ORM order entry 訂單錄入 7. ORU Observation result (unsolicited) 觀察結果 非請求觀察 8. RDS pharmacy/treatment dispense 藥房/治療 配藥 9. RDE pharmacy/treatment encoded order 藥房/治療 編碼順序 10. SIU schedlued information unsolicited 調度信息 非請求觀察