如何使用HL7-dotnetcore处理VARIES数据类型?

问题描述

我想创建一条HL7 column { SpacerA Xxx() SpaceB Xxx("") SpacerC } 消息,目前必须支持v2.3和v2.6。我想将Base64文档添加到OBX段。对于2.6版,我只需执行以下操作:

MDM

但是我已经看到2.3版要求使用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); 数据类型进行更复杂的设置。我使用nHapi程序包(不再有效维护)找到了一些伪代码

VARIES

有人知道如何使用HL7-dotnetcore包处理此类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; 数据类型吗?我该如何为位置VARIES创建这样的构造以发送带有旧消息版本的文档?

解决方法

显然,HL7-dotnetcore不支持此功能。

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

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

考虑到这一点,您应该能够像对其他版本一样设置值,如下所示:

obxSegment.AddNewField("theBase64Document",5);

这应该正确解析消息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...