Как ставить в WorkList запись по сообщению из HIS?

Когда возникают вопросы при эксплуатации пакета - пишите в этот форум. Вам обязательно ответят.

Как ставить в WorkList запись по сообщению из HIS?

Сообщение Гость » 29.04.2011 6:52

Вопросы:
1. В каком формате должны быть сообщения?
2. Какие настройки WorList Server надо установить?
3. Пытаюсь отправить hl7 сообщения (ORM_001), в логах - PDU length value in received PDU Header is larger than supported MaxPDU. Что делаю не так?

Прошу ответить тем, кто понимает и знает решение проблемы. Спасибо.
Гость
 

Сообщение Дмитрий » 29.04.2011 8:58

Мало информации.
Укажите:
1. Какую программу используете? Наш демонстрационный пакет WLM?

http://www.makhaon.com/download/softwar ... _setup.exe

2. Какое оборудование используете вместе с ворклистом?
3. В каких логах появляется сообщение 'PDU length value in received PDU Header is larger than supported MaxPDU'?

Учтите, что у нас нет 'удалённого зрения' :)

Мы удалённо ничего не видим, ничего не знаем ни о вас (даже имени :) ) ни о вашей программной конфигурации ни об оборудовании.
Дмитрий
Разработчик
 
Сообщения: 163
Зарегистрирован: 17.11.2004 4:22

Сообщение Гость » 29.04.2011 9:32

Задача у меня такая:
1. Сообщением из HIS поставить в список "на исследование" пациента, т.е. я так понимаю в WorkList должна появиться запись.
2. Модулем "махаон видеозахват" хочу получить список планируемых исследований с WorList'а

Все эксперименты делаю на локальном компьютере.
1. Да использую демо версию wlm
2. Лог из журнала соединений wlm после попытки отправки на него сообщения
[ERROR]
TDICOMSCPIndySession.Execute() -> TDULAssociation.ReceiveAssociation() ->
TDULFSM.ReadPDUHead() ->
PDU length value in received PDU Header is larger than supported MaxPDU
3. Нет пока никакого оборудования.

Быстро вы среагировали, спасибо.
Гость
 

Сообщение Дмитрий » 29.04.2011 9:37

Пока что в общих словах опишу взаимодействие WLM (worklist manager'а), HIS и оборудования (точнее - модальности, не всегда модальность - оборудование, у нас, например, программа-видеограббер может список исследований запрашивать).

1. Взаимодействие оборудования и WLM.

Модальность по какому-то действию, чаще всего - по нажатию пользователем управляющих элементов интерфейса, иногда - автоматически, через какое-то время, запрашивает у WLM'а список исследований. Модальность может использовать какие-то фильтры при запросе (например, запросить исследования только за текущую дату), но может запросить и полный список. WLM ищет у себя в базе список исследований, предназначенный для конкретной модальности, накладывая, по необходимости, фильтры. Дальше идёт передача обнаруженного списка на модальность.

2. Взаимодействие WLM и HIS.

Откуда же возьмутся данный в базе WLM'а, для того, что бы передать их оборудованию?
У Махаон WLM Возможно два варианта: данные введёт пользователь через интерфейс пользователя; данные попадут в базу из госпитальной системы (HIS).

У нас реализовано два варианта взаимодействия с госпитальными системами.

а) Более старый вариант - взаимодействие по OLE. Я его описывать не буду, если с HL7 никак не получится - будем с OLE разбираться.

б) Более новый, рекомендуемый, вариант - взаимодействие с помощью протокола HL7.

Рекомендуется посмотреть вот эту тему, сообщение от 25-го ноября, 2010 11:19 :

viewtopic.php?t=408

Передача HL7 сообщений должна быть реализована на стороне госпиталки. При этом нет необходимости всю госпитальную систему реализовывать на HL7, как она выполнена внутри - не имеет значения, главное - что бы она наружу могла отдавать сообщения ORM^O01, которые WLM умеет принимать и обрабатывать.

В теме выложен тестовый проект:

http://www.makhaon.com/download/software/Test_hl7.zip

госпиталка должна работать так же, как этот тестовый проект. В этом же архиве приведено несколько ORM^O01 сообщений, которые можно передать для WLM'а с помощью проекта.

