3

我需要使用 Apache Nifi 从 HL7 XML 文档中提取患者信息,并应用正则表达式从包含嵌入式 HTML 的部分中提取诊断结果(是的,对不起。不是我的设计选择:-()

HL7 中感兴趣的数据的第一个路径是:

“临床文档”\“记录目标”\“患者角色”\“患者”\“姓名”

第二个,更复杂的是:

"ClinicalDocument" \ "structuredBody" \ "component" \ "section" \ "text @mediaType="text/x-hl7-text+xml""其中标题元素的值等于 "Diagnostic Results"

我需要匹配组件内 具有值“诊断结果”(诊断结果)的部分标题的子节点文本值的文本,然后提取对等节点文本的文本值。

我的 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 中执行此操作的任何建议?

4

1 回答 1

3

您应该能够使用 XPath 和 NiFi EvaluateXPath处理器来匹配和提取<text>元素。对于以下表达式,我以结构化主体标签作为根开始:

/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 处理器。

于 2016-02-15T14:08:04.087 回答