專利名稱:一種通過(guò)映射生成hl7消息的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種通過(guò)映射將自定義格式的消息轉(zhuǎn)換成HL7標(biāo)準(zhǔn)格式消息的方法, 便于醫(yī)療行業(yè)現(xiàn)存異構(gòu)系統(tǒng)的集成,統(tǒng)一消息格式,共享數(shù)據(jù)。
背景技術(shù):
構(gòu)建衛(wèi)生信息平臺(tái),目前通用的方法是集成醫(yī)療行業(yè)現(xiàn)存異構(gòu)信息系統(tǒng)。其中最主要的問題就是統(tǒng)一異構(gòu)系統(tǒng)之間數(shù)據(jù)交換的格式。采用國(guó)際通用的醫(yī)療信息標(biāo)準(zhǔn)HL7,是提高國(guó)內(nèi)信息化水平的必經(jīng)之路。HL7 (Health Level 7),即標(biāo)準(zhǔn)化的衛(wèi)生信息傳輸協(xié)議,是醫(yī)療領(lǐng)域不同應(yīng)用之間電子傳輸協(xié)議,其中“7”表示該協(xié)議位于OSI (Open System Interconnect,開放式系統(tǒng)互聯(lián))模型的第七層應(yīng)用層。HL7制定了醫(yī)療數(shù)據(jù)信息傳輸協(xié)議和標(biāo)準(zhǔn),規(guī)范了臨床醫(yī)學(xué)和管理信息格式,降低了醫(yī)療信息系統(tǒng)互聯(lián)的成本,提高了醫(yī)療信息系統(tǒng)之間數(shù)據(jù)信息共享的程度。HL7通訊協(xié)議中,消息(Message)是數(shù)據(jù)在系統(tǒng)之間交換的基本單位,每條消息都有各自的消息類型(以HL7版本2. 4為例,消息類型有112種)。一個(gè)消息由多個(gè)段(Segment) 組成,每一個(gè)段都有相應(yīng)的名稱,用于界定其內(nèi)容或功能。每個(gè)消息段又由若干個(gè)數(shù)據(jù)字段 (Field)組成,同時(shí),數(shù)據(jù)字段又由一個(gè)或多個(gè)組件(Component)組成。這種層級(jí)結(jié)構(gòu)的消息能夠通過(guò)XML進(jìn)行有效的刻畫。XML (Extensible Markup Language),即可擴(kuò)展標(biāo)記語(yǔ)言,是 SGML (Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言)的一種。XML簡(jiǎn)單易用,是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。XML具有跨平臺(tái)的特性,是一種依賴于內(nèi)容的技術(shù),這使得XML 為越來(lái)越多的應(yīng)用程序所支持,成為了應(yīng)用程序之間數(shù)據(jù)交換的唯一公共語(yǔ)言。HL7標(biāo)準(zhǔn)消息完全支持XML,并且有一整套完備的規(guī)范規(guī)定了 XML標(biāo)簽的命名,數(shù)據(jù)的類型,數(shù)據(jù)的值域等。醫(yī)療機(jī)構(gòu)中異構(gòu)信息系統(tǒng)用XML存儲(chǔ)的數(shù)據(jù)可以通過(guò)映射的方法,實(shí)現(xiàn)和HL7標(biāo)準(zhǔn)消息的轉(zhuǎn)換。這種映射方法是通過(guò)GEF提供的可視化界面,利用簡(jiǎn)單的連線實(shí)現(xiàn)的。GEF (Graphical Editor Framework),即圖形化編輯框架,它給用戶提供了圖形化編輯模型的功能。GEF是具有標(biāo)準(zhǔn)MVCXModel—View — Control,模型一視圖一控制器)結(jié)構(gòu)的圖形編輯框架。Model由我們根據(jù)業(yè)務(wù)的需求來(lái)設(shè)計(jì),它提供了一種模型改變通知機(jī)制, 用來(lái)把Model的變化告訴Control。Control在MVC結(jié)構(gòu)里面是Model和View之間的橋梁, 是整個(gè)GEF的核心。它不僅監(jiān)聽模型的變化,當(dāng)用戶編輯視圖的時(shí)候,還要把編輯結(jié)果放映到模型上。GEF提供了兩種View,分別是圖形(GraphicalViewer)和樹狀(TreeViewer)。 View主要是把Model以圖形化的方式表現(xiàn)給用戶。目前,國(guó)內(nèi)將異構(gòu)信息系統(tǒng)數(shù)據(jù)格式轉(zhuǎn)換成國(guó)際標(biāo)準(zhǔn)的需求越來(lái)越高,但是一種通用的便捷的方法尚未形成。本發(fā)明提供的方法,能有效地解決這一問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的不足,提供一種通過(guò)映射生成HL7消息的方法,該方法實(shí)現(xiàn)了以XML格式存儲(chǔ)的自定義消息轉(zhuǎn)換成HL7標(biāo)準(zhǔn)格式的消息。本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的一種通過(guò)映射生成HL7消息的方法,包括以下步驟
第一,讀取源XML文件(自定義格式的XML文件稱之為源XML文件)模板和目的XML文件(HL7消息標(biāo)準(zhǔn)XML文件稱之為目的XML文件)模板;
第二,解析源XML文件模板和目的XML文件模板,分別生成源消息樹和目的消息樹(消息樹,即XML文件所對(duì)應(yīng)的樹形結(jié)構(gòu));
第三,源消息樹和目的消息樹進(jìn)行映射,生成XSL (Extensible Stylesheet Language,擴(kuò)展樣式表語(yǔ)言)文件;
第四,根據(jù)第三步生成的XSL文件,讀取源XML文件,自動(dòng)生成相應(yīng)的HL7標(biāo)準(zhǔn)格式的消息。需要注意的是第一步和第四步分別是讀取源XML文件模板和源XML文件,兩者的區(qū)別是,源XML文件模板是源XML文件的抽象,不包含具體的數(shù)據(jù)。本發(fā)明的有益效果是
I、簡(jiǎn)單易用通過(guò)簡(jiǎn)單的連線實(shí)現(xiàn)節(jié)點(diǎn)之間的映射,并自動(dòng)生成記錄了所有映射的 XSL文檔。2、直觀基于GEF的可視化操作界面,直接呈現(xiàn)出了用戶所需進(jìn)行的所有映射。3、完備支持的HL7標(biāo)準(zhǔn)消息包含了所有的2. X (2. 1,2. 2,2. 3,2. 4,2. 5等)版本, 以及最新的3. 0版本。4、反向映射可以把自定義消息轉(zhuǎn)換成HL7標(biāo)準(zhǔn)消息,同樣也可以將HL7標(biāo)準(zhǔn)消息轉(zhuǎn)換成自定義消息,只需要在源消息樹里面導(dǎo)入HL7消息,目的消息樹里面導(dǎo)入自定義消息的模板即可。
圖I為解析XML文件模板,生成消息樹的流程圖2中,(a)為某XML文件模板,(b)為其所對(duì)應(yīng)的消息樹;
圖3為通過(guò)映射生成HL7標(biāo)準(zhǔn)消息的整體過(guò)程圖。
具體實(shí)施例方式下面結(jié)合附圖詳細(xì)描述本發(fā)明。本發(fā)明通過(guò)映射生成HL7消息的方法,包括以下步驟
第一,讀取源XML文件(自定義格式的XML文件稱之為源XML文件)模板和目的XML文件(HL7消息標(biāo)準(zhǔn)XML文件稱之為目的XML文件)模板。源XML文件模板和目的XML文件模板是不包含具體數(shù)據(jù)的XML文件,本方法通過(guò) DOM (Document Object Module,文檔對(duì)象模型)來(lái)讀取并解析XML文檔。第二,解析源XML文件模板和目的XML文件模板,分別生成源消息樹和目的消息樹。源消息樹和目的消息樹的生成過(guò)程是一樣,如圖I所示,循環(huán)遍歷XML文件中的元素Element,每個(gè)Element將作為根節(jié)點(diǎn)生成一棵樹,該Element的屬性便作為子節(jié)點(diǎn)加入到根節(jié)點(diǎn)下面,生成子樹。不同的Element生成的樹作為兄弟樹,共同構(gòu)成消息樹。圖2顯示了某XML文件模板及其所對(duì)應(yīng)的消息樹。在消息樹中,Element節(jié)點(diǎn)將用“e”來(lái)標(biāo)示,屬性節(jié)點(diǎn)將用“a”來(lái)標(biāo)示。本方法能將不同結(jié)構(gòu)的XML文件轉(zhuǎn)換成HL7標(biāo)準(zhǔn)格式的XML文件。源XML文件模板不唯一,所生成的源消息樹也不唯一。目的XML文件模板,即HL7標(biāo)準(zhǔn)格式的XML是唯一的,所以相應(yīng)的消息樹也是唯一的。由于HL7標(biāo)準(zhǔn)消息由若干個(gè)消息段組成,所以目的XML 文件模板的最小單位就是HL7標(biāo)準(zhǔn)消息段的XML文件。通過(guò)組合不同的消息段,即讀取并解析不同的消息段的XML文件,即可生成用戶所需的目的消息樹。讀取、解析若干個(gè)XML文件并生成消息樹的實(shí)現(xiàn)過(guò)程和圖一所示的過(guò)程相差無(wú)幾,只需將若干次解析的結(jié)果合并生成消息樹即可。第三,源消息樹和目的消息樹進(jìn)行映射,生成XSL (Extensible Stylesheet Language,擴(kuò)展樣式表語(yǔ)言)文件。由XML文件生成的消息樹,通過(guò)GEF提供的TreeViewer,能直觀地以圖形化界面展示出來(lái)。其中,消息樹的節(jié)點(diǎn)就是GEF中的模型Mode I。映射的過(guò)程就是連線的過(guò)程,即將源消息樹節(jié)點(diǎn)和目的消息樹的節(jié)點(diǎn)關(guān)聯(lián)起來(lái)。 關(guān)聯(lián)的方式有四種第一種,value-of,即直接賦值,將源消息樹節(jié)點(diǎn)的值直接賦值給目的消息樹的節(jié)點(diǎn);第二種,for-each,即循環(huán)生成賦值,表示源消息樹的某個(gè)節(jié)點(diǎn)可能出現(xiàn)若干次,如果出現(xiàn)若干次,則相關(guān)聯(lián)的目的消息樹的節(jié)點(diǎn)也出現(xiàn)與之相同的次數(shù),并且一一對(duì)應(yīng)賦值;第三種,choose,即選擇賦值(也稱之為有條件賦值),表示源消息樹節(jié)點(diǎn)的值在符合一定條件情況下才賦值給目的消息樹;第四種,string,即常量賦值,賦予相應(yīng)的目的節(jié)點(diǎn)一個(gè)常量值。四種關(guān)聯(lián)方式對(duì)應(yīng)了四種連線,這四種連線都是繼承并擴(kuò)展了 GEF提供的連線。GEF中的監(jiān)聽器Control將監(jiān)聽模型Model的變化,每次連線都將改變了源消息樹節(jié)點(diǎn)和目的消息樹節(jié)點(diǎn)的相關(guān)信息。這些信息的變化將觸發(fā)模型Model的監(jiān)聽器Control。 源消息樹的節(jié)點(diǎn)將記錄連線終點(diǎn)(相關(guān)聯(lián)的目的消息樹的節(jié)點(diǎn))的名稱以及連線類型,同樣的,目的消息樹將記錄連線起點(diǎn)(相關(guān)聯(lián)的源消息樹的節(jié)點(diǎn))的名稱和連線類型。連線結(jié)束后,遍歷目的消息樹節(jié)點(diǎn)所對(duì)應(yīng)的模型Model,根據(jù)記錄的信息生成XSL文檔。XSL文檔將記錄所有的映射規(guī)則,即所有的連線,包括連線類型,以及連線的起點(diǎn)和終點(diǎn)。第四,根據(jù)第三步生成的XSL文件,讀取源XML文件,自動(dòng)生成相應(yīng)的HL7標(biāo)準(zhǔn)格式的消息。根據(jù)第三步生成的XSL文件,輸入源XML文件,調(diào)用JAXP (Java API for XML Processing,即Java程序設(shè)計(jì)語(yǔ)言中用于處理XML文檔的方法集合)提供的transform方法,就能自動(dòng)生成用戶所需的HL7標(biāo)準(zhǔn)格式的XML文件。
權(quán)利要求
1.一種通過(guò)映射生成HL7消息的方法,其特征在于,該方法包括以下步驟(1)讀取源XML文件模板和目的XML文件模板;(2)解析源XML文件模板和目的XML文件模板,分別生成源消息樹和目的消息樹;(3)源消息樹和目的消息樹進(jìn)行映射,生成XSL文件;(4)根據(jù)第三步生成的XSL文件,讀取源XML文件,自動(dòng)生成相應(yīng)的HL7標(biāo)準(zhǔn)格式的消肩、O
2.根據(jù)權(quán)利要求I所述通過(guò)映射生成HL7消息的方法,其特征在于,所述步驟(I)中, 所述源XML文件模板為自定義格式的XML文件模板,目的XML文件模板為HL7消息標(biāo)準(zhǔn)模板;所述源XML文件模板和目的XML文件模板是不包含具體數(shù)據(jù)的XML文件,通過(guò)DOM來(lái)讀取并解析XML文檔。
3.根據(jù)權(quán)利要求I所述通過(guò)映射生成HL7消息的方法,其特征在于,所述步驟(2) 中,所述源消息樹和目的消息樹的生成過(guò)程一樣,具體為循環(huán)遍歷XML文件中的元素 Element,每個(gè)Element將作為根節(jié)點(diǎn)生成一棵樹,該Element的屬性便作為子節(jié)點(diǎn)加入到根節(jié)點(diǎn)下面,生成子樹;不同的Element生成的樹作為兄弟樹,共同構(gòu)成消息樹。
4.根據(jù)權(quán)利要求I所述通過(guò)映射生成HL7消息的方法,其特征在于,所述步驟(3)中, 所述映射的過(guò)程就是連線的過(guò)程,即將源消息樹節(jié)點(diǎn)和目的消息樹的節(jié)點(diǎn)關(guān)聯(lián)起來(lái);關(guān)聯(lián)的方式有四種第一種,value-of,即直接賦值,將源消息樹節(jié)點(diǎn)的值直接賦值給目的消息樹的節(jié)點(diǎn);第二種,for-each,即循環(huán)生成賦值,表示源消息樹的某個(gè)節(jié)點(diǎn)可能出現(xiàn)若干次, 如果出現(xiàn)若干次,則相關(guān)聯(lián)的目的消息樹的節(jié)點(diǎn)也出現(xiàn)與之相同的次數(shù),并且一一對(duì)應(yīng)賦值;第三種,choose,即選擇賦值(也稱之為有條件賦值),表示源消息樹節(jié)點(diǎn)的值在符合一定條件情況下才賦值給目的消息樹;第四種,string,即常量賦值,賦予相應(yīng)的目的節(jié)點(diǎn)一個(gè)常量值;四種關(guān)聯(lián)方式對(duì)應(yīng)了四種連線,這四種連線都是繼承并擴(kuò)展了 GEF提供的連線; GEF中的監(jiān)聽器Contool將監(jiān)聽模型Model的變化,每次連線都將改變了源消息樹節(jié)點(diǎn)和目的消息樹節(jié)點(diǎn)的相關(guān)信息;這些信息的變化將觸發(fā)模型Model的監(jiān)聽器Contool ;源消息樹的節(jié)點(diǎn)將記錄連線終點(diǎn)(相關(guān)聯(lián)的目的消息樹的節(jié)點(diǎn))的名稱以及連線類型,同樣的,目的消息樹將記錄連線起點(diǎn)(相關(guān)聯(lián)的源消息樹的節(jié)點(diǎn))的名稱和連線類型;連線結(jié)束后,遍歷目的消息樹節(jié)點(diǎn)所對(duì)應(yīng)的模型Model,根據(jù)記錄的信息生成XSL文檔;XSL文檔將記錄所有的映射規(guī)則,即所有的連線,包括連線類型,以及連線的起點(diǎn)和終點(diǎn)。
全文摘要
本發(fā)明公開了一種通過(guò)映射生成HL7消息的方法,該方法首先讀取源XML文件模板和目的XML文件模板,然后解析源XML文件模板和目的XML文件模板,分別生成源消息樹和目的消息樹,接著源消息樹和目的消息樹進(jìn)行映射,生成XSL文件,最后根據(jù)XSL文件,讀取源XML文件,自動(dòng)生成相應(yīng)的HL7標(biāo)準(zhǔn)格式的消息;本發(fā)明的方法通過(guò)簡(jiǎn)單的連線實(shí)現(xiàn)節(jié)點(diǎn)之間的映射,并自動(dòng)生成記錄了所有映射的XSL文檔;本發(fā)明可以把自定義消息轉(zhuǎn)換成HL7標(biāo)準(zhǔn)消息,同樣也可以將HL7標(biāo)準(zhǔn)消息轉(zhuǎn)換成自定義消息,只需要在源消息樹里面導(dǎo)入HL7消息,目的消息樹里面導(dǎo)入自定義消息的模板即可。
文檔編號(hào)G06F17/30GK102609506SQ201210023789
公開日2012年7月25日 申請(qǐng)日期2012年2月3日 優(yōu)先權(quán)日2012年2月3日
發(fā)明者潘曉華, 董科雄, 邵克華 申請(qǐng)人:杭州杰唐信息技術(shù)有限公司