0

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

与下面相同的文件。

 <?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>
4

1 回答 1

1

正如评论和替代问题中所指出的,100% .net 方式是使用 nhapi。但是对于您将要查看的工作量,您确实应该查看 HL7 工具。它们相对便宜,可以为您节省大量时间。

这是在HL7 Soup中的操作方法。它允许您编写 .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

了解此消息超出了此答案的范围,但如果您不确定,请搜索“HL7 教程”,那里有一些有用的视频。HL7 Soup 也非常擅长解释信息的含义。

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

创建一个新的 XML 接收器

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

在此处输入图像描述

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

在此处输入图像描述

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

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

添加和新活动

现在将此活动更改为文件编写器。

将 Activity 更改为文件编写器

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

HL7 文件编写器配置

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

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

XML 到 HL7 转换器

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

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

XML 到 HL7 的映射

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

在此处输入图像描述

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

于 2017-10-25T06:43:57.430 回答