Mirth添加段HL7 V3

时间:2018-01-26 22:00:48

标签: mirth

我是Mirth / JavaScript的新手。我有一个项目,我需要在传入的HL7 v3 XML文件中添加一个段。我在目标转换器中尝试了以下JavaScript;

<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:mif="urn:hl7-org:v3/mif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sdtc="urn:hl7-org:sdtc">
<realmCode code="US" />
<typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040" /><br/>
<templateId root="2.16.840.1.113883.10.20.22.1.2" extension="2015-08-01" />

这会产生错误。

此外,我需要在现有的templateID段之前放置此新段。 目前这是我们收到的 -

#include <stdio.h>
#include <math.h>
int main()
{
    double array[5];
    int max = 1, y;
    printf("Enter Capacity of Array:\n");
    scanf("%d", &y);
    for (int i = 0;i < y;i++)
    {
        printf("Enter the %d Number:\n",i+1);
        scanf("%lf", &array[i]);
        max *= array[i];
    }
    printf("Multiplication Of Array = %d\n\n", max);
    printf("Geomteric Mean = %0.2lf\n", pow(max, (1.0/y)));
    getch();
}

我们要添加

所需的变形输出 -               
         

非常感谢任何有关如何实现这一目标的帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

我以这种方式理解你的要求。你需要添加

<templateId root="2.16.840.1.113883.10.20.22.1.2" extension="2015-08-01" />

正好在templateID

之前
public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException, TransformerException {

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        // Source XML
        File fXmlFile = new File("C:\\Labs\\POC\\Import_Export\\TEST.xml");
        Document doc = dBuilder.parse(fXmlFile);

        // Get the element after which template ID code has to be added
        Node nodeName = doc.getElementsByTagName("typeId").item(0);
        // Code to add new Template ID
        Element newTemplateID = doc.createElement("templateId");
        newTemplateID.setAttribute("root", "2.16.840.1.113883.10.20.22.1.1");
        newTemplateID.setAttribute("extension", "2015-08-01");
        // Inserting exactly on specific area
        nodeName.getParentNode().insertBefore(newTemplateID, nodeName.getNextSibling());


        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        // destination XML
        StreamResult result = new StreamResult(new File("C:\\Labs\\POC\\Import_Export\\TESTNew.xml"));
        transformer.transform(source, result);
    }

如果这是要求,这个JAVA代码将起作用

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:mif="urn:hl7-org:v3/mif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sdtc="urn:hl7-org:sdtc">
<realmCode code="US"/>
<typeId extension="POCD_HD000040" root="2.16.840.1.113883.1.3"/>
<templateId extension="2015-08-01" root="2.16.840.1.113883.10.20.22.1.1"/>
<templateId extension="2015-08-01" root="2.16.840.1.113883.10.20.22.1.2"/>
</ClinicalDocument>

你会得到像这样的XML

var addTemplateId = new XML("<templateId></templateId>");
addTemplateId['@root'] = '2.16.840.1.113883.10.20.22.1.1';
addTemplateId['@extension'] = '2015-08-01';
var newValue = msg.appendChild(addTemplateId);

msg = newValue;

重构上面的Mirth规范代码你会获得相同的输出,否则你只想在xml的末尾添加额外的标签你可以在Mirth脚本中使用这段代码

<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:mif="urn:hl7-org:v3/mif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sdtc="urn:hl7-org:sdtc">
<realmCode code="US"/>
<typeId extension="POCD_HD000040" root="2.16.840.1.113883.1.3"/>
<templateId extension="2015-08-01" root="2.16.840.1.113883.10.20.22.1.2"/>
<templateId extension="2015-08-01" root="2.16.840.1.113883.10.20.22.1.1"/>
</ClinicalDocument>

这将在邮件的现有标签的末尾添加新标签。这意味着你的输出将是这样的

ftl