2017-02-22 21 views
0

Я очень новичок в FHIR JSON, и я даже не уверен, что задаю правильный вопрос. Но вот мой сценарий.FHIR JSON to ORU HL7 mapping в BizTalk

У меня есть решение BizTalk, которое получает сообщение FHIR ImagingStudy как JSON. Используя эту запись (http://soapfault.com/blog/2016/08/hl7-fhir-json-decoding-in-biztalk/) Я успешно конвертирую сообщение FHIR JSON в XML-сообщение в моем месте получения. Затем в моем порту отправки это сообщение сопоставляется с ORU HL7 и сбрасывается в папку через сквозной канал отправки. За исключением того, что по какой-то причине моя карта не выполняется.

Если я играю немного вокруг моих трубопроводов, чтобы получить XML-сообщение FHIR через XML Получить трубопровод, я получаю следующее исключение:

Был сбой выполняющегося приемный трубопровод: «Microsoft .BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version = 3.0.1.0, Culture = neutral, PublicKeyToken = ######### "Источник:" XML дизассемблер "Получать порт:" RP_MyProject_Test_FILE "URI: D: \ Projects \ MyProject \ In * .xml "Причина: не удается найти спецификацию документа, поскольку несколько схем соответствуют типу сообщения" http://hl7.org/fhir#ImagingStudy ".

Как я попал в эту ситуацию, ну, я не знаю. Я загрузил fhir-all-xsd.zip из hl7.org и добавил все файлы .xsd, которые могут проектироваться в Visual Studio. Я закончил с 100 схемами, я попытался добавить только конкретные схемы ImagingStudy, но это не сработало, пока я не добавил все схемы. После развертывания в BizTalk я вижу еще больше схем в моей Консоли администрирования BizTalk, а некоторые из них имеют вышеуказанный тип сообщения.

Что я делаю неправильно? Есть ли способ включить в мой проект только схемы FHIR ImagingStudy? В моем приостановленном сообщении я вижу, что MessageType не продвигается, я думаю, что карта не будет знать, когда его выполнять, но затем у меня есть несколько сообщений с тем же MessageType в BizTalk.

ответ

0

Для разрешили нескольких схем соответствует типу сообщения вы должны либо

  1. Убедитесь, что каждая схема имеет уникальное пространство имен + rootname. Это означает, что вы не развертываете одну и ту же схему более одного раза, если вам нужна схема в более чем одном проекте, а затем создайте общее приложение, которое могут ссылаться и на другие приложения.
  2. Если вы не можете достичь выше, убедитесь, что вы создаете пользовательский получить трубопровод с XML лицемером, в котором необходимо указать, какие схемы использовать

Чтобы разрешить отображение не выполняется, вы должны смотреть на каком типе сообщения находится сообщение перед картой (через BizTalk Admin Console) и сравнивайте его с типом сообщения, которое карта ожидает на карте. Вы обнаружите, что эти два не совпадают, и поэтому карта не выполняется.

0

Ваша основная проблема является «, поскольку несколько схем соответствует тип сообщения» http://hl7.org/fhir#ImagingStudy».

Лучший способ решить эту проблему, и мой совет почти во всех ситуациях, является создание пользовательских трубопроводов с документа Spec явно установлен в XmlDisassembler и XmlAssembler компонентов.

Настоящая статья Wiki описывает процесс и преимущества: BizTalk: Improve Deployment and Tracking by Always Creating Custom Pipelines