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