问题描述
我想创建一条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);
这应该正确解析消息。