HL7消息通過各種TCP/IP傳輸發送,其中一些包括:
- 下層協議(LLP)
- 文件傳輸協議(FTP)
- 簡單對象訪問協議(SOAP)
- 簡單郵件傳輸協議(SMTP)
盡管HL7可以使用多種傳輸協議進行數據傳輸,但用於實時點對點接口的最常見傳輸方法是LLP;對於需要批量處理HL7的系統,通常使用FTP。
基礎知識:基於TCP/IP的通信
在研究常見的HL7傳輸方法之前,了解基於TCP/IP的通信的基礎知識對於實現HL7接口時的客戶端和服務器角色非常重要。
實施HL7接口時,您的接口將充當Client或Server。
TCP/IP服務器
TCP/IP服務器是一個偵聽TCP/IP端口號的程序,該端口號接收來自客戶端的連接。例如,Web服務器是偵聽端口號80的特殊類型的TCP/IP服務器。TCP/IP服務器可以連接許多不同的TCP/IP客戶端。
您可能希望在其中實施HL7服務器的一個典型示例是,當您希望接收ADT(入院/出院/轉院)申請以提取例如患者人口統計信息時。通常,您會將接口編寫為TCP/IP服務器。
然后,您將偵聽可以與對方協商的端口號,並且向您發送ADT消息的設備將連接到您的服務器。這意味着您需要將正在監聽的主機和端口號提供給ADT feed 的管理員,以便他們知道如何與您連接。
TCP/IP客戶端
TCP/IP客戶端是連接到TCP/IP服務器的程序。例如,Netscape和Internet Explorer是連接到Web服務器的TCP/IP客戶端程序。TCP/IP客戶端必須同時指定主機地址或IP地址以及要連接的端口號。
當您要將實驗室結果發送到HIS(醫院信息系統)時,可能要在其中實現HL7客戶端的一個典型示例。HIS系統的管理員需要向您提供其HL7服務器的主機或IP地址以及正在偵聽的端口號。
確認消息
最后一個使許多人感到困惑的點是應如何發送HL7確認消息。重要的是要理解,當建立TCP/IP連接時,它是雙向通訊通道。
當客戶端與服務器建立連接時,客戶端可以在其中一個通道上將數據發送到服務器,而服務器可以在另一個通道上將數據發送回客戶端。后一個通道應用於發送ACK消息。
有時有必要為產品的HL7接口同時實現客戶端和服務器組件。
如果您可以選擇的話,請充分利用可以使用第二個通信通道發送回ACK消息,因為這是一種更加簡潔的設計。
參考資料:
LLP-較低層協議
低層協議(LLP)有時被稱為最小低層協議(MLLP),是用於通過TCP/IP傳送HL7消息的絕對標准。
由於TCP/IP是字節的連續流,因此需要包裝協議才能使通信代碼能夠識別每個消息的開頭和結尾。LLP是最常見的HL7傳輸機制,用於通過TCP/IP通過局域網(例如醫院中的TCP/IP)發送未加密的HL7。
使用LLP時,必須使用標頭和尾標包裝HL7消息,以表示消息的開頭和結尾。這些標頭和尾標通常是不可打印的字符,不會在HL7消息的實際內容中顯示。
下表描述了通過LLP發送的HL7消息的典型結構。它包含四個部分:
標頭 | HL7訊息 | 尾標 | 回車 |
垂直制表符(0x0B) | HL7消息使用頭標、尾標和緊隨其后是回車進行包裝: |
字段分隔符(0x1C) | 回車(0x0D) |
此外,還必須確保每個段都以0x0D(回車)字符結尾,這是標准要求的;但是通常HL7日志數據可以通過FTP或電子郵件接收,這時段分隔符已轉換為0x0A字符。
有多種方法可以保護通過LLP的數據:
- VPN隧道:虛擬專用網絡(VPN)是一種專用網絡,使用Internet將遠程站點鏈接在一起,同時使用安全加密技術來確保未經授權的用戶無法讀取它。這是解決HL7加密問題的一種非常流行的方法,尤其是在當今的大環境下,因為許多常見的雲平台都將VPN連接作為其平台產品的一部分提供。
- SSH隧道連接:這與使用VPN連接的概念相似,在VPN連接中,SSH服務器用於在系統之間安全的建立隧道連接LLP通信。每個Linux發行版都有一個內置的SSH服務器,也有Windows的選項,例如VShell。
- TLS/SSL: HL7消息也可以通過傳輸層安全性(TLS)或安全套接字層(SSL)加密協議進行傳輸,以確保對消息進行身份驗證和加密。
HLLP-混合下層協議
混合低層協議(HLLP)是更廣泛地使用低層協議的變體。與LLP一樣,HLLP使用TCP/IP作為其傳輸方式,但通過在消息末尾使用校驗和來進行錯誤檢測和驗證。
校驗和用於驗證數據有沒有被破壞。通常為發送應用程序發出的每個數據塊計算校驗和,然后在接收應用程序中驗證其准確性。
HLLP中使用的校驗和是非標准的,這意味着它們可能因實現而異。
HLLP中使用的一種常見的校驗和類型稱為BCC(塊字符檢查),它是一個塊中所有字符的總和。BCC校驗和被視為弱校驗和,因為可能很容易找到生成相同塊校驗和的不同塊。盡管BCC校驗和相對容易實現,但它可能不符合大多數公司的通信標准。
實際上,大多數供應商選擇使用基於LLP的TCP/IP,而不是HLLP。LLP是一種非常簡單的協議,可用於代替HLLP,因為TCP/IP通道可提供HL7消息無錯誤傳遞所需的所有服務。這包括:
1.連接握手
兩個系統啟動通信的過程,開始和結束監聽用於開始/停止數據傳輸。
2.全雙工數據傳輸
系統同時發送和雙向接收數據的過程。
3.錯誤檢測和重傳
傳輸層檢測傳輸失敗的段並根據需要重新傳輸這些段的過程。
4.流量控制
TCP通過使用ACK和NACK來管理系統之間消息流的過程。通過在HL7應用程序中使用ACK / NACK和其他內置機制,您可以管理數據流以確保有效且可靠地傳輸消息。
5.連接終止
每個系統通過握手獨立結束連接的過程。
在大多數情況下,只要兩個通信系統都使用可靠的開放系統互連(OSI)傳輸層,就不需要HLLP,因為底層的OSI已經驗證了消息的傳輸以及消息的完整性。
HLLP僅用於不可靠的傳輸(例如,通過串行電纜傳輸消息),大多數供應商認為不需要。
使用TCP/ IP,數據和標頭上的校驗和已經是該協議固有的。這意味着該協議能檢測到校驗和錯誤,並在必要時請求重新傳輸數據。這意味着與HLLP相關的輔助校驗和不會進一步保證數據傳輸,而只會增加傳輸開銷。
參考資料:
FTP-文件傳輸協議
文件傳輸協議(FTP)是應用程序層TCP/IP協議,可在本地和遠程文件系統之間移動文件,反之亦然。
FTP並行啟動兩個TCP連接以傳輸文件、控制連接、用於發送與服務器交互(例如,進行身份驗證)、啟動文件操作(例如,下載或重命名文件)的命令、數據連接以發送文件。
發送包含電子受保護的健康信息(ePHI)的HL7消息時,使用安全協議發送文件是必須的。
有兩種方法可以使用FTP提供HL7消息的安全傳輸:
- SFTP(SSH文件傳輸協議)是SSH協議的擴展,可為任何數據流提供安全的文件傳輸、訪問和管理功能。
- FTPS(FTP安全)提供對TLS(傳輸層安全性)和SSL(安全套接字層)協議的支持。
SFTP和FTPS通常被認為是FTP的安全“擴展”,但事實並非如此,這兩個協議實際上是不兼容的。
HL7批處理涉及通過FTP協議或作為電子郵件附件發送文件。
根據HL7標准,任何HL7消息都必須以MSH段開頭,但是在發送一批HL7消息時,規則會更改。
批處理包含多個HL7消息(每個消息均以其起始MSH段標記),如以下示例HL7批處理文件中所示,批處理標識由批處理'標頭FSH和BSH'以及批處理'尾部FTS和BTS'本身進行標識:
FHS|^~\&|MESA|XYZ_HOSPITAL|IHIE|IHIE|20120703094005||||||
BHS|^~\&|MESA|XYZ_HOSPITAL|IHIE|IHIE|20120703094005||||||
MSH|^~\&|MESA_ADT|XYZ_ADMITTING|iFW|XYZ_HOSPITAL|||ADT^A04|101102|P|2.3.1||||||||
EVN||200004211000||||200004210950
PID|||583020^^^ADT1||WHITE^CHARLES||19980704|M||AI|7616 STANFORD AVE^^ST. LOUIS^MO^63130|||||||20-98-1701||||||||||||
PV1||E||||||5101^NELL^FREDERICK^P^^DR|||||||||||V1002^^^ADT1|||||||||||||||||||||||||200004210950||||||||
MSH|^~\&|MESA_OP|XYZ_HOSPITAL|iFW|XYZ_RADIOLOGY|||ORM^O01|101104|P|2.3.1||||||||
PID|||583020^^^ADT1||WHITE^CHARLES||19980704|M||AI|7616 STANFORD AVE^^ST. LOUIS^MO^63130|||||||20-98-1701||||||||||||
PV1||E|$PATIENT_LOCATION$||||$ATTENDING_DOCTOR$|5101^NELL^FREDERICK^P^^DR|||||||||||V1002^^^ADT1|||||||||||||||||||||||||200004210950||||||||
ORC|NW|A101Z^MESA_ORDPLC|||||1^once^^^^S||200004210955|^ROSEWOOD^RANDOLPH||7101^ESTRADA^JAIME^P^^DR||3145551212|200004210955||922229-10^IHE-RAD^IHE-CODE-231||
OBR|1|A101Z^MESA_ORDPLC||P1^Procedure 1^ERL_MESA|||||||||xxx||Radiology^^^^R|7101^ESTRADA^JAIME^P^^DR|||||||||||1^once^^^^S|||WALK|Project Manager||||||||||A||
MSH|^~\&|MESA_ADT|XYZ_ADMITTING|iFW|XYZ_HOSPITAL|||ADT^A06|101126|P|2.3.1||||||||
EVN||200004211000||||200004210950
PID|||583020^^^ADT1||WHITE^CHARLES||19980704|M||AI|7616 STANFORD AVE^^ST. LOUIS^MO^63130|||||||20-98-1701||||||||||||
PV1||I|1E^111^1^XYZ_HOSPITAL|||$PRIOR_LOCATION$|1234^WEAVER^TIMOTHY^P^^DR|5101^NELL^FREDERICK^P^^DR|||||||||||V1002^^^ADT1|||||||||||||||||||||||||200004210950||||||||
BTS|3|Batch Message Count
FTS|1|Have a Nice Day
參考資料: