繁体   English   中英

如何在C#.Net中将XML文件转换为HL7格式

[英]How to convert XML file to HL7 format in C# .Net

在将XML数据转换为HL7格式时遇到了问题。 我正在使用C#.Net。 我正在生成XML文件,但是客户端现在希望使用HL7格式的数据。 我已经尝试了很多次并在Google上搜索过,但没有太多可用信息

与下面相同的文件。

 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<LifeCarePatientResult>
  <PatientSettings>
    <PatientSetting Name="Identity">
      <Value>11212</Value>
    </PatientSetting>
    <PatientSetting Name="FirstName">
      <Value></Value>
    </PatientSetting>
    <PatientSetting Name="LastName">
      <Value></Value>
    </PatientSetting>
  </PatientSettings>
  <Measurement Id="86351403-af11-4986-bb26-2d2efa77db8e">
    <DateTime>2017-10-24 16:00:09</DateTime>
    <NoValue>18</NoValue>
    <Mode>SixSecond</Mode>
    <Instrument>030700364</Instrument>
    <Firmware>1D1B1D03</Firmware>
    <LifeCarePanelVersion>1.1.0.32000</LifeCarePanelVersion>
    <Sensor>25691</Sensor>
    <SequenceNumber>620</SequenceNumber>
    <TemperatureWarning>false</TemperatureWarning>
    <HumidityWarning>false</HumidityWarning>
    <FailTotal>0</FailTotal>
    <FailAboveMax_A10>0</FailAboveMax_A10>
    <FailBelowMin_A11>0</FailBelowMin_A11>
    <FailTooLongCount_A12>0</FailTooLongCount_A12>
    <FailDuringAnalysisCount_A13>0</FailDuringAnalysisCount_A13>
    <FailOther>0</FailOther>
  </Measurement>
</LifeCarePatientResult>

正如评论和替代问题中指出的那样,100%.net方法是使用nhapi。 但是,如果您要花费大量的精力,则实际上应该使用HL7工具。 它们相对便宜,将为您节省大量时间。

这是在HL7汤中做的方法 它允许您编写.net代码作为转换的一部分,但是您会发现您可能不需要这样做。

您需要的第一件事是将成为目标的HL7消息。 您的客户可能可以提供这一点,但是为了演示起见,这里是HL7汤样的简化版。

MSH|^~\\&|HL7Soup|Instance1|HL7Soup|Instance2|20060922162830|L674-200609221628310220|ORU^R01|ORU000016168|P|2.5.1|||AL |AL PID||75675|1478895^4^M10^PA||XTEST^PATIENT^||19591123| F|||||||||||||||||||||| ORC|RE|F4334|51013174200601|||||^|||||||||||||||| OBR|1|F4334|51013174200601|80048^BASIC METABOLIC PANEL|||20060922152300||||||||^^^^^|023901^PACLAB| ||||||^|CH|F|^^|^^^20060922162659^^GHA||^|||^^^^^^ ^^^^|^^^^^^^^^^|^^^^^^^^^^|^^^^^^^^^^|||||||||| OBX|1|NM|84295^SODIUM^GH|1|145|mmol/L|||||F|||20060922152300|GH

了解此消息超出了此答案的范围,但是如果您不确定google“ HL7教程”,那么这里有一些有用的视频。 HL7汤还擅长于解释该消息的含义。

现在您已经有了Source和Destination消息,加载HL7 Soup,并创建一个新的接收者。

创建一个新的XML接收器

然后将接收器类型更改为“目录扫描器”

在此处输入图片说明

现在,您只需要配置它以监视等待xml文件的目录。 请注意,我已将您的xml文件作为入站模板放置在其中。

在此处输入图片说明

好的,现在我们已经配置了xml的导入,我们需要配置出站HL7消息。 我也将其输出为文件。

单击此处将另一个活动添加到工作流中。

添加和新活动

现在,将此活动更改为File Writer。

将活动更改为文件编写器

现在我们需要配置File Writer活动以输出HL7 File。 我已将其设置为写入名称为c:\\Temp\\HL7File.HL7 ,然后还要求写入后将其移动到其他目录-移动它可确保文件名唯一。 我还将HL7消息用作底部的模板。

HL7 File Writer配置

现在,我们要做的就是在XML和HL7消息之间创建一个映射。 单击上图中的“编辑变压器”(黄色箭头)。

这就是你得到的。 两棵树分别代表源消息和目标消息。

XML到HL7变压器

现在,您要做的就是一次将源项目拖到其对应的目标项目上,以创建映射。 该视频更详细地说明了它- 转换HL7数据 ,但最终您最终将在源消息和目标消息之间建立映射。

这里以映射的三个字段为例,但是您要对要映射的每个值执行此操作。 请注意,映射如何只是指向Source值的xpath语句和指向Destination的HL7路径。 您可以手动编辑这些内容,以使xpath完全符合您的消息所需,例如,按XML属性名称查找项目。

XML到HL7的映射

完成所有映射后,只需保存工作流程并返回HL7 Soup主屏幕,然后开始运行工作流程。

在此处输入图片说明

现在,您放到目录中的每个文件都将转换为HL7并放到新目录中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM