Служба сохранения данных (модель push): как мне вернуть результат в SCU?

Я планировал внедрить Службу хранения данных, чтобы проверить, были ли файлы, ранее отправленные в хранилище, надежно сохранены.

Моя архитектура очень проста и понятна, мой SCU отправляет некоторые вторичные захваченные изображения в хранилище, и я хочу быть уверенным, что они безопасно хранятся, прежде чем удалять их.

Я собираюсь принять модель push, и мне интересно, какие шаги / функции мне нужно реализовать для выполнения услуги

Я понял

  • Мне нужно выполнить запрос N-ACTION с UID класса SOP 1.2.840.10008.1.20.1 и добавить к запросу идентификатор транзакции вместе со списком UID указанного класса SOP - UID указанного экземпляра SOP, где UID указанного экземпляра SOP - это идентификаторы вторичных изображений захвата, которые я ранее отправлял в хранилище, а UID класса SOP, на который ссылается, в моем случае - это идентификатор класса мыла, представляющий вторичное изображение захвата.
  • Дождитесь моего ответа N-ACTION, чтобы узнать, успешен ли запрос N-ACTION.
  • Получите ответ из хранилища в виде N-EVENT-REPORT

    Но когда? Как хранилище возвращает мне N-СОБЫТИЕ-ОТЧЕТ вместе с результатами? Осуществляет ли мой SCP AE некоторые функции SCP? Или мне нужно отправить запрос N-EVENT, чтобы получить N-EVENT-REPORT?


person Ghini Antonio    schedule 16.02.2017    source источник


Ответы (2)


Взгляните на изображение ниже, скопированное с здесь: Изображение скопировано из блога Рони

Теперь по поводу вашего вопроса. Ниже приводится объяснение, предполагающее, что одна и та же связь будет использоваться для всего сообщения. Для связи по нескольким ассоциациям см. Статью Рони выше.

Но когда?

Немедленно. По тому же соединению / ассоциации. При получении ответа NAction вы должны дождаться тайм-аута, настроенного в вашем приложении. Прежде чем истечет время ожидания, вы должны получить NEventReport.

Как хранилище возвращает мне N-СОБЫТИЕ-ОТЧЕТ вместе с результатами?

Когда вы получаете ответ NAction от SCP, это означает, что SCP говорит: «Хорошо, я понял, что вы хотите. Подождите, пока я получу ваши данные ...». Итак, подожди. Когда SCP готов со всеми необходимыми данными (контрольный список), он просто отправляет их обратно по той же ассоциации через NEventReport. Вы анализируете отчет, выполняете свою работу и отправляете ответ SCP со словами: «Хорошо, я с вами покончил». и закройте ассоциацию.

Осуществляет ли мой SCP AE некоторые функции SCP?

Нет (в большинстве случаев); вам не нужно реализовывать какие-либо функции SCP в обоих случаях (одиночная ассоциация / множественная ассоциация). Вы должны получить NEventReport при той же ассоциации, как упомянуто выше. DICOM работает по TCPIP. Концепция клиент / сервер в TCP ограничена только тем, кто устанавливает соединение и кто прослушивает соединения. Как только соединение установлено, любой может читать / записывать данные в сокет.

В редких случаях SCP отправляет NEventReport, инициируя новую ассоциацию самостоятельно. В этом случае SCU необходимо реализовать функции SCP. Насколько мне известно, эта модель не используется. Эту модель сложно реализовать как для SCP, так и для SCU. Также требуется несколько конфигураций, которых все стараются избегать. Так что этим можно было пренебречь. Я называю это редким, потому что я никогда (по крайней мере, пока) не сталкивался с такой реализацией. Но да; это действительный случай по уважительной причине.

Или мне нужно отправить запрос N-EVENT, чтобы получить N-EVENT-REPORT?

Нет; как сказано выше. См. это.

J.3.3 Уведомления
DICOM AE, которые заявляют о соответствии этому классу SOP в качестве SCP, должны вызывать запрос N-EVENT-REPORT. DICOM AE, которые заявляют о соответствии этому классу SOP в качестве SCU, должны иметь возможность получать запрос N-EVENT-REPORT.

При этом SCU должна иметь возможность обрабатывать NEventReport. Он НЕ выдаст его.

person Amit Joshi    schedule 16.02.2017
comment
Хороший ответ, но я не согласен в одном пункте: выдача ответа Storage Commitment по отдельной ассоциации, инициированной SCP, не такая уж редкость. Подробный удаленный архив, который я описал здесь stackoverflow.com/questions/42220918/ ведет себя именно так (по очевидным причинам). Что действительно очень необычно для ИМО, так это то, что SCP выдает ответ на предварительный запрос через отдельную ассоциацию, инициированную SCU (случай 3 в списке Рони). - person kritzel_sw; 17.02.2017
comment
@kritzel_sw: Согласен, что это действительный случай и по уважительной причине. Я сказал, что это необычно, потому что я никогда не встречал такой реализации. Немного отредактировал свой ответ, чтобы прояснить его. - person Amit Joshi; 17.02.2017

Возможны три различных последовательности событий. Я мог бы описать их здесь, но эта статья действительно отличная: Блог Рони DICOM

Мне нечего добавить к тому, что там написано.

person kritzel_sw    schedule 16.02.2017