Как я могу CSTORE пиксельные данные dicom из CMOVE правильно? - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть 1 работающий сервер для дескриптора C -Перемещение, 2 запущенных сервера для дескриптора C -Store и удаленный сервер pacs (GEPACS)

Когда я пытался C -Переместить команду из удаленный пакет для обработки C -Store, 1 сервер (py-netdicom) - это сборка и сохранение файла должным образом, а 1 сервер (go -netdicom) - нет.

Итак, возникла пара проблем go -netdicom. Я исправил код, может обрабатывать шестнадцатеричные числа. Первоначально он не поддерживается go -netdicom. Это исправило почти все проблемы в моем случае, но все еще не может правильно хранить пиксельные данные.

Например, я получил 9117252 байта от исходного сигнала от удаленных пакетов и сохранил данные сам, но на самом деле это должно быть 18000000 байт (получил ошибку). даже изображения CT короткие в 3 раза (получили примерно 180000, но нужно 524288)

Я думаю, что причиной проблемы может быть инкапсуляция данных пикселей, но не уверен.

Есть ли Подсказка или помощь?

Спасибо.

РЕДАКТИРОВАТЬ 4 : У меня есть подсказка. ссылка здесь

Так или иначе, команда C -STORE имеет своего рода синтаксис передачи. Это предложение для типа scp (сжатый или нет) данных scu get. Но все же я не знаю, какую часть go -netdicom нужно изменить. Я удалю тег "python", поскольку он больше не связан с python.

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Проблема здесь в том, что go -netdicom использует первый PresentationContext, отправленный в A_ASSOCIATE_RQ (как вы можете видеть на последнем изображении). Таким образом, он принимает "2.16.840.1.113709.1.2.2", который является частным синтаксисом передачи, и он не входит в стандарт DICOM, поэтому никто не может управлять C -STORE в конце.

Если вы читаем это .. возможно, вы не используете go -netdicom, но проблема может быть такой же, если ошибка связана с синтаксисом передачи "2.16.840.1.113709.1.2.2", в документации Centricity PAC говорится: "Ожидается что приложения других производителей будут игнорировать весь контекст представления, предложенный с GE Private Compress Express Transfer Syntax "

enter image description here

И это то, что мы предполагаем делать. Я вижу список PR в go -netdicom, поэтому я полагаю, что он не поддерживается, поэтому я опубликую изменение для go -netdicom здесь. Я внес эти изменения в contextmanager. go и работает как шарм:

enter image description here

0 голосов
/ 12 февраля 2020

Я нашел решение.

Каким-то образом GEPACS отправляет определенный синтаксис передачи для сжатия JPEG. если go -netdicom не имеет TransferSyntaxUID, тогда выберите первый синтаксис передачи GEPACS, и это было для сжатия JPEG.

Я просто поместил bigendian иlicitvr (по умолчанию GEPACS), когда передача синтаксиса пуста.

, который помещен в contextmanager. go строка 101 в AssociateRequest, строка 127

Надеюсь, этот результат кому-нибудь поможет.

Спасибо

...