DICOM: C-Move без C-Find (запрос извлечения SCU)

В DICOM ниже приведены классы, определенные для C-Find и C-Move at Study Root.

Study Root Query/Retrieve Information Model - FIND: 1.2.840.10008.5.1.4.1.2.2.1
Study Root Query/Retrieve Information Model - MOVE: 1.2.840.10008.5.1.4.1.2.2.2

Я реализовал Query Retrieve SCP и SCU в нескольких приложениях. Во всех этих случаях я всегда реализовывал оба класса. Сначала я делаю C-Find, чтобы получить список подходящих данных. Затем, основываясь на результате, я делаю (автоматически или вручную) C-Move, чтобы получить экземпляры. Все эти реализации работают нормально.

В последнее время я работаю над одним приложением, которое объединяет DICOM с другим частным протоколом для выполнения некоторых конкретных требований. Мне просто пришло в голову, можно ли напрямую делать C-Move без C-Find в качестве SCU?

Я уже знаю идентификатор (StudyInstanceUID) для извлечения, а также знаю, что он присутствует на SCP.

Я посмотрел в спецификации, но не смог найти ничего убедительного. Мне известно, что C-Find и C-Move могут выдаваться SCU SCP по различным соединениям / ассоциациям. Итак, на первый взгляд, то, что я думаю, выглядит возможным и законным.

Я работал со многими сторонними приложениями DICOM; ни один из них не реализует SCU, как я думаю. Все SCU реализуют C-Find и C-Move оба.

Вопрос:

Является ли DICOM законным и практичным для реализации команды C-Move SCU Retrieve без команды C-Find? Пожалуйста, укажите мне ссылку в спецификации, если это возможно.

1 ответ

Решение

Короткий ответ: Да, это совершенно законно в соответствии со спецификацией DICOM.

Длинный ответ: Давайте рассмотрим эталонную реализацию DICOM Q/R для DCMTK. Он предоставляет набор основных инструментов командной строки SCU, а именно findscu а также movescu, Идея состоит в том, чтобы передать вывод findscu в movescu построить действительный запрос C-MOVE (SCU).

По вашему требованию вы просто заменяете findscu шаг с частной реализацией, которая не полагается на публично определенный протокол C-FIND (SCU), но другим механизмом (расширение к DICOM).

Так что да, ваша реализация C-MOVE (SCU) совершенно верна, поскольку нет необходимости предоставлять C-FIND (SCU) во время этого запроса.


Я понимаю, что вы не пытаетесь сделать резервную копию всей базы данных с помощью C-MOVE (SCU), это был просто возможный сценарий, когда кто-то пытался бы использовать C-MOVE (SCU) без предварительного запроса с действительным C-FIND (SCU) результат.

Другие вопросы по тегам