Мы сами писали сетевое взаимодействие по HL7 (впрочем, как и по DICOM'у). Взаимодействие по HL7 достаточно примитивное - просто передаётся сообщение + несколько предваряющих и конечных байтов.

Так же мы можем отдать готовые компоненты HL7 многопоточного приёма/передачи сообщений HL7 по сети с исходниками на Delphi.

Если нужны ссылки на сам стандарт HL7 и международные рекомендации IHE по взаимодействию госпитальных и PACS систем, которых мы придерживались - пишите - поищу.

Как вообще происходит процесс взаимодействия.

WLM в сети HL7 является приёмником (Listener), он принимает все сообщения, приходящие от госпиталки, находит те, с которыми он работает (ORM^O01) и обрабатывает их.
Соответственно, госпиталка должна, когда это ей необходимо, отдавать соответствующие команды для WLM'а - для добавления, обновления, удаления, установки статуса 'окончено'.

Соответствие тэгов DICOM и полей HL7 описано в файле Hl7 Mapping.txt.

В двух словах про HL7 на примере поля 'ORC 1 Тип сообщения'.

ORC - это сегмент сообщения. 1 - это номер поля в сегменте.
Ищем строчку с надписью 'ORC', отсчитываем поля, разделенные с помощью '|', получаем нужно поле. В поле ORC 1 находятся команды WLM'у, например: NW (1.txt) - создать новое исследование.
Последний раз редактировалось Дмитрий 29.04.2011 9:58, всего редактировалось 1 раз.
Дмитрий
Разработчик
 
Сообщения: 163
Зарегистрирован: 17.11.2004 4:22

Сообщение Гость » 29.04.2011 9:45

Спасибо, буду разбираться
Гость
 

Сообщение Дмитрий » 29.04.2011 9:46

Anonymous писал(а):Задача у меня такая:
1. Сообщением из HIS поставить в список "на исследование" пациента, т.е. я так понимаю в WorkList должна появиться запись.
2. Модулем "махаон видеозахват" хочу получить список планируемых исследований с WorList'а

Быстро вы среагировали, спасибо.


Понятно. Давайте попробуем проблему разделить на две:

1. Связать видеозахват с WLM'ом. Для этого с помощью интерфейса пользователя добавьте исследование, настройте соответственно DICOM порты, HL7 пока не трогаем вообще. Попробуйте видеозахватом получить список.
2. Связать WLM с тестовой программой по HL7, попробовать передать на WLM 1.txt - это сообщение о новом пациенте, WLM должен его добавить себе в базу. И, позже, передать на граббер.
3. Так получилось :) Как раз надумал форум посмотреть... Обычно в течение дня-двух отвечаем.
Дмитрий
Разработчик
 
Сообщения: 163
Зарегистрирован: 17.11.2004 4:22

Сообщение Дмитрий » 29.04.2011 9:49

Демонстрационный проект настроен на порт 23456.
Дмитрий
Разработчик
 
Сообщения: 163
Зарегистрирован: 17.11.2004 4:22

Сообщение Гость » 29.04.2011 10:48

1. Если создать руками исследование в wlm, а потом получить grabber'ом, то у меня получилось.
2. Отправляю при помощи демонстрационного проекта 1.txt, запись в wlm не добавляется. (порт поставил 23456)
Лог wlm:
2011-04-29 15:42:28 #20,[WARNING],"DUL Protocol Logging: enabled"
2011-04-29 15:42:28 #20,[ERROR],"TDICOMSCPIndySession.Execute() -> TDULAssociation.ReceiveAssociation() -> TDULFSM.ReadPDUHead() -> PDU length value in received PDU Header is larger than supported MaxPDU"
Гость
 

Сообщение Дмитрий » 29.04.2011 17:34

Кажется вы путаете HL7 и DICOM сети. В опциях WLM нужно настроить: порт HL7 - 23456, порт DICOM - 104.
Дмитрий
Разработчик
 
Сообщения: 163
Зарегистрирован: 17.11.2004 4:22

Re: Как ставить в WorkList запись по сообщению из HIS?

Сообщение Дмитрий » 28.06.2013 13:39

Отписываю во все 'интеграционные темы'. Выложили документ по интеграции:

http://www.makhaon.com/download/softwar ... ration.zip
Дмитрий
Разработчик
 
Сообщения: 163
Зарегистрирован: 17.11.2004 4:22


Вернуться в Поддержка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron