Хамелеон: Почему повторяющийся комментарий обрезается?

У меня возникли проблемы с преобразованием сообщения HL7. У него есть сегмент NTE с повторяющимися полями строкового типа.

ex:

MSH|^~\&|HOST||TD-SYN||201207031000||ORU^R01|0017|P|2.3
PID|1||0001|
NTE|||Comment 1~Comment 2~Comment3

Что происходит после графического преобразования, так это то, что NTE просто берет Комментарий 1, а остальные повторяющиеся комментарии игнорируются.

MSH|^~\&|HOST||TD-SYN||201207031000||ORU^R01|0017|P|2.3
PID|1||0001|
NTE|||Comment 1|

Я попытался установить в поле «Повторения» грамматики сегмента NTE значение 10, но это не имеет значения. Кроме того, ни один сценарий не манипулирует этим полем NTE, поэтому я понятия не имею, почему он усекает его таким образом. Кто-нибудь может сказать мне, что происходит?


person Owen    schedule 11.01.2013    source источник


Ответы (2)


Рад, что ты нашел это. Просто в качестве общей справки, иногда используйте HAPI TestPanel для преобразования в XML, тогда вы увидите очень хорошо, как зациклить ваши элементы HL7. Затем вы также узнаете, используете ли вы правильную структуру HL7.

В вашем примере на 3-м элементе в NTE <NTE.3>:

<?xml version="1.0" encoding="UTF-8"?>
<ORU_R01 xmlns="urn:hl7-org:v2xml">
    <MSH>
        <MSH.1>|</MSH.1>
        <MSH.2>^~\&amp;</MSH.2>
        <MSH.3>
            <HD.1>HOST</HD.1>
        </MSH.3>
        <MSH.5>
            <HD.1>TD-SYN</HD.1>
        </MSH.5>
        <MSH.7>
            <TS.1>201207031000</TS.1>
        </MSH.7>
        <MSH.9>
            <CM_MSG.1>ORU</CM_MSG.1>
            <CM_MSG.2>R01</CM_MSG.2>
        </MSH.9>
        <MSH.10>0017</MSH.10>
        <MSH.11>
            <PT.1>P</PT.1>
        </MSH.11>
        <MSH.12>2.3</MSH.12>
    </MSH>
    <ORU_R01.RESPONSE>
        <ORU_R01.PATIENT>
            <PID>
                <PID.1>1</PID.1>
                <PID.3>
                    <CX.1>0001</CX.1>
                </PID.3>
            </PID>
            <NTE>
                <NTE.3>Comment 1</NTE.3>
                <NTE.3>Comment 2</NTE.3>
                <NTE.3>Comment3</NTE.3>
            </NTE>
        </ORU_R01.PATIENT>
    </ORU_R01.RESPONSE>
</ORU_R01>
person FiveO    schedule 11.01.2013
comment
тоже очень похож на хамелеона... :D - person Owen; 11.01.2013

Я только что нашел ответ из его документации. На самом деле он не урезан. Значение по умолчанию «значение» — это первый элемент в повторяемом поле. Таким образом
все, что мне нужно было сделать, это получить доступ к повторяющимся полям через field.repeat_field(index).value. :)

person Owen    schedule 11.01.2013