При попытке использовать ca.uhn.hl7v2.util.Terser для установки пустых полей в конкретном подклассе ca.uhn.hl7v2.model.Message (в этом случае ca .uhn.hl7v2.model.v251.message.ORU_R01), я не получаю сообщений об ошибках во время закрытия .each {}, после чего у объекта сообщения нет заполненных полей.Настройка полей в новом сообщении HL7, обернутом в Terser
hl7Map заполняется на классе конкретизации, со значениями, такими как: Защиту hl7Map = [ "HL7MessageFields": [ 'PID-3-1': "внутренний порядок карта ключ", 'PID-3-4':» внутренний порядок карта ключ», и т.д.]]
код ниже:.
защиту buildHL7Message (заказ) {
def date = new Date()
def format = new SimpleDateFormat(hl7Map["dateFormat"]).format(date)
//Set date on the Message Header Object
hl7Map["MSH"]["-7"]= format
def message = (context.getModelClassFactory().getMessageClass(hl7Map["MessageInstantiationMap"]["messageType"],
hl7Map["MessageInstantiationMap"]["version"],
true) as Class).newInstance()
Terser terser = new Terser(message)
hl7Map["HL7MessageFields"].each{
terser.set(it.key, order[it.value])
}
println message
return message
}
конец метода г выходы без вывода и ошибки, регистрируемые в кодировке, MSH-1 является обязательным полем, деминератором канала, но пустым. Если в приведенном выше коде используется message.initQuickstart («ORU», «R01», «T»), заполняются только поля по умолчанию initQuickstart.
Если hl7Map ["HL7MessageFields"] содержит «it.key», который не является допустимым полем «Группа/Сегмент», ошибка регистрируется terser, что ему не удалось найти значение, приведенный выше код с правильно отформатированной картой не вызывает ошибку.
Может кто-нибудь объяснить, почему я еще не получаю ошибок, но мое сообщение пустое, и помочь мне заполнить сообщение соответствующим terser.set (params)?