Нужно получить значение поля по его имени и имени его структуры

Как я могу получить значение поля HL7, указав только имя структуры и поле сообщения HL7? Эта строка кода message.GetStructure("MSH") работает хорошо, а эта — нет: message.GetStructure("MSH.SendingFacility"). Имя поля известно только во время выполнения, поэтому я не могу использовать строго типизированные методы, такие как message.GetStructure("MSH").SendingFacility().


person YMC    schedule 16.09.2013    source источник
comment
Я взглянул на спецификацию Hl7 и думаю, что нет метода «получить по имени поля», поскольку в спецификации Hl7 нет таких имен полей, вместо этого определяется только порядок. В NHapi есть метод, позволяющий получить доступ к значению поля по его порядку, соответствующему спецификации. Поправьте меня, если я ошибаюсь, пожалуйста   -  person YMC    schedule 17.09.2013


Ответы (1)


Почему вы не знаете имя поля?

NHAPI основан на спецификациях HL7. В спецификациях названы все поля во всех сегментах.

Если вы добавляете новое поле, вам следует создать собственное определение сообщения и назвать поле.

Как упоминалось в @YMC, вы можете выбрать поле, используя индекс. Другой вариант, хотя, возможно, и не столь эффективный, состоит в обходе всех сегментов и полей. Что я и сделал в своем приложении NHAPI HL7 с представлением в виде дерева.

person davidlg    schedule 18.09.2013
comment
В моем случае имя поля известно только во время выполнения, поскольку пользователь вводит его в форму. Правильно ли я вас понимаю, что имена полей определены в так называемом определении сообщения, которое является частью сообщения HL7, и может быть любым строковым значением, каким бы оно ни было согласовано между 2 взаимодействующими организациями, т.е. стандарт HL7 не фиксирует конкретные имена полей, а только порядок? - person YMC; 18.09.2013