Символ амперсанда в сегменте OBX вызывает проблемы - форматирование HL7 - PullRequest
0 голосов
/ 20 января 2012

В поле OBX-5 есть html-эквиваленты для ">" и "<" ("<" и ">"), что приводит к тому, что метод Terser.get (..) выбирает только символы до амперсандный характер. Символами кодировки в MSH-2 являются «^ ~ \ &». Ошибка terser.get (..), потому что в поле OBX-5 есть кодирующий символ? Есть ли способ легко изменить эти символы на ">" и "<"? </p>

Большое спасибо за вашу помощь.

1 Ответ

2 голосов
/ 22 января 2012

Да, происходит сбой, поскольку амперсанд был объявлен в качестве разделителя подкомпонентов, а сообщение, которое вы пытаетесь обработать, недопустимо - оно не должно содержать (неэкранированные) объекты символов HTML (& lt; и & gt;).

Если вы не можете понять, как кодируются входящие сообщения, вам следует предварительно обработать сообщение, прежде чем передать его терсеру, заменив недопустимые символы. Я почти уверен, что ХАПИ не сможет вам там помочь.

В действительном сообщении HL7v2 тип данных, используемый в OBX-5, определяется OBX-2. OBX-5 должен содержать только символы и escape-последовательности, разрешенные объявленным типом данных. <и> среди них (если не объявлены как разделители в MSH-2).

Стандарт HL7 определяет escape-последовательности для символов разделителя и разделителя (например, \ T \ - escape-последовательность для подкомпонентного разделителя).

...