Как получить конкретное значение из сегмента в сообщении HL7 в BizTalk 2010

Я разрабатываю карту, связанную с HL7, в BizTalk2010, у меня все готово, включая исходную и целевую схемы, карты и т. д., и все обрабатывается правильно. Чего я пытаюсь добиться, так это получить определенное значение из одного из необходимых сегментов, т.е. идентификации пациента (PID), и передать ему поле MemberID моей целевой схемы. Вот как выглядит сегмент PID (вставка только определенной части):

PID|1||000123456^^^^MR~^^^^MA~123456789A^^^^MC~12345^^^^PT~123456789^^^^SS~000000000001234^^^^PI~^ ^^^АН~^^^^ВН||Джон^Смит^А|

жирная часть выше — это список идентификаторов пациентов PID-3 (CX), значение, которое мне нужно, находится после текста SS~, который равен 000000000001234. Если я просто сопоставлю поле идентификатора PID-3-1 первого списка идентификаторов пациентов PID-3 , я получаю первое значение, которое равно 000123456. Нужное мне значение находится в 6-м списке идентификаторов пациентов PID-3 (см. изображение ниже). Пожалуйста посоветуй


person Ronnie    schedule 12.10.2011    source источник


Ответы (2)


В вашем случае вы, вероятно, захотите использовать индексный функтоид. Этот функтоид принимает элемент, который вы хотите отобразить, в качестве первого входа и 1-базовый индекс элемента, который вы хотите отобразить.

Вот как будет выглядеть карта в BizTalk 2010: На этом снимке экрана показано, как настроена карта

Конфигурация функтоида будет выглядеть следующим образом: Конфигурация функтоида

Если вы посмотрите на сгенерированный xslt карты, вы захотите увидеть что-то похожее на это: введите здесь описание изображения

person Mike Stonis    schedule 14.10.2011
comment
Большое спасибо, Майк, предложенное вами решение сработало как шарм :) - person Ronnie; 17.10.2011

Если индексный функтоид не работает (потому что вы не можете полагаться на определенный порядок), вы можете попытаться соединить циклический функтоид между верхним уровнем, чтобы убедиться, что вы получаете все записи, а затем выполните логическое равенство для квалификатора PT и Функтоид сопоставления значений с идентификационным номером. Ссылка из логического равного корневому циклу должна блокировать пустые циклы

карта

person kirps    schedule 14.10.2011