Массовое изменение издателя идентификатора пациента в PACS (DCM4CHEE)

мне нужно обновить около 1,5 тыс. записей пациентов с идентификатором Issuer of Patient на сервере DCM4CHEE PACS.

Я решил, что мне удастся сделать это эффективно с помощью сообщений HL7 (либо A31, либо A08), хотя я нигде не могу найти подходящий синтаксис для этого.

Если кто-нибудь знает, как это сделать (тем или иным способом), буду премного благодарен
Заранее спасибо


person 4rlekin    schedule 16.10.2014    source источник
comment
Если вы хотите изменить группу записей, которые уже существуют в базе данных PACS, выполните обновление SQL непосредственно в структурах данных dcm4chee (некоторое описание доступно по адресу dcm4che.org/confluence/display/ee2/Database+Table+Descriptions) может быть проще... просто подсказка   -  person xmojmr    schedule 16.10.2014
comment
Ну, это тоже была моя первая идея, но ручное изменение pat_id_issuer в таблице пациентов на самом деле ничего не меняет: например, в интерфейсе web3 такая измененная запись обнаруживается при фильтрации по эмитенту, хотя дисплей вообще не указывает эмитента, как здесь не был одним. Также остаются все проблемы неоднозначности с подбором пациентов. Возможно, мне следует изменить некоторые другие поля в БД, но опять же я понятия не имею, какое... :/   -  person 4rlekin    schedule 17.10.2014
comment
Я не знаю, вы можете узнать больше, обратив исходные коды, но ответ может быть уже доступен на форумах поддержки dcm4chee по адресу forums.dcm4che.org/jiveforums/index.jspa?categoryID=1, и вы также можете получить ответ, задав вопрос в группе разработчиков dcm4chee Google по адресу groups.google.com/forum/#!forum/dcm4che – попробуйте сначала покопаться там. Stack Overflow не имеет очень сильного ИТ-сообщества в сфере здравоохранения, хотя вы можете проголосовать за предложение в области ИТ для здравоохранения в области 51 изменить(?)   -  person xmojmr    schedule 17.10.2014
comment
Я посмотрел это в группе Google - не повезло, я проверю на форуме. Копание в источнике - это именно та часть, которую я хотел бы избежать. В настоящее время я думаю об использовании какой-то автоматизации браузера для полуавтоматического решения...   -  person 4rlekin    schedule 17.10.2014
comment
Я бы решительно возражал против простого обновления SQL при изменении такого количества записей о пациентах — это нарушает цепочку контроля и разрушает любые записи аудита. Я ничего не знаю о DCM4CHE, но обычно эмитент идентификатора основывается на исходной регистрации пациента и приложении отправки PID.3 + в заголовке сообщения в сообщениях HL7. Знаете ли вы, какое именно поле ваша система PACS использует для заполнения pat_id_issuer?   -  person SQLSavant    schedule 22.10.2014
comment
ну, его можно отправить в сообщении hl7, настроить вручную через встроенный веб-интерфейс, он может прийти в виде изображения в виде тега, а также может быть автоматически назначен для указанной модальности - но на самом деле это не имеет значения. среди всех решений, которые в настоящее время я использую для отправки ADT ^ 31 (веб-интерфейс отстой, поэтому автоматизация браузера не была такой яркой идеей, как я думал, это был хороший эксперимент, хотя)   -  person 4rlekin    schedule 23.10.2014


Ответы (1)


В конце концов, я пошел со сценарием, отправляющим сообщение HL7 ADT^A08 для каждой записи, которую я хотел бы изменить.

Поскольку я хотел обновить только тех пациентов, у которых еще не было Issuer of Patient ID, а интерфейс dcm4chee-web3 не поддерживает фильтрацию таким образом (не может искать «не имеет эмитента»), у меня не было другого выбора, кроме как войти в базу данных.

Я запросил базу данных PACS для пациентов с пустым полем pat_issuer и экспортировал возвращенные результаты в файл.

Затем я запустил свой скрипт, который проходил через файл построчно, помещал данные в вышеупомянутое сообщение HL7 и отправлял их на сервер (я использовал библиотеку python-hl7, которая также предоставляет утилиту командной строки для отправки HL7).

Он работал хорошо, и его написание и использование не заняло много времени, так что я буду считать это ответом на мой вопрос.

person 4rlekin    schedule 27.10.2014
comment
Не могли бы вы помочь мне с документацией для создания HL7, который вы сделали. Как отправить его в PACS. И как получил. Большое спасибо. - person andres83; 18.06.2015
comment
@ andres83 Я был бы рад помочь вам, если смогу, но вам нужно немного подробнее рассказать о том, чего вы хотите достичь - person 4rlekin; 19.06.2015
comment
Спасибо за ваш интерес. Я не понимаю, как вы создали сообщение HL7. Какие инструменты вы использовали? Как сделать шаблон и как отправить сообщение в PACS. Мне очень жаль задавать эти глупые вопросы, но я не нашел много информации в Интернете. Кстати, вы знаете, как изменить идентификатор (не эмитента, а первичный ключ) Еще раз спасибо. - person andres83; 22.06.2015
comment
@ andres83 andres83 Ну, hl7 закрыл документы, поэтому разобраться во всем немного сложнее, чем обычно. Однако мне удалось найти хорошую ссылку: mexi.be/documents/hl7/httoc.htm Для смены эмитента я использовал сообщение ADT^A08, а для изменения идентификаторов (как внутренних, так и внешних) есть сообщения особого типа - ADT^A46 на 48. На этом пока все - проверьте, а затем я буду рад ответить на любые дополнительные вопросы (при условии, что я смогу) - person 4rlekin; 23.06.2015