2016-02-14 2 views
3

J'ai besoin d'extraire les informations patient du document XML HL7 en utilisant Apache Nifi, et d'appliquer regex pour extraire les résultats de diagnostic des sections qui contiennent du HTML incorporé (oui, désolé. mon choix de conception :-()Utilisation d'Apache Nifi pour extraire les valeurs HL7 et appliquer regex

chemin d'abord aux données d'intérêt dans le HL7 est:

"ClinicalDocument" \ "recordTarget" \ "patientRole" \ "patient" \ "name",

et le second, plus compliqué est:

"ClinicalDocument" \ "structuredBody" \ "composant" \ "section" \ "text @ mediaType =" text/x-HL7 texte + xml "" où la valeur de l'élément titre égal à " Résultats de diagnostic »

je dois correspondre au texte de la valeur du texte du sous-noeud du titre de la section au sein composant qui a une valeur « Résultats de diagnostic »(Résultats de diagnostic), puis extraire la valeur textuelle du nœud homologue text.

Mes extraits XML HL7 ressemblent:

</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> 

Toutes les suggestions sur comment puis-je faire cela dans Apache Nifi?

Répondre

3

Vous devriez pouvoir utiliser XPath et le processeur NiFi EvaluateXPath pour faire correspondre et extraire l'élément <text>. J'ai commencé avec la balise structuredBody en tant que root pour l'expression suivante:

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

Mais vous devriez être en mesure de l'adapter pour le chemin XML complet. Une fois l'élément <text> analysé, à partir de NiFi 0.5.0, vous pouvez utiliser le processeur GetHtmlElement pour extraire du code HTML incorporé. Avant le format NiFi 0.5.0, si le code HTML est bien formé (XHTML, par exemple), vous pouvez utiliser un autre processeur EvaluateXPath à la place.

+0

Exceptionnel! Merci, Matt. Up voté et accepté. – Edmon