Чтобы ответить на вопрос «Является ли использование только символа 0A ASCII явно недействительным HL7?»:
Символ 0A
нигде не упоминается в спецификациях HL7 как особый.
Выдержка из спецификаций HL7 2.5 для США:
2.5.4 Разделители сообщений
При построении сообщения используются определенные специальные символы. Это признак конца сегмента, разделитель полей, разделитель компонентов, разделитель подкомпонентов, разделитель повторений и escape-символ. Ограничителем сегмента всегда является возврат каретки (в ASCII шестнадцатеричный 0D). Другие разделители определяются в сегменте MSH, при этом разделитель поля находится в позиции 4-го символа, а другие разделители встречаются так же, как и в поле с названием «Символы кодирования», которое является первым полем после идентификатора сегмента. Значения разделителя, используемые в сегменте MSH, являются значениями разделителя, используемыми во всем сообщении. При отсутствии других соображений HL7 рекомендует предлагаемые значения, приведенные на рис. 2-1 в качестве разделителей.
Строго говоря, это означало бы, что вы можете использовать символ 0A
точно так же, как любой из символов, кроме 6, упомянутых ранее.
‹конец "официального" ответа›
При этом я согласен с Дейлом Х. в том, что вам лучше воздержаться от использования этого символа в содержании сообщения HL7. Поскольку большинство редакторов (кроме устаревшего Блокнота в Windows) отображают этот символ как новую строку, вы можете невольно подумать, что сегмент был усечен или искажен. И у меня был по крайней мере один случай, когда механизм интерфейса действительно обрабатывал этот символ как завершение сегмента (что само по себе недопустимо, и сборка механизма интерфейса была изменена, чтобы больше этого не делать).
Так что лучше избегайте этого. Но в ситуациях, когда вы не контролируете вывод, это не кажется формально запрещенным персонажем...
person
Emilien
schedule
31.07.2017