我是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();
}
我们要添加
所需的变形输出 -
非常感谢任何有关如何实现这一目标的帮助。
谢谢
答案 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