#c# #.net-core #hl7 #hl7-dotnetcore
#c# #.net-ядро #hl7 #hl7-dotnetcore
Вопрос:
Я хочу создать сообщение 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;
Кто-нибудь знает, как работать с такими VARIES
типами данных с помощью пакета HL7-dotnetcore? Как бы я создал такую конструкцию для позиции OBX.5
для отправки документа с более старыми версиями сообщений?
Комментарии:
1. nHapi не поддерживается.
Ответ №1:
По-видимому, HL7-dotnetcore не поддерживает это.
Пожалуйста, обратитесь к исходному коду на github для AddNewField(Field field, int position = -1)
метода и Field
класса. Не похоже, что там обрабатывается тип данных.
Я никогда не использовал инструментарий, но я понимаю, что инструментарий не поддерживает типы данных. Инструментарий не такой сложный и зрелый, как nHapi. Это просто и должно быть простым. В конце концов, сообщение HL7 представляет собой строку.
Учитывая это, вы должны иметь возможность устанавливать значение так же, как вы делаете для другой версии, как показано ниже:
obxSegment.AddNewField("theBase64Document", 5);
Это должно правильно проанализировать сообщение.