薛方
(西安醫(yī)學(xué)院 衛(wèi)生管理系 計(jì)算機(jī)教研室,陜西 西安 710021)
區(qū)域醫(yī)療信息化是目前國內(nèi)醫(yī)療界比較關(guān)注的話題。然而目前全國范圍內(nèi)進(jìn)行的區(qū)域衛(wèi)生信息平臺(tái)建設(shè)中“各異構(gòu)系統(tǒng)的存儲(chǔ)和表達(dá)方式相差很大”硬件環(huán)境參差不齊“信息很難在系統(tǒng)之間直接交換”嚴(yán)重制約信息的充分共享[1]。因此,有效地在各異構(gòu)系統(tǒng)間進(jìn)行數(shù)據(jù)交互是區(qū)域醫(yī)療信息化首要解決的問題。各異構(gòu)系統(tǒng)要進(jìn)行有效交互需要共同的信息標(biāo)準(zhǔn),HL7標(biāo)準(zhǔn)就是為了滿足這樣的需求而制定的,并且在歐美等發(fā)達(dá)國家得到了廣泛應(yīng)用[2]。
HL7是由美國國家標(biāo)準(zhǔn)(NASI)批準(zhǔn)頒布實(shí)施的醫(yī)療衛(wèi)生機(jī)構(gòu)及醫(yī)用儀器、設(shè)備數(shù)據(jù)信息傳輸標(biāo)準(zhǔn),也指美國國家標(biāo)準(zhǔn)局(NASI)授權(quán)的從事醫(yī)療服務(wù)信息傳輸協(xié)議及標(biāo)準(zhǔn)研發(fā)的機(jī)構(gòu)[3]。自1990年v2.1版本正式頒布以來,HL7對醫(yī)療機(jī)構(gòu)、衛(wèi)生機(jī)構(gòu)的信息傳輸影響日益廣泛。目前,美國的政府部門、醫(yī)療機(jī)構(gòu)、保險(xiǎn)公司、醫(yī)療設(shè)備制造商等均采用此標(biāo)準(zhǔn)。隨著信息技術(shù)的發(fā)展和網(wǎng)絡(luò)技術(shù)的應(yīng)用,HL7的應(yīng)用已經(jīng)發(fā)展到澳大利亞、加拿大、德國、日本、中國等國家。
HL7是標(biāo)準(zhǔn)化的衛(wèi)生信息傳輸協(xié)議,是不同的醫(yī)療應(yīng)用領(lǐng)域間信息傳輸?shù)膮f(xié)議,處于OSI模型的第七層。HL7可以應(yīng)用于多種操作系統(tǒng)和硬件環(huán)境,也可以進(jìn)行多應(yīng)用系統(tǒng)間的文件和數(shù)據(jù)交換,它提供了病人信息管理、病案管理、醫(yī)院管理等各項(xiàng)服務(wù)系統(tǒng)間的電子資料的交換標(biāo)準(zhǔn)。HL7預(yù)留了供不同使用者使用的特殊的表、編碼定義、和消息段,具有信息交換(Message interchange)、軟件組織(Software components)、文檔與記錄架構(gòu)(Document and record architecture)、醫(yī)學(xué)邏輯(Medical Logic)等 4大功能。
自HL7V1.0版本發(fā)布后,相繼發(fā)布了V2.0、V2.1、V2.2、V2.3、V2.3.1。為了適應(yīng)現(xiàn)代分析技術(shù)的發(fā)展和應(yīng)用,解決HL7之前版本在應(yīng)用中面臨的廣泛性和復(fù)雜性的挑戰(zhàn),HL7組織研究并發(fā)布了更嚴(yán)格的V3.0標(biāo)準(zhǔn)。V3.0標(biāo)準(zhǔn)在開發(fā)方法上已經(jīng)完全不同于以前版本,甚至完全可以認(rèn)為這本身就是一個(gè)全新的標(biāo)準(zhǔn)。
如圖1所示,本系統(tǒng)采用WebService和SOAP協(xié)議建立異構(gòu)數(shù)據(jù)源交互模型。該模型采用XML作為數(shù)據(jù)描述語言傳輸以HL7 V3標(biāo)準(zhǔn)建立的共享數(shù)據(jù)信息。由于XML具有自描述性,語言的標(biāo)志或?qū)傩钥梢苑从硵?shù)據(jù)的性質(zhì),因此這些數(shù)據(jù)可被不同程序用于不同用途,如數(shù)據(jù)提取和建立索引等[4]。
圖1 基于HL7 V3的異構(gòu)醫(yī)療數(shù)據(jù)交互模型Fig.1 Heterogeneous medical message interaction model
轉(zhuǎn)換時(shí),首先通過數(shù)據(jù)交換中間件把各種異構(gòu)的輸入/輸出數(shù)據(jù)按照描述邏輯轉(zhuǎn)換為統(tǒng)一規(guī)則的XML文件;然后通過SOAP傳輸協(xié)議在各異構(gòu)系統(tǒng)之間的Internet網(wǎng)絡(luò)之間進(jìn)行傳輸;最后再通過數(shù)據(jù)交換中間件完成數(shù)據(jù)轉(zhuǎn)換。模型的實(shí)現(xiàn)采用Web Service技術(shù)進(jìn)行服務(wù)組件和應(yīng)用系統(tǒng)的包裝,將請求數(shù)據(jù)的過程和請求結(jié)果展示給用戶的過程看作一種服務(wù),通過請求服務(wù)和調(diào)用原醫(yī)療信息系統(tǒng)數(shù)據(jù)的方式進(jìn)行數(shù)據(jù)信息的交換和共享。例如:A、C為兩個(gè)異構(gòu)數(shù)據(jù)類型的醫(yī)療系統(tǒng),當(dāng)A系統(tǒng)需要調(diào)取C系統(tǒng)的數(shù)據(jù)時(shí),A先向C發(fā)出HTTP請求XML數(shù)據(jù)傳輸,C在安全訪問模塊的保護(hù)下從自身HIS數(shù)據(jù)庫中調(diào)取數(shù)據(jù),通過基于HL7的數(shù)據(jù)交換中間件的轉(zhuǎn)換,把信息表達(dá)成符合標(biāo)準(zhǔn)的XML文件,通過網(wǎng)絡(luò)發(fā)送到A端。A端采用DOM模型來完成XML格式的數(shù)據(jù)解析以達(dá)到異構(gòu)數(shù)據(jù)交互的目的。
在HL7數(shù)據(jù)交互中,消息(Message)是數(shù)據(jù)在系統(tǒng)之間交互的基本單元,如圖2所示。一個(gè)消息由多個(gè)段(Segment)組成,一個(gè)段由多個(gè)數(shù)據(jù)字段(DataField)組成,一個(gè)數(shù)據(jù)字段由多個(gè)組件組成。
圖2 HL7消息組成圖Fig.2 Message composition diagram
HL7 V3版本中,為了支持應(yīng)用軟件之間消息的傳輸和確認(rèn),所有HL7消息都被封裝在控制行為包中,而控制行為包又被封裝在傳輸包中。其中,控制行為包決定了消息的處理方式,傳輸包控制消息的傳輸方式以及消息的確認(rèn)。
HL7V3.0是基于XML語言開發(fā)的版本,采用文檔(Document)方式進(jìn)行數(shù)據(jù)傳遞[5]。RIM模型(Reference Information Model)是對所有醫(yī)療活動(dòng)產(chǎn)生信息的最高程度抽象,基于該模型,系統(tǒng)能夠?yàn)獒t(yī)療活動(dòng)中產(chǎn)生的各種信息以及信息之間的關(guān)系提供一致性的組織框架[6]。HL7 V3消息轉(zhuǎn)換過程如圖3所示,在HIS原始數(shù)據(jù)庫的基礎(chǔ)上獲取類和屬性信息,建立RIM模型,逐步細(xì)化RIM模型,生成DMIM模型(Domain Message Information Model)和 RMIM 模型(Refind Message Information Model)。為了滿足XML格式表述信息的需要,將生成的RMIM模型借助HL7工具轉(zhuǎn)換為“層次關(guān)系”形式的HMD文件,然后生成XML文檔將信息發(fā)送給對方。對方接受到XML文檔表示的信息后逐步還原、解封已得到所需內(nèi)容。
圖3 HL7 V3消息轉(zhuǎn)換步驟圖Fig.3 Conversion steps of HL7 V3
如圖4所示,在整個(gè)數(shù)據(jù)交互模型中,基于HL7的數(shù)據(jù)交互中間件是最核心的部分。在HL7中間件的工作下完成數(shù)據(jù)的轉(zhuǎn)換和逆轉(zhuǎn)換,實(shí)現(xiàn)數(shù)據(jù)交互。
圖4 基于HL7 V3的醫(yī)療數(shù)據(jù)交互系統(tǒng)框架圖Fig.4 The framework of heterogeneous medical message interaction based on HL7 V3
HL7中間件包括3個(gè)最主要的功能模塊:數(shù)據(jù)訪問模塊、消息轉(zhuǎn)換模塊和訪問安全模塊。
1)數(shù)據(jù)訪問模塊:通過HL7 API接口讀取醫(yī)院信息系統(tǒng)中的電子病歷信息,該信息格式為符合HL7 V3標(biāo)準(zhǔn)的信息格式;
2)消息轉(zhuǎn)換模塊:以 HL7 V3為數(shù)據(jù)標(biāo)準(zhǔn),構(gòu)造、解析HL7消息,實(shí)現(xiàn)字符串格式數(shù)據(jù)與XML格式之間的相互轉(zhuǎn)換。發(fā)送方將原數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)構(gòu)造為HL7 V3消息,接收方對收到的HL7 V3消息進(jìn)行解析。構(gòu)造HL7 V3消息時(shí)逐層封裝,由原始消息外層封裝控制行為信息和傳輸信息并轉(zhuǎn)換為XML文檔,解析消息時(shí),逐層去除傳輸包和控制行為包,還原為消息的原始形式;
3)數(shù)據(jù)訪問模塊:采用基于Web服務(wù)的消息安全策略(WS-Security),確保XML格式的共享數(shù)據(jù)能夠安全可靠地從服務(wù)提供方到服務(wù)請求方,一方面驗(yàn)證數(shù)據(jù)請求者的身份,另一方面能夠?qū)W(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)進(jìn)行加密,確保數(shù)據(jù)傳遞的安全性。
異構(gòu)醫(yī)療數(shù)據(jù)交互是區(qū)域衛(wèi)生信息化進(jìn)程中首要解決的重要問題,而數(shù)據(jù)交互是基于一定標(biāo)準(zhǔn)進(jìn)行的。HL7 V3較之前版本的信息表述更加清晰、準(zhǔn)確、易于理解。本文在HL7 V3的基礎(chǔ)上設(shè)計(jì)一個(gè)基于XML的醫(yī)療信息交互系統(tǒng),該系統(tǒng)在對已有HIS不做改動(dòng)的前提下,采用外掛中間件的模式,在系統(tǒng)間高效、安全的處理、傳輸基于XML格式的HL7消息,解決異構(gòu)醫(yī)療系統(tǒng)間數(shù)據(jù)交互的問題。
[1]葉輝.基于HL7的統(tǒng)一醫(yī)療標(biāo)準(zhǔn)化信息云平臺(tái)架構(gòu)的研究[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(9):8-10.YE Hui.Research on HL7 unified medical information standardization based on cloud platform architecture[J].Computer CD Software and Application,2012(9):8-10.
[2]呂曉琪.基于MIF文件實(shí)現(xiàn)HL7 V3消息解析器 [J].重慶醫(yī)學(xué),2013(2):526-528.LV Xiao-qi,Implementation of HL7 V3 message parser based on MIF file[J].Chongqing Medicine,2013(2):526-528.
[3]Health Level Seven International[EB/OL].[2013-08-20].http://www.hl7.org.
[4]蘭圣偉,李立宏.HL7 V3開發(fā)系統(tǒng)和我國醫(yī)療信息標(biāo)準(zhǔn)化建設(shè)[J].中國醫(yī)院管理,2006,26(4):40-42.LAN Sheng-wei,LI Li-hong.HL7 V3 development methodology and the development of chinese healthcare information exchange standard[J].Chinese Hospital Management,2006,26(4):40-42.
[5]吳壽剛,王小華.基于HL7的醫(yī)療信息系統(tǒng)集成應(yīng)用[J].中華醫(yī)學(xué)圖書情報(bào)雜志,2014(1):60-64.WU Shou-gang,WANG Xiao-hua,HL7-based application of integrated medical information system[J].Chinese Journal of Medical Library and Information Science,2014(1):60-64.
[6]岳銘,譚紅霞,經(jīng)春林.基于HL7 V3的檢驗(yàn)申請消息交互接口設(shè)計(jì)[J].醫(yī)學(xué)信息學(xué)雜志,2013(34):20-23.YUE Ming,TAN Hong-xia,JING Chun-lin.Interface design for laboratory application message interaction based on HL7 V3[J].Medical Informatien,2013(34):20-33.