2011-03-14 50 views
3

我正在與Mirth Connect v2.0合作並陷入一項任務,即將XML轉換爲HL7 v3。我已連接到Ms-Access數據庫(醫院系統位於Access中),我已設置通道並在目標選項卡中將連接器類型設置爲File Writer。當我部署頻道時,我可以看到日誌文件中填充了XML格式的記錄,現在我不知道如何將XML消息轉換/轉換爲HL7。有什麼指針?使用Mirth Connect將XML轉換爲HL7消息

+0

您可以檢查「[非官方歡樂連接v3.x開發人員指南](http://mirthconnect.shamilpublishing.com)「一書。它顯示了一些將一種HL7格式轉換爲另一種的樣本。 – Shamil

回答

7

在通道摘要標籤

  1. 點擊「設置數據類型」,並確保Source inbound設置爲XML,並將Source outbound設置爲HL7 v3和t他的目標出站設置爲HL7 v3。

  2. 在左側邊欄

  3. 在左側的編輯變壓器窗口中選擇消息來源選項卡中單擊編輯變壓器模板標籤。

  4. 您可以用小的文件夾圖標加載示例文件到入境出站模板。

  5. 您可以在入站和出站模板之間拖放節點以創建變換。

這是相當標準的歡樂的東西,所以我希望我沒有過度簡化。希望這能讓你朝着正確的方向前進。

1

您可能想要使用XSLT,但所需的實際代碼將取決於您的數據庫模式以及它如何轉換爲XML。解決您的特定轉換問題超出了StackOverflow問題的指導原則,除非您可以提出更加具體的問題(即「我做了X,期待Y並取而代之爲Z)

似乎有許多產品會這樣做轉換的類型。我發現很多次谷歌搜索「的XML HL7」的。我建議你從那裏開始。

1

我使用示例xml數據將XML轉換爲hl7,您可以使用自己的。 你可以粘貼下面的代碼在索裏變壓器:

var length = msg['orderList']['order'].length(); 
    var rcount = 0; 
    for(var i=0;i<length;i++) 
    { 
    var SEG = new XML("<OBR/>"); 
    SEG['OBR.1']['OBR.1.1']=i+1; 
    SEG['OBR.16']['OBR.16.1']=msg['orderList']['order'][i]['provider'].toString(); 
    tmp['OBR'][i]=SEG; 
    var reslen = msg['orderList']['order'][i]['result'].length(); 
    logger.info(reslen); 
    for(var j=0;j<reslen;j++) 
    { 
     var RSEG = new XML("<OBX/>"); 
     RSEG['OBX.1']['OBX.1.1'] = rcount; 
     RSEG['OBX.3']['OBX.3.1'] = msg['orderList']['order'][i]['result'][j]['resultcode'].toString(); 
     RSEG['OBX.3']['OBX.3.2']=msg['orderList']['order'][i]['result'][j]['text'].toString(); 
     RSEG['OBX.7'] = msg['orderList']['order'][i]['result'][j]['range'].toString(); 
     RSEG['OBX.6']['OBX.6.2'] = msg['orderList']['order'][i]['result'][j]['unit'].toString(); 
     tmp['OBX'][rcount]=RSEG; 
     rcount++; 
    } 
} 
logger.info(**SerializerFactory.getSerializer('HL7V2').fromXML(tmp)**); 

不要忘了創建源傳出一個HL &模板

**MSH|^~\&||||||||| 
PID||||||||||||||||||||||||||| 
ORC|||||||||||||||||||** 

示例XML

<PatientOrder> 
<patient> 
<name><fullname>XXXXXXXXXXX, XXXX.</fullname><firstname>XXXXX</firstname><lastname>XXXXX</lastname></name> 
<address> 
<address1>XXXXXX XXXX XXXX Med XXXX</address1><address2>Information XXXXX Fl</address2><address3>XXXX XXXX St </address3><address4>XXXXXX XXXXXX, XX XXXXX</address4><telephone>XXX/XXXX-XXXX</telephone><fax>XXX/XXX-XXX</fax><latitude>X2.XXXXX</latitude><longitude>-X1.XXXXX</longitude></address> 
</patient> 
<orderList> 
<order> 
    <provider>57423</provider> 
    <result>result 
      <resultcode>7685-1</resultcode> 
      <text>Hemoglobin test2</text> 
      <resultdate></resultdate> 
      <range>3to52</range> 
      <unit>mg</unit> 
     </result> 
     <result>result 
      <resultcode>7685-1</resultcode> 
      <text>Hemoglobin test2</text> 
      <resultdate></resultdate> 
      <range>3to52</range> 
      <unit>mg</unit> 
     </result> 
    </order> 
<order> 
    <provider>57423</provider> 
    <result>result 
      <resultcode>7685-1</resultcode> 
      <text>Hemoglobin test2</text> 
      <resultdate></resultdate> 
      <range>3to52</range> 
      <unit>mg</unit> 
     </result> 
    </order> 
</orderList> 
</PatientOrder> 
+0

問題是關於將XML轉換爲HL7v ** 3 **。 – Shamil

+0

謝謝它幫助我.. – Sudhakar