【问题标题】:How to deal with a VARIES datatype using HL7-dotnetcore?如何使用 HL7-dotnetcore 处理 VARIES 数据类型?
【发布时间】:2020-10-21 18:20:06
【问题描述】:

我想创建一个 HL7 MDM 消息,目前必须支持 v2.3 和 v2.6。我想将 Base64 文档添加到 OBX 段。对于 2.6 版,我只需执行以下操作:

Segment obxSegment = new Segment("OBX", hl7Encoding);
mdmMessage.AddNewSegment(obxSegment);

// Sequence Id
obxSegment.AddNewField("1", 1);

// Value Type
obxSegment.AddNewField("ED", 2);

// Observation Value
obxSegment.AddNewField("theBase64Document", 5);

但我发现 2.3 版需要使用 VARIES 数据类型进行更复杂的设置。我发现了一些使用 nHapi 包的伪代码(不再积极维护)

OBX obx = mdm_message.GetOBX();
obx.SetIDOBX.Value = "1";
obx.ValueType.Value = "ED"; // Encapsulated Data
Varies obx_value = obx.GetObservationValue(0);
ED data = new ED(mdm_message);
data.SourceApplication.NamespaceID.Value = "ID";
data.DataSubtype.Value = type;
data.Encoding.Value = "Base64";
data.Data.Value = file;
obx_value.Data = data;

有人知道如何使用 HL7-dotnetcore 包处理此类 VARIES 数据类型吗?我将如何为职位OBX.5 创建这样的构造来发送具有旧消息版本的文档?

【问题讨论】:

  • nHapi 没有被维护。

标签: c# .net-core hl7 hl7-dotnetcore


【解决方案1】:

显然,HL7-dotnetcore 不支持这个。

AddNewField(Field field, int position = -1)方法和Field类请参考github上的源码。那里似乎没有处理数据类型。

我从未使用过该工具包,但据我了解,该工具包不支持数据类型。 Toolkit 不像 nHapi 那样复杂和成熟。它很简单,而且很简单。归根结底,HL7 消息是一个字符串。

考虑到这一点,您应该能够以与其他版本相同的方式设置值,如下所示:

obxSegment.AddNewField("theBase64Document", 5);

这应该可以正确解析消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多