2016-02-14 155 views
3

我需要使用Apache Nifi, 從HL7 XML文檔中提取患者信息,並應用正則表達式從包含嵌入式HTML的節中提取診斷結果(是的,對不起。我的設計選擇:-()使用Apache Nifi提取HL7值並應用正則表達式

第一條路徑在HL7關注的數據是:

「ClinicalDocument」 \ 「recordTarget」 \ 「patientRole」 \ 「病人」 \ 「名字」

第二,比較複雜的是:

「ClinicalDocument」 \ 「structuredBody」 \ 「組件」 \ 「部分」 \ 「文本@ mediaType的=」 文本/ X-HL7的文本+ xml 「的」其中標題元素的值等於「診斷結果」

我需要部件具有值內匹配在標題的子節點的文本值的文本‘診斷結果’(診斷結果),然後提取對等節點的文本值text

我HL7 XML片斷如下所示:

</ClinicalDocument> 
... 
     <recordTarget> 
      <patientRole> 
.... 
      <patient> 
       <name><given>John</given><family>Doe</family></name> 
... 
<structuredBody> 
... 
<component> 
    <section classCode="DOCSECT" moodCode="EVN"> 
     <templateId root="0.0.0.0.0.0.1" /> 
     <code code="000-01" codeSystem="0.0.0.1.0.0" /> 
     <title>Diagnostic Results</title> 
     <text mediaType="text/x-hl7-text+xml"> 
      Some data of interest expressed in n microns.<content ID="NKN_results"/> 
     </text> 

對我怎麼做這在Apache中Nifi有什麼建議?

回答

3

您應該能夠使用XPath和NiFi EvaluateXPath處理器來匹配並提取<text>元素。我開始與structuredBody標籤作爲根下面的表達式:

/structuredBody/component/section[title = 'Diagnostic Results' and text[@mediaType='text/x-hl7-text+xml']]/text 

但你應該能夠適應它完整的XML路徑。一旦<text>元素被解析出來,從NiFi 0.5.0開始,您可以使用GetHtmlElement處理器從嵌入式HTML中提取。在NiFi 0.5.0之前,如果HTML格式良好(例如XHTML),則可以使用另一個EvaluateXPath處理器。

+0

傑出!謝謝,馬特。向上投票並被接受。 – Edmon