PS3.18

DICOM PS3.18 2026b - Веб-сервисы

DICOM Standards Committee

Издание DICOM®


Содержание

Уведомление и отказ от ответственности
Предисловие
1. Область применения
2. Нормативные ссылки
Библиография
3. Определения
Глоссарий
4. Символы и сокращения
5. Соглашения
5.1. Синтаксис сообщений
5.1.1. Общие синтаксические правила для типов данных
5.1.2. Шаблоны URI
5.1.3. Правило списка ('#')
5.2. Структура раздела веб-сервиса
5.3. Таблицы полей заголовков запроса и ответа
6. Соответствие
7. Обзор веб-сервисов DICOM (Информативное)
7.1. Типы веб-сервисов DICOM
7.1.1. Веб-сервис URI
7.1.2. RESTful веб-сервисы и ресурсы
7.2. Ресурсы, представления и целевые URI
7.2.1. RESTful ресурсы DICOM
7.2.2. Представления
7.2.3. Целевые URI
8. Общие аспекты веб-сервисов DICOM
8.1. Транзакции
8.1.1. Синтаксис сообщения запроса
8.1.1.1. Метод
8.1.1.2. Целевой ресурс
8.1.1.3. Параметры запроса
8.1.1.4. Заголовки запроса
8.1.1.5. Полезная нагрузка запроса
8.1.2. Синтаксис сообщения ответа
8.1.2.1. Коды состояния
8.1.2.2. Заголовки ответа
8.1.2.3. Полезная нагрузка ответа
8.2. Целевые ресурсы
8.3. Параметры запроса
8.3.1. Синтаксис параметров запроса
8.3.1.1. Синтаксис параметров запроса
8.3.2. Использование параметров запроса
8.3.3. Параметры запроса согласования содержимого
8.3.3.1. Параметр запроса Accept
8.3.3.2. Параметр запроса набора символов
8.3.4. Параметры поискового запроса
8.3.4.1. Сопоставление атрибутов
8.3.4.1.1. Правила сопоставления
8.3.4.2. Нечёткое сопоставление имён лиц
8.3.4.3. Атрибуты, включённые в ответ
8.3.4.4. Пагинация ответа
8.3.4.4.1. Поведение пагинации
8.3.4.5. Сопоставление пустых значений
8.3.4.6. Сопоставление множественных значений
8.3.5. Параметры запроса отрисовки
8.3.5.1. Параметры запроса для отрисованных ресурсов
8.3.5.1.1. Аннотация изображения
8.3.5.1.2. Качество изображения
8.3.5.1.3. Масштабирование области просмотра
8.3.5.1.4. Оконная обработка
8.3.5.1.5. Профиль ICC
8.3.5.1.6. Поведение состояния представления
8.3.5.2. Параметры запроса для миниатюр
8.3.5.3. Параметры запроса для ресурсов отрисованного объёма MPR и ресурсов отрисованного 3D-объёма
8.3.5.3.1. Ссылка на входной объём
8.3.5.3.2. Совпадение
8.3.5.3.3. Метод отрисовки
8.3.5.3.4. Ориентация
8.3.5.3.5. Позиция точки наблюдения
8.3.5.3.6. Направление взгляда точки наблюдения
8.3.5.3.7. Направление вверх точки наблюдения
8.3.5.3.8. Толщина среза MPR
8.3.5.3.9. Диапазон поворота
8.3.5.3.10. Координаты точек объёмной кривой
8.3.5.3.11. Размер шага анимации
8.3.5.3.12. Частота анимации
8.3.5.3.13. Метаданные отрисованного объёма
8.4. Поля заголовков
8.4.1. Поля заголовков согласования содержимого
8.4.1.1. Accept
8.4.1.1.1. Параметр набора символов типа медиа
8.4.2. Поля заголовков представления содержимого
8.4.3. Поля заголовков полезной нагрузки
8.5. Коды состояния
8.6. Полезные нагрузки
8.6.1. Структура полезной нагрузки
8.6.1.1. Одночастевая полезная нагрузка
8.6.1.2. Многочастевая полезная нагрузка
8.6.1.2.1. Синтаксис многочастевой полезной нагрузки
8.6.2. Представления DICOM
8.6.2.1. Ограничения веб-сервиса
8.6.3. Отчёт о состоянии
8.7. Типы медиа
8.7.1. Многочастевые типы медиа
8.7.2. Категории ресурсов DICOM
8.7.3. Наборы типов медиа DICOM
8.7.3.1. Типы медиа экземпляров
8.7.3.2. Типы медиа метаданных
8.7.3.3. Типы медиа объёмных данных
8.7.3.3.1. Типы медиа несжатых объёмных данных
8.7.3.3.2. Типы медиа сжатых объёмных данных
8.7.3.4. Синтаксис передачи
8.7.3.5. Синтаксис типов медиа
8.7.3.5.1. Многочастевые типы медиа
8.7.3.5.2. Параметр синтаксиса передачи
8.7.3.5.3. Параметр набора символов
8.7.3.6. Параметр запроса синтаксиса передачи
8.7.3.7. Допустимые синтаксисы передачи
8.7.4. Типы медиа отрисованных ресурсов
8.7.5. Допустимые типы медиа
8.7.6. Параметр запроса Accept
8.7.7. Поле заголовка Accept
8.7.8. Выбранный тип медиа и синтаксис передачи
8.7.8.1. Выбранный тип медиа
8.7.8.2. Выбранный синтаксис передачи
8.7.9. Поле заголовка Content-Type
8.8. Наборы символов
8.8.1. Допустимые наборы символов
8.8.2. Параметр запроса набора символов
8.8.3. Параметры набора символов типа медиа
8.8.4. Поле заголовка Accept-charset
8.8.5. Выбранный набор символов
8.9. Транзакция извлечения возможностей
8.9.1. Запрос
8.9.1.1. Ресурс
8.9.1.2. Параметры запроса
8.9.1.3. Заголовки запроса
8.9.1.4. Полезная нагрузка запроса
8.9.2. Поведение
8.9.3. Ответ
8.9.3.1. Коды состояния
8.9.3.1.1. Заголовки ответа
8.9.3.2. Полезная нагрузка ответа
8.9.4. Типы медиа
8.10. Уведомления
8.10.1. Обзор
8.10.2. Соответствие
8.10.3. Обзор транзакции
8.10.4. Транзакция открытия соединения для уведомлений
8.10.4.1. Запрос
8.10.4.1.1. Целевые ресурсы
8.10.4.1.2. Параметры запроса
8.10.4.1.3. Заголовки запроса
8.10.4.1.4. Полезная нагрузка запроса
8.10.4.2. Поведение
8.10.4.3. Ответ
8.10.4.3.1. Коды состояния
8.10.4.3.2. Заголовки ответа
8.10.4.3.3. Полезная нагрузка ответа
8.10.5. Транзакция отправки отчёта о событии
8.10.5.1. Запрос
8.10.5.1.1. Полезная нагрузка запроса
8.10.5.2. Поведение
8.10.5.3. Ответ
8.11. Безопасность и конфиденциальность
9. Сервис URI
9.1. Обзор
9.1.1. Описания ресурсов
9.1.2. Общие параметры запроса
9.1.2.1. Обязательные параметры запроса
9.1.2.1.1. Тип запроса
9.1.2.1.2. UID исследования
9.1.2.1.3. UID серии
9.1.2.1.4. UID экземпляра
9.1.2.2. Необязательные параметры запроса
9.1.2.2.1. Допустимые типы медиа
9.1.2.2.2. Допустимые наборы символов
9.1.3. Общие типы медиа
9.2. Соответствие
9.3. Обзор транзакций
9.4. Транзакция извлечения экземпляра DICOM
9.4.1. Запрос
9.4.1.1. Целевые ресурсы
9.4.1.2. Параметры запроса
9.4.1.2.1. Анонимизация
9.4.1.2.2. Аннотация
9.4.1.2.3. Синтаксис передачи
9.4.1.3. Заголовки запроса
9.4.1.4. Полезная нагрузка запроса
9.4.2. Поведение
9.4.2.1. Тип запроса
9.4.2.2. UID исследования, серии и экземпляра
9.4.2.3. Анонимизация
9.4.2.4. UID синтаксиса передачи
9.4.3. Ответ
9.4.3.1. Коды состояния
9.4.3.2. Заголовки ответа
9.4.3.3. Полезная нагрузка ответа
9.5. Транзакция извлечения отрисованного экземпляра
9.5.1. Запрос
9.5.1.1. Целевой ресурс
9.5.1.2. Параметры запроса
9.5.1.2.1. Номер кадра
9.5.1.2.2. Аннотация изображения
9.5.1.2.3. Качество изображения
9.5.1.2.4. Область просмотра
9.5.1.2.4.1. Строки области просмотра
9.5.1.2.4.2. Столбцы области просмотра
9.5.1.2.5. Область исходного изображения
9.5.1.2.6. Оконная обработка
9.5.1.2.6.1. Центр окна
9.5.1.2.6.2. Ширина окна
9.5.1.2.7. Состояние представления
9.5.1.2.7.1. UID серии состояния представления
9.5.1.2.7.2. UID состояния представления
9.5.1.3. Заголовки запроса
9.5.1.4. Полезная нагрузка запроса
9.5.2. Поведение
9.5.2.1. Номер кадра
9.5.2.2. Оконная обработка
9.5.2.3. Состояние представления
9.5.2.4. Область исходного изображения
9.5.2.5. Область просмотра
9.5.3. Ответ
9.5.3.1. Коды состояния
9.5.3.2. Заголовки ответа
9.5.3.3. Полезная нагрузка ответа
10. Сервис исследований и ресурсы
10.1. Обзор
10.1.1. Описания ресурсов
10.1.2. Общие параметры запроса
10.1.3. Общие типы медиа
10.2. Соответствие
10.3. Обзор транзакций
10.4. Транзакция извлечения
10.4.1. Запрос
10.4.1.1. Целевые ресурсы
10.4.1.1.1. Ресурсы экземпляров
10.4.1.1.2. Ресурсы метаданных
10.4.1.1.3. Отрисованные ресурсы
10.4.1.1.4. Ресурсы миниатюр
10.4.1.1.5. Ресурсы объёмных данных
10.4.1.1.6. Ресурсы пиксельных данных
10.4.1.1.7. Ресурсы отрисованного объёма MPR
10.4.1.1.8. Ресурсы отрисованного 3D-объёма
10.4.1.2. Параметры запроса
10.4.1.3. Заголовки запроса
10.4.1.4. Полезная нагрузка запроса
10.4.2. Поведение
10.4.3. Ответ
10.4.3.1. Коды состояния
10.4.3.2. Заголовки ответа
10.4.3.3. Полезная нагрузка ответа
10.4.3.3.1. Полезная нагрузка ресурса экземпляров
10.4.3.3.2. Полезная нагрузка ресурса метаданных
10.4.3.3.3. Полезная нагрузка отрисованного ресурса
10.4.3.3.4. Полезная нагрузка ресурса миниатюр
10.4.3.3.5. Полезная нагрузка ресурса объёмных данных
10.4.3.3.6. Полезная нагрузка ресурса пиксельных данных
10.4.3.3.7. Полезная нагрузка ресурса отрисованного объёма
10.4.4. Типы медиа
10.4.5. Заявление о соответствии
10.5. Транзакция сохранения
10.5.1. Запрос
10.5.1.1. Целевые ресурсы
10.5.1.1.1. Ресурсы DICOM
10.5.1.2. Параметры запроса
10.5.1.3. Заголовки запроса
10.5.1.4. Полезная нагрузка запроса
10.5.2. Поведение
10.5.3. Ответ
10.5.3.1. Коды состояния
10.5.3.2. Заголовки ответа
10.5.3.3. Полезная нагрузка ответа
10.5.4. Типы медиа
10.5.5. Заявление о соответствии
10.6. Транзакция поиска
10.6.1. Запрос
10.6.1.1. Целевые ресурсы
10.6.1.2. Параметры запроса
10.6.1.2.1. Требования к парам атрибут/значение
10.6.1.2.2. Типы и требования поисковых ключей
10.6.1.2.3. Обязательные атрибуты сопоставления
10.6.1.2.4. Необязательные атрибуты запроса репозитория
10.6.1.3. Заголовки запроса
10.6.1.4. Полезная нагрузка запроса
10.6.2. Поведение
10.6.3. Ответ
10.6.3.1. Коды состояния
10.6.3.2. Заголовки ответа
10.6.3.3. Полезная нагрузка ответа
10.6.3.3.1. Ресурс исследования
10.6.3.3.2. Ресурсы серий
10.6.3.3.3. Ресурсы экземпляров
10.6.4. Типы медиа
10.6.5. Заявление о соответствии
11. Сервис рабочего списка и ресурсы
11.1. Обзор
11.1.1. Описания ресурсов
11.1.1.1. Рабочие элементы
11.1.1.2. Терминология веб-сервисов и DIMSE
11.1.2. Общие параметры запроса
11.1.3. Общие типы медиа
11.2. Соответствие
11.3. Обзор транзакций
11.4. Транзакция создания рабочего элемента
11.4.1. Запрос
11.4.1.1. Целевые ресурсы
11.4.1.2. Параметры запроса
11.4.1.3. Заголовки запроса
11.4.1.4. Полезная нагрузка запроса
11.4.2. Поведение
11.4.3. Ответ
11.4.3.1. Коды состояния
11.4.3.2. Заголовки ответа
11.4.3.3. Полезная нагрузка ответа
11.5. Транзакция извлечения рабочего элемента
11.5.1. Запрос
11.5.1.1. Целевые ресурсы
11.5.1.2. Параметры запроса
11.5.1.3. Заголовки запроса
11.5.1.4. Полезная нагрузка запроса
11.5.2. Поведение
11.5.3. Ответ
11.5.3.1. Коды состояния
11.5.3.2. Заголовки ответа
11.5.3.3. Полезная нагрузка ответа
11.6. Транзакция обновления рабочего элемента
11.6.1. Запрос
11.6.1.1. Целевые ресурсы
11.6.1.2. Параметры запроса
11.6.1.3. Заголовки запроса
11.6.1.4. Полезная нагрузка запроса
11.6.2. Поведение
11.6.3. Ответ
11.6.3.1. Коды состояния
11.6.3.2. Заголовки ответа
11.6.3.3. Полезная нагрузка ответа
11.7. Транзакция изменения состояния рабочего элемента
11.7.1. Запрос
11.7.1.1. Целевые ресурсы
11.7.1.2. Параметры запроса
11.7.1.3. Заголовки запроса
11.7.1.4. Полезная нагрузка запроса
11.7.2. Поведение
11.7.3. Ответ
11.7.3.1. Коды состояния
11.7.3.2. Заголовки ответа
11.7.3.3. Полезная нагрузка ответа
11.8. Транзакция отмены запроса
11.8.1. Запрос
11.8.1.1. Целевые ресурсы
11.8.1.2. Параметры запроса
11.8.1.3. Заголовки запроса
11.8.1.4. Полезная нагрузка запроса
11.8.2. Поведение
11.8.3. Ответ
11.8.3.1. Коды состояния
11.8.3.2. Заголовки ответа
11.8.3.3. Полезная нагрузка ответа
11.9. Транзакция поиска
11.9.1. Запрос
11.9.1.1. Целевые ресурсы
11.9.1.2. Параметры запроса
11.9.1.3. Заголовки запроса
11.9.1.4. Полезная нагрузка запроса
11.9.2. Поведение
11.9.3. Ответ
11.9.3.1. Коды состояния
11.9.3.2. Заголовки ответа
11.9.3.3. Полезная нагрузка ответа
11.10. Транзакция подписки
11.10.1. Запрос
11.10.1.1. Целевые ресурсы
11.10.1.2. Параметры запроса
11.10.1.3. Заголовки запроса
11.10.1.4. Полезная нагрузка запроса
11.10.2. Поведение
11.10.3. Ответ
11.10.3.1. Коды состояния
11.10.3.2. Заголовки ответа
11.10.3.3. Полезная нагрузка ответа
11.11. Транзакция отписки
11.11.1. Запрос
11.11.1.1. Целевые ресурсы
11.11.1.2. Параметры запроса
11.11.1.3. Заголовки запроса
11.11.1.4. Полезная нагрузка запроса
11.11.2. Поведение
11.11.3. Ответ
11.11.3.1. Коды состояния
11.11.3.2. Заголовки ответа
11.11.3.3. Полезная нагрузка ответа
11.12. Транзакция приостановки глобальной подписки
11.12.1. Запрос
11.12.1.1. Целевые ресурсы
11.12.1.2. Параметры запроса
11.12.1.3. Заголовки запроса
11.12.1.4. Полезная нагрузка запроса
11.12.2. Поведение
11.12.3. Ответ
11.12.3.1. Коды состояния
11.12.3.2. Заголовки ответа
11.12.3.3. Полезная нагрузка ответа
11.13. Отчёты о событиях рабочих элементов
12. Сервис экземпляров, не связанных с пациентом, и ресурсы
12.1. Обзор
12.1.1. Описания ресурсов
12.1.2. Общие параметры запроса
12.1.3. Общие типы медиа
12.2. Соответствие
12.3. Обзор транзакций
12.4. Транзакция извлечения
12.4.1. Запрос
12.4.1.1. Целевые ресурсы
12.4.1.2. Параметры запроса
12.4.1.3. Заголовки запроса
12.4.1.4. Полезная нагрузка запроса
12.4.2. Поведение
12.4.3. Ответ
12.4.3.1. Коды состояния
12.4.3.2. Заголовки ответа
12.4.3.3. Полезная нагрузка ответа
12.5. Транзакция сохранения
12.5.1. Запрос
12.5.1.1. Целевые ресурсы
12.5.1.2. Параметры запроса
12.5.1.3. Заголовки запроса
12.5.1.4. Полезная нагрузка запроса
12.5.2. Поведение
12.5.3. Ответ
12.5.3.1. Коды состояния
12.5.3.2. Заголовки ответа
12.5.3.3. Полезная нагрузка ответа
12.6. Транзакция поиска
12.6.1. Запрос
12.6.1.1. Целевые ресурсы
12.6.1.2. Параметры запроса
12.6.1.3. Заголовки запроса
12.6.1.4. Полезная нагрузка запроса
12.6.2. Поведение
12.6.3. Ответ
12.6.3.1. Коды состояния
12.6.3.2. Заголовки ответа
12.6.3.3. Полезная нагрузка ответа
13. Сервис подтверждения сохранения и ресурсы
13.1. Обзор
13.1.1. Описания ресурсов
13.1.2. Общие параметры запроса
13.1.3. Общие типы медиа
13.2. Соответствие
13.3. Обзор транзакций
13.4. Транзакция запроса
13.4.1. Запрос
13.4.1.1. Целевой ресурс
13.4.1.2. Параметры запроса
13.4.1.3. Заголовки запроса
13.4.1.4. Полезная нагрузка запроса
13.4.2. Поведение
13.4.3. Ответ
13.4.3.1. Коды состояния
13.4.3.2. Заголовки ответа
13.4.3.3. Полезная нагрузка ответа
13.5. Транзакция проверки результата
13.5.1. Запрос
13.5.1.1. Целевой ресурс
13.5.2.2. Параметры запроса
13.5.2.3. Заголовки запроса
13.5.1.4. Полезная нагрузка запроса
13.5.2. Поведение
13.5.3. Ответ
13.5.3.1. Коды состояния
13.5.3.2. Заголовки ответа
13.5.3.3. Полезная нагрузка ответа
14. Сервис запланированных этапов процедуры модальности и ресурсы
14.1. Обзор
14.1.1. Описания ресурсов
14.1.2. Общие параметры запроса
14.1.3. Общие типы медиа
14.2. Соответствие
14.3. Обзор транзакций
14.4. Транзакция поиска
14.4.1. Запрос
14.4.1.1. Целевые ресурсы
14.4.1.2. Параметры запроса
14.4.1.3. Заголовки запроса
14.4.1.4. Полезная нагрузка запроса
14.4.2. Поведение
14.4.3. Ответ
14.4.3.1. Коды состояния
14.4.3.2. Заголовки ответа
14.4.3.3. Полезная нагрузка ответа
15. Сервис выполненных этапов процедуры модальности и ресурсы
15.1. Обзор
15.1.1. Описания ресурсов
15.1.2. Общие параметры запроса
15.1.3. Общие типы медиа
15.2. Соответствие
15.3. Обзор транзакций
15.4. Транзакция создания
15.4.1. Запрос
15.4.1.1. Целевой ресурс
15.4.1.2. Параметры запроса
15.4.1.3. Заголовки запроса
15.4.1.4. Полезная нагрузка запроса
15.4.2. Поведение
15.4.3. Ответ
15.4.3.1. Коды состояния
15.4.3.2. Заголовки ответа
15.4.3.3. Полезная нагрузка ответа
15.5. Транзакция обновления
15.5.1. Запрос
15.5.1.1. Целевые ресурсы
15.5.1.2. Параметры запроса
15.5.1.3. Заголовки запроса
15.5.1.4. Полезная нагрузка запроса
15.5.2. Поведение
15.5.3. Ответ
15.5.3.1. Коды состояния
15.5.3.2. Заголовки ответа
15.5.3.3. Полезная нагрузка ответа
15.6. Транзакция извлечения
15.6.1. Запрос
15.6.1.1. Целевые ресурсы
15.6.1.2. Параметры запроса
15.6.1.3. Заголовки запроса
15.6.1.4. Полезная нагрузка запроса
15.6.2. Поведение
15.6.3. Ответ
15.6.3.1. Коды состояния
15.6.3.2. Заголовки ответа
15.6.3.3. Полезная нагрузка ответа
A. Collected ABNF
B. Examples (Informative)
B.1. Извлечение простого изображения DICOM в JPEG
B.2. Извлечение DICOM SR в HTML
B.3. Извлечение области изображения DICOM
B.4. Извлечение в виде типа медиа DICOM
B.5. Запрос исследований за определённый день с ограничением количества результатов, начиная со смещения 0
B.6. Запрос серий из определённого исследования, возвращаемые данные в JSON
B.7. Запрос экземпляров из серии, возвращаемые данные в XML
B.8. Извлечение экземпляра в формате DICOM
B.9. Извлечение экземпляра как отрисованного изображения JPEG
B.10. Извлечение экземпляра как объёмных данных
B.11. Извлечение объекта изображения DICOM с использованием базового 8-битного синтаксиса передачи JPEG с потерями
B.12. Отрисовка области изображения DICOM, преобразованного в JPEG2000, с вписанными в изображение аннотациями, содержащими имя пациента и техническую информацию, с использованием определённой области просмотра и оконной обработки
B.13. Извлечение DICOM SR в формате HTML
B.14. Извлечение DICOM SR в формате JSON (только метаданные)
B.15. Проверка возможности извлечения метаданных в формате XML
B.16. Извлечение метаданных в формате XML с использованием параметра "accept"
B.17. Извлечение кадров DICOM как "octet-stream"
B.18. Извлечение кадров DICOM, отрисованных в типе медиа GIF
B.19. Извлечение миниатюры для серии в типе медиа JPEG
B.20. Извлечение миниатюры для одного кадра в типе медиа PNG
B.21. Сохранение одного экземпляра DICOM
B.22. Сохранение нескольких экземпляров DICOM
B.23. Сохранение нескольких файлов JPEG
B.24. Получение всех рабочих элементов
B.25. Отмена рабочего элемента
B.26. Определение метода WADL для описания возможностей исходного сервера, поддерживающего поиск исследований
B.27. Запрос подтверждения сохранения для нескольких экземпляров с JSON
B.28. Запрос подтверждения сохранения для нескольких экземпляров с XML и ссылками на UID экземпляров исследования и серии
B.29. Запрос подтверждения сохранения с составным HTTP-запросом для экземпляров из нескольких исследований
B.30. Двунаправленный прокси для подтверждения сохранения
B.31. Отрисовка серии как 3D-объёма
B.32. Отрисовка многокадрового экземпляра как 3D-объёмного изображения
B.33. Отрисовка исследования как MPR
B.34. Отрисовка одной фазы многофазной серии как MIP
B.35. Отрисовка объёмного состояния представления объёмной отрисовки
B.36. Поиск запланированных этапов процедуры модальности с использованием типа медиа JSON
B.37. Создание выполненного этапа процедуры модальности с использованием типа содержимого JSON
B.38. Обновление выполненного этапа процедуры модальности с созданными данными изображения с использованием типа содержимого JSON
B.39. Завершение выполненного этапа процедуры модальности с использованием типа содержимого JSON
B.40. Извлечение выполненного этапа процедуры модальности с использованием типа медиа и типа содержимого JSON
B.40.1. Возврат всех атрибутов
B.40.2. Возврат только определённых атрибутов
B.41. Двунаправленные прокси для поиска запланированных этапов процедуры модальности
B.42. Двунаправленные прокси для управления выполненным этапом процедуры модальности
B.42.1. Создание
B.42.2. Обновление
B.42.3. Извлечение
C. Retired
D. IANA Character Set Mapping
E. Retired
F. DICOM JSON Model
F.1. Введение в JavaScript Object Notation (JSON)
F.2. Модель DICOM JSON
F.2.1. Структура множественных результатов
F.2.1.1. Примеры
F.2.1.1.1. Собственная модель DICOM
F.2.1.1.2. Модель DICOM JSON
F.2.2. Структура объектов модели DICOM JSON
F.2.3. Представление значений DICOM JSON
F.2.4. Кратность значений DICOM JSON
F.2.5. Нулевые значения модели DICOM JSON
F.2.6. BulkDataURI
F.2.7. InlineBinary
F.3. Преобразование в другие форматы DICOM
F.3.1. XML собственной модели DICOM
F.4. Пример модели DICOM JSON
F.5. Удалён
G. WADL JSON Representation
G.1. Введение
G.2. XML-элементы
G.2.1. Элементы Doc
G.2.2. Уникальные элементы
G.2.3. Повторяемые элементы
H. Capabilities Description
I. Store Instances Response Module
I.1. Тело ответного сообщения
I.2. Описание атрибутов ответа на сохранение экземпляров
I.2.1. Причина предупреждения
I.2.2. Причина отказа
I.3. Пример тела ответного сообщения
J. Storage Commitment Modules
J.1. Модуль запроса подтверждения сохранения
J.2. Модуль ответа подтверждения сохранения
K. Rendered Volume Response Module
K.1. Тело ответного сообщения

Список рисунков

7-1. Модель связи DICOM для веб-сервисов
8.1-1. Диаграмма взаимодействия транзакций
8.6-1. Соответствие между частями сообщений IOD и HTTP
13.1-1. Процесс сервиса подтверждения сохранения
B.30-1. DIMSE-прокси подтверждения сохранения для исходного сервера DICOMweb
B.30-2. DICOMweb-прокси подтверждения сохранения для DIMSE SCP
B.41-1. DIMSE-прокси запланированных этапов процедуры модальности для исходного сервера DICOMweb
B.41-2. DICOMweb-прокси запланированных этапов процедуры модальности для DIMSE SCP
B.42.1-1. DIMSE-прокси создания MPPS для исходного сервера DICOMweb
B.42.1-2. DICOMweb-прокси создания MPPS для DIMSE SCP
B.42.2-1. DIMSE-прокси обновления MPPS для исходного сервера DICOMweb
B.42.2-2. DICOMweb-прокси обновления MPPS для DIMSE SCP
B.42.3-1. DIMSE-прокси извлечения MPPS для исходного сервера DICOMweb
B.42.3-2. DICOMweb-прокси извлечения MPPS для DIMSE SCP

Список таблиц

5.1-1. ABNF для общих синтаксических значений
5.2-1. Заголовки запроса
5.2-2. Заголовки ответа
8.3.1-1. ABNF для параметра запроса
8.3.2-1. Использование параметров запроса
8.3.2-2. Пример таблицы параметров запроса
8.3.4-1. Синтаксис параметров запроса
8.3.5-1. Параметры запроса извлечения отрисованных ресурсов
8.3.5-2. Параметры запроса миниатюр
8.3.5-3. Параметры запроса извлечения отрисованного объёма
8.4.1-1. Поля заголовков согласования содержимого
8.4.2-1. Поля заголовков представления содержимого
8.4.3-1. Поля заголовков полезной нагрузки
8.5-1. Status Code Meaning
8.6.1-1. Поля заголовков составных частей
8.7.2-1. Категории ресурсов
8.7.3-1. Определение требований к типу медиа
8.7.3-2. UID синтаксисов передачи для типов медиа application/dicom
8.7.3-3. Типы медиа для метаданных
8.7.3-4. UID синтаксисов передачи для несжатых объёмных данных
8.7.3-5. Типы медиа и UID синтаксисов передачи для сжатых объёмных данных
8.7.4-1. Типы медиа отрисованных ресурсов по категориям ресурсов
8.7.8-1. Пример QValue типа медиа
8.9.1-1. Заголовки запроса
8.9.3-1. Status Code Meaning
8.9.3-2. Заголовки ответа
8.10.3-1. Транзакции подсистемы уведомлений
8.10.4-1a. Ресурсы транзакции открытия соединения для уведомлений
8.10.4-1. Заголовки запроса
8.10.4-2. Status Code Meaning
8.10.4-3. Заголовки ответа
9.1.2-1. Обязательные параметры запроса
9.1.2-2. Необязательные параметры запроса
9.4.1-1. Необязательные параметры запроса
9.4.1-2. Заголовки запроса
9.4.3-1. Status Code Meaning
9.4.3-2. Заголовки ответа
9.5.1-1. Параметры запроса
9.5.1-2. Заголовки запроса
9.5.3-1. Status Code Meaning
9.5.3-2. Заголовки ответа
10.1-1. Ресурсы и описания
10.1.2-1. Общие параметры запроса
10.3-1. Транзакции сервиса исследований
10.3-2. Ресурсы по транзакциям
10.4.1-1. Ресурсы экземпляров транзакции извлечения
10.4.1-2. Ресурсы метаданных транзакции извлечения
10.4.1-3. Отрисованные ресурсы транзакции извлечения
10.4.1-4. Ресурсы миниатюр транзакции извлечения
10.4.1.5-1. Ресурсы объёмных данных транзакции извлечения
10.4.1.6-1. Ресурсы пиксельных данных транзакции извлечения
10.4.1.7-1. Ресурсы отрисованного объёма MPR транзакции извлечения
10.4.1.8-1. Ресурсы отрисованного 3D-объёма транзакции извлечения
10.4.1-5. Параметры запроса по ресурсам
10.4.1-6. Заголовки запроса
10.4.3-1. Status Code Meaning
10.4.3-2. Заголовки ответа
10.4.4-1. Типы медиа по умолчанию, обязательные и необязательные
10.5.1-1. Ресурсы DICOM транзакции сохранения
10.5.1-2. Заголовки запроса
10.5.2-1. Преобразование типов медиа в синтаксисы передачи
10.5.3-1. Status Code Meaning
10.5.3-2. Заголовки ответа
10.5.4-1. Типы медиа по умолчанию, обязательные и необязательные
10.6.1-1. Ресурсы транзакции поиска
10.6.1-2. Описания ресурсов поиска
10.6.1-3. Типы поисковых ключей
10.6.1-4. Требуемые уровни IE по ресурсам
10.6.1-5. Обязательные атрибуты сопоставления
10.6.1.2.4-1. Требуемые уровни IE по ресурсам
10.6.1-6. Заголовки запроса
10.6.3-1. Status Code Meaning
10.6.3-2. Заголовки ответа
10.6.3-3. Полезная нагрузка ответа поиска ресурса исследования
10.6.3-4. Полезная нагрузка ответа поиска ресурсов серий
10.6.3-5. Полезная нагрузка ответа поиска ресурсов экземпляров
10.6.4-1. Типы медиа по умолчанию, обязательные и необязательные
11.1.1-1. Ресурсы, шаблоны URI и описания
11.1.1-2. Соответствие терминологии RESTful и DIMSE
11.1.2-1. Общие параметры запроса
11.1.3-1. Типы медиа по умолчанию, обязательные и необязательные
11.3-1. Методы сервиса рабочего списка и шаблоны ресурсов
11.4.1-1. Ресурсы транзакции создания
11.4.1-3. Заголовки запроса
11.4.3-1. Status Code Meaning
11.4.3-2. Заголовки ответа
11.5.1-1. Заголовки запроса
11.5.3-1. Status Code Meaning
11.5.3-2. Заголовки ответа
11.6.1-1. Заголовки запроса
11.6.3-1. Status Code Meaning
11.6.3-2. Заголовки ответа
11.7.2.1-1. Параметры запроса
11.7.1-1. Заголовки запроса
11.7.3-1. Status Code Meaning
11.7.3-2. Заголовки ответа
11.8.1-1. Заголовки запроса
11.8.3-1. Status Code Meaning
11.8.3-2. Заголовки ответа
11.9.1-1. Заголовки запроса
11.9.3-1. Status Code Meaning
11.9.3-2. Заголовки ответа
11.10.1-1. Ресурсы транзакции подписки
11.10.1-2. Параметры запроса по ресурсам
11.10.3-1. Status Code Meaning
11.10.3-2. Заголовки ответа
11.11.1-1. Ресурсы транзакции отписки
11.11.3-1. Status Code Meaning
11.11.3-2. Заголовки ответа
11.12.1-1. Ресурсы транзакции приостановки глобальной подписки
11.12.3-1. Status Code Meaning
11.12.3-2. Заголовки ответа
12.1.1-1. Категории ресурсов, шаблоны URI и описания
12.1.2-1. Общие параметры запроса
12.1.3-1. Типы медиа по умолчанию, обязательные и необязательные
12.2-1. Обязательные и необязательные транзакции
12.3-1. Транзакции сервиса NPI
12.3-2. Ресурсы по транзакциям
12.4.1-1. Retrieve Transaction Resources
12.4.1-2. Заголовки запроса
12.4.3-1. Status Code Meaning
12.4.3-2. Заголовки ответа
12.5.1-1. Ресурсы транзакции сохранения
12.5.1-2. Заголовки запроса
12.5.3-1. Status Code Meaning
12.5.3-2. Заголовки ответа
12.6.1-1. Ресурсы транзакции поиска
12.6.1-2. Атрибуты поиска ресурсов NPI
12.6.1-3. Заголовки запроса
12.6.3-1. Status Code Meaning
12.6.3-2. Заголовки ответа
13.1.1-1. Описания ресурсов сервиса подтверждения сохранения
13.1.2-1. Общие параметры запроса
13.1.3-1. Типы медиа по умолчанию, обязательные и необязательные
13.2-1. Обязательные и необязательные транзакции
13.3-1. Транзакции сервиса подтверждения сохранения
13.4.1-2. Заголовки запроса
13.4.3-1. Status Code Meaning
13.4.3-2. Заголовки ответа
13.5.1-2. Заголовки проверки результата
13.5.3-1. Status Code Meaning
14.1.1-1. Ресурсы, шаблоны URI и описания
14.1.2-1. Общие параметры запроса
14.1.3-1. Типы медиа по умолчанию, обязательные и необязательные
14.2-1. Обязательные и необязательные транзакции
14.3-1. Транзакции сервиса запланированных этапов процедуры модальности
14.3-2. Соответствие транзакций сервиса запланированных этапов процедуры модальности и операций DIMSE
14.4.1-1. Заголовки запроса
14.4.3-1. Status Code Meaning
14.4.3-2. Заголовки ответа
15.1.1-1. Описания ресурсов сервиса выполненных этапов процедуры модальности
15.1.2-1. Общие параметры запроса
15.1.3-1. Типы медиа по умолчанию, обязательные и необязательные
15.2-1. Обязательные и необязательные транзакции
15.3-1. Транзакции сервиса выполненных этапов процедуры модальности
15.3-2. Ресурсы по транзакциям
15.3-3. Соответствие транзакций сервиса выполненных этапов процедуры модальности и операций DIMSE
15.4.1-1. Заголовки запроса
15.4.3-1. Status Code Meaning
15.4.3-2. Заголовки ответа
15.5.1.2-1. Параметры запроса по ресурсам
15.5.1-1. Заголовки запроса
15.5.3-1. Status Code Meaning
15.5.3-2. Заголовки ответа
15.6.1-1. Заголовки запроса
15.6.3-1. Status Code Meaning
15.6.3-2. Заголовки ответа
D-1. Отображение наборов символов IANA
F.2.3-1. Соответствие типов данных VR DICOM типам JSON
F.3.1-1. Соответствие XML и JSON
H-1. Ресурсы и методы
I.1-1. Атрибуты модуля ответа на сохранение экземпляров
I.2-1. Значения причины предупреждения ответа на сохранение экземпляров
I.2-2. Значения причины отказа ответа на сохранение экземпляров
J.1-1. Модуль запроса подтверждения сохранения
J.2-1. Модуль ответа подтверждения сохранения
K.1-1. Атрибуты модуля ответа отрисованного объёма

Уведомление и отказ от ответственности

Информация в настоящей публикации была признана технически обоснованной по консенсусу лиц, участвовавших в разработке и утверждении документа на момент его создания. Консенсус не обязательно означает единогласное согласие среди всех лиц, участвующих в разработке данного документа.

Стандарты и руководящие публикации NEMA, одной из которых является документ, содержащийся в настоящем издании, разрабатываются в рамках добровольного процесса разработки стандартов на основе консенсуса. Этот процесс объединяет добровольцев и/или выявляет мнения лиц, заинтересованных в теме, охватываемой данной публикацией. Хотя NEMA управляет процессом и устанавливает правила для обеспечения справедливости при достижении консенсуса, она не пишет документ и не проводит независимое тестирование, оценку или проверку точности или полноты какой-либо информации или обоснованности каких-либо суждений, содержащихся в её стандартах и руководящих публикациях.

NEMA отказывается от ответственности за любые телесные повреждения, имущественный или иной ущерб любого характера, будь то специальный, косвенный, последующий или компенсаторный, прямо или косвенно вытекающий из публикации, использования, применения или reliance на данный документ. NEMA отказывается и не даёт никаких гарантий, явных или подразумеваемых, относительно точности или полноты любой информации, опубликованной в данном документе, и отказывается и не гарантирует, что информация в данном документе будет отвечать каким-либо конкретным целям или потребностям. NEMA не берёт на себя обязательств по гарантированию производительности продуктов или услуг любого отдельного производителя или продавца на основании данного стандарта или руководства.

Публикуя и предоставляя доступ к данному документу, NEMA не берёт на себя оказание профессиональных или иных услуг для какого-либо лица или организации или от их имени, а также NEMA не берёт на себя выполнение каких-либо обязанностей, возложенных на какое-либо лицо или организацию перед третьими лицами. Любой использующий данный документ должен полагаться на собственное независимое суждение или, в зависимости от обстоятельств, обращаться за консультацией к компетентному специалисту для определения меры разумной осторожности в любой данной ситуации. Информация и другие стандарты по теме, охватываемой данной публикацией, могут быть получены из других источников, которые пользователь может пожелать проконсультировать для получения дополнительных мнений или информации, не охваченных данной публикацией.

NEMA не имеет полномочий и не берёт на себя контроль за соблюдением или обеспечение соблюдения содержания данного документа. NEMA не сертифицирует, не тестирует и не инспектирует продукты, конструкции или установки в целях безопасности или охраны здоровья. Любая сертификация или иное заявление о соответствии любой информации, касающейся безопасности или здоровья, содержащейся в данном документе, не может быть приписано NEMA и является исключительно ответственностью лица, проводящего сертификацию или делающего заявление.

Предисловие

Настоящий стандарт DICOM был разработан в соответствии с процедурами Комитета по стандартам DICOM.

Стандарт DICOM структурирован как многочастный документ с использованием руководящих принципов, установленных в [ISO/IEC Directives, Part 2].

PS3.1 следует использовать в качестве базовой ссылки для текущих частей настоящего Стандарта.

DICOM® является зарегистрированным товарным знаком National Electrical Manufacturers Association для её стандартных публикаций, относящихся к цифровой передаче медицинской информации, все права защищены.

HL7® является зарегистрированным товарным знаком Health Level Seven International, все права защищены.

1 Область применения

PS3.18 определяет веб-сервисы (с использованием семейства протоколов HTTP) для управления и распределения информационных объектов DICOM (Digital Imaging and Communications in Medicine), таких как медицинские изображения, аннотации, отчёты и т.д., медицинским организациям, поставщикам услуг и пациентам. Термин DICOMweb™ используется для обозначения описанных здесь RESTful веб-сервисов.

Вопросы безопасности, включая управление доступом, авторизацию и аудит, выходят за рамки области применения PS3.18. См. PS3.15.

2 Нормативные ссылки

Следующие нормативные документы содержат положения, которые посредством ссылки в настоящем тексте составляют положения данной части DICOM. Для датированных ссылок последующие поправки или пересмотры любых из этих публикаций не применяются. Однако сторонам соглашений, основанных на данной части DICOM, рекомендуется изучить возможность применения самых последних изданий нормативных документов, указанных ниже. Для недатированных ссылок применяется самое последнее издание нормативного документа, на который дается ссылка. Члены ISO и IEC ведут реестры действующих на сегодняшний день международных стандартов.

2.1 Международная организация по стандартизации (ISO) и Международная электротехническая комиссия (IEC)

[ISO/IEC Directives, Part 2] ISO/IEC. 2021. 9.0. Rules for the structure and drafting of International Standards. http://www.iso.org/sites/directives/current/part2/index.xhtml .

[ISO/IEC 2022] ISO/IEC. 1994. Information technology - Character code structure and extension techniques.

[ISO 7498-1] ISO. 1994. Information Processing Systems - Open Systems Interconnection - Basic Reference Model.

[ISO/IEC 10918-1] ISO/IEC. 1994. JPEG Standard for digital compression and encoding of continuous-tone still images. Part 1 - Requirements and implementation guidelines.

[ISO/IEC 10646] ISO/IEC. 2003. Information Technology - Universal Multiple-Octet Coded Character Set (UCS). ISO/IEC 10646-2003 is the same as Unicode Version 4.0, available at http://unicode.org .

[ISO 15076-1] ISO. 2005. Image technology colour management - Architecture, profile format, and data structure. Also available as ICC.1:2004-10 (Profile version 4.2.0.0), International Color Consortium, available at http://www.color.org/v4spec.xalter .

[ISO/IEC 15444-1] ISO/IEC. 2004. JPEG 2000 Image Coding System.

[ISO/IEC 15444-2] ISO/IEC. 2004. JPEG 2000 Image Coding System: Extensions.

[ISO 15948] ISO. 2003. Information technology -- Computer graphics and image processing -- Portable Network Graphics (PNG): Functional specification. A Joint ISO/IEC International Standard and W3C Recommendation. Also available at: https://www.w3.org/TR/2003/REC-PNG-20031110/ .

[ISO/IEC 18181-1] ISO/IEC. 2022. Information technology - JPEG XL Image Coding System - Part 1 Core Coding System.

[ISO 22028-2] ISO. 2013. Photography and graphic technology - Extended colour encodings for digital image storage, manipulation and interchange - Part 2: Reference output medium metric RGB colour image encoding (ROMM RGB). http://www.iso.org/iso/catalogue_detail.htm?csnumber=56591 .

[IEC 61966-2.1] IEC. 1999. Ed 1.0 as amended by Amendment A1:2003. Multimedia systems and equipment - colour measurement and management - Part 2.1: colour management - Default RGB colour space - sRGB.

2.2 Целевая группа по инженерным вопросам Интернета (IETF) и Администрация присвоения имён в Интернете (IANA)

[IANA Character Sets] IANA. . Character Sets. http://www.iana.org/assignments/character-sets/character-sets.xhtml .

[IANA HTTP Status Code Registry] IANA. . Hypertext Transfer Protocol (HTTP) Status Code Registry. http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml .

[IANA Media Types] IANA. . Media Types. http://www.iana.org/assignments/media-types/media-types.xhtml .

[RFC822] IETF. August 1982. Standard for ARPA Internet Text Messages. http://tools.ietf.org/html/rfc822 .

[RFC1945] IETF. May 1996. Hypertext Transfer Protocol Version 1.0 (HTTP/1.0) . http://tools.ietf.org/html/rfc1945 .

[RFC2045] IETF. November 1996. Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. http://tools.ietf.org/html/rfc2045 .

[RFC2046] IETF. November 1996. Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types. http://tools.ietf.org/html/rfc2046 .

[RFC2387] IETF. August 1998. The MIME Multipart/Related Content-type. http://tools.ietf.org/html/rfc2387 .

[RFC2818] IETF. May 2000. HTTP Over TLS. http://tools.ietf.org/html/rfc2818 .

[RFC2978] IETF. October 2000. IANA Charset Registration Procedures. http://tools.ietf.org/html/rfc2978 .

[RFC3240] IETF. February 2002. Digital Imaging and Communications in Medicine (DICOM) - Application/dicom MIME Sub-type Registration. http://tools.ietf.org/html/rfc3240 .

[RFC3536] IETF. May 2003. Terminology Used in Internationalization in the IETF. http://tools.ietf.org/html/rfc3536 .

[RFC3745] IETF. April 2004. MIME Type Registrations for JPEG 2000 (ISO/IEC 15444). http://tools.ietf.org/html/rfc3745 .

[RFC3986] IETF. Uniform Resource Identifiers (URI): Generic Syntax. http://tools.ietf.org/html/rfc3986 .

[RFC4337] IETF. March 2006. MIME Type Registration for MPEG-4. http://tools.ietf.org/html/rfc4337 .

[RFC4648] IETF. October 2006. The Base16, Base32, and Base64 Data Encodings. http://tools.ietf.org/html/rfc4648 .

[RFC5234] IETF. January 2008. Augmented BNF for Syntax Specifications: ABNF. http://tools.ietf.org/html/rfc5234 .

[RFC6365] IETF. September 2011. Terminology Used in Internationalization in the IETF. http://tools.ietf.org/html/rfc6365 .

[RFC6338] IETF. August 2011. Definition of a Uniform Resource Name (URN) Namespace for the Schema for Academia (SCHAC). http://tools.ietf.org/html/rfc6338 .

[RFC6455] IETF. December 2011. The WebSocket Protocol. http://tools.ietf.org/html/rfc6455 .

[RFC6570] IETF. March 2012. URI Template. http://tools.ietf.org/html/rfc6570 .

[RFC6838] IETF. January 2013. Media Type Specifications and Registration Procedures. http://tools.ietf.org/html/rfc6838 .

[RFC7159] IETF. March 2014. The JavaScript Object Notation (JSON) Data Interchange Format. http://tools.ietf.org/html/rfc7159 .

[RFC7230] IETF. June 2014. Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing. http://tools.ietf.org/html/rfc7230 .

[RFC7231] IETF. June 2014. Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. http://tools.ietf.org/html/rfc7231 .

[RFC7232] IETF. June 2014. Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests. http://tools.ietf.org/html/rfc7232 .

[RFC7233] IETF. June 2014. Hypertext Transfer Protocol (HTTP/1.1): Range Requests. http://tools.ietf.org/html/rfc7233 .

[RFC7234] IETF. June 2014. Hypertext Transfer Protocol (HTTP/1.1): Caching. http://tools.ietf.org/html/rfc7234 .

[RFC7235] IETF. June 2014. Hypertext Transfer Protocol (HTTP/1.1): Authentication. http://tools.ietf.org/html/rfc7235 .

[RFC7236] IETF. June 2014. Initial Hypertext Transfer Protocol (HTTP) Authentication Scheme Registrations. http://tools.ietf.org/html/rfc7236 .

[RFC7237] IETF. June 2014. Initial Hypertext Transfer Protocol (HTTP) Method Registrations. http://tools.ietf.org/html/rfc7237 .

[RFC7405] IETF. December 2014. Case-Sensitive String Support in ABNF. http://tools.ietf.org/html/rfc7405 .

[RFC7525] IETF. May 2015. TLS Recommendations. http://tools.ietf.org/html/rfc7525 .

[RFC7540] IETF. May 2015. Hypertext Transfer Protocol Version 2 (HTTP/2). http://tools.ietf.org/html/rfc7540 .

[RFC8259] IETF. December 2017. The JavaScript Object Notation (JSON) Data Interchange Format. http://tools.ietf.org/html/rfc8259 .

[RFC9110] IETF. June 2022. HTTP Semantics. http://tools.ietf.org/html/rfc9110 .

2.3 Прочие ссылки

[Adobe RGB] Adobe Systems Incorporated. 1998. 2005-05. Adobe RGB (1998) Color Image Encoding. http://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf .

[DCI DCSS] Digital Cinema Initiatives, LLC. (DCI). May 29, 2024. Digital Cinema System Specification. http://www.dcimovies.com/dci-specification .

[Display-P3] Apple, Inc. Display P3 Color Encoding. http://www.color.org/chardata/rgb/DisplayP3.xalter .

[Ekuan] Asynchronous Request-Reply pattern. Ekuan. 2022. http://learn.microsoft.com/en-us/azure/architecture/patterns/async-request-reply .

[Fielding] Architectural Styles and the Design of Network-based Software Architectures. Fielding. 2000. http://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf .

[FHIR Access Denied] HL7. . FHIR Security - Access Denied Response Handling. http://hl7.org/fhir/security.html#AccessDenied .

[IHE RAD TF-1] IHE International. Integrating the Healthcare Enterprise Radiology Technical Framework Volume 1 Integration Profiles. http://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_TF_Vol1.pdf .

[IHE RAD TF-2] IHE International. Integrating the Healthcare Enterprise Radiology Technical Framework Volume 2 Transactions. http://www.ihe.net/uploadedFiles/Documents/Radiology/IHE_RAD_TF_Vol2.pdf .

[JIS X 0201] JIS. 1976. Code for Information Interchange.

[MNG] Multiple-image Network Graphics. http://www.libpng.org/pub/mng .

[ONC Privacy Security Guide] US Office of the National Coordinator for Health Information Technology (ONC). . Guide to Privacy and Security of Electronic Health Information. http://www.healthit.gov/sites/default/files/pdf/privacy/privacy-and-security-guide.pdf .

[OWASP Information Leakage] Open Web Application Security Project (OWASP). . Top 10 2007 - Information Leakage and Improper Error Handling. http://www.owasp.org/index.php/Top_10_2007-Information_Leakage_and_Improper_Error_Handling .

[SMPTE RP 431-2:2011] Society of Motion Picture and Television Engineers (SMPTE). 2011. D-Cinema Quality — Reference Projector and Environment. http://pub.smpte.org/latest/rp431-2/rp0431-2-2011.pdf .

[WADL] W3C. 31 August 2009. . Member Submission - Web Application Description Language. http://www.w3.org/Submission/wadl/ .

[Wikipedia REST] Wikipedia. . Representational State Transfer. http://en.wikipedia.org/wiki/Representational_state_transfer .

3 Определения

Для целей данной части DICOM применяются следующие термины и определения.

3.1 Определения эталонной модели

В данной части Стандарта используются следующие термины, определённые в [ISO 7498-1]:

Application Entity (AE)

См. [ISO 7498-1].

Real-World Activity

См. [ISO 7498-1].

3.2 Определения введения и обзора DICOM

В данной части Стандарта используются следующие термины, определённые в PS3.1:

Service-Object Pair Class (SOP Class)

См. Service-Object Pair Class в PS3.1 .

3.3 Обмен сообщениями DICOM

В данной части Стандарта используются следующие термины, определённые в PS3.7:

DICOM Message Service Element (DIMSE)

См. DICOM Message Service Element в PS3.7 .

3.4 Определения информационных объектов DICOM

В данной части Стандарта используются следующие термины, определённые в PS3.3:

Frame

См. Frame в PS3.3 .

Multi-frame Image

См. Multi-frame Image в PS3.3 .

3.5 Соответствие DICOM

В данной части Стандарта используются следующие термины, определённые в PS3.2:

Conformance Statement

См. Conformance Statement в PS3.2 .

3.6 Структуры и кодирование данных DICOM

В данной части Стандарта используются следующие термины, определённые в PS3.5:

Data Element

См. Data Element в PS3.5 .

Data Element Tag

См. Data Element Tag в PS3.5 .

Data Set

См. Data Set в PS3.5 .

Encapsulated Format

См. Encapsulated Format в PS3.5 .

Fragment

См. Fragment в PS3.5 .

Native Format

См. Native Format в PS3.5 .

Sequence of Items

См. Sequence of Items в PS3.5 .

Unique Identifier (UID)

См. Service-Object Pair Class в PS3.5 .

3.7 Определения класса служб DICOM

В данной части Стандарта используются следующие термины, определённые в PS3.4:

Service-Object Pair Instance (SOP Instance)

См. Service-Object Pair Instance в PS3.4 .

3.8 Определения протокола передачи гипертекста (HTTP/HTTPS)

В данной части Стандарта используются следующие термины, определённые в [RFC7230] Раздел 2.1 Client/Server Messaging:

HTTP

См. [RFC7230].

HTTPS

См. [RFC7230].

origin server

См. [RFC7230].

user agent

См. [RFC7230].

3.9 Определения веб-сервисов

Bulk Data

Объект, содержащий октетный поток, включающий одно или несколько полей значений (обычно содержащих большие данные, такие как Pixel Data), извлечённых из набора данных DICOM. См. Metadata.

Примечание

  1. Октетный поток не включает тег атрибута, представление значения (Value Representation) или длину атрибута.

  2. Для значения кадра атрибута Pixel Data, закодированного в инкапсулированном синтаксисе передачи (Encapsulated Transfer Syntax), он не включает таблицу базовых смещений (Basic Offset Table) и теги и длины элементов фрагмента потока Pixel Data Stream.

Bulk Data URI

Унифицированный идентификатор ресурса (URI), ссылающийся на Bulk Data.

DICOM Object

Экземпляр объекта данных, как определено в PS3.3, которому присвоен уникальный идентификатор в формате, указанном для SOP Instance UID в PS3.3, и который выбран как объект для безопасного сохранения в течение определённого периода времени. В стандарте DICOM объект DICOM обычно является экземпляром составного Service Object Pair (SOP).

DICOM Resource

Один или несколько объектов DICOM, на которые ссылается URL.

DIMSE Proxy

Исходный сервер (origin server), который отвечает на запросы веб-сервиса DICOM путём выполнения транзакций DIMSE на внутреннем сервере (backend server).

Event Report

Набор данных, содержащий элементы, описывающие событие, произошедшее на исходном сервере (origin server). См. Раздел 11.12.

Metadata

Набор данных DICOM, в котором ноль или более элементов (обычно содержащих большие данные, такие как Pixel Data) заменены на Bulk Data URI.

Примечание

Метаданные не включают элементы данных файловой метаинформации Группы 0002 (Group 0002 File Meta Information Data Elements), которые описывают, но не являются частью набора данных, согласно Разделу 7.1 в PS3.10.

RESTful Web Service

Веб-сервис является RESTful, если он реализован с использованием архитектуры и принципов REST. См. https://en.wikipedia.org/wiki/Representational_state_transfer.

Service

При использовании в данной части Стандарта термин Service означает набор транзакций и ресурсов, к которым эти транзакции применяются.

sRGB

Стандартное цветовое пространство RGB, определённое в [IEC 61966-2.1].

Status Report

Отчёт о состоянии (Status Report) — это информация, содержащаяся в полезной нагрузке ответа (response payload), описывающая предупреждения или ошибки, связанные с запросом.

Subscriber

Создатель или владелец подписки (Subscription), обычно пользовательский агент (user agent).

Target URI

URI, содержащийся в сообщении запроса. Он обозначает ресурс, являющийся целевым объектом запроса.

Thumbnail

Изображение одного кадра (Frame), которое репрезентативно отражает содержимое исследования DICOM (Study), серии (Series), экземпляра (Instance) или кадра (Frame). Оно закодировано в формате Rendered Media Type. См. Раздел 8.7.4 и Раздел 10.4.4.

Transaction

При использовании в данной части Стандарта термин Transaction означает пару сообщений HTTP/HTTPS запрос/ответ.

UTF-8

Набор символов Unicode UTF-8, определённый в [ISO/IEC 10646].

3.10 Определения хранения на носителях и формата файлов DICOM:

В данной части Стандарта используются следующие термины, определённые в PS3.10:

DICOM File

См. DICOM File в PS3.10 .

DICOM File Format

См. DICOM File Format в PS3.10 .

DICOM File Service

См. DICOM File Service в PS3.10 .

File

См. File в PS3.10 .

4 Символы и сокращения

Следующие символы и сокращения используются в этой части Стандарта.

ABNF

Расширенная форма Бэкуса-Наура. См. [RFC5234] и [RFC7405].

CRUDL

Create, Read, Update, Delete, List; базовые операции/действия над объектами

DICOM

Цифровая визуализация и коммуникации в медицине

HL7

Health Level Seven

HTML

Язык гипертекстовой разметки

HTTP

Протокол передачи гипертекста

HTTP/1.1

Версия 1.1 протокола передачи гипертекста

HTTP/2

Версия 2 протокола передачи гипертекста

HTTPS

Защищённый протокол передачи гипертекста

HTTPS/1.1

Версия 1.1 защищённого протокола передачи гипертекста

HTTPS/2

Версия 2 защищённого протокола передачи гипертекста

IETF

Internet Engineering Task Force

IHE

Integrating the Healthcare Enterprise

JSON

Нотация объектов JavaScript

MPPS

Служба Modality Performed Procedure Step. См. Приложение F документа PS3.4 .

MWL

Служба Modality Worklist; разговорное название службы Basic Worklist. См. Приложение K документа PS3.4 .

QIDO-RS

Запрос на идентификацию объектов DICOM с использованием RESTful-сервисов

REST

Representational State Transfer, архитектура веб-сервисов. См. [Wikipedia REST] и [Fielding].

RESTful

Сервис, реализованный с использованием архитектуры REST.

SOP

Service Object Pair

STOW-RS

Хранение через веб с использованием RESTful-сервисов

UID

Уникальный идентификатор (DICOM)

UPS

Служба Unified Procedure Step. См. Приложение CC документа PS3.4 .

UPS-RS

Unified Procedure Step с использованием RESTful-сервисов

URI

Унифицированный идентификатор ресурса. См. [RFC3986].

URL

Унифицированный указатель ресурса. См. [RFC3986].

WADL

Язык описания веб-приложений

WADO-RS

Веб-доступ к объектам DICOM с использованием RESTful-сервисов

WADO-URI

Веб-доступ к объектам DICOM с использованием URI

XML

Расширяемый язык разметки

5 Соглашения

В этом разделе определяются соглашения, используемые на протяжении всей остальной части Стандарта.

5.1 Синтаксис сообщений

Синтаксис сообщений запроса и ответа для Транзакций определяется с использованием грамматики ABNF, используемой в [RFC7230], которая основана на ABNF, определённой в [RFC5234]. Эта часть Стандарта также использует расширения ABNF из [RFC7405], которое определяет префикс '%s' для обозначения строк, чувствительных к регистру.

Правила синтаксиса, определённые здесь, действительны для набора символов US-ASCII или наборов символов, являющихся надмножествами US-ASCII, например, Unicode UTF-8.

В ABNF, используемой для определения синтаксиса сообщений, применяются следующие соглашения:

  1. Синтаксические переменные записываются в нижнем регистре.

  2. Терминальные правила записываются в верхнем регистре. Например, 'SP' обозначает литеральный символ пробела US-ASCII (0x20), а 'CRLF' обозначает литеральные символы возврата каретки ASCII (0xD) и перевода строки (0xA).

  3. Имена полей заголовка записываются с заглавной буквы, а кавычки, обозначающие литеральные строки для имён полей заголовка, опускаются. Имена полей заголовка — единственные имена с заглавной буквой, используемые в грамматике. См. [RFC7231] Раздел 1.2. Например:

    Accept: media-type CRLF

    эквивалентно

    "Accept:" media-type CRLF

В этой части Стандарта, как и в HTTP в целом, ресурсы идентифицируются URI [RFC3986]. Каждый сервис определяет управляемые им ресурсы и шаблоны URI, используемые для определения структуры URI, которые на них ссылаются.

В RFC по HTTP правила ABNF для obs-text и obs-fold обозначают «устаревшие» грамматические правила, присутствующие по историческим причинам. Эти правила не используются в определениях синтаксиса веб-сервисов DICOM.

См. Приложение A для объединённой ABNF веб-сервисов DICOM.

5.1.1 Общие синтаксические правила для типов данных

Таблица 5.1-1 определяет синтаксис некоторых общих правил, используемых при определении значений данных в этой части Стандарта.

Таблица 5.1-1. ABNF для общих синтаксических значений

Имя

Правило

int
= [+ / -] 1*DIGIT
; An integer
uint
= 1*DIGIT
; An unsigned integer
non-zero-digit
= %31-39
pos-int
= non-zero-digit *DIGIT
; An integer greater than zero
decimal
=int ["." uint] [("E" / "e") int]
; a fixed- or floating-point number with at most 16 characters
string
= %s 1*QCHAR
; A case sensitive string
base64
; Use base64 defined in [RFC4648] Section 5
uid
= uid-root 1*("." uid-part)
uid-root
= "0" / "1" / "2"
uid-part
= "0" / pos-int

5.1.2 Шаблоны URI

Синтаксис шаблонов URI [RFC6570] был расширен для поддержки имён переменных, чувствительных к регистру. Это было сделано путём изменения правила varchar (см. [RFC6570] Раздел 2.3) следующим образом:

varchar = %x20-21 / %x23-7E / pct-encoded

5.1.3 Правило списка ('#')

ABNF была расширена правилом списка, которое используется для определения списков, разделённых запятыми. Оно не допускает пустых списков, пустых элементов списка или устаревших правил списка, определённых в [RFC7230] Раздел 7.

1#element = element *(OWS "," OWS element)
#element = 1#element
<n>#<m>element = element <n-1>*<m-1> (OWS "," OWS element)

Где

n >= 1 and m > n

5.2 Структура раздела веб-сервиса

Эта часть Стандарта организована так, что новые сервисы могут добавляться как новые пронумерованные разделы в конце документа.

5.3 Таблицы полей заголовков запроса и ответа

Требования к полям заголовка запроса описываются с использованием таблиц следующего вида:

Таблица 5.2-1. Поля заголовка запроса

Имя

Значение

Использование

Описание

Пользовательский агент

Исходный сервер

...

...


Столбец «Имя» содержит имя поля заголовка HTTP, как определено в [RFC7230, RFC7231].

Столбец «Значение» определяет либо тип значения, либо конкретное значение, содержащееся в поле заголовка.

Столбец «Использование пользовательским агентом» определяет требования к пользовательскому агенту по предоставлению поля заголовка в запросе.

Столбец «Использование исходным сервером» определяет требования к исходному серверу по поддержке поля заголовка.

Содержимое столбцов «Использование» может быть:

M

Обязательный

C

Условный

O

Необязательный

Столбец «Описание» для условных полей заголовка запроса определяет условие наличия поля заголовка.

  • «Должен присутствовать, если <условие>» означает, что если <условие> истинно, то поле заголовка должно присутствовать; в противном случае оно не должно присутствовать.

  • «Может присутствовать в противном случае» добавляется к описанию, если поле заголовка может присутствовать, даже если условие не является истинным.

Требования к полям заголовка ответа описываются с использованием таблиц следующего вида:

Таблица 5.2-2. Поля заголовка ответа

Имя

Значение

Использование исходным сервером

Описание

...

...


Для полей заголовка ответа столбец «Использование» определяет требования к исходному серверу по предоставлению поля заголовка.

6 Соответствие

Реализация, заявляющая о соответствии этой части Стандарта, должна функционировать в соответствии со всеми её обязательными разделами.

Веб-сервисы DICOM используются для передачи составных экземпляров SOP (Composite SOP Instances). Все передаваемые составные экземпляры SOP должны соответствовать требованиям, указанным в других частях Стандарта.

Реализация может соответствовать веб-сервисам DICOM, поддерживая роль исходного сервера или пользовательского агента, либо обе роли для любого из сервисов, определённых в этой части Стандарта. Структура Заявлений о соответствии описана в PS3.2.

Реализация должна описать в своём Заявлении о соответствии реальную деятельность (Real-World Activity), связанную с использованием веб-сервисов DICOM, включая любые функции прокси между веб-сервисом и эквивалентным сервисом DIMSE.

Реализация должна описать в своём Заявлении о соответствии механизмы безопасности, используемые реализацией. См. Раздел 8.11.

7 Обзор веб-сервисов DICOM (Информативное)

Рисунок 5-1 документа PS3.1 представляет общую модель коммуникации Стандарта DICOM, которая охватывает как сетевое (онлайн) взаимодействие, так и обмен через носители информации (офлайн). Прикладные сущности могут использовать любой из следующих механизмов передачи:

  • DICOM Message Service и Upper Layer Service, обеспечивающие независимость от конкретной физической сетевой поддержки и протоколов связи, таких как TCP/IP,

  • DICOM Web Service API и HTTP Service, позволяющие использовать общие гипертекстовые и связанные протоколы для передачи сервисов DICOM,

  • Basic DICOM File Service, обеспечивающий доступ к носителям хранения данных независимо от конкретных форматов физических носителей и файловых структур, или

  • DICOM Real-Time Communication, обеспечивающий передачу метаданных DICOM в реальном времени на основе SMPTE и RTP.

PS3.18 описывает веб-сервисы DICOM, которые используют протоколы HTTP и HTTPS в качестве среды передачи, как показано на Рисунке 7-1.

DICOM Communication Model for Web Services

Рисунок 7-1. Модель коммуникации DICOM для веб-сервисов


7.1 Типы веб-сервисов DICOM

Эта часть Стандарта определяет веб-сервисы DICOM. Каждый сервис позволяет пользовательскому агенту взаимодействовать с исходным сервером для управления набором ресурсов DICOM. Каждый веб-сервис DICOM работает с набором ресурсов и определяет набор Транзакций, которые действуют на эти ресурсы. Все Транзакции определены в виде пар сообщений HTTP-запрос/ответ.

При использовании в этой части Стандарта термин HTTP относится к семейству протоколов HTTP, включая: HTTP/1.1, HTTPS/1.1, HTTP/2 и HTTPS/2, как определено соответствующими RFC IETF, но не включает HTTP/1.0 или HTTPS/1.0. Стандарты HTTP являются нормативными для всех аспектов формата и передачи HTTP-сообщений.

Существует два общих типа веб-сервисов DICOM: URI и RESTful. Это различие основано на типе протокола веб-сервиса, используемом для спецификации ресурсов и транзакций.

7.1.1 Веб-сервис URI

Веб-сервис URI извлекает представления своих ресурсов, которыми являются составные экземпляры SOP (Instance). Сервис URI определяет две Транзакции, которые извлекают экземпляры в различных типах мультимедиа. Все транзакции URI используют компонент запроса URI в сообщении запроса для спецификации Транзакции.

Функциональность Транзакций веб-сервиса URI аналогична, но более ограничена, чем Транзакция Retrieve веб-сервиса Studies.

7.1.2 RESTful веб-сервисы и ресурсы

Каждый RESTful веб-сервис определяет набор ресурсов и Транзакции, которые могут быть применены к этим ресурсам.

Определённые RESTful веб-сервисы:

Studies Web Service

Позволяет пользовательскому агенту управлять Исследованиями (Studies), хранящимися на исходном сервере.

Worklist Web Service

Позволяет пользовательскому агенту управлять Рабочим списком (Worklist), содержащим рабочие элементы (Workitems), хранящиеся на исходном сервере.

Non-Patient Instance Web Service

Позволяет пользовательскому агенту управлять экземплярами, не относящимися к пациенту (Non-Patient Instances), например, цветовыми палитрами, хранящимися на исходном сервере.

Storage Commitment Service

Служба Storage Commitment позволяет пользовательскому агенту запрашивать безопасное хранение экземпляров на исходном сервере.

Modality Scheduled Procedure Step Service

Служба Modality Scheduled Procedure Step позволяет пользовательскому агенту выполнять поиск запланированных этапов процедуры (Scheduled Procedure Steps).

Modality Performed Procedure Step Service

Служба Modality Performed Procedure Step позволяет пользовательскому агенту сообщать о ходе выполнения этапов выполненной процедуры (Performed Procedure Steps).

7.2 Ресурсы, представления и целевые URI

В RESTful веб-сервисах ресурс — это абстрактный объект с типом, связанными данными, отношениями с другими ресурсами и набором методов, которые действуют на него. Ресурсы объединяются в коллекции. Коллекции сами также являются ресурсами. Каждая коллекция неупорядочена и содержит только один тип ресурса. Коллекции могут существовать глобально на верхнем уровне API, но также могут содержаться внутри ресурса. В последнем случае мы называем такие коллекции подколлекциями. Подколлекции обычно выражают отношение типа «содержится в».

7.2.1 RESTful-ресурсы DICOM

Ресурсы DICOM, определённые в этой части Стандарта, обычно являются либо веб-сервисами DICOM, либо информационными объектами DICOM. Примеры включают Исследования (Studies), Серии (Series), Экземпляры (Instances), Рабочие списки (Worklists) и Рабочие элементы (Workitems).

Ресурсы DICOM группируются в коллекции и иерархии. Следующие ресурсы являются примерами коллекций:

Путь ресурса

Содержимое

/studies

Коллекция Исследований (Studies).

/series

Коллекция Серий (Series).

/instance

Коллекция Экземпляров (Instances).

/frames

Последовательность Кадров (Frames).

Следующие ресурсы являются примерами иерархий:

/studies/{study}/series

Содержит коллекцию Серий (Series).

/studies/{study}/series/{series}/instances

Содержит коллекцию Экземпляров (Instances).

/studies/{study}/series/{series}/instances/{instance}/frames

Содержит последовательность Кадров (Frames).

Исходный сервер веб-сервиса DICOM управляет коллекцией ресурсов. Это может выполняться не напрямую; например, исходный сервер может действовать как прокси, преобразуя RESTful-запросы в DIMSE-запросы, а DIMSE-ответы в RESTful-ответы.

Ресурсы обычно создаются и/или доступны пользовательскими агентами.

7.2.2 Представления

Ресурс — это абстрактное понятие, которое конкретизируется посредством представления, представляющего собой объект данных, закодированный в виде потока октетов. Например, Исследование DICOM (абстрактное) может быть представлено последовательностью октетов, закодированных в выбранном типе мультимедиа. См. Раздел 8.7.3.

Тип мультимедиа (Media Type) описывает формат или кодировку представления. Примерами типов мультимедиа являются application/dicom, application/dicom+json, image/jpeg и text/html.

7.2.3 Целевые URI

Ресурсы идентифицируются URI. Каждый сервис определяет управляемые им ресурсы и формат URI, используемых для ссылки на эти ресурсы. Формат URI определяется с использованием шаблонов URI. См. [RFC6570].

8 Общие аспекты веб-сервисов DICOM

Этот раздел описывает детали и требования, общие для всех веб-сервисов, определённых в этой части Стандарта.

Пользовательский агент или исходный сервер, реализующий Сервис в этой части Стандарта, должен соответствовать Разделу 8, если иное не указано в спецификации этого Сервиса и его Транзакций.

8.1 Транзакции

Каждая Транзакция состоит из сообщения запроса и сообщения ответа, иногда называемых парой запрос/ответ. При использовании в этой части Стандарта термин «запрос» означает «сообщение запроса», а «ответ» означает «сообщение ответа», если явно не указано иное. Рисунок 8.1-1 представляет собой диаграмму взаимодействия, показывающую поток сообщений в Транзакции. При получении запроса исходный сервер обрабатывает его и возвращает ответ.

Запрос включает метод, URI целевого ресурса и поля заголовка. Он также может включать параметры запроса и полезную нагрузку.

Ответ включает код состояния, фразу причины, поля заголовка и может также включать полезную нагрузку.

Interaction Diagram for Transactions

Рисунок 8.1-1. Диаграмма взаимодействия для Транзакций


8.1.1 Синтаксис сообщения запроса

Эта часть Стандарта использует ABNF, определённую в Разделе 5.1, для определения синтаксиса Транзакций.

Все сообщения запросов API веб-сервисов имеют следующий синтаксис:

method SP target-uri SP version CRLF
*(header-field CRLF)
CRLF
[payload]

Где

method = "CONNECT" / "DELETE" / "GET" / "HEAD" / "OPTIONS" / "POST" / "PUT"

Каждая Транзакция определяет используемый метод.

SP= %x20

Символ пробела US-ASCII

target-uri = "/" {/resource} {?parameters*}

Каждая Транзакция определяет шаблон URI для целевого ресурса. Шаблон определяет формат URI, которые ссылаются на целевой ресурс запроса. См. Раздел 8.1.1.2.

version = ("HTTP" / "HTTPS") "/" ("1.1" / "2")

Версия протокола HTTP; одна из «HTTP/1.1», «HTTP/2», «HTTPS/1.1» или «HTTPS/2».

CRLF = %x0D.0A

Возврат каретки US-ASCII (%x0D), за которым следует перевод строки (%x0A).

*(header-field CRLF)

Ноль или более полей заголовка, каждое из которых завершается разделителем CRLF.

[payload] = *OCTET / multipart-payload

Необязательная полезная нагрузка, содержащая ноль или более 8-битных OCTET.

Примечание

method, SP, version, CRLF, header-field и payload — все это продукты HTTP из [RFC7230] и [RFC7231]. Определения воспроизведены здесь для удобства.

8.1.1.1 Метод

Метод запроса — один из методов HTTP, таких как CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT. См. [RFC7230] Раздел 4.

8.1.1.2 Целевой ресурс

Целевой ресурс запроса определяется целевым URI, содержащимся в сообщении запроса. См. Раздел 8.2.

8.1.1.3 Параметры запроса

Параметры запроса содержатся в компоненте запроса (см. [RFC3986]) URI. Пользовательский агент может использовать параметры запроса для передачи параметров в запрос. См. Раздел 8.3.

8.1.1.4 Поля заголовка запроса

Поля заголовка запроса используются для указания метаданных для запроса. Большинство запросов имеют одно или более полей заголовка согласования содержимого (см. Раздел 8.4.1). Если запрос имеет полезную нагрузку, запрос будет содержать соответствующие поля заголовка представления содержимого (см. Раздел 8.4.2) и полезной нагрузки (см. Раздел 8.4.3).

8.1.1.5 Полезная нагрузка запроса

Полезная нагрузка запроса — это поток октетов, содержащий содержимое сообщения. См. Раздел 8.6. Наличие полезной нагрузки в запросе сигнализируется полем заголовка Content-Length или Transfer-Encoding.

8.1.2 Синтаксис ответного сообщения

Синтаксис ответного сообщения следующий:

version SP status-code SP reason-phrase CRLF
*(header-field CRLF)
CRLF
[payload]

Где

status-code = 3DIGIT

Трёхзначный код, указывающий статус ответа.

reason-phrase = *(HTAB / SP / VCHAR)

Понятная человеку фраза, соответствующая статусу. Реализация может определять собственные фразы-причины. Синтаксис reason-phrase слегка изменён по сравнению с [RFC7230]; настоящая Часть Стандарта не разрешает устаревший текст (obs-text) в reason-phrase.

Примечание

Продукция status-code взята из [RFC7230].

Исходный сервер должен всегда возвращать ответное сообщение.

8.1.2.1 Коды состояния

Ответное сообщение должно всегда содержать допустимый трёхзначный код состояния. Раздел 8.5 определяет коды состояния, используемые Транзакциями. IANA ведёт реестр кодов состояния HTTP. См. [IANA HTTP Status Code Registry].

8.1.2.2 Поля заголовка ответа

Поля заголовка ответа используются для указания метаданных ответа. Ответ будет содержать поля заголовка представления содержимого (см. Раздел 8.4.2) и полезной нагрузки (см. Раздел 8.4.3), соответствующие содержимому полезной нагрузки.

8.1.2.3 Полезная нагрузка ответа

Полезная нагрузка ответа — это поток октетов, содержащий одно или несколько представлений. См. Раздел 8.6.

Транзакция обычно определяет два типа полезных нагрузок для ответного сообщения: полезную нагрузку успеха и полезную нагрузку отказа.

Полезная нагрузка ответа об отказе должна содержать отчёт о состоянии (Status Report), описывающий любые ошибки, предупреждения или другую полезную информацию.

8.2 Целевые ресурсы

Спецификации Транзакций определяют, какие типы ресурсов являются допустимыми Целевыми ресурсами для Транзакции, и определяют формат URI для Целевого ресурса (и Параметров запроса) с использованием шаблонов URI. URI Целевого ресурса называется Целевым URI. Спецификации Транзакций также определяют, какие типы ресурсов являются допустимыми ресурсами для ответа.

Целевой URI состоит из трёх компонентов: Базового URI, Пути целевого ресурса и Параметров запроса (которые часто являются необязательными).

Пробельные символы не допускаются в URI. Пробельные символы вокруг разрывов строк и сами разрывы строк следует удалить перед разбором URI. См. Приложение C в [RFC3986].

Наиболее общий шаблон Целевого URI:

target-uri = "/" {/resource} {?optional*}

или, если какие-либо Параметры запроса являются обязательными

target-uri = "/" {/resource} ?{required*}{&optional*}

Где

"/"

Символ косой черты ('/') используется для обозначения Базового URI.

{/resource}

Шаблон URI для Пути целевого ресурса — относительного компонента пути, ссылающегося на Целевой ресурс. '/' в шаблоне указывает, что зарезервированные символы, такие как '/', могут использоваться в раскрытии шаблона. См. [RFC6570].

«/{/resource}» обозначает абсолютный URI Целевого ресурса на исходном сервере.

{required*}

Шаблон URI для одного или нескольких обязательных параметров запроса. См. пример в Разделе 8.3.1.

{&optional*}

Шаблон URI для нуля или более необязательных параметров запроса. См. пример в Разделе 8.3.1.

Базовый URI Сервиса — это абсолютный URI, указывающий расположение исходного сервера, реализующего Сервис. Каждый Целевой URI, определённый настоящей Частью Стандарта, начинается с «/», что является сокращением, обозначающим Базовый URI Сервиса. Базовый URI может поддерживать более одного Сервиса.

Корневой путь Сервиса (Service Root Path) — это Базовый URI без компонентов Scheme и Authority.

Путь целевого ресурса — это относительный URI, указывающий путь к ресурсу от Базового URI Сервиса. Он задаётся шаблоном URI, использующим расширение пути {/var}, как определено в [RFC6570].

Например, для данного URI:

http://dicom.nema.org/service/studies/2.25.123456789/series/2.25.987654321

Базовый URI:

http://dicom.nema.org/service

Корневой путь Сервиса:

/service

Путь целевого ресурса:

/studies/2.25.123456789/series/2.25.987654321

Шаблон URI для этого ресурса:

/studies/{study}/series/{series}

Где

{study}

— это Study Instance UID Исследования

{series}

— это Series Instance UID Серии

8.3 Параметры запроса

Параметры запроса указываются в компоненте запроса URI (см. [RFC3986] Раздел 3.4).

Компонент запроса URI запроса может использоваться только для указания одного или нескольких Параметров запроса. Эти параметры называются Параметрами запроса, чтобы отличать их от параметров полей заголовка или других типов параметров, которые могут содержаться в полезной нагрузке.

Параметры запроса задаются с использованием шаблона URI, использующего расширение формы запроса {?var} и стиль продолжения запроса {&var}, как определено в [RFC6570].

Если Целевой URI содержит «компонент запроса» (см. [RFC3986] Раздел 3.4), он должен содержать Параметры запроса, соответствующие синтаксису, определённому здесь.

Сервисы и Транзакции, определённые в других местах настоящей Части Стандарта, могут дополнительно уточнить правила qp-name и qp-value, определённые ниже.

[RFC3986] не допускает пустой компонент запроса, т.е. если в Целевом URI присутствует «?», то в URI должен быть хотя бы один Параметр запроса.

Исходный сервер может определять и поддерживать дополнительные Параметры запроса или дополнительные значения Параметров запроса для существующего Параметра запроса. Если исходный сервер определяет новые или расширяет существующие Параметры запроса, они должны быть задокументированы в Заявлении о соответствии (Conformance Statement) и, если сервис это поддерживает, в ответе Retrieve Capabilities.

Исходный сервер должен игнорировать любые неподдерживаемые Параметры запроса. Исходный сервер должен обработать запрос так, как если бы неподдерживаемые параметры отсутствовали, и может вернуть ответ, содержащий соответствующие предупреждения и/или сообщения об ошибках.

Если поддерживаемый Параметр запроса имеет недопустимое значение, исходный сервер должен вернуть ответ об ошибке 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующий Отчёт о состоянии.

8.3.1 Синтаксис параметров запроса

Параметры запроса имеют следующий синтаксис:

query-parameters = "?" parameter *("&" parameter)

Каждый параметр после первого отделяется от следующего параметра символом «&». Каждый параметр имеет следующий синтаксис:

parameter = qp-name 
          / qp-name "=" 1#qp-value
          / qp-name "=" 1#attribute
          / attribute 
          / attribute "=" 1#qp-value

Имя qp-name чувствительно к регистру и начинается с буквенного символа или символа подчёркивания, за которым следует ноль или более буквенно-цифровых символов или символов подчёркивания «_»:

qp-name = %s 1*(ALPHA / "_") *(ALPHA / DIGIT / "_")

Имя qp-name само по себе (без значений) является допустимым Параметром запроса. За именем параметра qp-name может также следовать разделённый запятыми список одного или более значений qp-values или одного или более Атрибутов.

Значения qp-values чувствительны к регистру. Значение qp-value состоит из qp-символов, где qp-char — это множество допустимых символов компонента запроса, определённых [RFC3986], минус символы равенства («=»), амперсанда («&») и запятой («,»).

qp-value   = %s DQUOTE 1*qp-char DQUOTE
qp-char    = unreserved / pct-encoded / qp-special
qp-special = "!" / "$" / "'" / "(" / ")" / "*" / "+" / ";" /":" / "@" / "/" / "?"

Единственные видимые символы US-ASCII, не допускаемые в компоненте запроса стандартом [RFC3986] — это «#», «[», «]». Настоящая Часть Стандарта дополнительно запрещает «&», «=» и «,». Однако символы («#», «[», «]», «&», «=» и «,») могут быть включены в значения qp-values, если они закодированы в процентной кодировке.

Каждый Атрибут является либо simple-attribute, либо sequence-attribute:

attribute = simple-attribute / sequence-attribute

simple-attribute — это одиночный Тег элемента данных или Ключевое слово (см. Таблицу 6-1 «Реестр элементов данных DICOM» в PS3.6), которое не имеет VR типа SQ:

simple-attribute = keyword / tag
keyword          = %s DQUOTE 1*ALPHA *(ALPHA / DIGIT) DQUOTE
tag              = 8HEXDIG

Ключевые слова DICOM чувствительны к регистру; они должны начинаться с буквенного символа, за которым следует ноль или более буквенно-цифровых символов. См. PS3.6.

sequence-attribute — это два или более атрибута, разделённых символом точки («.»), при этом все атрибуты, кроме последнего, должны иметь VR типа SQ, а последний атрибут не должен иметь VR типа SQ.

sequence-attribute = (keyword / tag) *("." attribute)

Ниже приведены примеры допустимых значений attribute:

0020000D
StudyInstanceUID
00101002.00100020
OtherPatientIDsSequence.PatientID
00101002.00100024.00400032
OtherPatientIDsSequence.IssuerOfPatientIDQualifiersSequence.UniversalEntityID

Некоторые Параметры запроса имеют qp-name, являющийся атрибутом, и значение, представляющее собой разделённый запятыми список одного или более qp-values. Значения qp-values параметра-атрибута должны удовлетворять его Представлению значения (Value Representation) и Кратности значения (Value Multiplicity), как определено в PS3.5 и PS3.6, соответствующего атрибута.

В отличие от Представлений значений, определённых в PS3.5, Параметры запроса:

  • не должны выравниваться до чётной длины

  • не должны содержать символы NULL (%x00)

  • должны кодировать UID, как указано в PS3.5, за исключением того, что они не должны выравниваться до чётной длины

8.3.1.1 Синтаксис параметров запроса

Синтаксис и семантика допустимых qp-names, qp-values и атрибутов определяются соответствующим Сервисом или Транзакцией; однако они должны соответствовать правилам данного Раздела.

Таблица 8.3.1-1 содержит собранный синтаксис Параметров запроса. Сервисы и Транзакции, определённые в других местах настоящей Части Стандарта, могут дополнительно уточнить правила qp-name, attribute и qp-value.

Все имена qp-names чувствительны к регистру.

Таблица 8.3.1-1. ABNF для параметра запроса

Имя

Правило

query-parameters
= "?" parameter *("&" parameter)
parameter
= qp-name; a name only
/ qp-name "=" 1#qp-value ; a name with one or more values
/ qp-name "=" 1#attribute; a name with one or more attributes
/ attribute; an attribute only
/ attribute "=" 1#qp-value ; an attribute with one or more values
qp-name
= %s (ALPHA / "_") *(ALPHA / DIGIT / "_")
qp-value
=int / uint / pos-int / decimal / float /string / base64 / uid
/ %s 1*qp-char/ %s DQUOTE 1*qp-special DQUOTE; See Раздел 5.1.1
qp-char
= unreserved / pct-encoded
qp-special
= "!" / "$" / "'" / "(" / ") " / "*" / "+" / ";"/":" / "@" / "/" / "?"
simple-attribute
= keyword / tag
sequence-attribute
= keyword *( "." attribute) / tag *( "." attribute )
keyword
= %suppercase *( ALPHA / DIGIT )
uppercase
=%x41-5A
tag
= 8HEXDIG

Примечание

Синтаксис qp-values определён в Разделе 5.1.1.

Правило qp-char (символы параметра запроса), определённое выше, является правилом query из [RFC3986], которое определяет допустимые символы для компонента запроса, минус знак равенства («=»), запятая («,») и амперсанд («&»). Таким образом, правило qp-char — это правило VCHAR минус «#», «[», «]», «=», «&» и «,».

Все ключевые слова DICOM чувствительны к регистру. См. PS3.6.

8.3.2 Использование параметров запроса

Поддержка Параметров запроса реализацией является либо Обязательной, либо Необязательной. Каждый раздел Параметров запроса содержит таблицу, определяющую ключи Параметров запроса, значения и требования к использованию пользовательским агентом и исходным сервером. Таблица 8.3.2-1 определяет символы использования, типы и определения.

Таблица 8.3.2-1. Использование параметров запроса

Символ

Тип

M

Обязательный

C

Условный

O

Необязательный


Таблица 8.3.2-2 показывает пример таблицы Параметров запроса.

Таблица 8.3.2-2. Пример таблицы параметров запроса

Имя

Значения

Использование

Раздел

Пользовательский агент

Исходный сервер

requestType

"WADO"

M

M

Раздел 9.1.2.1.1

studyUID

uid

M

M

Раздел 9.1.2.1.3

seriesUID

uid

M

M

Раздел 9.1.2.1.3

objectUID

uid

M

M

Раздел 9.1.2.1.4


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

8.3.3 Параметры запроса для согласования содержимого

Параметры, определённые в этом разделе, в первую очередь предназначены для использования в гиперссылках, т.е. URI, встроенных в документы, где Поля заголовка согласования содержимого (см. Раздел 8.3.3) недоступны.

8.3.3.1 Параметр запроса Accept

Параметр запроса Accept имеет следующий синтаксис:

accept      = accept-name "=" 1#(media-type [weight])
accept-name = %s"accept"

Параметр запроса Accept имеет тот же синтаксис, что и поле заголовка Accept (см. Раздел 8.4.3), за исключением того, что он не должен содержать подстановочные знаки (<type>/* или */*). См. Раздел 8.7.

Примечание

  1. Обычное имя этого параметра — «accept»; однако URI-сервис использует accept-name «contentType». См. Раздел 9.1.2.2.1.

  2. Префикс «%s» перед accept-name указывает, что это токен, чувствительный к регистру. См. [RFC7405].

Значение параметра — это разделённый запятыми список одного или более media-types.

Параметр запроса Accept не следует использовать, когда пользовательский агент может указать значения с помощью поля заголовка Accept.

Все Типы мультимедиа (Media Types), присутствующие в Параметре запроса Accept, должны быть совместимы с диапазоном медиа в поле заголовка Accept, явно или неявно через подстановочные знаки.

Примечание

Например, наличие image/jpeg в Параметре запроса Accept потребует, чтобы поле заголовка Accept включало одно или несколько из следующих значений: image/jpeg, image/* или */*.

Если ни один из Приемлемых типов мультимедиа (см. Раздел 8.7.5) не поддерживается исходным сервером, ответ исходного сервера должен быть в Типе мультимедиа по умолчанию для Категории ресурсов Целевого ресурса. Если для Целевого ресурса не определён Тип мультимедиа по умолчанию, ответ исходного сервера должен быть 406 (Not Acceptable) и может включать полезную нагрузку, содержащую соответствующий Отчёт о состоянии.

Если присутствует Тип мультимедиа DICOM, Типы мультимедиа, не относящиеся к DICOM, не должны присутствовать. Если присутствуют как DICOM, так и не-DICOM Типы мультимедиа, ответ должен быть 400 (Bad Request) и может включать полезную нагрузку, содержащую соответствующий Отчёт о состоянии.

8.3.3.2 Параметр запроса Character Set

Параметр запроса Character Set имеет следующий синтаксис:

character-set = "charset" "=" 1#(charset [weight])

Значение Параметра запроса Character Set — это разделённый запятыми список одного или более идентификаторов наборов символов. Он аналогичен полю заголовка Accept-Charset, за исключением того, что он не должен содержать подстановочные знаки. См. Раздел 8.8.

Примечание

Идентификаторы наборов символов, присутствующие в Параметре запроса character set, обычно имеют соответствующий идентификатор набора символов в поле заголовка Accept-Charset, явно или неявно через подстановочные знаки.

Если этот параметр имеет значение, которое не поддерживается, это значение должно быть проигнорировано.

8.3.4 Параметры поискового запроса

Таблица 8.3.4-1 содержит синтаксис имён и значений параметров поиска, а также ссылку на раздел, где определено их значение. Поисковые Транзакции должны поддерживать эти параметры. ABNF для различных параметров поиска:

Таблица 8.3.4-1. Синтаксис параметров запроса

Термин

Значение

Использование

Описание

Пользовательский агент

Исходный сервер

search
= match / fuzzymatching / includefield
/ limit / offset / emptyvaluematching / multiplevaluematching
match
; See attribute matching rules below

O

M

Раздел 8.3.4.1

fuzzymatching
= "fuzzymatching" "=" true / false

O

M

Раздел 8.3.4.2

includefield
= "includefield" "=" 1#attribute / "all"

O

M

Раздел 8.3.4.3

limit
= "limit" "=" uint ; Maximum number of results

O

M

Раздел 8.3.4.4

offset
= "offset" "=" uint ; Number of skipped results

O

M

Раздел 8.3.4.4

emptyvaluematching
= "emptyvaluematching" "=" true / false

O

M

Раздел 8.3.4.5

multiplevaluematching
= "multiplevaluematching" "=" true / false

O

M

Раздел 8.3.4.6


Следующие разделы подробно описывают эти параметры.

8.3.4.1 Сопоставление атрибутов

Синтаксис Параметра запроса match должен быть следующим:

match          = normal-match / uid-list-match
normal-match   = 1*("&" attribute "=" value)
uid-list-match = 1*("&" attribute "=" 1#value)
attribute      = (attribute-id) *("." attribute-id)
attribute-id   = tag *("." tag) / keyword *("." keyword)
tag            = 8HEXDIG
keyword= ;A keyword from Table 6-1 “Registry of DICOM Data Elements” in PS3.6.

Одна или несколько пар DICOM Атрибут/Значения задают критерии сопоставления для поиска.

Каждая поисковая Транзакция определяет, какие Атрибуты являются обязательными или разрешёнными.

Примечание

Атрибуты DICOM не следует путать с атрибутами XML. Теги и Ключевые слова для Атрибутов DICOM определены в Таблице 6-1 «Реестр элементов данных DICOM» в PS3.6.

Пары DICOM Атрибут/Значения должны удовлетворять следующим требованиям:

  1. Каждый attribute-id должен быть Тегом элемента данных или Ключевым словом.

  2. Каждый атрибут в Параметре запроса не должен повторяться.

  3. Каждый атрибут в Параметре запроса должен иметь единственное значение, если только соответствующий Атрибут DICOM не допускает сопоставление списка UID (см. Раздел C.2.2.2.2 в PS3.4 ), в этом случае значение представляет собой разделённый запятыми список UID.

  4. Если тег представляет собой Частный элемент данных (Private Data Element), запрос также должен включать соответствующий элемент Private Creator (см. Раздел 7.8.1 в PS3.5 ).

  5. Допустимые значения определяются типами сопоставления, разрешёнными для C-FIND для соответствующего атрибута. См. Раздел C.2.2.2 в PS3.4 . Все символы в значениях, не являющиеся qp-chars, должны быть закодированы в процентной кодировке. Все символы, не относящиеся к ASCII, должны быть закодированы в процентной кодировке. См. [RFC3986] для подробностей.

Следующие символы US-ASCII «#», «[», «]», «&», «=» и «,» должны быть закодированы в процентной кодировке в любом Параметре запроса.

Параметр запроса match соответствует Ключам сопоставления DIMSE (DIMSE Matching Keys). См. Раздел K.2.2.1.1 в PS3.4 .

8.3.4.1.1 Правила сопоставления

Семантика сопоставления для каждого атрибута определяется типами сопоставления, разрешёнными для C-FIND. См. Раздел C.2.2.2 «Сопоставление атрибутов» в PS3.4.

Результаты сопоставления должны генерироваться в соответствии с Иерархическим методом поиска, описанным в Раздел C.4.1.3.1.1 «Иерархический метод поиска» в PS3.4.

Комбинированное сопоставление даты и времени должно выполняться, как указано в Раздел C.2.2.2.5 «Сопоставление диапазона» в PS3.4.

Примечание

Если исходный сервер действует как прокси для C-FIND SCP, который не поддерживает комбинированное сопоставление даты и времени, он должен выполнить запрос C-FIND, используя только дату, и отфильтровать любые результаты, выходящие за пределы диапазона времени, перед возвратом ответа.

Если Атрибут Timezone Offset From UTC (0008,0201) указан в запросе, даты и время в запросе должны интерпретироваться в указанном часовом поясе. См. Раздел C.4.1.1 в PS3.4 .

8.3.4.2 Нечёткое сопоставление имён персон

Единственный параметр указывает, следует ли выполнять нечёткое сопоставление имён персон.

Этот параметр является необязательным для пользовательского агента.

Этот параметр является необязательным для исходного сервера.

Если этот параметр отсутствует, его значение — «false».

fuzzymatching = "fuzzymatching" "=" ("true" / "false")

Если значение «false», поиск должен выполняться без нечёткого сопоставления.

Если значение «true» и исходный сервер поддерживает нечёткое сопоставление, поиск должен выполняться с нечётким сопоставлением Атрибутов имён персон, как указано в Раздел C.2.2.2.1.1 в PS3.4 и должен быть задокументирован в Заявлении о соответствии и, если сервис это поддерживает, в ответе Retrieve Capabilities.

Если значение «true» и исходный сервер не поддерживает нечёткое сопоставление, тогда:

  • Поиск должен выполняться без нечёткого сопоставления.

  • Ответ должен содержать следующий заголовок HTTP Warning (см. [RFC7234] Раздел 5.5) :

    Warning: 299 <service>: The fuzzymatching parameter is not supported. Only literal matching has been performed.

    где <service> — это базовый URI для исходного сервера. Это может быть комбинация схемы, полномочий (authority) и пути.

  • Ответ может включать полезную нагрузку, содержащую соответствующий Отчёт о состоянии.

8.3.4.3 Атрибуты, включённые в ответ

Параметр указывает Атрибуты, которые должны быть включены в ответ. Значение — либо разделённый запятыми список атрибутов, либо единственное ключевое слово «all», которое означает, что все доступные атрибуты объекта должны быть включены в ответ.

includefield = *("includefield" "=" (1#attribute / "all") )

Запрос может содержать один или несколько параметров include; однако, если присутствует параметр со значением «all», другие параметры includefield не должны присутствовать. Если атрибут является значением параметра includefield, это эквивалентно универсальному сопоставлению C-FIND (Universal matching) для этого атрибута. См. Раздел C.2.2.2.3 в PS3.4 .

Если параметр include представляет Частный элемент данных (Private Data Element), соответствующий элемент Private Creator должен быть указан как дополнительный параметр match (см. Раздел 7.8.1 в PS3.5 ).

Параметр запроса includefield соответствует Ключам возврата DIMSE (DIMSE Return Keys).

Примечание

Допустимые значения указаны в Информационной модели для SOP-классов, на которые ссылаются другие Разделы настоящей Части.

8.3.4.4 Разбиение ответа на страницы

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

offset = "offset" "=" uint

Единственный параметр указывает количество совпадений, которые исходный сервер должен пропустить перед первым возвращаемым совпадением. Значение параметра «offset» — это беззнаковое целое число (uint). Если этот Параметр запроса отсутствует, его значение по умолчанию равно 0.

limit = "limit" "=" uint

Единственный параметр указывает максимальное количество совпадений, которые исходный сервер должен вернуть в одном ответе. Значение параметра «limit» — это беззнаковое целое число. Если этот параметр отсутствует, его значение определяется, как указано в 8.3.4.4.1.

8.3.4.4.1 Поведение постраничного вывода

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

При следующих определениях:

offset

значение параметра запроса «offset».

limit

значение параметра запроса «limit». Для запроса к репозиторию (Repository Query) это значение Maximum Number of Records (0008,0429).

maxResults

максимальное количество результатов, которое исходный сервер разрешает в одном ответе (т.е. системный предел).

matches

количество совпадений, полученных в результате поиска. Если Prior Record Key (0008,041C) указан в запросе, значение будет количеством совпадений после записи, идентифицированной значением атрибута.

results

количество результатов, возвращённых в ответе. Оно равно минимуму из:

  • Максимума из нуля и значения (matches - offset)

  • Значения maxResults

  • Значения limit

remaining

количество совпадений, которые ещё не были возвращены.

Результаты, возвращённые в ответе, определяются следующим образом:

  • Если (results = 0), то совпадений нет, и должен быть возвращён ответ 200 (OK) с пустой полезной нагрузкой. Когда Приемлемый тип мультимедиа — application/dicom+json, пустая полезная нагрузка должна быть закодирована как пустой массив JSON ([]). Когда Приемлемый тип мультимедиа — application/dicom+xml, пустая полезная нагрузка должна быть закодирована как пустой корневой элемент NativeDicomModel.

    Примечание

    В предыдущих версиях Стандарта при отсутствии совпадений указывался ответ 204 (No Content). Ответ 204 не имеет тела сообщения, тогда как ответ 200 (OK) включает тело сообщения (которое может быть пустым). Ответ 200 (OK) с пустой полезной нагрузкой согласуется с другими сервисами DICOMweb и с [RFC9110], который рекомендует использовать 200, когда представление ответа описывает результат, даже если представление имеет нулевую длину.

  • В противном случае должен быть возвращён ответ 200 (OK) с полезной нагрузкой, содержащей результаты.

  • Если (remaining > 0), ответ должен содержать Поле заголовка Warning (см. [RFC7234] Раздел 5.5) содержащее следующее:

    Warning: 299 <service>: There are <remaining> additional results that can be requested

Ответ может включать полезную нагрузку, содержащую соответствующий Отчёт о состоянии.

Если набор совпадающих результатов изменился из-за изменений в содержимом исходного сервера, упорядоченный список результатов может отличаться для последующих Транзакций с идентичными запросами, и результаты использования параметров «offset» и «limit» могут быть несогласованными.

8.3.4.5 Сопоставление пустых значений

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

Этот параметр является необязательным для пользовательского агента.

Этот параметр является необязательным для исходного сервера.

Если этот параметр отсутствует, его значение — «false».

emptyvaluematching = "emptyvaluematching" "=" ("true" / "false")

Если значение «false», поиск должен выполняться без сопоставления пустых значений.

Если значение «true» и исходный сервер поддерживает сопоставление пустых значений, поиск должен выполняться с сопоставлением пустых значений Атрибутов, как указано в Раздел C.2.2.2.7 «Сопоставление пустых значений» в PS3.4 и должен быть задокументирован в Заявлении о соответствии и, если сервис это поддерживает, в ответе Retrieve Capabilities.

Если значение «true» и исходный сервер не поддерживает сопоставление пустых значений, тогда:

  • Поиск должен выполняться без сопоставления пустых значений.

  • Ответ должен содержать следующий заголовок HTTP Warning (см. [RFC7234] Раздел 5.5):

    Warning: 299 <service>: The emptyvaluematching parameter is not supported. Empty Value Matching has not been performed.

    где <service> — это базовый URI для исходного сервера. Это может быть комбинация схемы, полномочий (authority) и пути.

  • Ответ может включать полезную нагрузку, содержащую соответствующий Отчёт о состоянии.

8.3.4.6 Множественное сопоставление значений

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

Этот параметр является необязательным для пользовательского агента.

Этот параметр является необязательным для исходного сервера.

Если этот параметр отсутствует, его значение — «false».

multiplevaluematching = "multiplevaluematching" "=" ("true" / "false")

Если значение «false», поиск должен выполняться без множественного сопоставления значений.

Если значение «true» и исходный сервер поддерживает множественное сопоставление значений, поиск должен выполняться с множественным сопоставлением значений Атрибутов, как указано в Раздел C.2.2.2.8 «Множественное сопоставление значений» в PS3.4 и должен быть задокументирован в Заявлении о соответствии и, если сервис это поддерживает, в ответе Retrieve Capabilities.

Если значение «true» и исходный сервер не поддерживает множественное сопоставление значений, тогда:

  • Поиск должен выполняться без множественного сопоставления значений.

  • Ответ должен содержать следующий заголовок HTTP Warning (см. [RFC7234] Раздел 5.5):

    Warning: 299 <service>: The multiplevaluematching parameter is not supported. Multiple Value Matching has not been performed.

    где <service> — это базовый URI для исходного сервера. Это может быть комбинация схемы, полномочий (authority) и пути.

  • Ответ может включать полезную нагрузку, содержащую соответствующий Отчёт о состоянии.

8.3.5 Параметры запроса для отрисовки

Этот раздел определяет синтаксис и поведение Параметров запроса для запросов получения Отрисованных типов мультимедиа (Rendered Media Types).

Все Транзакции получения для Отрисованных типов мультимедиа должны поддерживать эти параметры.

8.3.5.1 Параметры запроса для отрисованных ресурсов

Параметры запроса, определённые в этом разделе, задают различные преобразования отрисовки, которые должны быть применены к DICOM-изображениям, видео и тексту, содержащимся в родительском DICOM-ресурсе.

Следующие правила относятся ко всем параметрам, определённым в этом разделе:

  1. Все параметры являются необязательными для пользовательского агента.

  2. Не все параметры должны поддерживаться исходным сервером.

  3. Эти параметры применяются только к ресурсам Single Frame Image, Multi-Frame Image, Video и Text. См. Раздел 8.7.2.

Набор преобразований, заданных параметрами в этом разделе, должен быть применён к изображениям так, как если бы параметры были Состоянием представления (Presentation State). Исходный сервер определяет представление других объектов, управляющих отображением изображений, таких как Структурированные отчёты или Объекты сегментации.

Преобразования Состояния представления применяются с использованием соответствующего конвейера отрисовки, указанного в Раздел N.2 «Последовательность преобразования пикселей» в PS3.4. Любые параметры Source Image Region применяются после любых параметров Состояния представления. Любые параметры Viewport применяются после любых параметров Source Image Region.

Даже если выходные данные изображения определены в P-Values (значения в оттенках серого, предназначенные для отображения на устройстве, откалиброванном по DICOM Grayscale Standard Display Function PS3.14), или содержат ICC-профиль, оттенки серого или цветовое пространство для отрисованного изображения не определяются настоящим Стандартом.

Таблица 8.3.5-1 показывает Параметры запроса, которые могут использоваться при запросе Отрисованного представления.

Таблица 8.3.5-1. Параметры запроса для отрисованного получения

Ключ

Значения

Категория целевого ресурса

Раздел

accept
Rendered Media Type

Все категории

8.3.3.1

annotation
"patient" and/or "technique"

Изображение (однокадровое или многокадровое) или видео

8.3.5.1.1

charset
character set token

Все категории

8.3.3.2

quality
uint

Изображение (однокадровое или многокадровое) или видео

8.3.5.1.2

viewport
vw, vh [, sx, sy, sw, sh ]

Не Presentation States

8.3.5.1.3

viewport
vw, vh

Presentation States

8.3.5.1.3

window
center, width, shape

Не Presentation States

8.3.5.1.4

iccprofile
"no", "yes", "srgb", "adobergb", "rommrgb" or "displayp3"

Изображение (однокадровое или многокадровое) или видео

8.3.5.1.5


8.3.5.1.1 Image Annotation

Этот параметр указывает, что визуализированные изображения или видео будут иметь аннотации. Его имя — «annotation», а его значение — разделённый запятыми список из одного или нескольких ключевых слов. Он имеет следующий синтаксис:

annotation = %s"annotation=" 1#( %s"patient" / %s"technique" )

Где

"patient"

Указывает, что визуализированные изображения должны сопровождаться аннотациями с информацией о пациенте (например, имя пациента, дата рождения и т. д.).

"technique"

Указывает, что визуализированные изображения должны сопровождаться аннотациями с информацией о выполненной процедуре (например, номер изображения, дата исследования, позиция изображения и т. д.).

Если этот параметр отсутствует, аннотации не должны применяться.

Конвейеры визуализации изображений, указанные в PS3.4, требуют, чтобы аннотации применялись после применения всех остальных параметров и визуализации изображения или видео. Точный характер и представление аннотаций определяются исходным сервером и «впечатываются» в визуализированное содержимое.

Исходный сервер может поддерживать дополнительные ключевые слова, которые должны быть документированы в Заявлении о соответствии и, если служба это поддерживает, в ответе Retrieve Capabilities.

Если какое-либо из значений параметра не является ключевым словом или значения параметра отсутствуют, исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

Исходный сервер должен игнорировать любые неподдерживаемые значения параметра. Если присутствуют неподдерживаемые значения, исходный сервер должен включить следующее поле заголовка:

Warning 299 <service>: The following annotation values are not supported: <values>

и может включить полезную нагрузку, содержащую соответствующее предупреждение.

Примечание

  1. Точный характер и представление аннотации определяются исходным сервером. Аннотация впечатывается в пиксели визуализированного изображения.

  2. Пользовательский агент, желающий большего контроля над аннотациями, может получить изображение, опуская параметр «annotation», отдельно получить метаданные и создать настраиваемые аннотации на изображении.

  3. Пользовательский агент, желающий большего контроля над аннотациями, может получить изображение, опуская параметр «annotation», отдельно получить метаданные и создать настраиваемые аннотации на изображении.

  4. Целевой ресурс уже может содержать «впечатанный» текст, который находится вне контроля этого параметра.

8.3.5.1.2 Image Quality

Параметр "quality" задаёт запрошенное качество визуализированных изображений или видео. Он имеет следующий синтаксис:

quality = %s"quality=" uint

Где

uint

— целое число без знака от 1 до 100 включительно, где 100 означает наилучшее качество.

Если значение этого параметра отсутствует или не является целым числом от 1 до 100 включительно, ответ должен быть 400 (Bad Request) и может включать полезную нагрузку, содержащую соответствующее сообщение об ошибке.

Параметр "quality" поддерживается только для типов носителей, допускающих сжатие с потерями.

Значение этого параметра определяется исходным сервером и должно быть документировано в Заявлении о соответствии и, если Служба это поддерживает, в ответе Retrieve Capabilities.

Примечание

  1. Декомпрессия и повторное сжатие могут ухудшить качество изображения, если исходное изображение уже было необратимо сжато. Если изображение уже было сжато с потерями в том же формате, который требуется (например, jpeg), оно может быть отправлено как есть без декомпрессии и повторного сжатия.

  2. Исходный сервер может проигнорировать параметр quality, если результирующее качество изображения было бы слишком низким.

8.3.5.1.3 Viewport Scaling

Параметр "viewport" задаёт прямоугольную область исходного изображения(ий) или видео для обрезки и прямоугольную область, соответствующую размеру области просмотра пользовательского агента, до которой должно быть масштабировано обрезанное изображение или видео.

Синтаксис этого параметра для экземпляра Presentation State или Thumbnail:

%s"viewport=" vw "," vh

В остальных случаях:

%s"viewport=" vw "," vh ["," [sx] "," [sy] "," [sw] "," [sh] ]

Где

vw and vh

— положительные целые числа, задающие ширину и высоту визуализированного изображения или видео в пикселях. Оба значения обязательны.

sx and sy

— десятичные числа, абсолютные значения которых задают в пикселях верхний левый угол области исходного изображения(ий) для визуализации. Если sx или sy не указаны, они по умолчанию равны 0. Значение 0,0 задаёт верхний левый угол исходного изображения(ий).

sw and sh

— десятичные числа, абсолютные значения которых задают в пикселях ширину и высоту области исходного изображения(ий) для визуализации. Если sw не указано, по умолчанию используется правый край исходного изображения. Если sh не указано, по умолчанию используется нижний край исходного изображения. Если sw — отрицательное значение, изображение зеркально отражается по горизонтали. Если sh — отрицательное значение, изображение зеркально отражается по вертикали.

Исходный сервер должен обрезать исходные изображения или видео до области, заданной параметрами sx, sy, sw и sh. Затем он должен масштабировать исходное содержимое, сохраняя пропорции обрезанной области, пока ширина или высота визуализированного содержимого не совпадёт с шириной или высотой области просмотра, в зависимости от того, что позволяет избежать усечения. Иными словами, масштабирование области просмотра делает изображение(я) максимально большим в пределах области просмотра без переполнения области просмотра и без искажения изображения.

Если какое-либо из необязательных значений параметра отсутствует, должно использоваться значение по умолчанию. Отдельные значения могут быть опущены, но запятые между значениями должны присутствовать. Например:

viewport=512,512,,,512,512

Отсутствующие значения параметров sx и sy по умолчанию равны 0.

Если конечные значения опущены, то и конечные запятые должны быть опущены. Например:

viewport=1024,1024

Отсутствующие sx, sy, sw, sh получат свои значения по умолчанию, т. е. изображение(я) не должны обрезаться, т. е. визуализируется полное изображение.

Если параметр viewport отсутствует, визуализированное изображение(я) или видео не должны масштабироваться, т. е. визуализированное изображение(я) должно содержать ту же матрицу пикселей, что и исходное DICOM-изображение.

Если верно любое из следующего:

  • Этот параметр задаёт размеры области просмотра, которые имеют неверный формат или не поддерживаются

  • Целевой ресурс является Presentation State или Thumbnail и указано что-либо, кроме vw и vh

то ответ должен быть 400 (Bad Request) и может включать полезную нагрузку, содержащую соответствующий отчёт о статусе.

Примечание

Значения по умолчанию для sx и sy отличаются от значений по умолчанию в Specified Displayed Area в Presentation States, где используются целочисленные значения с верхним левым углом (1\1). См. Раздел C.10.4 в PS3.3 .

8.3.5.1.4 Windowing

Параметр "window" управляет оконной обработкой изображений или видео, как определено в Раздел C.8.11.3.1.5 в PS3.3 . It has the following syntax:

%s"window=" center "," width "," function

Где

center

— десятичное число, содержащее значение центра окна

width

— десятичное число, содержащее значение ширины окна

function

— одно из следующих ключевых слов: "linear", "linear-exact" или "sigmoid".

Примечание

Они соответствуют значениям VOI LUT Function (0028,1056), записанным с разным регистром и пунктуацией. См. Раздел C.11.2.1.2 в PS3.3 .

Все три параметра должны присутствовать с допустимыми значениями.

Если какое-либо из значений параметра отсутствует или имеет неверный формат, исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

Если Целевой Ресурс является Presentation State, этот параметр не должен использоваться. Если этот параметр присутствует, когда Целевой Ресурс является Presentation State, исходный сервер должен вернуть 400 (Bad Request).

8.3.5.1.5 ICC Profile

Параметр "iccprofile" задаёт цветовые характеристики и включение ICC-профиля в визуализированные изображения. Он имеет следующий синтаксис:

%s"iccprofile=" 1#( %s"no" / %s"yes" / %s"srgb" / %s"adobergb" / %s"rommrgb" / %s"displayp3" )

Где

"no"

указывает, что ICC-профиль не должен присутствовать в визуализированном изображении в ответе.

"yes"

указывает, что ICC-профиль должен присутствовать в визуализированном изображении в ответе, описывая его цветовые характеристики, если Тип Носителя поддерживает встроенные ICC-профили.

"srgb"

указывает, что ICC-профиль sRGB должен присутствовать в изображении, если Тип Носителя поддерживает встроенные ICC-профили, и что пиксели визуализированного изображения в ответе должны быть преобразованы из их исходного цветового пространства и закодированы в цветовом пространстве sRGB [IEC 61966-2.1].

"adobergb"

указывает, что ICC-профиль Adobe RGB должен присутствовать в изображении, если Тип Носителя поддерживает встроенные ICC-профили, и что пиксели визуализированного изображения в ответе должны быть преобразованы из их исходного цветового пространства и закодированы в цветовом пространстве Adobe RGB [Adobe RGB].

"rommrgb"

указывает, что ICC-профиль ROMM RGB должен присутствовать в изображении, если Тип Носителя поддерживает встроенные ICC-профили, и что пиксели визуализированного изображения в ответе должны быть преобразованы из их исходного цветового пространства и закодированы в цветовом пространстве ROMM RGB [ISO 22028-2].

"displayp3"

указывает, что ICC-профиль Display-P3 должен присутствовать в изображении, если Тип Носителя поддерживает встроенные ICC-профили, и что пиксели визуализированного изображения в ответе должны быть преобразованы из их исходного цветового пространства и закодированы в цветовом пространстве Display-P3 [Display-P3]

Когда этот параметр отсутствует:

  • ICC-профиль может как присутствовать, так и отсутствовать в изображении в ответе;

  • цветовые характеристики изображения в ответе могут как соответствовать, так и не соответствовать любому атрибуту DICOM ICC Profile (0028,2000) в метаданных.

ICC-профиль в изображении в ответе должен быть:

  • ICC-профилем цветового пространства, явно указанного параметром,

  • иначе — ICC-профиль, закодированный в исходном атрибуте DICOM ICC Profile (0028,2000), если таковой имеется, подходящий для выбранного кадра,

  • иначе — ICC-профиль, если таковой имеется, встроенный в сохранённое сжатое представление выбранного кадра,

  • иначе — по усмотрению исходного сервера, ICC-профиль общеизвестного цветового пространства, перечисленного в Раздел C.11.15.1.2 «Color Space» в PS3.3, подходящего для типа и источника изображения.

Если Тип Носителя не поддерживает встроенные ICC-профили:

  • ошибка 400 Bad Request должна быть возвращена, если значение параметра отлично от "no"

Примечание

  1. Этот параметр позволяет информации ICC-профиля присутствовать в изображении в ответе, чтобы пользовательский агент мог использовать её для локального управления цветом (например, браузер с поддержкой ICC-профилей может применять профиль при отображении визуализированного изображения в ответе).

  2. Этот параметр предоставляет ограниченный механизм для запроса того, чтобы исходный сервер выполнил некоторое управление цветом. Он предоставляет названия общеизвестных цветовых пространств для визуализированного изображения в ответе. Он не предоставляет механизм для передачи произвольного ICC-профиля, такого как калибровочный профиль дисплея, поэтому он не освобождает пользовательский агент от необходимости выполнять собственную калибровку цвета и управление цветом.

  3. ICC-профили теоретически могут быть велики по сравнению со сжатыми пиксельными данными одного кадра, поэтому пользовательский агент может указать значение параметра "no", получить значения атрибута DICOM ICC Profile (0028,2000), применимые к нескольким кадрам, из метаданных и объединить их самостоятельно.

  4. ICC-профили встраиваются в визуализированные изображения типа image/jpeg в виде одного или нескольких блоков в сегментах маркеров APP2 с идентификатором "ICC_PROFILE", как определено в Приложении B [ISO 15076-1].

  5. ICC-профили встраиваются в визуализированные изображения типа image/jp2 либо как профили JP2 Restricted, либо как JPX Full в соответствии с [ISO/IEC 15444-1] и [ISO/IEC 15444-2] соответственно; визуализированные изображения в ответе не подлежат запрету на включение JP2-блока в потоки сжатых данных JPEG 2000 в DICOM-изображениях.

  6. ICC-профили встраиваются в визуализированные изображения типа image/png в блоке iCCP, как определено в [ISO 15948].

8.3.5.1.6 Presentation State Behavior

Если Целевой Ресурс является одиночным экземпляром Presentation State, этот экземпляр может содержать ссылки на одну или несколько Series, каждая из которых может содержать один или несколько Instances, каждый из которых может содержать один или несколько Кадров. Ответ должен вернуть визуализированные версии всех поддерживаемых Instances и Кадров, на которые ссылается экземпляр Presentation State.

Например, если экземпляр Presentation State

  • ссылается на Многокадровое Изображение, то ответ будет содержать все Кадры, указанные целевым ресурсом,

  • или ссылается на Series, то ответ будет содержать все Instances, содержащиеся в этой Series.

Если экземпляр Presentation State содержит Blending Sequence, то визуализированные изображения в ответе должны соответствовать кадрам входных данных, имеющим элемент Blending Sequence Item со значением Blending Position (0070,0405), равным UNDERLYING. См. Раздел C.11.14.1.1 «Blending Sequence» в PS3.3 .

Исходный сервер должен визуализировать все изображения, на которые ссылается Presentation State, в Допустимом Типе Носителя, используя конвейер визуализации, указанный в Раздел N.2 «Последовательность преобразования пикселей» в PS3.4.

Если в ответе более одного Кадра, они должны быть упорядочены по следующим критериям:

  1. сначала по Dimension Index Values (0020,9157), если присутствует

  2. затем по Image Position (Patient) (0020,0032), если присутствует

  3. затем по Image Position Volume (0020,9301), если присутствует

  4. затем по порядку ссылок на Instances в состоянии представления

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

Если Целевой Ресурс является Presentation State и Если Presentation Size Mode равен SCALE TO FIT или TRUE SIZE, то отображаемая область, указанная в Presentation State, должна быть масштабирована с сохранением пропорций для соответствия размеру, заданному параметрами rows и columns, если они присутствуют; в противном случае отображаемая область, выбранная в состоянии представления, будет возвращена без масштабирования.

Примечание

  1. Намерение режима TRUE SIZE в состоянии представления не может быть удовлетворено, поскольку физический размер пикселей, отображаемых веб-браузером, вряд ли известен. Если Presentation Size Mode в состоянии представления — MAGNIFY, отображаемая область, указанная в представлении, должна быть увеличена (масштабирована), как указано в состоянии представления. Затем она будет обрезана в соответствии с размером, заданным параметрами viewport, если они присутствуют.

  2. Любые аннотации, относительные к Displayed Area и указанные в состоянии представления, визуализируются относительно Specified Displayed Area в состоянии представления, а не относительно размера возвращённого изображения.

Хотя выходные данные состояния представления определены в DICOM как P-Values (значения в градациях серого, предназначенные для отображения на устройстве, откалиброванном по DICOM Grayscale Standard Display Function PS3.14), шкала серого или цветовое пространство для изображений, возвращаемых запросом, не определяется настоящим стандартом.

Если Presentation State содержит ICC Profile Module, изображение(я) в ответе должно включать ICC-профиль, как указано в Раздел 8.3.5.1.5.

Исходный сервер должен отклонить запрос, если верно любое из следующего:

  • присутствуют параметры оконной обработки (Window Center и Window Width),

  • присутствует параметр Frame Number,

  • Presentation Series UID не соответствует существующей Presentation Series на исходном сервере, или

  • Presentation UID не соответствует существующему экземпляру Presentation на исходном сервере

и исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

8.3.5.2 Query Parameters For Thumbnails

Таблица 8.3.5-2 показывает параметры запроса, которые могут использоваться при запросе представления эскиза (Thumbnail).

Таблица 8.3.5-2. Параметры запроса для эскизов

Ключ

Значения

Категория целевого ресурса

Раздел

accept
Rendered Media Type

Все категории

Раздел 8.3.3.1

charset
character set token

Все категории

Раздел 8.3.3.2

viewport
vw, vh

Все категории

Раздел 8.3.5.1.3


Параметр Viewport имеет только значения ширины и высоты. Если параметр viewport не предоставлен, исходный сервер определит размер эскиза (Thumbnail).

8.3.5.3 Query Parameters For Rendered MPR Volume Resources and Rendered 3D Volume Resources

Параметры запроса, определённые в этом разделе, управляют созданием новых 3D- или MPR-изображений на основе объёмных данных, пересчитанных из Целевого Ресурса.

Следующие правила относятся ко всем параметрам, определённым в этом разделе:

  1. Все параметры являются необязательными для пользовательского агента.

  2. Не все параметры обязаны поддерживаться исходным сервером.

  3. Эти параметры применяются только к ресурсам, являющимся изображениями.

Набор преобразований, заданный параметрами в этом разделе, должен быть применён к изображениям, как если бы параметры были Volumetric Presentation State, то есть в порядке, указанном применимым конвейером визуализации изображений, указанным в Раздел FF.2 PS3.4.

Таблица 8.3.5-3, «Параметры запроса для получения визуализированного объёма» показывает параметры запроса, которые могут использоваться при запросе визуализированного представления объёма (Rendered Volume Representation).

Таблица 8.3.5-3. Параметры запроса для получения визуализированного объёма

Ключ

Значения

Категория целевого ресурса

Раздел

volumeinputreference
uid or frame

Изображение (однокадровое или многокадровое)

Section 8.3.5.3.1

match
; See attribute matching rules in Section 8.3.4.1

Изображение (однокадровое или многокадровое)

Section 8.3.5.3.2

renderingmethod
"volume_rendered", "maximum_ip", "minimum_ip" or "average_ip"

Изображение (однокадровое или многокадровое)

Section 8.3.5.3.3

orientation
"a", "p", "r", "l", "h" or "f"

Изображение (однокадровое или многокадровое) или Состояния объёмного представления

Section 8.3.5.3.4

viewpointposition
px, py, pz

Изображение (однокадровое или многокадровое) или Состояния объёмного представления

Section 8.3.5.3.5

viewpointlookat
lx, ly, lz

Изображение (однокадровое или многокадровое) или Состояния объёмного представления

Section 8.3.5.3.6

viewpointup
ux, uy, uz

Изображение (однокадровое или многокадровое) или Состояния объёмного представления

Section 8.3.5.3.7

mprslab
st

Изображение (однокадровое или многокадровое)

Section 8.3.5.3.8

swivelrange
sr

Изображение (однокадровое или многокадровое)

Section 8.3.5.3.9

volumetriccurvepoint
px, py, pz

Изображение (однокадровое или многокадровое)

Section 8.3.5.3.10

animationstepsize
ss

Изображение (однокадровое или многокадровое)

Section 8.3.5.3.11

animationrate
rt

Изображение (однокадровое или многокадровое)

Section 8.3.5.3.12

renderedvolumetricmetadata
"yes"

Изображение (однокадровое или многокадровое)

Section 8.3.5.3.13


Ресурсы Rendered MPR Volume и Rendered 3D Volume имеют два взаимоисключающих варианта для определения начальной ориентации повторно дискретизированных объёмных данных:

  1. Параметр "orientation" устанавливает стандартную анатомическую позицию пациента, видимую камерой, и

  2. параметры ориентации камеры ("viewpointposition", "viewpointlookat" или "viewpointup") устанавливают положение и направление камеры при просмотре пациента.

При использовании параметров анимации начальный кадр определяется параметрами ориентации. Параметры "swivelrange", "volumetriccurvepoint" и "animationstepsize" определяют последующие кадры. При анимации нескольких наборов временно связанных, пространственно совмещённых объёмных данных (например, многофазного исследования) исходный сервер определяет отображаемую фазу начального кадра.

Не существует параметра для управления типом проекции, используемой при рендеринге. Исходный сервер должен использовать ортографическую проекцию для ресурсов Rendered 3D Volume. См. Раздел C.11.30.1 в PS3.3.

Не существует параметра для явного управления полем обзора рендеринга, высотой MPR-вида или шириной MPR-вида (см. Раздел C.11.30 в PS3.3 и Раздел C.11.26 в PS3.3). Параметр "viewport" может использоваться для масштабирования возвращаемых данных. См. Раздел 8.3.5.1.3.

8.3.5.3.1 Ссылка на входные объёмные данные

Параметр "volumeinputreference" идентифицирует экземпляр или кадр внутри экземпляра, из которого исходный сервер должен извлечь характеристики и идентифицировать дополнительные экземпляры или кадры в целевом ресурсе с теми же значениями этих характеристик. Пользовательский агент использует этот параметр для идентификации желаемого подмножества, когда целевой ресурс является надмножеством предполагаемых объёмных данных. Исходный сервер должен идентифицировать подмножество, соответствующее требованиям к входным объёмным данным для ресурсов Rendered MPR Volume и Rendered 3D Volume (см. Раздел C.11.23.1 в PS3.3).

Синтаксис этого параметра для многокадрового изображения:

%s" volumeinputreference =" uid "," frame

В противном случае он имеет вид:

%s" volumeinputreference =" uid

Где

uid

Уникальный идентификатор SOP-экземпляра ссылки на входные объёмные данные, когда целевым ресурсом является серия или исследование.

кадр

Номер кадра в экземпляре изображения, когда ссылкой на входные объёмные данные является экземпляр изображения Enhanced IOD.

Примечание

uid

соответствует Referenced SOP Instance UID (0008,1155), а кадр соответствует Referenced Frame Number (0008,1160). См. Раздел 10.3 в PS3.3.

Исходный сервер должен создать объёмные данные из экземпляров или кадров, имеющих характеристики, идентичные ссылке на входные объёмные данные, на основе специфической для реализации логики.

Исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе, если верно любое из следующих условий:

  • целевой ресурс является состоянием представления,

  • допустимые объёмные данные не найдены на основе ссылки на входные объёмные данные,

  • UID не найден в целевом ресурсе,

  • кадр не найден в целевом ресурсе,

  • в запросе присутствует пара атрибут/значение для сопоставления (Match) в другом параметре.

8.3.5.3.2 Сопоставление

Параметр "match" задаёт общие характеристики пар атрибут/значение DICOM для объёмных данных.

Когда пользовательский агент идентифицирует целевой ресурс, который является надмножеством предполагаемых объёмных данных, он может указать пары атрибут/значение, задающие критерии сопоставления для идентификации конкретных экземпляров или кадров в целевом ресурсе для повторной дискретизации в качестве объёмных данных. Результирующее подмножество должно соответствовать требованиям к входным объёмным данным для ресурсов Rendered MPR Volume и Rendered 3D Volume (см. Раздел C.11.23.1 в PS3.3).

См. Раздел 8.3.4.1 для синтаксиса этого параметра.

Пользовательский агент может включить следующие атрибуты в параметр:

  • Атрибуты уровня IE экземпляра

  • Теги приватных элементов данных и соответствующие им теги Private Creator

Исходный сервер должен реконструировать объёмные данные, удовлетворяющие критериям входных объёмных данных.

Исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе, если верно любое из следующих условий:

  • целевой ресурс является состоянием объёмного представления,

  • допустимые объёмные данные не найдены на основе пары атрибут/значение,

  • также присутствует параметр "volumeinputreference".

8.3.5.3.3 Метод рендеринга

Параметр "renderingmethod" задаёт алгоритм отображения, применяемый к объёмным данным.

Синтаксис этого параметра:

%s"renderingmethod=" 1#( %s"volume_rendered" / %s"maximum_ip" / %s"minimum_ip" / %s"average_ip" )

Где

volume_rendered

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

maximum_ip

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

minimum_ip

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

average_ip

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

Примечание

  1. Эти значения соответствуют значениям с различной капитализацией атрибута Rendering Method (0070,120D). См. Раздел C.11.23 в PS3.3 и Раздел C.11.30 в PS3.3.

  2. Не существует параметра для управления типом проекции, используемой при рендеринге. Ресурсы Rendered 3D Volume используют ортографическую проекцию. См. Рисунок C.11.30-1 в PS3.3.

  3. Для ресурсов Rendered MPR Volume этот параметр описывает алгоритм отображения, применяемый, когда толщина среза превышает один воксель. Значение этого параметра обычно — average_ip.

Если параметр "renderingmethod" отсутствует, исходный сервер может применить метод рендеринга по умолчанию в зависимости от ресурса или, в качестве альтернативы, вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

Если целевой ресурс является состоянием объёмного представления, исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

8.3.5.3.4 Ориентация

Параметр "orientation" задаёт ориентацию пациента с точки зрения камеры для текущего объёмного 3D- или MPR-представления.

Синтаксис этого параметра:

%s"orientation =" 1#( %s"a" / %s"p" / %s"r" / %s"l" / %s"h" / %s"f" )

Где

a

Камера просматривает переднюю сторону пациента:

  • Viewpoint Position (0070,1603) находится спереди пациента.

  • Viewpoint LookAt Point (0070,1604) направлен от передней стороны пациента к задней.

  • Viewpoint Up Direction (0070,1605) направлен к голове пациента (сверху).

p

Камера просматривает заднюю сторону пациента:

  • Viewpoint Position (0070,1603) находится сзади пациента.

  • Viewpoint LookAt Point (0070,1604) направлен от задней стороны пациента к передней.

  • Viewpoint Up Direction (0070,1605) направлен к голове пациента (сверху).

r

Камера просматривает правую сторону пациента:

  • Viewpoint Position (0070,1603) находится справа от пациента.

  • Viewpoint LookAt Point (0070,1604) направлен от правой стороны пациента к левой.

  • Viewpoint Up Direction (0070,1605) направлен к голове пациента (сверху).

l

Камера просматривает левую сторону пациента:

  • Viewpoint Position (0070,1603) находится слева от пациента.

  • Viewpoint LookAt Point (0070,1604) направлен от левой стороны пациента к правой.

  • Viewpoint Up Direction (0070,1605) направлен к голове пациента (сверху).

h

Камера просматривает голову пациента (т.е. сверху):

  • Viewpoint Position (0070,1603) находится выше пациента (со стороны головы).

  • Viewpoint LookAt Point (0070,1604) направлен от головы пациента к ногам.

  • Viewpoint Up Direction (0070,1605) направлен к передней стороне пациента.

f

Камера просматривает ноги пациента (т.е. снизу):

  • Viewpoint Position (0070,1603) находится ниже пациента (со стороны ног).

  • Viewpoint LookAt Point (0070,1604) направлен от ног пациента к голове.

  • Viewpoint Up Direction (0070,1605) направлен к передней стороне пациента.

Примечание

Эти значения соответствуют значениям с различной капитализацией атрибутов Patient Orientation (0020,0020) и Image Orientation (Patient) (0020,0037). См. Раздел C.7.6.1.1.1 в PS3.3 и Приложение A в PS3.17.

Если целевой ресурс является состоянием объёмного рендеринга и присутствуют любые параметры запроса ориентации, исходный сервер должен применить параметры запроса вместо атрибутов геометрии в Multi-Planar Reconstruction Geometry Module или Volume Render Geometry Module.

Примечание

Это предназначено для того, чтобы позволить пользователю корректировать ориентацию после просмотра начальной ориентации, определённой в состоянии объёмного представления.

Ориентация используется для выбора желаемой стандартной анатомической позиции отрисованного объёма. Например, "a" задаёт направление отрисованного объёма, наиболее точно совпадающее с передней плоскостью пациента. Углы обзора, выходящие за пределы стандартных ортогональных анатомических позиций, управляются параметрами ориентации камеры (т.е. "viewpointposition", "viewpointlookat" или "viewpointup").

Исходный сервер должен определить Viewpoint Position (0070,1603), Viewpoint LookAt Point (0070,1604) и Viewpoint Up Direction (0070,1605) на основе значения параметра "orientation".

Если присутствуют как параметр "orientation", так и любой из параметров ориентации камеры, исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

8.3.5.3.5 Положение точки наблюдения

Параметр "viewpointposition" задаёт положение камеры в системе координат точки наблюдения (VCS). См. Раздел C.11.30.1 в PS3.3.

Синтаксис этого параметра:

%s"viewpointposition =" px "," py "," pz

Где

px, py and pz

Положение точки наблюдения в объёмном пространстве. Точка (x,y,z) в VCS.

Примечание

Это соответствует атрибуту Viewpoint Position (0070,1603). См. Раздел C.11.30 в PS3.3.

Если целевой ресурс является состоянием объёмного представления и присутствуют любые параметры запроса ориентации, исходный сервер должен применить параметры запроса вместо атрибутов геометрии в Multi-Planar Reconstruction Geometry Module или Volume Render Geometry Module.

Любой или все параметры ориентации камеры могут быть включены. Если какой-либо из параметров запроса ориентации камеры отсутствует, исходный сервер может применить значение по умолчанию (например,

  • установить "viewpointposition" спереди пациента,

  • установить "viewpointlookat" в центр объёма,

  • установить "viewpointup" к голове пациента),

или вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

8.3.5.3.6 Направление взгляда точки наблюдения

Параметр "viewpointlookat" задаёт точку, на которую смотрит камера, в системе координат точки наблюдения (VCS). См. Раздел C.11.30.1 в PS3.3.

Синтаксис этого параметра:

%s"viewpointlookat =" lx "," ly "," lz

Где

lx, ly and lz

Точка направления взгляда точки наблюдения (т.е. точка, на которую смотрит камера). Точка (x,y,z) в VCS.

Примечание

Это соответствует атрибуту Viewpoint LookAt Point (0070,1604). См. Раздел C.11.30 в PS3.3.

Если целевой ресурс является состоянием объёмного представления и присутствуют любые параметры запроса ориентации, исходный сервер должен применить параметры запроса вместо атрибутов геометрии в Multi-Planar Reconstruction Geometry Module или Volume Render Geometry Module.

8.3.5.3.7 Направление вверх точки наблюдения

Параметр "viewpointup" задаёт вертикальную ориентацию камеры в системе координат точки наблюдения (VCS). См. Раздел C.11.30.1 в PS3.3.

Синтаксис этого параметра:

%s"viewpointup =" ux "," uy "," uz

Где

ux, uy and uz

Направление вверх точки наблюдения (т.е. направление, в котором указывает верх камеры). Вектор (x,y,z) в VCS.

Примечание

Это соответствует атрибуту Viewpoint Up Direction (0070,1605). См. Раздел C.11.30 в PS3.3.

Если целевой ресурс является состоянием объёмного представления и присутствуют любые параметры запроса ориентации, исходный сервер должен применить параметры запроса вместо атрибутов геометрии в Multi-Planar Reconstruction Geometry Module или Volume Render Geometry Module.

8.3.5.3.8 Толщина среза MPR

Параметр "mprslab" задаёт толщину плоскости MPR. Этот параметр приводит к ортографическому рендерингу с заданной толщиной с использованием метода, определённого параметром "renderingmethod". См. Раздел C.11.26.1.1 в PS3.3 для получения дополнительной информации.

Синтаксис этого параметра для Rendered MPR Volume:

%s"mprslab =" st

Где

st

Толщина среза Multi-Planar Reconstruction как значение больше нуля, в мм.

Примечание

  1. Это соответствует атрибуту MPR Slab Thickness (0070,1503). См. Раздел C.11.26 в PS3.3.

  2. Толщина среза возвращаемых данных может не совпадать с запрошенной толщиной из-за размера вокселей целевого ресурса.

Если параметр "renderingmethod" отсутствует, исходный сервер может применить метод рендеринга по умолчанию в зависимости от ресурса и/или толщины среза или, в качестве альтернативы, вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

Если целевой ресурс является состоянием объёмного представления, исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

8.3.5.3.9 Диапазон поворота

Параметр "swivelrange" задаёт угловой диапазон, в пределах которого отрисованный объём вращается вокруг оси поворота, которая определяется как ось, параллельная "viewpointup" и проходящая через "viewpointlookat". Отрисованный объём вращается вперёд-назад.

Синтаксис этого параметра:

%s"swivelrange =" sr

Где

sr

Диапазон, в котором объём вращается вперёд-назад вокруг оси поворота, в градусах.

Примечание

Это соответствует значению SWIVEL с различной капитализацией атрибута Presentation Animation Style (0070,1A01) и атрибуту Swivel Range (0070,1A06). См. Раздел C.11.29 в PS3.3 и Раздел FF.2.4.2 в PS3.4.

Исходный сервер должен создать анимацию с количеством кадров, равным значению Swivel Range, делённому на "animationstepsize".

Если параметр "swivelrange" присутствует, а параметр "animationrate" отсутствует, исходный сервер должен определить частоту анимации.

Если целевой ресурс является состоянием объёмного представления, исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

8.3.5.3.10 Координаты точек объёмной кривой

Параметр "volumetriccurvepoint" задаёт координаты точек на кривой анимации в опорной системе координат состояния объёмного представления, в мм. Для каждой точки кривой должна присутствовать одна тройка (x,y,z). Для анимации требуется как минимум две точки. См. Раздел C.11.29.1 в PS3.3.

Синтаксис этого параметра:

%s"volumetriccurvepoint =" px "," py "," pz

Где

px, py and pz

Положение точки на кривой анимации. Точка (x,y,z) в VPS-RCS, в мм.

Примечание

Это соответствует атрибуту Volumetric Curve Points (0070,150D). См. Раздел C.11.29 в PS3.3.

Исходный сервер должен создать анимацию с количеством кадров, равным общей длине объёмной кривой, делённой на "animationstepsize".

Если параметры "volumetriccurvepoint" присутствуют, а параметр "animationrate" отсутствует, исходный сервер должен определить частоту анимации.

Если целевой ресурс является состоянием объёмного представления, исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

8.3.5.3.11 Размер шага анимации

Параметр "animationstepsize" задаёт расстояние между шагами анимации или кадрами в анимации объёмного рендеринга.

Для анимации поворота расстояние между шагами измеряется в градусах. Для объёмной кривой расстояние между шагами измеряется в мм вдоль кривой анимации.

Синтаксис этого параметра:

%s"animationstepsize=" ss

Где

ss

Размер шага анимации — целое число больше нуля.

Примечание

Это соответствует атрибуту Animation Step Size (0070,1A05). См. Раздел C.11.29 в PS3.3.

Исходный сервер должен создать анимацию с количеством кадров, равным одному из следующих значений:

  • "swivelrange", делённому на "animationstepsize", или

  • общей длине объёмной кривой, делённой на "animationstepsize".

Если параметр "animationstepsize" отсутствует и присутствует "swivelrange" или "volumetriccurvepoint", исходный сервер может применить размер шага анимации по умолчанию или, в качестве альтернативы, вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

Если целевой ресурс является состоянием объёмного представления, исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

8.3.5.3.12 Частота анимации

Параметр "animationrate" задаёт частоту, с которой отображается анимированное 3D- или MPR-объёмное представление.

Синтаксис этого параметра:

%s"animationrate=" rt

Где

rt

Частота в шагах в секунду — целое число больше нуля.

Примечание

  1. Это соответствует Recommended Animation Rate (0070,1A03) в Разделе C.11.29 в PS3.3 и Разделе FF.2.4.2 в PS3.4.

  2. Воспроизведение возвращаемых данных на клиенте может как достигать, так и не достигать запрошенной частоты анимации.

Если параметр "animationrate" отсутствует и присутствуют другие параметры анимации (например, "swivelrange", "animationstepsize" или "volumetriccurvepoint"), исходный сервер может применить частоту анимации по умолчанию или, в качестве альтернативы, вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

Если целевой ресурс является состоянием объёмного представления, исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

8.3.5.3.13 Метаданные отрисованного объёма

Параметр "renderedvolumetricmetadata" указывает, что полезная нагрузка ответа содержит только модуль ответа отрисованного объёма (Rendered Volume Response Module) с параметрами, применёнными исходным сервером для генерации объёмного рендеринга.

Синтаксис этого параметра:

%s"renderedvolumetricmetadata =" "yes"

Где

yes

Указывает, что в полезной нагрузке ответа должен присутствовать только Rendered Volume Response Module.

Исходный сервер должен вернуть полезную нагрузку ответа, содержащую Rendered Volume Response Module, как указано в Приложении K.

Примечание

Если этот параметр отсутствует, модуль ответа не запрашивается, и 2D-представление отрисованного объёма возвращается, как описано в Разделе 10.4.1.1.7 и Разделе 10.4.1.1.8.

Rendered Volume Response Module содержит полный набор параметров запроса, включая как те, что были указаны пользовательским агентом в запросе, так и те, что были определены исходным сервером.

Для любых двух запросов, у которых параметры запроса, целевой ресурс и поля заголовка идентичны, значения параметров запроса в модуле Rendered Volume Response Module, возвращаемом исходным сервером, должны быть идентичными.

Примечание

При повторении запроса на рендеринг ожидается, что исходный сервер предоставит согласованный результат. Необязательно, чтобы он был абсолютно идентичным.

Если целевой ресурс является состоянием объёмного представления, исходный сервер должен вернуть 400 (Bad Request) и может включить соответствующий отчёт о статусе.

8.4 Поля заголовка

В следующих разделах описаны важные поля заголовка, некоторые из которых имеют более строгие требования, чем те, что указаны в стандарте HTTP.

8.4.1 Поля заголовка согласования содержимого

HTTP использует поля заголовка Accept и Content-Type для согласования содержимого и типизации данных. Типы медиа в поле заголовка Accept запроса определяют типы медиа, которые пользовательский агент считает приемлемыми в ответе. Тип медиа в поле заголовка Content-Type сообщения или части полезной нагрузки описывает формат представления, содержащегося в полезной нагрузке сообщения или её части.

Поля заголовка согласования содержимого в запросах позволяют пользовательскому агенту указать приемлемые представления для ответа. Таблица 8.4.1-1 содержит список полей заголовка согласования содержимого. Значения в этих полях применяются к любому содержимому ответа, включая представления целевого ресурса, представления ошибок или статуса обработки, а также, возможно, к различным текстовым строкам, которые могут появляться в рамках протокола HTTP. См. [RFC7231] Раздел 5.3.

Таблица 8.4.1-1. Поля заголовка согласования содержимого

Имя

Значение

Использование

Описание

Accept

1#media-range

M

Все запросы, ожидающие получить ответ с полезной нагрузкой, должны содержать поле заголовка Accept. См. Раздел 8.4.1.1.

Accept-Charset

1#charset

O

Поле заголовка Accept-Charset может быть отправлено пользовательским агентом для указания того, какие кодировки символов приемлемы в содержимом ответа. См. [RFC7231] Раздел 5.3.3.

Accept-Encoding

1#encoding

O

Поле заголовка Accept-Encoding может использоваться для указания кодировок содержимого (см. [RFC7231] Раздел 3.1.2.1) acceptable in the response. See [RFC7231] Раздел 5.3.4.

Accept-Language

1#language

O

Поле заголовка Accept-Language может использоваться пользовательскими агентами для указания набора естественных языков, предпочитаемых в ответе. См. [RFC7231] Раздел 5.3.5.


8.4.1.1 Accept

Пользовательские агенты используют поле заголовка Accept для указания приемлемых типов медиа для полезной нагрузки ответа. Поле заголовка Accept может использоваться для указания того, что полезная нагрузка ответа специально ограничена набором желаемых типов медиа. Оно имеет следующий синтаксис:

Accept      = "Accept:" #( media-range [accept-params] )
media-range = ("*/*" 
              / (type "/" "*") 
              / (type "/" subtype)
              ) *(OWS ";" OWS accept-params)
accept-params = weight *(accept-ext)

Большинство запросов имеют поле заголовка Accept, содержащее разделённый запятыми список одного или нескольких диапазонов медиа. Диапазон медиа расширяет тип медиа подстановочными знаками (*/* или type/*) и параметрами, которые не определены для типов медиа. См. [RFC7231] Раздел 5.3.2 for details.

Например, если пользовательский агент готов принять любой тип медиа в ответе, он должен включить */* в качестве значения поля заголовка Accept.

Многие поля заголовка согласования содержимого используют параметр веса, называемый "q" (без учёта регистра), для назначения относительного "веса" предпочтению для соответствующего типа содержимого.

Типам медиа в заголовке Accept можно задать приоритет с помощью весов.

weight = OWS ";" OWS "q=" qvalue
qvalue = ("0" ["." 0*3DIGIT]) 
       / ("1" ["." 0*3("0")])

Этот вес часто называют "значением качества" или "qvalue". См. [RFC7231] Раздел 5.3.1.

Все запросы, которые могут получить ответ, содержащий полезную нагрузку, должны предоставлять поле заголовка Accept.

См. Раздел 8.7.5 для получения информации о приемлемых типах медиа.

8.4.1.1.1 Параметр charset типа медиа

Многие типы медиа, особенно типы text/*, определяют параметр "charset", задающий кодировку символов для представления. См. [RFC7231] Раздел 3.1.1.2.

Типы медиа DICOM определяют параметр "charset". См. Раздел 8.7.3.5.3.

Например,

application/dicom; charset=ISO-8859-1

См. Раздел 8.8.1 для получения информации о приемлемых кодировках символов.

8.4.2 Поля заголовка представления содержимого

Тип медиа в поле заголовка Content-Type сообщения или части полезной нагрузки описывает формат представления, содержащегося в полезной нагрузке или её части.

Когда сообщение имеет полезную нагрузку, поля заголовка представления содержимого предоставляют метаданные, описывающие, как интерпретировать представление(я), содержащиеся в полезной нагрузке. Таблица 8.4.2-1 описывает поля заголовка представления содержимого и требования к использованию (обязательный, условный или необязательный) для случаев, когда они должны присутствовать.

Таблица 8.4.2-1. Поля заголовка представления содержимого

Имя

Значение

Использование

Требование

Content-Type

media-type

C

Задаёт тип медиа представления, содержащегося в полезной нагрузке.

Если сообщение имеет полезную нагрузку, оно должно иметь поле заголовка Content-Type, задающее тип медиа полезной нагрузки. См. [RFC7231] Раздел 3.1.1.5.

Content-Encoding

encoding

C

Задаёт кодирования содержимого, применённые к представлению (помимо тех, что заложены в типе медиа), и, следовательно, какое декодирование необходимо применить для получения представления в типе медиа, указанном в Content-Type. См. [RFC7230] Раздел 3.1.2.2.

Content-Encoding позволяет выполнять сжатие, шифрование и/или аутентификацию представлений.

Должно присутствовать, если к представлению в полезной нагрузке было применено кодирование содержимого.

Content-Language

language

O

Задаёт естественный язык(и) целевой аудитории, используемый(ые) в представлении. См. [RFC7231] Раздел 3.1.3.2.

Content-Location

url

C

Содержит URL, ссылающийся на конкретный ресурс, соответствующий представлению в полезной нагрузке.

Должно присутствовать, если полезная нагрузка содержит представление ресурса.


8.4.3 Поля заголовка полезной нагрузки

Поля заголовка полезной нагрузки содержат метаданные, описывающие полезную нагрузку, а не представление, которое она содержит. Таблица 8.4.3-1 описывает поля заголовка полезной нагрузки и требования к использованию (обязательный, условный или необязательный) для случаев, когда они должны присутствовать.

Таблица 8.4.3-1. Поля заголовка полезной нагрузки

Имя

Значение

Использование

Описание

Content-Length

uint

C

Задаёт десятичное число октетов в полезной нагрузке.

Если ответное сообщение имеет полезную нагрузку и не имеет поля заголовка Transfer-Encoding, оно должно иметь поле заголовка Content-Length, задающее длину полезной нагрузки в октетах (байтах).

Не должно присутствовать, если сообщение имеет поле заголовка Transfer-Encoding. В противном случае должно присутствовать, даже если размер полезной нагрузки равен нулю.

Content-Range

range

C

Задаёт диапазон частичного представления, содержащегося в полезной нагрузке. См. [RFC7233] Раздел 4.2.

Поле заголовка Content-Range отправляется в однопартийном ответе 206 (Partial Content) для указания частичного диапазона выбранного представления, enclosed как полезная нагрузка сообщения.

Оно отправляется в каждой части многопартийного ответа 206 для указания диапазона, заключённого в каждой части тела.

Оно отправляется в ответах 416 (Range Not Satisfiable) для предоставления информации о выбранном представлении.

Transfer-Encoding

encoding

C

See [RFC7230] Раздел 3.3.1.

Должно присутствовать, если к полезной нагрузке применены кодирования передачи (transfer-encodings).


8.5 Коды состояния

Каждое ответное сообщение содержит код состояния.

Наиболее часто используемые коды состояния HTTP перечислены в Таблице 8.5-1. Большинство этих кодов подробно описаны в [RFC7231]. IANA поддерживает реестр кодов состояния HTTP [IANA HTTP Status Code Registry], содержащий полный список зарегистрированных кодов состояния.

Таблица 8.5-1. Значения кодов состояния

Статус

Код

Значение

Успех

Класс кодов состояния 2xx (Успешные) указывает на то, что запрос клиента был успешно получен, понят и принят.

200

(OK)

Все представления целевого ресурса содержатся в полезной нагрузке. См. [RFC7231] Раздел 6.3.1.

201

(Created)

Запрос выполнен, и в результате был создан один или несколько новых ресурсов. См. [RFC7231] Раздел 6.3.2.

202

(Accepted)

Запрос принят для обработки, но обработка не завершена. Полезная нагрузка этого ответа должна содержать отчёт о статусе. [RFC7231] Раздел 6.3.3.

Пользовательский агент может проверить соответствующие ресурсы для определения статуса в более позднее время.

203

(Non-Authoritative Information)

Запрос был успешным, но вложенная полезная нагрузка была изменена из ответа 200 (OK) исходного сервера преобразующим прокси-сервером. См. [RFC7230] Раздел 5.7.2 and [RFC7230] [RFC7231] Раздел 6.3.4.

204

(No-Content)

Сервер успешно выполнил запрос, и нет дополнительного содержимого для отправки в теле полезной нагрузки ответа. Это должен быть ответ, когда содержимое успешно загружено и ответ не имеет полезной нагрузки.

Например, этот код состояния используется в ответе на запрос условного извлечения (Conditional Retrieve), когда целевой ресурс не был изменён. См. [RFC7231] Раздел 6.3.5.

205

(Reset Content)

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

Перенаправление

Класс кодов состояния 3xx (Перенаправление) указывает на то, что пользовательскому агенту необходимо предпринять дальнейшие действия для выполнения запроса.

301

(Moved Permanently)

Исходный сервер назначил целевому ресурсу новый постоянный URI, указанный в поле заголовка Location.

Этот статус обычно требуется, когда ресурс был перемещён с одного сервиса на другой, например, во время миграции.

303

(See Other)

Исходный сервер перенаправляет пользовательский агент на другой ресурс, указанный URI в поле заголовка Location, который предоставит ответ на исходный запрос.

304

(Not Modified)

Исходный сервер получил условный запрос GET или HEAD, который привёл бы к ответу 200 (OK), если бы не тот факт, что условие оказалось ложным.

Ошибка клиента

Класс кодов состояния 4xx (Ошибка клиента) указывает на то, что пользовательский агент допустил ошибку.

Для всех этих кодов ошибок исходный сервер должен вернуть полезную нагрузку, содержащую пояснение ошибки и информацию о том, является ли это временным или постоянным условием, за исключением ответа на запрос HEAD.

400

(Bad Request)

Сервер не может или не будет обрабатывать запрос из-за того, что воспринимается как ошибка клиента (например, неправильный синтаксис запроса, недопустимый запрос).

401

(Unauthorized)

Запрос не был выполнен, так как не содержит действительных учётных данных аутентификации для сервиса или целевого ресурса. Сервер, формирующий ответ 401, должен отправить поле заголовка WWW-Authenticate ([RFC7235] Раздел 4.1) containing at least one challenge applicable to the server or Target Resource.

403

(Forbidden)

Исходный сервер понял запрос, но отказался его авторизовать (например, авторизованный пользователь с недостаточными привилегиями). Если учётные данные аутентификации были предоставлены в запросе, сервер считает их недостаточными для предоставления доступа. Исходный сервер может ответить 404 (Not Found), если ему не разрешено использовать этот код состояния.

404

(Not Found)

Исходный сервер не нашёл представления для целевого ресурса или не желает раскрывать, что оно существует. Это может быть временным условием. Если исходный сервер знает, что ресурс был удалён, должен быть возвращён код состояния 410 (Gone) вместо 404.

405

(Method Not Allowed)

Метод в запросе известен исходному серверу, но не поддерживается целевым сервисом или ресурсом. Исходный сервер должен включить поле заголовка Allow в ответ 405, содержащее список методов, поддерживаемых в настоящее время целевым сервисом или ресурсом.

406

(Not Acceptable)

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

Исходный сервер должен возвращать полезные данные, перечисляющие доступные типы носителей и соответствующие идентификаторы ресурсов.

409

(Conflict)

Запрос не может быть выполнен из-за конфликта с текущим состоянием целевого ресурса. Этот код используется в ситуациях, когда пользовательский агент может разрешить конфликт и повторно отправить запрос. Исходный сервер должен возвращать полезные данные, содержащие достаточно информации, чтобы пользовательский агент мог распознать источник конфликта.

В контексте DICOM этот код может означать, что исходный сервер не смог сохранить ни одного экземпляра из-за конфликта в запросе (например, неподдерживаемый SOP Class или несоответствие экземпляров).

410

(Gone)

Доступ к целевому ресурсу больше недоступен на исходном сервере, и это состояние, вероятно, является постоянным. Если исходный сервер не знает или не имеет возможности определить, является ли состояние постоянным, вместо него следует использовать код состояния 404 (Not Found).

411

(Length Required)

Исходный сервер отказывается принять запрос, так как поле заголовка Content-Length не было указано.

413

(Payload Too Large)

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

414

(URI Too Long)

Сервер отказывается обслуживать запрос, поскольку цель запроса (request-target) ([RFC7230] Раздел 5.3) длиннее, чем сервер готов интерпретировать.

415

(Unsupported Media Type)

Исходный сервер не поддерживает Content-Type в полезных данных запроса. Эта ошибка обычно возникает, когда пользовательский агент пытается создать или обновить ресурс.

Исходный сервер должен возвращать полезные данные, перечисляющие доступные типы носителей и соответствующие идентификаторы ресурсов.

Примечание

Это означает, что некоторые экземпляры (Instances) могут быть преобразованы, а другие — нет, даже если они имеют один и тот же атрибут Specific Character Set (0008,0005).

Это отличается от 406 (Not Acceptable).

Server Error

Класс кодов состояния 5xx (Server Error) указывает на то, что сервер знает об ошибке или не способен выполнить запрошенный метод.

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

500

(Internal Server Error)

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

501

(Not Implemented)

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

В контексте DICOM этот код состояния должен использоваться для ошибок «SOP Class Not Supported».

503

(Service Unavailable)

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

505

(HTTP Version Not Supported)

Исходный сервер не поддерживает или отказывается поддерживать основную версию HTTP, которая использовалась в сообщении запроса.


Примечание

Код состояния 206 ранее (ошибочно) использовался для указания того, что была сохранена лишь часть полезных данных, и ранее (ошибочно) использовался для запросов диапазона на уровне приложения.

Когда веб-сервер определяет, что пользовательский агент не должен получать определённую информацию, веб-сервер должен тщательно выбирать код состояния и содержимое отчёта о состоянии. Например, локальная политика может предписывать веб-службе возвращать код состояния 404 (Not Found), а не 401 (Unauthorized), чтобы не позволить пользовательскому агенту сделать вывод о существовании ресурса. Код состояния и полезные данные ответа должны контролироваться политикой и контекстом, что обеспечивает баланс между удобством использования возвращаемого результата и надлежащей защитой. См. также [FHIR Access Denied] и [OWASP Information Leakage].

8.6 Payloads

Как сообщения запроса, так и сообщения ответа могут иметь тела сообщений. Тело сообщения (при его наличии) HTTP-сообщения используется для передачи полезных данных сообщения. Тело сообщения идентично полезным данным, если к ним не применено кодирование содержимого, как описано в [RFC7230] Разделе 3.3.1. В этой Части Стандарта термин «полезные данные» (payload) используется для обозначения тела сообщения до применения к нему какого-либо кодирования содержимого.

Сообщение может иметь или не иметь полезных данных. Полезные данные могут быть пустыми; то есть их длина равна нулю. Если сообщение не имеет полезных данных, то оно не должно содержать ни поля заголовка Transfer-Encoding, ни Content-Length. Если сообщение имеет полезные данные, к которым применено кодирование передачи (transfer-coding), то оно должно содержать поле заголовка Transfer-Encoding. Если сообщение имеет полезные данные, к которым не применено кодирование передачи, то оно должно содержать поле заголовка Content-Length.

Любое сообщение, содержащее полезные данные, должно иметь соответствующее представление содержимого (Content Representation) [RFC7231] Раздел 3.1 и поля заголовка полезных данных (Payload Header Fields) [RFC7231] Раздел 3.3.

8.6.1 Payload Structure

Полезные данные содержат представления. Полезные данные могут быть односоставными (single part) или многосоставными (multipart).

Поле заголовка Content-Type сообщения содержит тип носителя, включающий multipart/related, если полезные данные являются многосоставными, в противном случае полезные данные являются односоставными.

8.6.1.1 Single Part Payload

Сообщение с односоставными полезными данными содержит одно представление, которое описывается полями заголовка представления содержимого (см. Раздел 8.4.3), содержащимися в заголовке сообщения.

Сообщение с односоставными полезными данными должно содержать поле заголовка Content-Type с односоставным типом носителя (см. Раздел 8.7.3).

Односоставные полезные данные могут быть запрошены с помощью HTTP-запроса Range [RFC7233]. Если это поддерживается сервером, ответ должен соответствовать стандартному ответу HTTP Range [RFC7233].

Примечание

Односоставные полезные данные применимы только для запросов, возвращающих ровно один элемент. Такие ответы могут быть также закодированы как многосоставные полезные данные с одним элементом, как определено в Таблице 10.4.4-1.

8.6.1.2 Multipart Payload

Сообщение с многосоставными полезными данными содержит ноль или более представлений. Каждое представление помещается в отдельную часть.

Сообщение с многосоставными полезными данными должно содержать поле заголовка Content-Type с многосоставным типом носителя.

Тип носителя корневого представления (см. [RFC2387]) может быть задан полем заголовка Content-Type сообщения. Если параметр root не указан, корневым представлением является первое представление в полезных данных.

Каждая часть в многосоставных полезных данных должна начинаться с разделительной строки (boundary), за которой следует поле заголовка Content-Type с односоставным типом носителя (см. Раздел 8.7.3), а затем другие поля, как указано в Таблице 8.6.1-1. См. также Рисунок 8.6-1. Могут быть включены и другие поля заголовка.

Примечание

  1. Понимание природы закодированного ресурса Bulk Data может зависеть от соответствующей ссылки Metadata на bulkdataURI и не обязательно неявно следует из поля заголовка Content-Type.

  2. An HTTP Range [RFC7233] request may be used with Multipart payloads, but the range applies to the entire response, including the multipart markers. In order for the response to be valid across requests, the ordering of items and the choice of multipart separator must remain the same.

Content-Location используется для идентификации конкретного ресурса (например, вплоть до уровня конкретного кадра, экземпляра или URI Bulk Data), представленного в этой части. Это позволяет получателю полезных данных различать части, например, когда каждая часть содержит разный кадр запрошенного многостраничного экземпляра.

Примечание

  1. Metadata в ответе транзакции поиска не считается представлением ресурса, поэтому Content-Location не требуется.

  2. В случае визуализированного ресурса Content-Location будет идентифицировать ресурс, на основе которого было создано визуализированное представление.

Table 8.6.1-1. Multipart Header Fields

Name

Value

Usage

Description

Content-Type

media-type

M

Content-Length

uint

C

Должен присутствовать, если полезные данные ответа не имеют кодирования передачи (transfer encoding)

Content-Location

url

C

Должен присутствовать, если полезные данные ответа содержат представление ресурса. См. [RFC7231] Раздел 3.1.4.2.

Location

url

C

See [RFC7231] Раздел 7.1.2.


См. Раздел 8.7.1 и [RFC7231].

Ниже приведён пример шаблона многосоставного сообщения запроса или ответа, содержащего многосоставные полезные данные:

request-line / response-line
Content-Type: multipart-media-type CRLF
Content-Location: "/" {/url} CRLF
*(header-field CRLF)
CRLF
multipart-payload

Поле заголовка Content-Type должно иметь многосоставный тип носителя (multipart media-type). Например:

Content-Type: multipart/related; type=DQUOTE root-media-type DQUOTE; boundary="---boundary---"

Где

multipart-media-type

— это тип носителя, определённый в [RFC2387].

root-media-type

— это односоставный тип носителя, задающий тип носителя корня (root), обычно первой части, в полезных данных. Если значение параметра type и content-type корневой части тела различаются, поведение пользовательского агента не определено.

boundary

задаёт строку, выступающую в качестве границы между частями сообщения.

Если многосоставные полезные данные содержат представления Metadata (см. Раздел 8.7.3.3.1) и Bulk Data (см. Раздел 8.7.3.3.2), то все части сообщения Metadata, ссылающиеся на часть Bulk Data, должны предшествовать указанной части Bulk Data. Content-Location части Bulk Data должен содержать соответствующий BulkDataURI, используемый в ссылающихся Metadata.

Рисунок 8.6-1 показывает соответствие между представлением IOD и многосоставными полезными данными.

Mapping between IOD and HTTP message parts

Figure 8.6-1. Mapping between IOD and HTTP message parts


8.6.1.2.1 Multipart Payload Syntax

Синтаксис многосоставных полезных данных:

multipart-payload = 1*(DASH boundary CRLF part CRLF) DASH boundary DASH

Где

DASH         = "--"
boundary     = 0*69(bchar / SP) bchar
bchar        = DIGIT / ALPHA / "'" / "(" / ")" / "+" / "_"   ; The legal boundary characters
             / "," / "-" / "." / "/" / ":" / "=" / "?"
part         = Content-Type: media-type CRLF
               Content-Location: url CRLF
               (Content-Length: uint CRLF / Transfer-Encoding: encoding CRLF)
               [Content-Description: text CRLF]
               *(header-field CRLF)
               CRLF
               part-payload
part-payload = *OCTET

Например, если разделителем (boundary) является «++++», то полезные данные сообщения, содержащие три части, будут структурированы следующим образом:

--++++CRLF
Content-Type: media-type CRLF
Content-Location: url CRLF
(Content-Length: uint CRLF / Transfer-Encoding: encoding CRLF)
[Content-Description: {description} CRLF]
CRLF
payload CRLF
--++++CRLF
Content-Type: media-type CRLF
. . .
payload CRLF
--++++CRLF
Content-Type: media-type CRLF
. . .
payload CRLF
--++++--

8.6.2 DICOM Representations

Все объекты DICOM определяются Определениями информационных объектов (Information Object Definitions, IOD). См. PS3.3. Представления ресурсов DICOM — это кодирования информационных объектов DICOM в октетные потоки.

Каждый IOD имеет связанный набор атрибутов, которые определяют семантические понятия. Каждый атрибут имеет:

  • тег (Tag), идентифицирующий атрибут с помощью целого числа

  • ключевое слово (Keyword), идентифицирующее атрибут с помощью токена

  • тип (Type), указывающий, является ли атрибут обязательным или необязательным

  • представление значения (Value Representation), определяющее тип данных значения(ий) атрибута

  • мультипликативность значения (Value Multiplicity), задающая количество значений, которые может иметь атрибут

Элемент данных (Data Element) — это конкретное представление атрибута. См. PS3.5. Каждый элемент данных имеет:

  • идентификатор, которым обычно является его тег (Tag), но может быть ключевым словом (Keyword)

  • представление значения (Value Representation), определяющее его тип данных

  • длину значения (Value Length)

  • поле значения (Value Field) — последовательность байтов, содержащая ноль или более значений

Каждый экземпляр содержит элементы данных (Data Elements), представляющие атрибуты уровней пациента, исследования, серии и экземпляра IOD. Например, если ресурс серии содержит 12 экземпляров, то транзакция, извлекающая эту серию, будет содержать представление серии и её 12 экземпляров в определённом типе носителя, и каждый экземпляр будет иметь атрибуты уровней пациента, исследования, серии и экземпляра.

В этой Части Стандарта определяются три различных представления ресурсов DICOM, которые могут быть закодированы в типы носителей DICOM: экземпляры (Instances), Metadata и Bulk Data.

Типы носителей DICOM и соответствующие им представления определены в Разделе 8.7.3. Другие типы носителей, используемые в этой Части Стандарта, определены в Разделе 8.7.4.

8.6.2.1 Web Service Constraints

Веб-службы DICOM поддерживают только представления с явными представлениями значений (Explicit Value Representations). Неявные представления значений (Implicit Value Representations) (см. Раздел 7.1.3 «Data Element Structure with Implicit VR» в PS3.5) не должны использоваться.

8.6.3 Status Report

Отчёт о состоянии (Status Report) — это описание предупреждений или ошибок, с которыми столкнулся исходный сервер при обработке запроса. Содержимое должно быть ясным и кратким. Если запрос не включает допустимый тип носителя (Acceptable Media Type), отчёт о состоянии должен использовать тип носителя по умолчанию для категории текстовых ресурсов (Text Resource Category) — text/html.

8.7 Media Types

Типы носителей являются основой как для согласования содержимого, так и для типизации данных полезных данных сообщений. Каждая служба PS3.18 и/или транзакция определяет типы носителей и связанные с ними представления, которые являются типами по умолчанию, обязательными и необязательными.

Тип носителя также указывает, содержат ли полезные данные одно представление (односоставные) или несколько представлений (многосоставные). Многосоставные полезные данные определены только для RESTful API. См. Раздел 8.6.1.2 и Раздел 10.4.3.

Типы носителей — это идентификаторы, используемые для определения формата данных представления. HTTP использует типы носителей в полях заголовка Content-Type и Accept для обеспечения открытой и расширяемой типизации данных и согласования типов. Синтаксис типов носителей:

media-type = type "/" subtype *(OWS ";" OWS mt-parameter)

Где

type         = token
subtype      = token
mt-parameter = mtp-name "=" mtp-value 
mtp-name     = token
mtp-value    = (token / quoted-string)

За 'type/subtype' могут следовать параметры в виде пар «имя "=" значение».

Токены type, subtype и mtp-name нечувствительны к регистру, однако чувствительность к регистру значений параметров зависит от семантики имени параметра. Наличие или отсутствие параметра может иметь значение для обработки типа носителя в зависимости от его определения в реестре типов носителей.

mtp-value может передаваться как токен или как строка в кавычках (quoted-string). Значения в кавычках и без кавычек эквивалентны.

Типы носителей определены в [RFC7231] Разделе 3.1.1.1.

IANA ведёт реестр типов носителей [IANA Media Types].

Многие типы носителей задают параметр кодировки символов (character set).

Примечание

Термин «MIME Type» не является синонимом «Media Type». Типы MIME определены в Multipurpose Internet Mail Extensions [RFC2045] и используются почтовыми программами. Типы носителей (Media Types) определены в Media Type Specifications and Registration Procedures [RFC6838].

8.7.1 Multipart Media Types

Некоторые службы, определённые в этой Части Стандарта, поддерживают многосоставные типы носителей [RFC2387]. Синтаксис:

multipart-media-type = "multipart" "/" subtype *(OWS ";" OWS parameter)

Тип носителя application/multipart-related используется RESTful-службами. Его синтаксис:

multipart-related = "multipart/related"
                    OWS ";" OWS "type" "=" (media-type / DQUOTE media-type DQUOTE)
                    OWS ";" OWS "boundary" "=" boundary
                    [related-parameters]

Где

boundary           ; See Section 8.6.1.2.1
bchar              = bchar-nospace / SP
bchar-nospace      = DIGIT / ALPHA / "'" / "(" / ")" / "+" / "_" / "," / "-"
                     / "." / "/" / ":" / "=" / "?" "/" / ":" / "=" / "?"
related-parameters = [";" "start" "=" cid]
                     [";" "start-info" "=" cid-list]
cid-list           = cid cid-list
cid                = token / quoted-string

Параметр «type» является обязательным. Он содержит тип носителя «корневой» (root) части тела. Согласно [RFC2387] он не должен содержать кавычек, однако в целях исторической совместимости и для соответствия примерам [RFC2387] он может содержать кавычки.

Примечание

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

cid — это идентификатор содержимого. Он должен быть уникальным для каждой части многосоставного сообщения.

Обычно параметры «start» и «start-info» не указываются, а «корневым» (root) является первая часть тела.

8.7.2 DICOM Resource Categories

Таблица 8.7.2-1 определяет категории ресурсов, соответствующие различным SOP Class. В следующих разделах каждая категория ресурсов сопоставляется с соответствующими типами носителей DICOM и визуализированными типами носителей.

Table 8.7.2-1. Resource Categories

Resource Category

Definition

Однокадровое изображение (Single Frame Image)

Эта категория включает все ресурсы, которые:

  1. являются экземплярами SOP Class хранения одиночных кадров (Single Frame image storage SOP Class), или

  2. являются экземплярами SOP Class хранения многостраничных изображений (Multi-frame image storage SOP Class), содержащими только один кадр, или

  3. отдельный кадр, выбранный из экземпляра SOP Class хранения многостраничных изображений (Multi-frame image storage SOP Class).

Multi-Frame Image

Эта категория включает все ресурсы, которые являются экземплярами SOP Class хранения многостраничных изображений (Multi-frame image storage SOP Class), не относятся к видео и содержат более одного кадра.

Video

Эта категория включает все ресурсы, которые содержат более одного кадра и:

  1. являются экземплярами, закодированными в семействе синтаксисов передачи MPEG (которое включает MPEG2, MPEG-4 AVC/H.264 и HEVC/H.265), или

  2. многостраничные изображения на основе времени (движущиеся), которые исходный сервер способен закодировать в семействе MPEG.

Text

Эта категория включает все ресурсы, которые содержат:

  1. модуль содержимого SR-документа (SR Document Content Module) (см. Раздел C.17.3 «SR Document Content Module» в PS3.3), такой как повествовательный текст, структурированные отчёты, CAD, отчёты об измерениях и документы выбора ключевых объектов, или

  2. модуль инкапсулированного документа (Encapsulated Document Module) (см. Раздел C.24.2 «Encapsulated Document Module» в PS3.3).

Other

Эта категория включает все ресурсы, не вошедшие в вышеперечисленные категории, например сигналы (waveforms).


Примечание

Категория ресурса не зависит от синтаксиса передачи (Transfer Syntax), используемого для собственного кодирования или возврата ресурса. В частности, если синтаксис передачи является одним из синтаксисов передачи JPIP (для которых данные пикселей не включаются в возвращаемые объекты, а вместо этого URL-адрес провайдера JPIP для получения данных пикселей присутствует в Metadata), категория ресурса всё равно будет «Однокадровое изображение» (Single Frame Image) или «Многокадровое изображение» (Multi-Frame Image), а не «Текст» (Text) или «Другое» (Other).

8.7.3 DICOM Media Type Sets

В этом разделе определяются типы носителей, используемые для представления экземпляров DICOM, Metadata и Bulk Data. Он описывает:

  • Параметры типа носителя и синтаксиса передачи для экземпляров DICOM PS3.10

  • Типы носителей, которые могут использоваться для Metadata

  • Параметры типов носителей и синтаксисов передачи для Bulk Data

  • Синтаксис типов носителей DICOM, включая их параметры синтаксиса передачи (Transfer Syntax) и кодировки символов

  • Параметр запроса для синтаксиса передачи (Transfer Syntax)

  • Значение допустимых синтаксисов передачи (Acceptable Transfer Syntaxes) и выбранного синтаксиса передачи (Selected Transfer Syntax)

Типы носителей, определённые в этом разделе, отличаются от тех, в которые могут быть визуализированы экземпляры DICOM (они определены в Разделе 8.7.4); некоторые из тех же типов носителей используются как для визуализированного содержимого, так и для Bulk Data.

В зависимости от службы типы носителей могут быть односоставными или многосоставными и могут иметь обязательные или необязательные параметры синтаксиса передачи и/или кодировки символов.

Синтаксисы передачи Implicit VR Little Endian (1.2.840.10008.1.2) и Explicit VR Big Endian (1.2.840.10008.1.2.2 — Retired) не должны использоваться с веб-службами.

Если параметр синтаксиса передачи для типа носителя DICOM не указан в запросе или ответе, синтаксис передачи в ответе должен быть тем, который указан как значение по умолчанию для комбинации категории ресурса и типа носителя в Таблице 8.7.3-2, Таблице 8.7.3-4 или Таблице 8.7.3-5, если только исходный сервер не имеет доступа к данным пикселей только в форме сжатия с потерями либо в форме сжатия без потерь или инкапсулированного несжатого вида такой длины, что они не могут быть закодированы в синтаксисе передачи Explicit VR Little Endian.

Table 8.7.3-1 specifies the definition of Media Type requirement terms used in the tables in this section.

Table 8.7.3-1. Definition of Media Type Requirement

Requirement

Optionality

Definition

По умолчанию

D

Исходный сервер должен возвращать этот тип носителя, если ни один из допустимых типов носителей (см. Раздел 8.7.5) не поддерживается. Исходный сервер должен поддерживать этот тип носителя.

Обязательный

R

Исходный сервер должен поддерживать этот тип носителя.

Необязательный

O

Исходный сервер может поддерживать этот тип носителя.


Таблица 8.7.3-2, Таблица 8.7.3-3, Таблица 8.7.3-4 и Таблица 8.7.3-5 определяют типы носителей, используемые для кодирования различных представлений экземпляров DICOM. Эти типы носителей применяются ко всем категориям ресурсов и имеют кодирования по умолчанию для элементов данных изображений и видео, содержащихся в экземплярах.

8.7.3.1 Instance Media Types

Тип носителя application/dicom задаёт представление экземпляров, закодированных в формате файлов DICOM, указанном в Разделе 7 «DICOM File Format» в PS3.10.

Примечание

Исходный сервер может заполнить файловую метаинформацию (File Meta Information) PS3.10 идентификацией исходного, отправляющего и принимающего AE-заголовков и адресами представления (Presentation Addresses), как описано в Разделе 7.1 в PS3.10 , или эти атрибуты могут остаться неизменными с момента получения объектов исходным сервером. Пользовательский агент, сохраняющий объекты, полученные в ответе, может заполнить или принудительно изменить эти атрибуты на основе собственных сведений об оконечных точках, участвующих в транзакции, чтобы они точно идентифицировали последнюю транзакцию хранения.

Таблица 8.7.3-2 определяет комбинации UID синтаксиса передачи по умолчанию и необязательные для каждой категории ресурсов DICOM (см. Таблицу 8.7.2-1). Тип носителя по умолчанию для категории ресурса должен возвращаться, когда исходный сервер не поддерживает ни один из допустимых типов носителей, если только исходный сервер не имеет доступа к данным пикселей только в форме сжатия с потерями либо в форме сжатия без потерь или инкапсулированного несжатого вида такой длины, что они не могут быть закодированы в синтаксисе передачи Explicit VR Little Endian.

Table 8.7.3-2. Transfer Syntax UIDs for application/dicom Media Types

Category

Transfer Syntax UID

Transfer Syntax Name

Optionality

Однокадровое изображение (Single Frame Image)

1.2.840.10008.1.2.1

Explicit VR Little Endian

D

1.2.840.10008.1.2.8.1

Deflated Image Frame Compression

O

1.2.840.10008.1.2.4.70

JPEG Lossless, Non-Hierarchical, First-Order Prediction(Process 14 [Selection Value 1]): Default Transfer Syntax for Lossless JPEG Image Compression

O

1.2.840.10008.1.2.4.50

JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression

O

1.2.840.10008.1.2.4.51

JPEG Extended (Process 2 & 4): Default Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only)

O

1.2.840.10008.1.2.4.57

JPEG Lossless, Non-Hierarchical (Process 14)

O

1.2.840.10008.1.2.5

RLE Lossless

O

1.2.840.10008.1.2.4.80

JPEG-LS Lossless Image Compression

O

1.2.840.10008.1.2.4.81

JPEG-LS Lossy (Near-Lossless) Image Compression

O

1.2.840.10008.1.2.4.90

JPEG 2000 Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.91

JPEG 2000 Image Compression

O

1.2.840.10008.1.2.4.92

JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.93

JPEG 2000 Part 2 Multi-component Image Compression

O

1.2.840.10008.1.2.4.201

High-Throughput JPEG 2000 Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.202

High-Throughput JPEG 2000 with RPCL Options Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.203

High-Throughput JPEG 2000 Image Compression

O

1.2.840.10008.1.2.4.110

JPEG XL Lossless

O

1.2.840.10008.1.2.4.111

JPEG XL JPEG Recompression

O

1.2.840.10008.1.2.4.112

JPEG XL

O

Multi-frame Image

1.2.840.10008.1.2.1

Explicit VR Little Endian

D

1.2.840.10008.1.2.8.1

Deflated Image Frame Compression

O

1.2.840.10008.1.2.4.70

JPEG Lossless, Non-Hierarchical, First-Order Prediction(Process 14 [Selection Value 1]): Default Transfer Syntax for Lossless JPEG Image Compression

O

1.2.840.10008.1.2.4.50

JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression

O

1.2.840.10008.1.2.4.51

JPEG Extended (Process 2 & 4): Default Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only)

O

1.2.840.10008.1.2.4.57

JPEG Lossless, Non-Hierarchical (Process 14)

O

1.2.840.10008.1.2.5

RLE Lossless

O

1.2.840.10008.1.2.4.80

JPEG-LS Lossless Image Compression

O

1.2.840.10008.1.2.4.81

JPEG-LS Lossy (Near-Lossless) Image Compression

O

1.2.840.10008.1.2.4.90

JPEG 2000 Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.91

JPEG 2000 Image Compression

O

1.2.840.10008.1.2.4.92

JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.93

JPEG 2000 Part 2 Multi-component Image Compression

O

1.2.840.10008.1.2.4.201

High-Throughput JPEG 2000 Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.202

High-Throughput JPEG 2000 with RPCL Options Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.203

High-Throughput JPEG 2000 Image Compression

O

1.2.840.10008.1.2.4.110

JPEG XL Lossless

O

1.2.840.10008.1.2.4.111

JPEG XL JPEG Recompression

O

1.2.840.10008.1.2.4.112

JPEG XL

O

Video

1.2.840.10008.1.2.1

Explicit VR Little Endian

D

1.2.840.10008.1.2.8.1

Deflated Image Frame Compression

O

1.2.840.10008.1.2.4.100

MPEG2 Main Profile / Main Level

O

1.2.840.10008.1.2.4.101

MPEG2 Main Profile / High Level

O

1.2.840.10008.1.2.4.102

MPEG-4 AVC/H.264 High Profile / Level 4.1

O

1.2.840.10008.1.2.4.103

MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1

O

1.2.840.10008.1.2.4.104

MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video

O

1.2.840.10008.1.2.4.105

MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video

O

1.2.840.10008.1.2.4.106

MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2

O

1.2.840.10008.1.2.4.100.1

Fragmentable MPEG2 Main Profile / Main Level

O

1.2.840.10008.1.2.4.101.1

Fragmentable MPEG2 Main Profile / High Level

O

1.2.840.10008.1.2.4.102.1

Fragmentable MPEG-4 AVC/H.264 High Profile / Level 4.1

O

1.2.840.10008.1.2.4.103.1

Fragmentable MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1

O

1.2.840.10008.1.2.4.104.1

Fragmentable MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video

O

1.2.840.10008.1.2.4.105.1

Fragmentable MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video

O

1.2.840.10008.1.2.4.106.1

Fragmentable MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2

O

1.2.840.10008.1.2.4.107

HEVC/H.265 Main Profile / Level 5.1

O

1.2.840.10008.1.2.4.108

HEVC/H.265 Main 10 Profile / Level 5.1

O

Text

1.2.840.10008.1.2.1

Explicit VR Little Endian

D

Other

1.2.840.10008.1.2.1

Explicit VR Little Endian

D


Примечание

Синтаксисы передачи (Transfer Syntaxes), используемые в потоке метаданных DICOM-RTV, не включены, поскольку они не используются для создания представления экземпляра (Instance), закодированного в формате файлов DICOM.

8.7.3.2 Metadata Media Types

Таблица 8.7.3-3 определяет типы носителей (Media Types), которые могут использоваться для кодирования представлений метаданных для служб URI и RESTful. Только службы RESTful поддерживают представления метаданных.

Таблица 8.7.3-3. Типы носителей для метаданных

Тип носителя

Описания

URI

RESTful

application/dicom+xml

Кодирует экземпляры как XML Infosets, определённые в Native DICOM Model, описанной в PS3.19.

неприменимо

обязательно

application/dicom+json

Кодирует экземпляры в формате JSON, определённом в Приложении F.

неприменимо

обязательно


8.7.3.3 Bulk Data Media Types

Представления bulk data поддерживаются только службами RESTful. Существует две категории bulk data: несжатые и сжатые.

Выбранный тип носителя (Selected Media Type) будет типом носителя по умолчанию для категории ресурса, когда исходный сервер не поддерживает ни один из допустимых типов носителей, как описано в Разделе 8.7.8, за исключением случая, когда исходный сервер имеет доступ к пиксельным данным только в форме сжатия с потерями или к пиксельным данным в форме сжатия без потерь или инкапсулированного несжатого формата, имеющего такую длину, что они не могут быть закодированы в синтаксисе передачи Explicit VR Little Endian.

Исходный сервер может поддерживать дополнительные синтаксисы передачи.

Если параметр синтаксиса передачи типа носителя не указан, должен использоваться синтаксис передачи Explicit VR Little Endian "1.2.840.10008.1.2.1", за исключением случая, когда исходный сервер имеет доступ к пиксельным данным только в форме сжатия с потерями или к пиксельным данным в форме сжатия без потерь или инкапсулированного несжатого формата, имеющего такую длину, что они не могут быть закодированы в синтаксисе передачи Explicit VR Little Endian.

Примечание

В таблицах этого раздела нет записей для службы URI, поскольку они не поддерживают отдельное получение bulk data.

В зависимости от выбранного типа носителя, пиксельные данные ресурса в категории Single Frame Image кодируются в:

  • одном сжатом представлении bulk data, или

  • одном несжатом представлении bulk data.

В зависимости от выбранного типа носителя, пиксельные данные ресурса в категории Multi-Frame Image кодируются в:

  • нескольких сжатых представлениях bulk data Single Frame Image: по одному для каждого кадра (Frame), или

  • одном несжатом представлении bulk data Multi-Frame Image.

В зависимости от выбранного типа носителя, пиксельные данные ресурса в категории Video кодируются в:

  • одном сжатом представлении bulk data Video, или

  • одном несжатом представлении bulk data Video.

8.7.3.3.1 Uncompressed Bulk Data Media Types

Таблица 8.7.3-4 определяет тип носителя по умолчанию и UID синтаксисов передачи по категориям ресурсов (см. Таблицу 8.7.2-1), которые могут использоваться с несжатыми bulk data для служб RESTful. Несжатые bulk data кодируются как поток несжатых байтов (октетов) в порядке байтов Little Endian.

Примечание

  1. Это то же кодирование, что определено в PS3.19 для возвращаемого значения вызова getData() для несжатых bulk data.

  2. В много кадровом изображении (Multi-Frame Image) со значением Bits Allocated (0028,0100), равным 1, которое не сжато, отдельные кадры не выравниваются (не дополняются), поэтому последовательные биты упаковываются в байты или слова в формате Native, как описано в Разделе 8.2 «Кодирование в формате Native или Encapsulated» в PS3.5. Это означает, что если в ответе должны быть закодированы только выбранные кадры много кадрового изображения, каждый кадр должен быть извлечён из пиксельных данных много кадрового изображения и последовательно объединён в ответе без выравнивания в начале первого байта ответа и без выравнивания между последовательными закодированными кадрами в ответе. Т.е. все потоки битов, специфичные для кадров, кодируются последовательно без выравнивания в начале или между ними.

  3. Только несжатые bulk data могут быть возвращены с типом носителя application/octet-stream. Специфические типы носителей, отличные от application/octet-stream, определены для каждого вида сжатых bulk data в Разделе 8.7.3.3.2. Это означает, что если параметр шаблона синтаксиса передачи ("transfer-syntax=*") включён с типом носителя в запросе, он применяется только к несжатым синтаксисам передачи.

Таблица 8.7.3-4. UID синтаксисов передачи для несжатых bulk data

Категория

Тип носителя

UID синтаксиса передачи

Имя синтаксиса передачи

RESTful

Single Frame Image

application/octet-stream

1.2.840.10008.1.2.1

Explicit VR Little Endian

D

1.2.840.10008.1.2.1.98

Encapsulated Uncompressed Explicit VR Little Endian

O

Multi-Frame Image

application/octet-stream

1.2.840.10008.1.2.1

Explicit VR Little Endian

D

1.2.840.10008.1.2.1.98

Encapsulated Uncompressed Explicit VR Little Endian

O

Video

application/octet-stream

1.2.840.10008.1.2.1

Explicit VR Little Endian

D

1.2.840.10008.1.2.1.98

Encapsulated Uncompressed Explicit VR Little Endian

O

Text

application/octet-stream

1.2.840.10008.1.2.1

Explicit VR Little Endian

D

Other

application/octet-stream

1.2.840.10008.1.2.1

Explicit VR Little Endian

D


Примечание

Несмотря на то, что синтаксисом передачи является Explicit VR Little Endian, представление значения (Value Representation) фактически не кодируется в начале потока октетов. Представление значения содержится в метаданных, которые ссылаются на bulk data. По этой причине синтаксис передачи Implicit VR Little Endian не указан в этой таблице.

Если поддерживается Encapsulated Uncompressed Explicit VR Little Endian, ответ включает поток октетов без разделителей фрагментов. Т.е. поток октетов декапсулируется перед передачей.

8.7.3.3.2 Compressed Bulk Data Media Types

Сжатые bulk data содержат только сжатый поток октетов без разделителей фрагментов.

Таблица 8.7.3-5 определяет комбинации типов носителей и UID синтаксисов передачи по умолчанию и дополнительных для каждой категории ресурсов (см. Таблицу 8.7.2-1) сжатых bulk data для служб RESTful.

Примечание

  1. Некоторые имена синтаксисов передачи включают текст о синтаксисе передачи по умолчанию (Default Transfer Syntax), однако это относится к их роли в транзакциях DIMSE, а не к значению по умолчанию для служб RESTful (которое указано в столбце RESTful таблицы).

  2. Столбец типа носителя отражает кодирование данных, но не включает расширенные дескрипторы типа носителя, такие как "multipart/related", которые описывают дополнительную упаковку закодированных данных.

Эти типы носителей могут использоваться для получения bulk data, таких как изображения или видео, закодированных в определённом синтаксисе передачи.

Примечание

  1. Эти типы носителей не используются для несжатых bulk data, для которых использование application/octet-stream указано в Разделе 8.7.3.3.1. Сжатые bulk data никогда не передаются с использованием application/octet-stream.

  2. Если параметр шаблона синтаксиса передачи ("transfer-syntax=*") включён с типом носителя в запросе, он применяется только к сжатым синтаксисам передачи, соответствующим указанному типу носителя.

  3. Если запрашивается специфичный для изображений шаблонный тип носителя "image/*", то исходный сервер не получает информации для принятия решения о том, какое сжатое кодирование (если таковое имеется) следует вернуть.

Подробная информация об упаковке сжатых bulk data в полезные нагрузки однопоточные (single part) или составные (multipart) приведена в Разделе 8.6.1.

Таблица 8.7.3-5. Типы носителей и UID синтаксисов передачи для сжатых bulk data

Категория ресурса

Тип носителя

UID синтаксиса передачи

Имя синтаксиса передачи

Необязательность

Single Frame Image

image/jpeg

1.2.840.10008.1.2.4.70

JPEG Lossless, Non-Hierarchical, First-Order Prediction(Process 14 [Selection Value 1]): Default​ Transfer Syntax for Lossless JPEG Image Compression

D

1.2.840.10008.1.2.4.50

JPEG Baseline (Process 1): Default​ Transfer Syntax for Lossy JPEG 8 Bit Image Compression

O

1.2.840.10008.1.2.4.51

JPEG Extended (Process 2 & 4): Default​ Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only)

O

1.2.840.10008.1.2.4.57

JPEG Lossless, Non-Hierarchical (Process 14)

O

application/x-deflate

1.2.840.10008.1.2.8.1

Deflated Image Frame Compression

D

image/dicom-rle

1.2.840.10008.1.2.5

RLE Lossless

D

image/jls

1.2.840.10008.1.2.4.80

JPEG-LS Lossless Image Compression

D

1.2.840.10008.1.2.4.81

JPEG-LS Lossy (Near-Lossless) Image Compression

O

image/jp2

1.2.840.10008.1.2.4.90

JPEG 2000 Image Compression (Lossless Only)

D

1.2.840.10008.1.2.4.91

JPEG 2000 Image Compression

O

image/jpx

1.2.840.10008.1.2.4.92

JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only)

D

1.2.840.10008.1.2.4.93

JPEG 2000 Part 2 Multi-component Image Compression

O

image/jphc

1.2.840.10008.1.2.4.201

High-Throughput JPEG 2000 Image Compression (Lossless Only)

D

1.2.840.10008.1.2.4.202

High-Throughput JPEG 2000 with RPCL Options Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.203

High-Throughput JPEG 2000 Image Compression

O

image/jxl

1.2.840.10008.1.2.4.110

JPEG XL Lossless

D

1.2.840.10008.1.2.4.111

JPEG XL JPEG Recompression

O

1.2.840.10008.1.2.4.112

JPEG XL

O

Multi-frame Image

image/jpeg

1.2.840.10008.1.2.4.70

JPEG Lossless, Non-Hierarchical, First-Order Prediction(Process 14 [Selection Value 1]): Default​ Transfer Syntax for Lossless JPEG Image Compression

D

1.2.840.10008.1.2.4.50

JPEG Baseline (Process 1): Default​ Transfer Syntax for Lossy JPEG 8 Bit Image Compression

O

1.2.840.10008.1.2.4.51

JPEG Extended (Process 2 & 4): Default​ Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only)

O

1.2.840.10008.1.2.4.57

JPEG Lossless, Non-Hierarchical (Process 14)

O

application/x-deflate

1.2.840.10008.1.2.8.1

Deflated Image Frame Compression

D

image/dicom-rle

1.2.840.10008.1.2.5

RLE Lossless

D

image/jls

1.2.840.10008.1.2.4.80

JPEG-LS Lossless Image Compression

D

1.2.840.10008.1.2.4.81

JPEG-LS Lossy (Near-Lossless) Image Compression

O

image/jp2

1.2.840.10008.1.2.4.90

JPEG 2000 Image Compression (Lossless Only)

D

1.2.840.10008.1.2.4.91

JPEG 2000 Image Compression

O

image/jpx

1.2.840.10008.1.2.4.92

JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only)

D

1.2.840.10008.1.2.4.93

JPEG 2000 Part 2 Multi-component Image Compression

O

image/jphc

1.2.840.10008.1.2.4.201

High-Throughput JPEG 2000 Image Compression (Lossless Only)

D

1.2.840.10008.1.2.4.202

High-Throughput JPEG 2000 with RPCL Options Image Compression (Lossless Only)

O

1.2.840.10008.1.2.4.203

High-Throughput JPEG 2000 Image Compression

O

image/jxl

1.2.840.10008.1.2.4.110

JPEG XL Lossless

D

1.2.840.10008.1.2.4.111

JPEG XL JPEG Recompression

O

1.2.840.10008.1.2.4.112

JPEG XL

O

Video

video/mpeg

1.2.840.10008.1.2.4.100

MPEG2 Main Profile / Main Level

O

1.2.840.10008.1.2.4.100.1

Fragmentable MPEG2 Main Profile / Main Level

O

1.2.840.10008.1.2.4.101

MPEG2 Main Profile / High Level

D

1.2.840.10008.1.2.4.101.1

Fragmentable MPEG2 Main Profile / High Level

O

video/mp4

1.2.840.10008.1.2.4.102

MPEG-4 AVC/H.264 High Profile / Level 4.1

D

1.2.840.10008.1.2.4.102.1

Fragmentable MPEG-4 AVC/H.264 High Profile / Level 4.1

D

1.2.840.10008.1.2.4.103

MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1

O

1.2.840.10008.1.2.4.103.1

Fragmentable MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1

O

1.2.840.10008.1.2.4.104

MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video

O

1.2.840.10008.1.2.4.104.1

Fragmentable MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video

O

1.2.840.10008.1.2.4.105

MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video

O

1.2.840.10008.1.2.4.105.1

Fragmentable MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video

O

1.2.840.10008.1.2.4.106

MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2

O

1.2.840.10008.1.2.4.106.1

Fragmentable MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2

O

video/H265

1.2.840.10008.1.2.4.107

HEVC/H.265 Main Profile / Level 5.1

D

1.2.840.10008.1.2.4.108

HEVC/H.265 Main 10 Profile / Level 5.1

O

application/x-deflate

1.2.840.10008.1.2.8.1

Deflated Image Frame Compression

D

Text

Н/Д (нет определённых синтаксисов передачи со сжатием для Text)

Other

Н/Д (нет определённых синтаксисов передачи со сжатием для Other)


Исходный сервер может поддерживать дополнительные синтаксисы передачи.

Для типов носителя image/jpeg и синтаксисов передачи изображение может как включать, так и не включать сегмент маркера JFIF. Изображение может как включать, так и не включать сегменты маркеров APP2 с идентификатором "ICC_PROFILE". От исходного сервера не требуется добавлять сегмент маркера JFIF или копировать значение атрибута ICC Profile (0028,2000), если оно присутствует, в сегменты маркеров APP2 в потоке сжатых данных. См. Раздел 8.2.1 «Сжатие изображений JPEG» в PS3.5.

Для типов носителя image/jp2 и image/jpx и синтаксисов передачи изображение не включает сегмент маркера jp2. См. Раздел 8.2.4 «Сжатие изображений JPEG 2000» в PS3.5 и Раздел A.4.4 «Сжатие изображений JPEG 2000» в PS3.5

Сжатые пиксельные данные много кадрового изображения кодируются как отдельные кадры. Например, каждый кадр много кадрового изображения JPEG 2000 будет закодирован отдельно как представление image/jp2, а не как единое представление video/mj2 ([RFC3745]) или application/octet-stream. См. Раздел 8.6.1.2 для получения подробной информации о том, как несколько представлений могут быть упакованы в составную полезную нагрузку.

Пиксельные данные видео кодируются как единое представление видео. Например, все кадры видео MPEG-4 будут закодированы как единое представление video/mp4 ([RFC4337]).

Примечание

  1. Ресурс на исходном сервере может быть закодирован в синтаксисе передачи Deflated Explicit VR Little Endian (1.2.840.10008.1.2.1.99). В этом случае исходный сервер может распаковать его (inflate), а затем преобразовать в допустимый синтаксис передачи (Acceptable Transfer Syntax). Заголовок Content-Encoding со значением 'deflate' не может использоваться для передачи дефлированных байтов без изменений, поскольку требуемая File Meta Information из PS3.10 не включена в дефлированные байты, а Content-Encoding применяется ко всему multipart-потоку, а не к каждой его части отдельно.

    Ресурс на исходном сервере может быть закодирован в синтаксисе передачи Deflated Image Frame Compression (1.2.840.10008.1.2.8.1). В этом случае исходный сервер может вернуть сжатый поток битов, если это допустимый синтаксис передачи, или исходный сервер может распаковать его (inflate), а затем преобразовать в допустимый синтаксис передачи. Кроме того, если пользовательский агент допускает заголовок Content-Encoding со значением 'deflate', то дефлированные байты для ответа с одной частью (single part) могут быть переданы после добавления контейнера zlib в соответствии с [RFC7230] Раздел 4.2.2, но параметр синтаксиса передачи в ответе должен быть Explicit VR Little Endian Transfer Syntax.

  2. Многие типы носителей, используемые для сжатых пиксельных данных (Pixel Data), передаваемых как значения bulk data, также используются как типы носителей потребительских форматов. Веб-браузер может не иметь возможности отображать закодированные данные напрямую, даже если некоторые из этих же типов носителей также используются для кодирования отрендеренных пиксельных данных. См. Раздел 8.7.4.

    Например, типом носителя для значений bulk data без потерь 16-битных JPEG [ISO/IEC 10918-1] закодированных пиксельных данных является "image/jpeg" — тот же тип носителя, что может использоваться для 8-битных JPEG [ISO/IEC 10918-1] закодированных пиксельных данных, независимо от того, извлечены ли они как bulk data или отрендерены. Параметр синтаксиса передачи в заголовке Content-Type полезен для индикации различия.

  3. Ранее были определены экспериментальные типы носителей "image/x-dicom-rle" и "image/x-jls", поэтому исходным серверам и пользовательским агентам следует учитывать это при взаимодействии со старыми реализациями. Они были заменены стандартными типами носителей "image/dicom-rle" и "image/jls" соответственно.

8.7.3.4 Transfer Syntax

Синтаксис передачи по умолчанию для объектов DICOM, содержащихся в полезной нагрузке, должен быть Explicit VR Little Endian Uncompressed "1.2.840.10008.1.2.1". Если синтаксис передачи не указан в сообщении, должен использоваться синтаксис передачи по умолчанию, за исключением случая, когда исходный сервер имеет доступ к пиксельным данным только в форме сжатия с потерями или к пиксельным данным в форме сжатия без потерь или инкапсулированного несжатого формата, имеющего такую длину, что они не могут быть закодированы в синтаксисе передачи Explicit VR Little Endian.

Примечание

  1. Это отличается от синтаксиса передачи по умолчанию, определённого в Разделе 10.1 «Синтаксис передачи DICOM по умолчанию» в PS3.5, которым является Implicit VR Little Endian.

  2. Каждый исходный сервер обязан иметь возможность преобразовать любой набор данных (Data Set), который он собирается вернуть, в синтаксис передачи Explicit VR Little Endian, независимо от формы, в которой он изначально получил или сохранил набор данных, за исключением случаев, когда декомпрессированные пиксельные данные слишком велики для кодирования в синтаксисе передачи Explicit VR Little Endian или были получены в форме сжатия с потерями. В случае пиксельных данных со сжатием с потерями исходному серверу разрешается возвращать синтаксис передачи со сжатием с потерями, соответствующий полученной форме с потерями. В случае пиксельных данных со сжатием без потерь или инкапсулированных несжатых пиксельных данных, которые слишком велики для кодирования в синтаксисе передачи Explicit VR Little Endian, исходному серверу разрешается возвращать любой соответствующий синтаксис передачи со сжатием без потерь или инкапсулированный несжатый синтаксис передачи, не обязательно тот, в котором изображение было получено, в качестве альтернативы синтаксису передачи Explicit VR Little Endian.

  3. При перекодировании в синтаксис передачи Explicit VR Little Endian для кодирования элементов данных (Data Elements) с явным VR, значение длины которых превышает 65534 (216-2) (FFFEH, наибольшее чётное беззнаковое 16-битное число), но которые определены как имеющие 16-битное поле длины явного VR, может потребоваться VR типа UN. См. Раздел 6.2.2 в PS3.5 .

Implicit VR Little Endian или Explicit VR Big Endian не должны использоваться.

Требования к кодированию полезной нагрузки ответа определены в Разделе 8.7.8.

Примечание

Синтаксисом передачи может быть один из синтаксисов передачи JPIP; в этом случае возвращаемые объекты будут содержать URL поставщика JPIP для получения пиксельных данных.

Исходный сервер может поддерживать дополнительные синтаксисы передачи.

8.7.3.5 Media Type Syntax

Синтаксис использования типов носителей в DICOM:

dicom-media-type = (dcm-singlepart / dcm-multipart) [dcm-parameters]

Где

dcm-singlepart = dcm-mt-name
dcm-multipart  ;see Section 8.7.3.5.1
dcm-parameters = transfer-syntax-mtp ;see Section 8.7.3.5.2
               / charset-mtp;see Section 8.7.3.5.3
dcm-mt-name    = dicom / dicom-metadata / bulkdata / pixeldata ;DICOM Media Type name
dicom          = "application/dicom"
dicom-metadata = dicom-xml / dicom-json
dicom-xml      = "application/dicom+xml"
dicom-json     = "application/dicom+json"
bulkdata       = octet-stream / pixeldata
octet-stream   = "application/octet-stream"
pixeldata      = image-pixel / video-pixel
rendered       = image-pixel / video-pixel
image-pixel    = "image/jpeg" / "image/dicom-rle" / "image/jls" / "image/jp2" / "image/jpx" / "image/jphc" / "image/jxl"
video-pixel    = "video/mpeg" / "video/mp4" / "video/H265"

Все типы носителей, используемые в DICOM, могут иметь параметр синтаксиса передачи, но его использование может быть ограничено службой, для которой они используются.

Примечание

Типы носителей application/dicom+xml и application/dicom+json могут иметь параметр синтаксиса передачи для указания кодирования данных base64.

Все типы носителей, используемые в DICOM, могут иметь параметр набора символов, но его использование может быть ограничено службой, для которой они используются.

8.7.3.5.1 Multipart Media Types

Синтаксис multipart-типов носителей:

dcm-multipart = "multipart/related"
                OWS ";" OWS "type" "=" dcm-mp-mt-name
                OWS ";" OWS "boundary=" boundary
                [dcm-parameters]
                [related-parameters]

Где

dcm-mp-mt-name = dicom-mt-name / rendered

См. Раздел 8.6.1.2.1 для определения boundary и related-parameters.

Каждый multipart-тип носителя должен включать параметр "type", который определяет тип носителя частей, и должен также включать параметр "boundary", который задаёт строку границы, используемую для разделения частей. Например:

Accept: multipart/related; type="application/octet-stream",
        multipart/related; type="image/*"; boundary=**,
        multipart/related; type="video/*"; boundary=**
8.7.3.5.2 Transfer Syntax Parameter

Для заданного типа носителя DICOM может быть указано одно значение параметра синтаксиса передачи, но его использование может быть ограничено службой, для которой оно используется.

RESTful исходные серверы должны поддерживать параметр синтаксиса передачи.

Параметры типа носителя синтаксиса передачи запрещены в запросах и ответах службы URI.

Синтаксис:

transfer-syntax-mtp = OWS ";" OWS %s"transfer-syntax=" ts-value
ts-value            = transfer-syntax-uid / "*"
transfer-syntax-uid ; a UID from Table A-1 “UID Values” in PS3.6 with a UID Type of Transfer Syntax

Значением параметра синтаксиса передачи может быть либо UID синтаксиса передачи, либо токен "*".

Например, чтобы указать, что 1.2.840.10008.1.2.4.50 является допустимым синтаксисом передачи, заголовок Accept может быть:

Accept: application/dicom; transfer-syntax=1.2.840.10008.1.2.4.50

Тип носителя DICOM может иметь только один параметр синтаксиса передачи, и он должен иметь только одно значение.

Примечание

Согласно [RFC6838] Спецификациям типов носителей и процедурам регистрации, указание конкретного параметра более одного раза является ошибкой. Если приемлемо несколько синтаксисов передачи, в заголовке Accept может быть указано более одного типа носителя с различными значениями параметра q для выражения предпочтения. Например, чтобы указать, что 1.2.840.10008.1.2.4.50 и 1.2.840.10008.1.2.4.57 являются допустимыми, но 1.2.840.10008.1.2.4.50 предпочтительнее, заголовок Accept может быть:

Accept: multipart/related; type="application/dicom";transfer-syntax=1.2.840.10008.1.2.4.50;boundary=**,
        multipart/related; type="application/dicom";transfer-syntax=1.2.840.10008.1.2.4.57;q=0.5;boundary=**

Шаблонное значение "*" указывает, что пользовательский агент принимает любой синтаксис передачи. Это позволяет, например, исходному серверу ответить без необходимости перекодирования существующего представления в новый синтаксис передачи или ответить синтаксисом передачи Explicit VR Little Endian независимо от сохранённого синтаксиса передачи, за исключением случая, когда исходный сервер имеет доступ к пиксельным данным только в форме сжатия с потерями или к пиксельным данным в форме сжатия без потерь, имеющим такую длину, что они не могут быть закодированы в синтаксисе передачи Explicit VR Little Endian.

Примечание

Шаблонное значение применяется только к тем синтаксисам передачи, которые соответствуют указанному типу носителя. Например, только несжатые синтаксисы передачи входят в область применения для application/octet-stream, и только соответствующие сжатые синтаксисы передачи входят в область применения для image/* или более специфичных подтипов типа носителя image.

Если исходный сервер поддерживает параметр синтаксиса передачи, он должен поддерживать шаблонное значение.

Исходные серверы, поддерживающие параметр синтаксиса передачи, должны указать в своём заявлении о соответствии (Conformance Statement) те значения параметра синтаксиса передачи, которые поддерживаются в ответе.

Пользовательские агенты, поддерживающие параметр синтаксиса передачи, должны указать в своём заявлении о соответствии те значения параметра синтаксиса передачи, которые могут быть предоставлены в запросе.

8.7.3.5.3 Character Set Parameter

Все типы носителей DICOM могут иметь один параметр набора символов, который должен иметь только одно значение, определяющее допустимый набор символов для ответа.

Синтаксис:

charset-mtp = OWS ";" OWS %s"charset" "=" charset

Все типы носителей DICOM имеют набор символов по умолчанию — UTF-8. См. Раздел 8.8 для подробной информации о наборах символов.

8.7.3.6 Transfer Syntax Query Parameter

Параметр запроса Transfer Syntax (Transfer Syntax Query Parameter) задаёт разделённый запятыми список из одного или нескольких UID синтаксисов передачи, как определено в PS3.6.

Синтаксис:

transfer-syntax-qp = %s"transferSyntax" "=" (1#transfer-syntax-uid / "*")

Этот параметр запроса используется только службой URI.

Службы RESTful указывают синтаксис передачи в параметре запроса "accept" (см. Раздел 8.3.3.1) и не используют параметр запроса Transfer Syntax.

8.7.3.7 Acceptable Transfer Syntaxes

Каждый тип носителя DICOM в Acceptable Media Types имеет допустимый синтаксис передачи (Acceptable Transfer Syntax), который явно указан или имеет значение по умолчанию.

В зависимости от службы, допустимый синтаксис передачи для типа носителя DICOM может быть указан в:

  1. Параметре типа носителя Transfer Syntax, содержащемся в параметре запроса Accept (см. Раздел 8.3.3.1)

  2. Параметре типа носителя Transfer Syntax, содержащемся в заголовке Accept

  3. Параметре запроса Transfer Syntax (см. Раздел 8.7.3.5)

8.7.4 Rendered Media Types

Экземпляры DICOM (DICOM Instances) могут быть преобразованы процессом рендеринга в типы носителей, не являющиеся типами DICOM. Это может быть полезно для их отображения или обработки с помощью программ, не поддерживающих DICOM, таких как браузеры.

Например, экземпляр, содержащий:

  1. изображение, может быть преобразован в типы носителей image/jpeg, image/jph, image/jxl, image/png или image/gif.

  2. много кадровое изображение (Multi-frame Image) в синтаксисе передачи без потерь может быть преобразовано в типы носителей video/mpeg, video/mp4, video/H265 или image/jxl.

  3. структурированный отчёт (Structured Report) может быть преобразован в типы носителей text/html, text/plain или application/pdf.

Примечание

Отрендеренные типы носителей (Rendered Media Types) обычно являются типами носителей потребительских форматов. Некоторые из тех же типов носителей, не являющихся типами DICOM, также используются как типы носителей bulk data, т.е. для кодирования bulk data, извлечённых из инкапсулированных пиксельных данных (Encapsulated Pixel Data) (используемых со сжатыми синтаксисами передачи), без применения процесса рендеринга. См. Раздел 8.7.3.3.

Рендеринг состояний представления (Presentation States) описан в Разделе 8.3.5.1.

Исходные серверы должны поддерживать рендеринг экземпляров различных категорий ресурсов в отрендеренные типы носителей, как указано в Таблице 8.7.4-1.

Таблица 8.7.4-1. Отрендеренные типы носителей по категориям ресурсов

Категория

Тип носителя

URI

RESTful

Single Frame Image

image/jpeg

D

D

image/gif

O

R

image/png

O

R

image/jp2

O

O

image/jph

O

O

image/jxl

O

O

Multi-frame Image

image/gif

O

O

image/jxl

O

O

Video

video/mpeg

O

O

video/mp4

O

O

video/H265

O

O

Text

text/html

D

D

text/plain

R

R

text/xml

O

R

text/rtf

O

O

application/pdf

O

O


Когда возвращается тип носителя image/jpeg, изображение должно быть закодировано с использованием процесса кодирования JPEG baseline lossy 8-bit Huffman non-hierarchical non-sequential, определённого в [ISO/IEC 10918-1].

Когда возвращается тип носителя image/jph, изображение должно быть закодировано с наличием JP2 box.

Примечание

Это представление отличается от хранимых HTJ2K синтаксисов передачи, которые не содержат JP2 box.

Исходный сервер может поддерживать дополнительные отрендеренные типы носителей, которые должны быть документированы в заявлении о соответствии (Conformance Statement) и, если служба это поддерживает, в ответе Retrieve Capabilities.

Параметр типа носителя Transfer Syntax не разрешён для отрендеренных типов носителей.

8.7.5 Acceptable Media Types

Термин «допустимые типы носителей» (Acceptable Media Types) обозначает типы носителей, которые приемлемы для пользовательского агента в ответе. Допустимые типы носителей — это те, что указаны в:

  • Параметре запроса Accept, который может как присутствовать, так и отсутствовать.

  • Заголовке Accept, который должен присутствовать.

Ответом на запрос без заголовка Accept должен быть 406 (Not Acceptable). Наличие параметра запроса Accept не устраняет необходимости в заголовке Accept. Подробности см. в Разделе 8.3.3.1.

Допустимые типы носителей должны быть либо типами носителей DICOM, либо отрендеренными типами носителей, но не обоими одновременно. Если допустимые типы носителей содержат как типы DICOM, так и отрендеренные типы, исходный сервер должен вернуть 400 (Bad Request).

Пользовательский агент может указать относительную степень предпочтения типов носителей, будь то в параметре запроса Accept или в заголовке Accept, используя параметр веса (weight). См. [RFC7231] Раздел 5.3.1.

weight = OWS ";" OWS "q=" qvalue
qvalue = ("0" ["." 0*3DIGIT]) / ("1" ["." 0*3("0") ])

Если параметр "q" отсутствует, значение qvalue по умолчанию равно 1.

8.7.6 Accept Query Parameter

Параметр запроса Accept может использоваться для указания допустимых типов носителей. См. Раздел 8.7.5.

8.7.7 Accept Header Field

Заголовок Accept используется для указания типов носителей, приемлемых для пользовательского агента. Он имеет следующий синтаксис:

Accept = 1#(media-range [weight])

Значение заголовка Accept должно быть разделённым запятыми списком из одного или нескольких диапазонов носителей (media ranges), приемлемых в ответе. См. [RFC7231] Раздел 5.3.2.

Диапазон носителей (media range) — это либо тип носителя, либо шаблон (wildcard). Шаблоны используют звёздочку ("*") для группировки типов носителей в диапазоны, при этом <type>/* обозначает все подтипы данного типа, а */* обозначает все типы носителей. Например, диапазон носителей image/* соответствует image/jpeg, который является типом носителя по умолчанию для категории ресурсов Single Frame Image, а text/* соответствует text/html, который является типом носителя по умолчанию для категории ресурсов Text. DICOM указывает, что диапазон носителей */* соответствует типу носителя по умолчанию для категории ресурсов целевого объекта. Если для категории ресурсов не определён тип носителя по умолчанию, приемлем любой тип носителя из этой категории ресурсов.

Если ответ может содержать полезную нагрузку, заголовок Accept должен присутствовать в запросе.

Если исходный сервер получает запрос без заголовка Accept, но ответ может содержать полезную нагрузку, он должен вернуть 406 (Not Acceptable).

Любые значения заголовка Accept, включая параметры типа носителя, которые являются недопустимыми или не поддерживаются, должны игнорироваться исходным сервером.

8.7.8 Selected Media Type and Transfer Syntax

Выбор типа носителя и синтаксиса передачи исходным сервером взаимосвязаны.

8.7.8.1 Selected Media Type

Выбранный тип носителя (Selected Media Type) — это тип носителя, выбранный исходным сервером для представления в полезной нагрузке ответа. Типы носителей в параметре запроса Accept и диапазоны носителей в заголовке Accept должны быть отдельно приоритизированы в соответствии с правилами, определёнными в [RFC7231] Разделе 5.3.1.

Для составных полезных нагрузок (multipart payloads) выбранный тип носителя определяется независимо для каждой части сообщения в ответе.

Выбранный тип носителя каждой части сообщения зависит от категории ресурсов экземпляра и допустимых типов носителей для этой категории ресурсов.

Выбранный тип носителя определяется следующим образом:

  1. Определить категорию ресурсов целевого объекта

  2. Выбрать представление с типом носителя наивысшего приоритета, поддерживаемым для этой категории в параметре запроса Accept.

  3. Если ни один тип носителя в параметре запроса Accept не поддерживается, выбрать тип носителя наивысшего приоритета, поддерживаемый для этой категории в заголовке Accept, если таковой имеется.

  4. В противном случае выбрать тип носителя по умолчанию для категории, если заголовок Accept содержит диапазон носителей-шаблон, соответствующий категории, если таковой имеется.

  5. В противном случае вернуть 406 (Not Acceptable).

Примечание

  1. Если выбранный тип носителя — Explicit VR Little Endian, а пиксельные данные сжаты и при распаковке имеют такую длину, что не могут быть помещены в Value Field, исходный сервер ответит 406 (Not Acceptable), и пользовательский агент может повторить запрос с другим набором допустимых типов носителей.

  2. При перекодировании в синтаксис передачи Explicit VR Little Endian для кодирования элементов данных (Data Elements) с явным VR, значение длины которых превышает 65534 (216-2) (FFFEH, наибольшее чётное беззнаковое 16-битное число), но которые определены как имеющие 16-битное поле длины явного VR, может потребоваться VR типа UN. См. Раздел 6.2.2 «Представление значения Unknown (UN)» в PS3.5.

Для набора типов носителей в параметре запроса Accept (шаг 2 выше) или для набора диапазонов носителей в заголовке Accept (шаг 3 выше) тип носителя наивысшего приоритета определяется следующим образом:

  1. Присвоить qvalue, равный 1, любому элементу набора, у которого его нет.

  2. Присвоить каждому представлению, поддерживаемому исходным сервером, qvalue наиболее специфичного типа носителя, которому оно соответствует.

  3. Выбрать представление с наивысшим qvalue. При равенстве исходный сервер определяет, какое из них возвращается.

Например, рассмотрим исходный сервер, который получает запрос со следующим заголовком Accept:

Accept: text/*; q=0.5, text/html; q=0.4, text/html; level=1, text/html; level=2; q=0.7,
        image/png, */*; q=0.4

Предположим, что для ресурса, указанного в запросе, исходный сервер поддерживает представления для следующих типов носителей:

text/html (regular, level 1 and level 2)
text/rtf
text/plain
text/x-latex

Этим типам носителей присвоены следующие значения qvalue на основе указанных выше диапазонов носителей:

Таблица 8.7.8-1. Пример QValue типа носителя

Тип носителя

qvalue

Определяющий диапазон носителей

text/html; level=1

1.0

text/html; level=1

text/html; level=2

0.7

text/html; level=2

text/plain

0.5

text/*

text/rtf

0.5

text/*

text/html

0.4

text/html

text/x-latex

0.4

*/*


Хотя "image/png" было присвоено значение qvalue по умолчанию 1.0, оно не входит в число поддерживаемых типов носителей для этого ресурса и поэтому не указано.

Выбранный тип носителя — 'text/html; level=1', поскольку это поддерживаемый тип носителя в категории Text с наивысшим qvalue.

8.7.8.2 Selected Transfer Syntax

Выбранный синтаксис передачи (Selected Transfer Syntax) — это синтаксис передачи, выбранный исходным сервером для кодирования отдельной части сообщения в ответе.

Исходный сервер должен сначала определить выбранный тип носителя, как определено в Разделе 8.7.8, а затем определить выбранный синтаксис передачи.

Если выбранный тип носителя был указан в параметре запроса Accept, выбранный синтаксис передачи определяется следующим образом:

  1. Выбрать значение параметра Transfer Syntax выбранного типа носителя, если таковое имеется;

  2. В противном случае выбрать значение Transfer Syntax в параметре запроса Transfer Syntax, если таковое имеется;

  3. В противном случае выбрать синтаксис передачи по умолчанию (см. Таблицу 8.7.3-2, Таблицу 8.7.3-4 или Таблицу 8.7.3-5) для выбранного типа носителя.

Если выбранный тип носителя был указан в заголовке Accept, выбранный синтаксис передачи определяется следующим образом:

  1. Выбрать параметр Transfer Syntax для выбранного типа носителя, если таковой имеется;

  2. В противном случае выбрать синтаксис передачи по умолчанию для выбранного типа носителя.

Примечание

  1. Выбранный синтаксис передачи может отличаться для каждой части сообщения, содержащейся в ответе.

  2. Разработчики могут использовать другой алгоритм выбора, если результат будет тем же.

8.7.9 Content-Type Header Field

Заголовок Content-Type указывает тип носителя полезной нагрузки. Он должен присутствовать только при наличии полезной нагрузки, а любые параметры типа носителя должны указывать кодирование соответствующей части сообщения.

В частности, тип носителя DICOM, используемый в качестве значения заголовка Content-Type, должен иметь ноль или один параметр Transfer Syntax (см. Раздел 8.7.3.5.2), и ноль или один параметр charset (см. Раздел 8.7.3.5.3), который соответствует кодировке символов соответствующей части сообщения.

Content-Type: dicom-media-type +transfer-syntax-mtp +charset-mtp

Если возникает конфликт между синтаксисом передачи, указанным в типе носителя, и синтаксисом передачи, указанным в атрибуте File Meta Information Transfer Syntax UID (0002,0010), последний имеет приоритет.

8.8 Character Sets

HTTP использует имена наборов символов для указания или согласования кодировки символов текстового содержимого в представлениях [RFC6365] Раздел 3.3.

Наборы символов могут быть идентифицированы с использованием значения из столбца IANA Preferred MIME Name в [IANA Character Sets].

Наборы символов также могут быть идентифицированы с использованием определённых терминов DICOM (DICOM Defined Terms) для набора символов (см. Приложение D, Раздел C.12.1.1.2 в PS3.3 и Раздел 6.1.2.3 «Кодирование наборов символов» в PS3.5), которые должны быть строками в кавычках, поскольку они содержат символ пробела (' ').

Синтаксис:

charset = token / defined-term / DQUOTE defined-term DQUOTE

Где

token

Нечувствительное к регистру имя набора символов из Preferred MIME Name в реестре IANA Character Set Registry.

defined-term

См. Раздел C.12.1.1.2 «Specific Character Set» в PS3.3.

Исходный сервер должен поддерживать имя набора символов "UTF-8" для транзакции RESTful Retrieve Rendered, но не обязан поддерживать определённый термин DICOM "ISO_IR 192". Некоторые определённые термины DICOM для наборов символов содержат символы пробела и должны заключаться в двойные кавычки в заголовках HTTP и кодироваться процентами (percent encoded) в URI.

Заявление о соответствии (Conformance Statement) должно документировать все поддерживаемые наборы символов. Ответ Retrieve Capabilities для всех служб RESTful также должен документировать все поддерживаемые наборы символов.

Запрос без параметра запроса Character Set или заголовка Accept-Charset означает, что пользовательский агент принимает любой набор символов в ответе.

Приложение D содержит сопоставление некоторых определённых терминов (Defined Terms) атрибута Specific Character Set (0008,0005) с токенами наборов символов IANA.

8.8.1 Acceptable Character Sets

Термин «допустимые наборы символов» (Acceptable Character Sets) обозначает наборы символов, которые приемлемы для пользовательского агента в ответе. Допустимые наборы символов — это те, что указаны в:

  • параметре типа носителя "charset"

  • параметре запроса набора символов (character set)

  • заголовке Accept-Charset

  • наборе символов по умолчанию для типа носителя, если таковой имеется

Когда допустимые наборы символов содержат список из одного или нескольких определённых терминов (Defined Terms), они должны быть упорядочены пользовательским агентом, как указано в Разделе C.12.1.1.2 «Specific Character Set» в PS3.3 и Разделе 6.1.2.3 «Кодирование наборов символов» в PS3.5. Это особенно важно для наборов символов ISO 2022.

Любые значения charset, которые являются недопустимыми или не поддерживаются, должны игнорироваться исходным сервером.

8.8.2 Character Set Query Parameter

См. Раздел 8.3.3.2 .

8.8.3 Character Set Media Type Parameters

Типы носителей DICOM принимают параметры набора символов (charset). См. Раздел 8.7.3.5.3.

Многие другие типы носителей также принимают параметры набора символов (charset). См. [IANA Media Types].

8.8.4 Поле заголовка Accept-charset

Поле заголовка Accept-Charset имеет следующий синтаксис:

Accept-Charset = 1#(charset [weight]) / ("*" [weight])

Пользовательский агент может предоставить список приемлемых наборов символов (Acceptable Character Sets) в поле заголовка Accept-Charset запроса. Его значение представляет собой разделенный запятыми список одного или нескольких наборов символов и/или подстановочного значения ("*").

Значения поля заголовка Accept-Charset упорядочиваются по приоритету с помощью параметра weight.

Если подстановочный знак ("*") отсутствует, то любые наборы символов, явно не упомянутые в поле заголовка, считаются "неприемлемыми" для клиента.

Если тип мультимедиа (Media Type) определяет параметр "charset", он должен включаться вместе с типом мультимедиа в поле заголовка Accept, а не в поле заголовка Accept-Charset.

8.8.5 Выбранный набор символов

Исходный сервер должен определить выбранный набор символов (Selected Character Set) следующим образом:

  1. Выбрать первый поддерживаемый набор символов из параметра(ов) "charset" выбранного типа мультимедиа.

  2. В противном случае выбрать поддерживаемый набор символов с наивысшим приоритетом из параметра запроса character-set.

  3. В противном случае выбрать поддерживаемый набор символов с наивысшим приоритетом из поля заголовка Accept-Charset.

  4. В противном случае, если выбранный тип мультимедиа имеет поддерживаемый набор символов по умолчанию, выбрать его.

  5. В противном случае выбрать UTF-8.

Визуализированные представления (rendered representations), возвращаемые в ответе, должны содержать все строки в выбранном наборе символов.

Если набор символов, в котором закодирован целевой ресурс (Target Resource), не совпадает с выбранным набором символов:

  • Если исходный сервер поддерживает перекодирование всех глифов, используемых в целевом ресурсе, в выбранный набор символов, он должен перекодировать полезную нагрузку ответа в выбранный набор символов

  • В противном случае исходный сервер должен вернуть 406 (Not Acceptable).

Примечание

Если пользовательский агент предпочитает выполнить преобразование самостоятельно, а не поручать его исходному серверу:

  1. Пользовательский агент может опустить поле заголовка Accept-Charset или отправить подстановочный знак "*"

  2. Пользовательский агент может перекодировать набор символов, заменяя все неизвестные символы соответствующим заменителем. Например:

    • Вопросительный знак ("?") или другой аналогичный символ, указывающий на неизвестный символ.

    • Соответствующую кодовую точку Unicode для символа, представленную как "U+xxxx".

    • Четыре символа "\nnn", где "nnn" — это 3-значное восьмеричное представление каждого байта (см. Раздел 6.1.2.3 «Кодирование репертуаров символов» в PS3.5).

8.9 Транзакция Retrieve Capabilities

Эта транзакция извлекает описание возможностей (Capabilities Description) (см. Приложение H), которое представляет собой машиночитаемое описание служб(ы), реализованных исходным сервером. Все RESTful-службы, определенные в этой части стандарта, должны реализовывать эту транзакцию.

Целевым ресурсом (Target Resource) для этой транзакции является исходный сервер. Ответ содержит описание возможностей (Capabilities Description), которое описывает транзакции, ресурсы, представления и т. д., поддерживаемые службой(ами).

8.9.1 Запрос

Запрос должен иметь следующий синтаксис:

OPTIONS SP / SP version CRLF
Accept: 1#media-type CRLF
*(header-field CRLF)
CRLF

8.9.1.1 Ресурс

Целевым ресурсом для этой транзакции является базовый URI ("/") для службы. См. Раздел 8.2.

8.9.1.2 Параметры запроса

Эта транзакция не имеет параметров запроса.

8.9.1.3 Поля заголовка запроса

Таблица 8.9.1-1. Поля заголовка запроса

Имя

Значение

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Приемлемые типы мультимедиа для полезной нагрузки ответа

Accept-Charset

charset

O

O

Приемлемые наборы символов для полезной нагрузки ответа


См. также Раздел 8.4.

8.9.1.4 Полезная нагрузка запроса

Запрос не имеет полезной нагрузки.

8.9.2 Поведение

Исходный сервер должен вернуть описание возможностей (Capabilities Description), как определено в Приложении H, в приемлемом типе мультимедиа.

8.9.3 Ответ

Ответ имеет следующий формат:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[(Content-Length: uint) / (Transfer-Encoding: encoding) CRLF]
*(header-field CRLF)
CRLF
[payload / status-report]

8.9.3.1 Коды состояния

Таблица 8.9.3-1 показывает некоторые общие коды состояния, соответствующие этой транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 8.9.3-1. Значение кодов состояния

Статус

Код

Значение

Успех

200 (OK)

Все экземпляры (Instances) были успешно получены.

304 (Not Modified)

Текущее представление пользовательского агента актуально, поэтому полезная нагрузка не возвращалась. Этот код состояния должен возвращаться только для условного запроса, содержащего поле заголовка If-None-Match.

Сбой

400 (Bad Request)

Возникла проблема с запросом.


8.9.3.1.1 Поля заголовка ответа

Таблица 8.9.3-2. Поля заголовка ответа

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

M

Тип мультимедиа (media-type) полезной нагрузки

Content-Length

uint

C

Должно присутствовать, если кодирование передачи (transfer encoding) не применялось к полезной нагрузке

Transfer-Encoding

encoding

C

Должно присутствовать, если кодирование передачи (transfer encoding) было применено к полезной нагрузке


См. также Раздел 8.4.

8.9.3.2 Полезная нагрузка ответа

Ответ об успехе должен содержать полезную нагрузку с описанием возможностей (Capabilities Description) в выбранном типе мультимедиа. Описание возможностей должно соответствовать требованиям и структуре, определенным в Приложении H.

Полезная нагрузка ответа о сбое может содержать отчет о состоянии (Status Report), описывающий любые сбои, предупреждения или другую полезную информацию.

8.9.4 Типы мультимедиа

Типы мультимедиа, поддерживаемые службой Retrieve Capabilities: application/vnd.sun.wadl+xml (Web Application Description Language) или application/json.

8.10 Уведомления

8.10.1 Обзор

Некоторые RESTful-службы поддерживают уведомления (Notifications).

8.10.2 Соответствие

Реализация должна документировать в Заявлении о соответствии (Conformance Statement), поддерживает ли она уведомления или нет. Если служба поддерживает уведомления, она должна описать, как открываются соединения WebSocket.

8.10.3 Обзор транзакции

Любая служба, поддерживающая уведомления (Notifications), должна поддерживать следующие транзакции:

Таблица 8.10.3-1. Транзакции подсистемы уведомлений

Имя

Метод

Описание

Открыть соединение для уведомлений (Open Notification Connection)

GET

Пользовательский агент запрашивает у исходного сервера создание соединения для уведомлений (Notification Connection) между ними.

Отправить отчет о событии (Send Event Report)

N/A

Исходный сервер отправляет отчет о событии (Event Report) конечной точке (End-Point)


8.10.4 Транзакция открытия соединения для уведомлений

Эта транзакция создает соединение между пользовательским агентом и исходным сервером, по которому исходный сервер может отправлять отчеты о событиях (Event Reports) пользовательскому агенту.

Примечание

Исходный сервер может играть роль пользовательского агента при обмене данными с другим исходным сервером.

Соединение использует протокол WebSocket. Соединение может использовать тот же TCP-порт, что и HTTP-соединение, но это отдельные соединения.

См. [RFC6455] для получения подробной информации о протоколе WebSocket.

8.10.4.1 Запрос

Существует более одного способа установить соединение WebSocket. Исходный сервер, соответствующий [RFC6455] и поддерживающий подписки на уведомления RESTful-служб, должен как минимум поддерживать запросы на открытие WebSocket через HTTP-соединения, имеющие следующий синтаксис:

GET SP / subscribers/{requester} SP version CRLF
Host: host CRLF
Upgrade: "WebSocket" CRLF
Connection: "Upgrade" CRLF
Origin: url CRLF
Sec-WebSocket-Key: nonce CRLF
Sec-WebSocket-Protocol: protocols CRLF
Sec-WebSocket-Version: "13" CRLF
*(<header-field> CRLF)
CRLF

Исходный сервер может поддерживать другие методы открытия соединения WebSocket, которые следует включить в Заявление о соответствии и ответ Retrieve Capabilities.

8.10.4.1.1 Целевые ресурсы

Исходный сервер должен поддерживать ресурсы, перечисленные в Таблице 8.10.4-1a.

Таблица 8.10.4-1a. Ресурсы транзакции открытия соединения для уведомлений

Ресурс

Шаблон URI

Описание

Соединение для уведомлений (Notification Connection)

/subscribers/{requester}

Открывает соединение для уведомлений WebSocket, привязанное к {requester} — AE Title запрашивающего пользовательского агента.


8.10.4.1.2 Параметры запроса

Эта транзакция не имеет параметров запроса.

8.10.4.1.3 Поля заголовка запроса

Таблица 8.10.4-1 показывает использование полей заголовка запроса для открытия соединения WebSocket через http/https.

Таблица 8.10.4-1. Поля заголовка запроса

Имя

Значение

Использование

Content-Type

media-type

M

Upgrade

"WebSocket"

M

Connection

"Upgrade"

M

Origin

url

M

Sec-WebSocket-Key

accept-key

M

Sec-WebSocket-Protocol

protocols

O

Sec-WebSocket-Version

version

M


Подробные сведения о значениях полей заголовка запроса и других методах открытия соединения WebSocket см. в [RFC6455].

8.10.4.1.4 Полезная нагрузка запроса

Запрос не имеет полезной нагрузки.

8.10.4.2 Поведение

При получении этого запроса исходный сервер должен открыть и поддерживать соединение для уведомлений WebSocket между собой и пользовательским агентом, и использовать его для отправки уведомлений в виде отчетов о событиях (Event Report) для подписок, связанных с {requester}.

Если соединение в какой-либо момент прерывается, пользовательский агент может восстановить его, повторив эту транзакцию.

8.10.4.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
Upgrade: "WebSocket" CRLF
Connection: "Upgrade" CRLF
Sec-WebSocket-Accept: response-key CRLF
Sec-WebSocket-Protocol: protocol CRLF
*(header-field CRLF)
CRLF
8.10.4.3.1 Коды состояния

Таблица 8.10.4-2 показывает некоторые общие коды состояния, соответствующие этой транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 8.10.4-2. Значение кодов состояния

Статус

Код

Значение

Успех

101 (Switching Protocols)

Протокол был успешно изменен на WebSocket.

Сбой

400 (Bad Request)

Возникла проблема с запросом.


8.10.4.3.2 Поля заголовка ответа

Таблица 8.10.4-3. Поля заголовка ответа

Имя

Значение

Использование исходным сервером

Описание

Upgrade

"WebSocket"

M

Connection

"Upgrade"

M

Origin

url

M

Sec-WebSocket-Accept

response-key

M

См. [RFC6455]

Sec-WebSocket-Protocol

protocol

M

См. [RFC6455]


См. также Раздел 8.4.

8.10.4.3.3 Полезная нагрузка ответа

Ответ не имеет полезной нагрузки.

8.10.5 Транзакция отправки отчета о событии

Исходный сервер использует эту транзакцию для уведомления пользовательского агента о событиях (Events).

Эта транзакция отправляет уведомление, содержащее отчет о событии (Event Report), через установленное соединение для уведомлений от исходного сервера пользовательскому агенту. В отличие от большинства транзакций, эта транзакция инициируется исходным сервером.

Эта транзакция соответствует действию DIMSE N-EVENT-REPORT.

Каждая служба может определять события (Events) и соответствующие сообщения отчетов о событиях и их содержимое, связанные с ее ресурсами.

8.10.5.1 Запрос

Запрос должен использовать протокол передачи кадров данных WebSocket.

8.10.5.1.1 Полезная нагрузка запроса

Кадры данных должны иметь код операции (opcode) "%x1" (текст).

Данные полезной нагрузки кадра данных должны представлять собой DICOM JSON Data Set, содержащий атрибуты отчета о событии (Event Report).

Примечание

  1. Протокол WebSocket в настоящее время не поддерживает согласование содержимого, поэтому невозможно одновременно поддерживать как XML-, так и JSON-кодирование сообщений отчета о событии.

  2. Если отчеты о событиях проксируются в DIMSE N-EVENT-отчеты, идентификатор сообщения Message ID (0000,0110) должен управляться прокси-сервером.

8.10.5.2 Поведение

Пользовательский агент должен принимать все атрибуты, включенные в любой отчет о событии. Требования к тому, что пользовательский агент делает с этой информацией, не предъявляются.

8.10.5.3 Ответ

Нет.

8.11 Безопасность и конфиденциальность

Весьма вероятно, что DICOM-объекты содержат защищенную медицинскую информацию (Protected Health Information). Правила конфиденциальности в США (HIPAA), Европе (GDPR) и других регионах требуют, чтобы персональные идентификационные данные оставались конфиденциальными. Ответственность за соблюдение применимых нормативных требований к безопасности и конфиденциальности несут лица, реализующие и развертывающие стандарт DICOM.

См., например, [ONC Privacy Security Guide].

Некоторые типы изображений, такие как визуализированные объемы (rendered volumes) или исходные срезы, из которых они создаются, могут содержать распознаваемые визуальные признаки.

Формат файлов DICOM PS3.10 имеет аспекты безопасности, которые применяются при каждом использовании формата файлов DICOM PS3.10. См. Раздел 7.5 в PS3.10 .

9 Служба URI

9.1 Обзор

Служба URI, также известная как WADO-URI, позволяет пользовательскому агенту извлекать представления Экземпляров с использованием HTTP.

9.1.1 Описание ресурсов

Служба URI не определяет ресурсы в форме пути целевого ресурса, такого как {/resource}. Целевой URI каждой Транзакции является ссылкой на базовый URI ("/"), а целевой ресурс идентифицируется с использованием значений параметров запроса. Ресурсами для Службы URI являются Экземпляры Составных SOP-классов хранения, определенных в PS3.4.

9.1.2 Общие параметры запроса

Параметры запроса, указанные в этом Разделе, могут использоваться с Транзакциями Retrieve DICOM Instance или Retrieve Rendered Instance и применяются ко всем поддерживаемым SOP-классам.

9.1.2.1 Обязательные параметры запроса

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 9.1.2-1.

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 9.1.2-1.

Параметры запроса могут располагаться в любом порядке.

Таблица 9.1.2-1. Обязательные параметры запроса

Имя

Значения

Использование

Раздел

Пользовательский агент

Исходный сервер

requestType

"WADO"

M

M

Раздел 9.1.2.1.1

studyUID

uid

M

M

Раздел 9.1.2.1.3

seriesUID

uid

M

M

Раздел 9.1.2.1.3

objectUID

uid

M

M

Раздел 9.1.2.1.4


См. Раздел 8.3.

Примечание

Для идентификации SOP-экземпляра требуется только SOP Instance UID, поскольку любой UID является глобально уникальным. Однако Стандарт требует, чтобы UID более высоких уровней в информационной модели DICOM (т.е. Series и Study) были указаны, чтобы поддерживать использование DICOM-устройств, которые поддерживают только базовую иерархическую (а не расширенную реляционную) модель Query/Retrieve, требующую определения Study Instance UID и Series Instance UID при извлечении Экземпляра, как определено в PS3.4.

requestType = %s"requestType=" token
token       = "WADO"

Этот параметр указывает, что это запрос службы URI. Имя параметра должно быть "requestType", а значение должно быть "WADO".

Если значение отличается от "WADO" и исходный сервер не поддерживает это значение, ответ должен быть 400 (Bad Request) и может включать полезную нагрузку, содержащую соответствующее сообщение об ошибке.

9.1.2.1.2 Study UID
study = %s"studyUID=" uid

Значением этого параметра является Study Instance UID.

9.1.2.1.3 Series UID
series = %s"seriesUID=" uid

Значением этого параметра является Series Instance UID.

9.1.2.1.4 Instance UID
instance = %s"objectUID=" uid

Значением этого параметра является SOP Instance UID.

9.1.2.2 Необязательные параметры запроса

Параметры, определенные в этом разделе, являются необязательными для всех URI-запросов.

Таблица 9.1.2-2. Необязательные параметры запроса

Ключ

Значения

Использование

Раздел

Пользовательский агент

Исходный сервер

contentType

media-type

O

O

Раздел 8.3.3.1

charset

token

O

O

Раздел 8.3.3.2


См. Раздел 8.3.

9.1.2.2.1 Приемлемые типы носителей

Параметр запроса Accept указывает приемлемые типы носителей для полезной нагрузки ответа. См. Раздел 8.7.5. Чувствительное к регистру имя параметра — "contentType". Его синтаксис:

accept = %s"contentType=" dicom / 1#rendered-media-type

Значение этого параметра, если оно присутствует, должно быть либо application/dicom, либо одним или несколькими из типов визуализированных носителей.

Параметры типа носителя DICOM transfer-syntax и набора символов запрещены в запросе. Если какой-либо из них присутствует, ответ должен быть 400 (Bad Request) и может включать полезную нагрузку, содержащую соответствующее сообщение об ошибке.

См. Раздел 8.7.5 относительно других ошибок, связанных с этим параметром.

Примечание

Исходные серверы URI могут поддерживать параметры запроса Transfer Syntax и charset. Это отличается от подхода, используемого службами DICOM RESTful, которые применяют параметры типа носителя transfer-syntax и charset.

9.1.2.2.2 Приемлемые наборы символов
charset-qp = %s"charset=" 1#(charset [weight])

Значением этого параметра является разделенный запятыми список одного или нескольких идентификаторов наборов символов. См. Раздел 8.8.1.

9.1.3 Общие типы носителей

Исходный сервер должен поддерживать тип носителя application/dicom, как описано в Разделе 8.7.3.1, и визуализированные типы носителей, как описано в Разделе 8.7.4.

Поддержка параметров типа носителя Transfer Syntax и Character Set запрещена для служб URI.

9.2 Соответствие

Реализация, соответствующая службе URI, должна поддерживать извлечение одного или нескольких информационных объектов, указанных для Storage Service Class, как определено в Разделе B.5 в PS3.4 .

Декларация о соответствии реализации должна документировать информационные объекты, поддерживаемые для службы URI, а также то, выступает ли она в роли исходного сервера или пользовательского агента, либо обеих ролей.

9.3 Обзор транзакций

Служба URI состоит из следующих Транзакций:

Retrieve DICOM Instance

Эта Транзакция извлекает один Экземпляр в типе носителя application/dicom.

Retrieve Rendered Instance

Эта Транзакция извлекает один Экземпляр в визуализированном типе носителя.

Эти две Транзакции имеют один и тот же тип "requestType", но различаются выбранным типом носителя.

Если параметр запроса "contentType" отсутствует и поле заголовка Accept равно '*/*', то выбранный тип носителя по умолчанию принимается равным типу носителя 'image/jpeg', а Транзакция по умолчанию — Retrieve Rendered Instance.

9.4 Транзакция Retrieve DICOM Instance

Эта Транзакция извлекает один Экземпляр в типе носителя application/dicom. См. Раздел 8.7.3.

9.4.1 Запрос

Запрос должен иметь следующий синтаксис:

GET SP / ?{requestType}&{study}&{series}&{instance}
         {&accept}
         {&charset}
         {&anonymize}
         {&transferSyntax}
         SP HTTP/1.1 CRLF
Accept: uri-media-type CRLF
*(header-field CRLF)
CRLF

9.4.1.1 Целевые ресурсы

Целевой ресурс должен быть Экземпляром составного SOP-класса хранения, определенного в PS3.4.

9.4.1.2 Параметры запроса

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 9.4.1-1 .

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 9.4.1-1 .

Таблица 9.4.1-1. Необязательные параметры запроса

Ключ

Значения

Использование

Раздел

Пользовательский агент

Исходный сервер

anonymize

"yes"

O

O

Раздел 9.4.1.2.1

annotation

"patient"

"technique"

O

O

Раздел 9.4.1.2.2

transferSyntax

uid

O

O

Раздел 9.4.1.2.3


9.4.1.2.1 Анонимизация
anonymize = %s"anonymize=" token
token = "yes"

Этот параметр указывает, что возвращаемые представления должны иметь всю индивидуально идентифицирующую информацию (III), удаленную в соответствии с Приложением E «Профили конфиденциальности атрибутов (Нормативное)» в PS3.15, Базовый профиль с опцией Clean Pixel Data. Его имя — "anonymize", а значение — токен. Определенным токеном является "yes". Если этот параметр отсутствует, анонимизация не запрашивается.

9.4.1.2.2 Аннотирование
annotation = 1#( %s"patient" / %s"technique" )

Этот параметр указывает, что визуализированные изображения должны быть снабжены аннотациями с информацией о пациенте и/или о процедуре. Его значение — разделенный запятыми список одного или нескольких ключевых слов.

Где

"patient"

указывает, что визуализированные изображения должны быть снабжены аннотациями с информацией о пациенте (например, имя пациента, дата рождения и т.д.).

"technique"

указывает, что визуализированные изображения должны быть снабжены аннотациями с информацией о выполненной процедуре (например, номер изображения, дата исследования, позиция изображения и т.д.).

Исходный сервер может поддерживать дополнительные ключевые слова, которые следует включить в Декларацию о соответствии и ответ Retrieve Capabilities.

9.4.1.2.3 Transfer Syntax
transfer-syntax = %s"transferSyntax" "=" transfer-syntax-uid

Этот параметр указывает UID синтаксиса передачи. Его имя — "transferSyntax", а значение — единичный UID синтаксиса передачи. Он является необязательным как для пользовательского агента, так и для исходного сервера. Подробности см. в Разделе 8.7.3.5.

9.4.1.3 Поля заголовка запроса

Исходный сервер должен поддерживать поля заголовка, как требуется в Таблице 9.4.1-2, в запросе.

Пользовательский агент должен предоставлять поля заголовка запроса, как требуется в Таблице 9.4.1-2.

Таблица 9.4.1-2. Поля заголовка запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

O

M

Приемлемые типы носителей для полезной нагрузки ответа

Accept-Charset

charset

O

M

Приемлемые наборы символов для полезной нагрузки ответа


См. также Раздел 8.4.

9.4.1.4 Полезная нагрузка запроса

Запрос не имеет полезной нагрузки.

9.4.2 Поведение

Успешный ответ должен содержать целевой ресурс в приемлемом типе носителя DICOM. См. Раздел 8.7.5.

9.4.2.1 Тип запроса

Если параметр запроса отсутствует; или если он присутствует со значением, отличным от "WADO", и исходный сервер не поддерживает это значение, то исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

9.4.2.2 UID исследования, серии и экземпляра

Если параметры запроса UID исследования, серии или экземпляра отсутствуют, исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

9.4.2.3 Анонимизация

Если параметр запроса поддерживается и присутствует, а также если верно любое из следующих условий:

  • количество значений параметра не равно одному, или

  • значение параметра не равно "yes"

то исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

Если целевой ресурс еще не был деидентифицирован, возвращаемый Экземпляр должен иметь новый SOP Instance UID.

Если исходный сервер не может или отказывается анонимизировать целевой ресурс, он может вернуть ответ об ошибке.

9.4.2.4 Transfer Syntax UID

Если этот параметр запроса поддерживается и присутствует со значением, которое является допустимым UID синтаксиса передачи, полезная нагрузка ответа должна быть закодирована в указанном синтаксисе передачи.

Если он отсутствует, полезная нагрузка ответа должна быть закодирована в синтаксисе передачи по умолчанию для веб-служб DICOM, который является Explicit VR Little Endian Uncompressed.

Если параметр запроса поддерживается и присутствует, а также если верно любое из следующих условий:

  • количество значений параметра не равно одному, или

  • значение параметра не является допустимым UID

то исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

Если значение параметра является допустимым UID синтаксиса передачи, но не поддерживается исходным сервером, ответ должен быть 406 (Not Acceptable) и может включать полезную нагрузку, содержащую список синтаксисов передачи, поддерживаемых исходным сервером.

Примечание

Исходный сервер может быть не в состоянии преобразовать все Экземпляры во все поддерживаемые им синтаксисы передачи.

9.4.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
Content-Location: url CRLF
*(header-field CRLF)
CRLF
[payload]

9.4.3.1 Коды состояния

Таблица 9.4.3-1 показывает некоторые общие коды состояния, соответствующие этой Транзакции. См. также Раздел 8.5 для дополнительных кодов состояния.

Таблица 9.4.3-1. Значение кода состояния

Статус

Код

Значение

Успех

200 (OK)

Экземпляр был успешно извлечен.

Ошибка

400 (Bad Request)

Возникла проблема с запросом.

404 (Not Found)

Ресурс, соответствующий UID в параметрах запроса, не найден.

410 (Gone)

Ресурс, соответствующий UID в параметрах запроса, ранее существовал, но больше не существует.


9.4.3.2 Поля заголовка ответа

Исходный сервер должен поддерживать поля заголовка, как требуется в Таблице 9.4.3-2.

Таблица 9.4.3-2. Поля заголовка ответа

Имя

Значение

Использование исходным сервером

Описание

Content-Type

dicom-media-type

M

Тип носителя полезной нагрузки

Content-Length

uint

M

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи

Transfer-Encoding

encoding

M

Должен присутствовать, если к полезной нагрузке применено кодирование передачи


См. Раздел 8.4.

9.4.3.3 Полезная нагрузка ответа

Успешный ответ должен содержать полезную нагрузку с целевым ресурсом в типе носителя application/dicom.

Полезная нагрузка ответа об ошибке может содержать отчет о состоянии, описывающий любые сбои, предупреждения или другую полезную информацию.

9.5 Транзакция Retrieve Rendered Instance

Эта Транзакция возвращает один Экземпляр в визуализированном типе носителя. См. Раздел 8.7.4.

Приемлемый тип носителя не должен быть application/dicom. Если это так, ответом должен быть 406 (Not Acceptable).

9.5.1 Запрос

Запрос должен иметь следующий синтаксис:

GET SP /?{requestType}&{study}&{series}&{instance}{&frameNumber}
         {&accept}
         {&charset}
         {&annotation}
         {&rows}
         {&columns}
         {&region}
         {&windowCenter}
         {&windowWidth}
         {&imageQuality}
         {&annotation}
         {&presentationSeriesUID}
         {&presentationUID}
SP HTTP/1.1 CRLF
Accept: 1#media-type CRLF
*(header-field CRLF)
CRLF

9.5.1.1 Целевой ресурс

Целевой ресурс должен быть Экземпляром составного SOP-класса, как определено в PS3.3.

9.5.1.2 Параметры запроса

Параметры запроса в этом разделе должны включаться в запрос только в том случае, если категория DICOM целевого ресурса — Single Frame, Multi-Frame или Video, как определено в Разделе 8.7.2.

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 9.5.1-1.

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 9.5.1-1.

Таблица 9.5.1-1. Параметры запроса

Ключ

Значения

Использование

Раздел

Пользовательский агент

Исходный сервер

contentType

rendered-media-type

O

M

Раздел 9.1.2.2.1

charset

charset

O

M

Раздел 9.1.2.2.2

frameNumber

uint

O

O

Раздел 9.5.1.2.1

imageAnnotation

"patient" / "technique"

O

O

Раздел 9.5.1.2.2

imageQuality

uint

O

O

Раздел 9.5.1.2.3

rows

uint

O

O

Раздел 9.5.1.2.4.1

columns

uint

O

O

Раздел 9.5.1.2.4.2

region

4decimal

O

O

Раздел 9.5.1.2.5

windowCenter

decimal

O

O

Раздел 9.5.1.2.6.1

windowWidth

decimal

O

O

Раздел 9.5.1.2.6.2

presentationSeriesUID

uid

O

O

Раздел 9.5.1.2.7.1

presentationUID

uid

O

O

Раздел 9.5.1.2.7.2


9.5.1.2.1 Номер кадра
frame-number = %s"frameNumber" "=" uint

Этот параметр указывает один кадр в экземпляре много кадров изображения, как определено в PS3.3, который должен быть возвращен. Его имя — "frameNumber", а значение должно быть положительным целым числом (т.е. начинается с 1, а не с 0).

9.5.1.2.2 Аннотирование изображения

См. Раздел 8.3.5.1.1.

9.5.1.2.3 Качество изображения

См. Раздел 8.3.5.1.2.

9.5.1.2.4 Область просмотра

Параметры запроса области просмотра указывают размеры области просмотра пользовательского агента. Параметры строк и столбцов области просмотра указывают высоту и ширину возвращаемого изображения в пикселях. Если присутствует хотя бы один параметр, оба должны присутствовать.

Синтаксис параметров области просмотра в этом Разделе имеет приоритет над описанным в Разделе 8.3.5.1.3; однако поведение масштабирования, описанное в этом разделе, по-прежнему применяется.

9.5.1.2.4.1 Строки области просмотра
rows = %s"rows" "=" uint

Этот параметр указывает количество строк пикселей в возвращаемом изображении. Он соответствует высоте в пикселях области просмотра пользовательского агента. Его имя — "rows", а значение должно быть положительным целым числом.

9.5.1.2.4.2 Столбцы области просмотра
columns = %s"columns" "=" uint

Этот параметр указывает количество столбцов пикселей в возвращаемом изображении. Он соответствует ширине в пикселях области просмотра пользовательского агента. Его имя — "columns", а значение должно быть положительным целым числом.

9.5.1.2.5 Область исходного изображения
region = %s"region" "=" xmin "," ymin "," xmax "," ymax
xmin = decimal
ymin = decimal
xmax = decimal
ymax = decimal

Этот параметр указывает прямоугольную область целевого ресурса. Его имя — "region", а значения должны быть разделенным запятыми списком четырех положительных десятичных чисел:

xmin

левый столбец области

ymin

верхняя строка области

xmax

правый столбец области

ymax

нижняя строка области

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

  • 0.0, 0.0 соответствует верхней строке и левому столбцу изображения

  • 1.0, 1.0 соответствует нижней строке и правому столбцу изображения

и

  • 0.0 <= xmin < xmax <= 1.0

  • 0.0 <= ymin < ymax <= 1.0

Этот параметр при использовании в сочетании с одним из параметров области просмотра позволяет пользовательскому агенту отобразить выбранную область исходного изображения в свою область просмотра.

9.5.1.2.6 Оконная обработка

Параметры оконной обработки (Центр окна и Ширина окна) являются необязательными; однако, если присутствует хотя бы один, оба должны присутствовать. Если присутствует только один, исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

Служба URI не поддерживает параметр запроса "function", который описан в Разделе 8.3.5.1.4.

Параметры оконной обработки и состояния представления не должны присутствовать в одном запросе. Если присутствуют оба, исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

Параметры оконной обработки не должны присутствовать, если contentType равен application/dicom; если присутствует хотя бы один, исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

9.5.1.2.6.1 Центр окна
window-center = %s"windowCenter" "=" decimal

Этот параметр указывает центр окна возвращаемого изображения, как определено в PS3.3. Его имя — "windowCenter", а значение должно быть десятичным числом.

9.5.1.2.6.2 Ширина окна
window-width = %s"windowWidth" "=" decimal

Этот параметр указывает ширину окна возвращаемого изображения, как определено в PS3.3. Его имя — "windowWidth", а значение должно быть десятичным числом.

9.5.1.2.7 Состояние представления

Приведенные ниже параметры указывают UID серии и SOP-экземпляра состояния представления. Они являются необязательными. Однако, если присутствует один, оба должны присутствовать.

Если присутствуют параметры состояния представления, то единственными другими необязательными параметрами, которые могут присутствовать, являются Аннотирование, Качество изображения, Область и Область просмотра.

9.5.1.2.7.1 Presentation Series UID
presentation-series = %s"presentationSeriesUID" "=" uid

Этот параметр указывает серию, содержащую экземпляр состояния представления, который будет использоваться для отрисовки изображения. Его имя должно быть "presentationSeriesUID", а значение должно быть Series Instance UID.

9.5.1.2.7.2 Presentation UID
presentation-instance = %s"presentationUID" "=" uid

Этот параметр идентифицирует экземпляр состояния представления, который используется для отрисовки изображения. Его имя — "presentationUID", а значение должно быть UID экземпляра состояния представления.

9.5.1.3 Поля заголовка запроса

Исходный сервер должен поддерживать поля заголовка, как требуется в Таблице 9.5.1-2.

Пользовательский агент должен предоставлять поля заголовка запроса, как требуется в Таблице 9.5.1-2.

Таблица 9.5.1-2. Поля заголовка запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Приемлемые типы носителей для полезной нагрузки ответа

Accept-Charset

charset

O

M

Список одного или нескольких наборов символов


Приемлемые типы носителей должны содержать только визуализированные типы носителей. См. Раздел 8.7.4.

9.5.1.4 Полезная нагрузка запроса

Запрос не имеет полезной нагрузки.

9.5.2 Поведение

Целевой ресурс должен быть отрисован, как указано в Разделе 8.3.5.1.

Успешный ответ должен содержать целевой ресурс в приемлемом визуализированном типе носителя. См. Раздел 8.7.4.

9.5.2.1 Номер кадра

Если этот параметр запроса поддерживается и присутствует в запросе, исходный сервер должен использовать указанный кадр в качестве целевого ресурса.

Однако, если верно любое из следующих условий:

  • целевой ресурс не является много кадровым изображением или видео,

  • количество значений параметра не равно одному, или

  • значение параметра не является положительным целым числом, меньшим или равным количеству кадров в экземпляре

исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

9.5.2.2 Оконная обработка

Если эти параметры запроса поддерживаются и присутствуют в запросе, исходный сервер должен использовать их, как описано в Разделе 8.3.5.1.4.

Однако, если верно любое из следующих условий:

  • присутствует только один из параметров,

  • любое из значений параметров не является десятичным числом, или

  • параметры запроса Presentation Series UID или Presentation UID присутствуют

то исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

9.5.2.3 Состояние представления

См. Раздел 8.3.5.1.6.

9.5.2.4 Область исходного изображения

Если этот параметр запроса поддерживается и присутствует:

  • Матрица изображения, соответствующая области, указанной Source Image Region, должна быть возвращена с размером, соответствующим указанным нормализованным значениям координат.

  • Если присутствует параметр Presentation UID, область должна быть выбрана после применения соответствующего состояния представления к изображениям.

Однако, если верно любое из следующих условий:

  • параметр запроса указывает некорректно определенную область,

  • присутствует больше или меньше четырех значений параметра, или

  • любой из параметров не соответствует требованиям, указанным в Разделе 9.5.1.2.5

исходный сервер должен вернуть ответ 400 (Bad Request) и может включить полезную нагрузку, содержащую соответствующее сообщение об ошибке.

9.5.2.5 Область просмотра

Параметры области просмотра применяются к области, указанной состоянием представления и/или областью исходного изображения, если они присутствуют; в противном случае параметры запроса области просмотра применяются к полному исходному изображению.

Если указаны оба параметра запроса rows и columns, то каждый должен интерпретироваться как максимум, и для возвращаемого изображения будет выбран размер в пределах этих ограничений с сохранением соотношения сторон выбранной области.

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

Если параметр запроса columns отсутствует, а параметр запроса rows присутствует, количество столбцов в возвращаемом изображении должно быть выбрано для сохранения соотношения сторон выбранной области.

Если оба параметра запроса отсутствуют, изображение (или выбранная область) возвращается с исходным размером (или с размером состояния представления, примененного к изображению), что дает один пиксель в возвращаемом изображении для каждого пикселя в исходном изображении.

9.5.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: rendered-media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF)
CRLF
[payload]

9.5.3.1 Коды состояния

Таблица 9.5.3-1 показывает некоторые общие коды состояния, соответствующие этой Транзакции. См. также Раздел 8.5 для дополнительных кодов состояния.

Таблица 9.5.3-1. Значение кода состояния

Статус

Код

Значение

Успех

200 (OK)

Все Экземпляры были успешно отрисованы и извлечены.

Ошибка

400 (Bad Request)

Возникла проблема с запросом.


9.5.3.2 Поля заголовка ответа

Исходный сервер должен поддерживать поля заголовка, как требуется в Таблице 9.5.3-2.

Таблица 9.5.3-2. Поля заголовка ответа

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

C

Должен присутствовать, если ответ содержит полезную нагрузку. См. Раздел 8.4.3.

Content-Length

uint

C

Должен присутствовать, если полезная нагрузка ответа не имеет кодирования передачи. См. Раздел 8.4.3.

Transfer-Encoding

encoding

C

Должен присутствовать, если полезная нагрузка ответа имеет кодирование передачи. См. Раздел 8.4.3.

Content-Location

url

C

Должен присутствовать, если ответ имеет полезную нагрузку, содержащую ресурс. См. Раздел 8.4.3.


См. также Раздел 8.4.

9.5.3.3 Полезная нагрузка ответа

Успешный ответ должен содержать одно визуализированное изображение, закодированное в выбранном типе носителя.

Полезная нагрузка ответа об ошибке может содержать отчет о состоянии, описывающий любые сбои, предупреждения или другую полезную информацию.

10 Studies Service and Resources

10.1 Обзор

Ресурс Studies позволяет пользовательскому агенту сохранять, извлекать, обновлять и выполнять поиск на исходном сервере DICOM-исследований (Studies), серий (Series) и экземпляров (Instances), а также их варианты /metadata, /rendered и /thumbnail; а также кадры (Frames) и большие данные (Bulk Data).

Транзакция Retrieve (извлечение) данного Сервиса также известна как WADO-RS. Транзакция Store (сохранение) данного Сервиса также известна как STOW-RS. Транзакция Search (поиск) данного Сервиса также известна как QIDO-RS. См. Раздел 10.3.

10.1.1 Описание ресурсов

Сервис Studies управляет набором ресурсов DICOM-исследований (Study). Каждое исследование организовано в иерархию подресурсов, соответствующих информационной модели DICOM. См. Раздел 7 «DICOM Model of the Real World» в PS3.3.

Существует три ресурса верхнего уровня:

/studies

ссылается на все исследования, управляемые сервисом.

/series

ссылается на все серии, управляемые сервисом.

/instances

ссылается на все экземпляры, управляемые сервисом.

Следующие переменные шаблона URI используются в определениях ресурсов в данном Разделе.

{study}

Study Instance UID исследования, управляемого сервисом Studies.

{series}

Series Instance UID серии, содержащейся в ресурсе исследования.

{instance}

SOP Instance UID экземпляра, содержащегося в ресурсе серии.

{frames}

разделённый запятыми список номеров кадров в порядке возрастания, содержащихся в экземпляре.

{bulkdataURI}

непрозрачный URI, ссылающийся на значение больших данных (Bulk Data Value).

Сервис Studies определяет следующие ресурсы:

Таблица 10.1-1. Ресурсы и описания

Ресурс

Описание

Studies Service

Базовый URI сервиса Studies.

All Studies

Ресурс All Studies ссылается на всю совокупность исследований, содержащихся в сервисе Studies.

Study

Ресурс Study ссылается на одно исследование.

Study Metadata

Ресурс Study Metadata ссылается на метаданные исследования.

Study Bulk Data

Ресурс Study Bulk Data ссылается на большие данные исследования.

Study Pixel Data

Ресурс Study Pixel Data ссылается на пиксельные данные исследования.

Rendered Study

Ресурс Rendered Study ссылается на альтернативное представление исследования в другом Media Type.

Rendered MPR Volume Study

Ресурс Rendered MPR Volume Study ссылается на мультипланарное реконструированное представление исследования.

Rendered 3D Volume Study

Ресурс Rendered 3D Volume Study ссылается на объёмное представление исследования.

Study Thumbnail

Ресурс Study Thumbnail ссылается на миниатюру исследования.

Study's Series

Ресурс Study's Series ссылается на совокупность всех серий, содержащихся в исследовании.

Study's Instances

Ресурс Study's Instances ссылается на совокупность всех экземпляров в одном исследовании.

All Series

Ресурс All Series ссылается на совокупность всех серий во всех исследованиях, содержащихся в сервисе Studies.

Series

Ресурс Series ссылается на одну серию.

Series Metadata

Ресурс Series Metadata содержит метаданные серии в исследовании.

Series Bulk Data

Ресурс Series Bulk Data ссылается на большие данные серии.

Series Pixel Data

Ресурс Series Pixel Data ссылается на пиксельные данные серии.

Rendered Series

Ресурс Rendered Series ссылается на альтернативное представление серии в другом Media Type.

Rendered MPR Volume Series

Ресурс Rendered MPR Volume Series ссылается на мультипланарное реконструированное представление серии.

Rendered 3D Volume Series

Ресурс Rendered 3D Volume Series ссылается на объёмное представление серии.

Series Thumbnail

Ресурс Series Thumbnail ссылается на миниатюру серии.

Series' Instances

Ресурс Series' Instances ссылается на совокупность всех экземпляров в одной серии.

All Instances

Ресурс All Instances ссылается на совокупность всех экземпляров во всех сериях во всех исследованиях, содержащихся в сервисе Studies.

Instance

Ресурс Instance ссылается на один экземпляр.

Instance Metadata

Ресурс Instance Metadata содержит метаданные экземпляра.

Instance Bulk Data

Ресурс Instance Bulk Data ссылается на большие данные экземпляра.

Instance Pixel Data

Ресурс Instance Pixel Data ссылается на пиксельные данные экземпляра.

Rendered Instance

Ресурс Rendered Instance ссылается на альтернативное представление экземпляра в другом Media Type.

Rendered MPR Volume Instance

Ресурс Rendered MPR Volume Instance ссылается на мультипланарное реконструированное представление экземпляра.

Rendered 3D Volume Instance

Ресурс Rendered 3D Volume Instance ссылается на объёмное представление экземпляра.

Instance Thumbnail

Ресурс Instance Thumbnail ссылается на миниатюру экземпляра.

Frames

Ресурс Frames ссылается на упорядоченную совокупность кадров в одном много кадровом экземпляре.

Rendered Frames

Ресурс Rendered Frames ссылается на альтернативное представление упорядоченной совокупности кадров одного много кадрового экземпляра в другом Media Type.

Rendered MPR Volume Frames

Ресурс Rendered MPR Volume Frames ссылается на мультипланарное реконструированное представление совокупности кадров.

Rendered 3D Volume Frames

Ресурс Rendered 3D Volume Frames ссылается на объёмное представление совокупности кадров.

Frame Thumbnail

Ресурс Frame Thumbnail ссылается на миниатюру кадров внутри экземпляра.

Bulk Data

Ресурс Bulk Data содержит значение больших данных (Bulk Data Value).


Примечание

Ресурса Frame Bulk Data или Frame Pixel Data не существует, поскольку они были бы эквивалентны ресурсу Frames.

10.1.2 Общие параметры запроса

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 10.1.2-1.

Пользовательский агент должен предоставлять параметры запроса в запросе, как требуется в Таблице 10.1.2-1.

Таблица 10.1.2-1. Общие параметры запроса

Имя

Значение

Использование

Раздел

Пользовательский агент

Исходный сервер

Accept

media-type

O

M

Раздел 8.3.3.1

Accept-Charset

charset

O

M

Раздел 8.3.3.2


10.1.3 Общие типы мультимедиа

Требования к типам мультимедиа (Media Type) исходного сервера определены в каждой транзакции данного Сервиса.

Исходный сервер должен поддерживать параметры Transfer Syntax и Character Set для типов мультимедиа. См. Раздел 8.7.3.5.2 и Раздел 8.7.3.5.3.

10.2 Соответствие

Исходный сервер, заявляющий о соответствии транзакции Retrieve сервиса Studies:

  • должен поддерживать транзакцию Retrieve Capabilities (см. Раздел 8.9.1);

  • должен поддерживать транзакцию Retrieve для всех обязательных ресурсов в Таблице 10.3-2.

Исходный сервер, заявляющий о соответствии транзакции Store сервиса Studies:

  • должен поддерживать транзакцию Retrieve Capabilities (см. Раздел 8.9.1);

  • должен поддерживать транзакцию Store для всех обязательных ресурсов в Таблице 10.3-2.

Исходный сервер, заявляющий о соответствии транзакции Search сервиса Studies:

  • должен поддерживать транзакцию Retrieve Capabilities (см. Раздел 8.9.1);

  • должен поддерживать транзакцию Search для всех обязательных ресурсов в Таблице 10.3-2.

Пользовательский агент может поддерживать любую из транзакций для любого из соответствующих ресурсов в Таблице 10.3-2.

10.3 Обзор транзакций

Сервис Studies состоит из транзакций, перечисленных в Таблице 10.3-1.

Таблица 10.3-1. Транзакции сервиса Studies

Имя транзакции

Метод

Полезная нагрузка

Описание

Запрос

Ответ при успехе

Retrieve

GET

N/A

Экземпляр(ы), метаданные, представления, пиксельные данные или большие данные

Извлечение одного или нескольких представлений DICOM-ресурсов.

Store

POST

Instance(s)

Модуль Store Instances Response

Сохраняет одно или несколько представлений DICOM-ресурсов, содержащихся в полезной нагрузке запроса, в расположении, на которое ссылается целевой ресурс.

Search

GET

N/A

Result(s)

Выполняет поиск в целевом ресурсе DICOM-объектов, соответствующих параметрам поиска, и возвращает список совпадений в допустимом типе мультимедиа.


В Таблице 10.3-2 целевые ресурсы, разрешённые для каждой транзакции, помечены символом M, если поддержка обязательна для исходного сервера, и O, если она необязательна. Пустая ячейка означает, что ресурс не разрешён в данной транзакции.

Таблица 10.3-2. Ресурсы по транзакциям

Ресурс

Retrieve

Store

Search

Studies Service

All Studies

M

M

Study

M

M

Study Metadata

M

Study Bulk Data

O

Study Pixel Data

O

Rendered Study

M

Rendered MPR Volume Study

O

Rendered 3D Volume Study

O

Study Thumbnail

O

Study's Series

M

Study's Instances

M

All Series

M

Series

M

Series Metadata

M

Series Bulk Data

O

Series Pixel Data

O

Series' Instances

M

Rendered Series

M

Rendered MPR Volume Series

O

Rendered 3D Volume Series

O

Series Thumbnail

O

All Instances

M

Instance

M

Instance Metadata

M

Instance Bulk Data

O

Instance Pixel Data

O

Rendered Instance

M

Rendered MPR Volume Instance

O

Rendered 3D Volume Instance

O

Instance Thumbnail

O

Frames

M

Rendered Frames

M

Rendered MPR Volume Frames

O

Rendered 3D Volume Frames

O

Frame Thumbnail

O

Bulk Data

M


10.4 Транзакция Retrieve

Эта транзакция использует метод GET для извлечения целевого ресурса. Тип мультимедиа в полезной нагрузке ответа будет зависеть от целевого URI и параметров запроса; например, экземпляры как application/dicom, метаданные как application/dicom+json или визуализированные экземпляры как изображения application/jpeg.

10.4.1 Запрос

Запрос должен иметь следующий синтаксис:

GET SP "/" {/resource} {?parameter*} SP version CRLF
Accept: 1#media-type CRLF
*(header-field CRLF)
CRLF

Где parameter — один из параметров запроса, определённых для целевого ресурса в Разделе 10.4.1.2.

10.4.1.1 Целевые ресурсы

10.4.1.1.1 Ресурсы экземпляров

Ресурсы экземпляров (определены в Таблице 10.4.1-1) используются для извлечения экземпляров.

Извлечение ресурса Series Instances извлекает все отдельные экземпляры, содержащиеся в серии. Извлечение ресурса Study Instances извлекает все отдельные экземпляры, содержащиеся во всех сериях исследования.

Таблица 10.4.1-1. Ресурсы экземпляров транзакции Retrieve

Ресурс

Шаблон URI

Study Instances

/studies/{study}

Series Instances

/studies/{study}/series/{series}

Instance

/studies/{study}/series/{series}/instances/{instance}

Примечание

Bulk Data и Frames ранее были указаны в этой таблице. Bulk Data рассматривается в Разделе 10.4.1.1.5, а данные Frames — в Разделе 10.4.1.1.6.

10.4.1.1.2 Ресурсы метаданных

Ресурсы метаданных (определены в Таблице 10.4.1-2) используются для извлечения метаданных экземпляров без извлечения больших данных.

Извлечение ресурса Series Metadata извлекает все метаданные для всех отдельных экземпляров, содержащихся в серии. Извлечение ресурса Study Metadata извлекает все метаданные для всех отдельных экземпляров, содержащихся во всех сериях.

Примечание

Реализация, заинтересованная только в метаданных уровня исследования или уровня серии, а не в метаданных уровня экземпляра для всех экземпляров, будет лучше обслуживаться использованием транзакции Search на ресурсах All Studies или Study's Series с сопоставлением по Study Instance UID и использованием &includefield для указания нужных метаданных (см. Раздел 10.6.1.2).

Таблица 10.4.1-2. Ресурсы метаданных транзакции Retrieve

Ресурс

Шаблон URI

Study Metadata

/studies/{study}/metadata

Series Metadata

/studies/{study}/series/{series}/metadata

Instance Metadata

/studies/{study}/series/{series}/instances/{instance}/metadata

Примечание

  1. Метаданные описывают соответствующий ресурс, а не какое-либо его представление, которое может быть извлечено отдельно, поэтому включают только набор данных DICOM (без больших данных) и, в частности, не включают никаких элементов данных файловой метаинформации группы 0002.

  2. Некоторые атрибуты набора данных DICOM могут зависеть от представления, а не от ресурса, особенно те, которые описывают пиксельные данные, поэтому они могут отличаться от закодированных в конкретном извлечённом представлении. Например, Photometric Interpretation (0028,0004) может различаться в зависимости от Transfer Syntax.

  3. Информация, связанная с Transfer Syntax UID (0002,0010) в файловой метаинформации, которая, как можно было бы ожидать, может представлять интерес для извлечения представления ресурса в определённом типе мультимедиа, может быть доступна с использованием Available Transfer Syntax UID (0008,3002) в транзакции Search.

10.4.1.1.3 Ресурсы визуализированных представлений

Ресурсы визуализированных представлений (определены в Таблице 10.4.1-3) используются для извлечения представлений DICOM-ресурса, визуализированных в виде соответствующих изображений, видео, текстовых документов или других представлений. Их основное назначение — предоставить пользовательским агентам простое средство отображения медицинских изображений и связанных документов без необходимости глубокого знания структур данных и кодирования DICOM.

Ресурс визуализированного представления предоставляет одно или несколько визуализированных представлений, т.е. в визуализированном типе мультимедиа (Rendered Media Type), своего родительского DICOM-ресурса.

Таблица 10.4.1-3. Ресурсы визуализированных представлений транзакции Retrieve

Ресурс

Шаблон URI

Rendered Study

/studies/{study}/rendered

Rendered Series

/studies/{study}/series/{series}/rendered

Rendered Instance

/studies/{study}/series/{series}/instances/{instance}/rendered

Rendered Frames

/studies/{study}/series/{series}/instances/{instance}/frames/{frames}/rendered

10.4.1.1.4 Ресурсы миниатюр

Ресурсы миниатюр (определены в Таблице 10.4.1-4) используются для извлечения визуализированного представления, подходящего для представления родительского DICOM-ресурса.

Таблица 10.4.1-4. Ресурсы миниатюр транзакции Retrieve

Ресурс

Шаблон URI

Study Thumbnail

/studies/{study}/thumbnail

Series Thumbnail

/studies/{study}/series/{series}/thumbnail

Instance Thumbnail

/studies/{study}/series/{series}/instances/{instance}/thumbnail

Frame Thumbnail

/studies/{study}/series/{series}/instances/{instance}/frames/{frames}/thumbnail

Если исходный сервер поддерживает любой из ресурсов миниатюр, он должен поддерживать их все.

10.4.1.1.5 Ресурсы больших данных

Ресурсы больших данных (определены в Таблице 10.4.1.5-1) используются для извлечения элементов данных (обычно содержащих большие объёмы данных, такие как пиксельные данные), извлечённых из DICOM-экземпляров.

Таблица 10.4.1.5-1. Ресурсы больших данных транзакции Retrieve

Ресурс

Шаблон URI

Study Bulk Data

/studies/{study}/bulkdata

Series Bulk Data

/studies/{study}/series/{series}/bulkdata

Instance Bulk Data

/studies/{study}/series/{series}/instances/{instance}/bulkdata

Bulk Data

{bulkdataURI}

Примечание

  1. Ресурсы больших данных, содержащие пиксельные данные, могут быть эквивалентно извлечены, как описано в Разделе 10.4.1.1.6.

  2. См. Раздел 10.4.1.1.6 для шаблонов URI больших данных, состоящих из пиксельных данных кадров.

10.4.1.1.6 Ресурсы пиксельных данных

Ресурсы пиксельных данных (определены в Таблице 10.4.1.6-1) используются для извлечения элементов данных, содержащих пиксельные данные верхнего уровня, из DICOM-экземпляров.

Пиксельные данные являются подмножеством больших данных. Ресурсы пиксельных данных предоставляют удобный метод доступа к этому конкретному подмножеству.

Таблица 10.4.1.6-1. Ресурсы пиксельных данных транзакции Retrieve

Ресурс

Шаблон URI

Study Pixel Data

/studies/{study}/pixeldata

Series Pixel Data

/studies/{study}/series/{series}/pixeldata

Instance Pixel Data

/studies/{study}/series/{series}/instances/{instance}/pixeldata

Frame Pixel Data

/studies/{study}/series/{series}/instances/{instance}/frames/{frames}

Примечание

  1. Пиксельные данные кадров по своей природе являются пиксельными данными, поэтому подресурс /pixeldata не требуется в шаблоне URI.

  2. Ресурс Frame Pixel Data изначально был указан в Таблице 10.4.1-1.

10.4.1.1.7 Ресурсы визуализированных MPR-объёмов

Ресурсы визуализированных MPR-объёмов (определены в Таблице 10.4.1.7-1) используются для извлечения представлений DICOM-ресурса после выполнения мультипланарной переформатизации. Переформатизация представляет срез объёма данных срезов как евклидову плоскость в соответствии с принципами, установленными для Planar MPR Volumetric Presentation States (см. Раздел FF.2.1.1 в PS3.4). Визуализированные изображения возвращаются как допустимые типы мультимедиа в полезной нагрузке ответа.

Примечание

Эти ресурсы обеспечивают единообразие клиентских запросов и достаточно согласованные результаты визуализации. Из-за неотъемлемых различий в реализациях алгоритмов идентичное совпадение результатов визуализации между различными реализациями не гарантируется.

Целевой ресурс должен быть одним из следующих:

  • экземпляр Planar MPR Volumetric Presentation State, или

  • совокупность экземпляров изображений или кадров в экземплярах изображений, которые соответствуют требованиям Volume Input Requirements для ресурсов визуализированных MPR-объёмов (см. Раздел C.11.23.1 в PS3.3)

  • совокупность экземпляров изображений или кадров в экземплярах изображений, уточнённая с использованием одного из параметров запроса, определённых в Разделе 8.3.5.3, для удовлетворения требований Volume Input Requirements для ресурсов визуализированных MPR-объёмов (см. Раздел C.11.23.1 в PS3.3).

Таблица 10.4.1.7-1. Ресурсы визуализированных MPR-объёмов транзакции Retrieve

Ресурс

Шаблон URI

Rendered MPR Volume Study

/studies/{study}/renderedmpr

Rendered MPR Volume Series

/studies/{study}/series/{series}/renderedmpr

Rendered MPR Volume Instance

/studies/{study}/series/{series}/instances/{instance}/renderedmpr

Rendered MPR Volume Frames

/studies/{study}/series/{series}/instances/{instance}/frames/{frames}/renderedmpr

Примечание

Шаблон URI для Rendered MPR Volume Instance может применяться к визуализируемому экземпляру много кадрового изображения или к экземпляру Volume Rendering Volumetric Presentation State.

10.4.1.1.8 Ресурсы визуализированных 3D-объёмов

Ресурсы визуализированных 3D-объёмов (определены в Таблице 10.4.1.8-1) используются для извлечения представлений DICOM-ресурса, визуализированных после выполнения 3D-визуализации в соответствии с принципами, установленными для Volume Rendering Volumetric Presentation States (см. Раздел FF.2.1.2 в PS3.4), путём применения пороговой обработки, трассировки лучей, объёмной визуализации или других методов для отображения объёма данных срезов в виде трёхмерной проекции. Визуализированные изображения возвращаются как допустимые типы мультимедиа в полезной нагрузке ответа.

Примечание

Эти ресурсы обеспечивают единообразие клиентских запросов и достаточно согласованные результаты визуализации. Из-за неотъемлемых различий в реализациях алгоритмов идентичное совпадение результатов визуализации между различными реализациями не гарантируется.

Целевой ресурс должен быть одним из следующих:

  • экземпляр Planar MPR Volumetric Presentation State, или

  • совокупность экземпляров изображений или кадров в экземплярах изображений, которые соответствуют требованиям Volume Input Requirements для ресурсов визуализированных 3D-объёмов (см. Раздел C.11.23.1 в PS3.3)

  • совокупность экземпляров изображений или кадров в экземплярах изображений, уточнённая с использованием одного из параметров запроса, определённых в Разделе 8.3.5.3, для удовлетворения требований Volume Input Requirements для ресурсов визуализированных 3D-объёмов (см. Раздел C.11.23.1 в PS3.3).

Таблица 10.4.1.8-1. Ресурсы визуализированных 3D-объёмов транзакции Retrieve

Ресурс

Шаблон URI

Rendered 3D Volume Study

/studies/{study}/series/rendered3d

Rendered 3D Volume Series

/studies/{study}/series/{series}/rendered3d

Rendered 3D Volume Instance

/studies/{study}/series/{series}/instances/{instance}/rendered3d

Rendered 3D Volume Frames

/studies/{study}/series/{series}/instances/{instance}/frames/{frames}/rendered3d

Примечание

Шаблон URI для Rendered 3D Volume Instance может применяться к визуализируемому экземпляру много кадрового изображения или к экземпляру Planar MPR Volumetric Presentation State.

10.4.1.2 Параметры запроса

Для типов ресурсов, перечисленных в столбце "Resources", исходный сервер должен поддерживать соответствующие параметры запроса, как требуется в Таблице 10.4.1-5.

Для каждого поддерживаемого типа ресурса, перечисленного в столбце "Resources", пользовательский агент должен предоставлять параметры запроса в соответствующем запросе, как указано в Таблице 10.4.1-5.

Таблица 10.4.1-5. Параметры запроса по ресурсам

Ключ

Ресурсы

Использование

Раздел

Пользовательский агент

Исходный сервер

accept

Все ресурсы

O

M

Раздел 8.3.3.1

charset

Ресурсы метаданных

O

M

Раздел 8.3.3.2

annotation

Ресурсы визуализированных представлений

O

M

Раздел 8.3.5.1.1

Ресурсы визуализированных MPR-объёмов

O

O

Ресурсы визуализированных 3D-объёмов

O

O

quality

Ресурсы визуализированных представлений

O

M

Раздел 8.3.5.1.2

Ресурсы визуализированных MPR-объёмов

O

O

Ресурсы визуализированных 3D-объёмов

O

O

viewport

Ресурсы визуализированных представлений

O

M

Раздел 8.3.5.1.3

Ресурсы визуализированных MPR-объёмов

O

O

Ресурсы визуализированных 3D-объёмов

O

O

Ресурсы миниатюр

O

O

window

Ресурсы визуализированных представлений

O

M

Раздел 8.3.5.1.4

Ресурсы визуализированных MPR-объёмов

O

O

Ресурсы визуализированных 3D-объёмов

O

O

iccprofile

Ресурсы визуализированных представлений

O

O

Раздел 8.3.5.1.5

Ресурсы визуализированных MPR-объёмов

O

O

Ресурсы визуализированных 3D-объёмов

O

O

volumeinputreference

Ресурсы визуализированных MPR-объёмов

O

O

Раздел 8.3.5.3.1

Ресурсы визуализированных 3D-объёмов

O

O

match

Ресурсы визуализированных MPR-объёмов

O

O

Раздел 8.3.5.3.2

Ресурсы визуализированных 3D-объёмов

O

O

renderingmethod

Ресурсы визуализированных MPR-объёмов

O

M

Раздел 8.3.5.3.3

Ресурсы визуализированных 3D-объёмов

O

M

orientation

Ресурсы визуализированных MPR-объёмов

O

O

Раздел 8.3.5.3.4

Ресурсы визуализированных 3D-объёмов

O

O

viewpointposition

Ресурсы визуализированных MPR-объёмов

O

M

Раздел 8.3.5.3.5

Ресурсы визуализированных 3D-объёмов

O

M

viewpointlookat

Ресурсы визуализированных MPR-объёмов

O

M

Раздел 8.3.5.3.6

Ресурсы визуализированных 3D-объёмов

O

M

viewpointup

Ресурсы визуализированных MPR-объёмов

O

M

Раздел 8.3.5.3.7

Ресурсы визуализированных 3D-объёмов

O

M

mprslab

Ресурсы визуализированных MPR-объёмов

O

M

Раздел 8.3.5.3.8

swivelrange

Ресурсы визуализированных 3D-объёмов

O

O

Раздел 8.3.5.3.9

volumetriccurvepoint

Ресурсы визуализированных MPR-объёмов

O

O

Раздел 8.3.5.3.10

animationstepsize

Ресурсы визуализированных MPR-объёмов

O

O

Раздел 8.3.5.3.11

Ресурсы визуализированных 3D-объёмов

O

O

animationrate

Ресурсы визуализированных MPR-объёмов

O

O

Раздел 8.3.5.3.12

Ресурсы визуализированных 3D-объёмов

O

O

renderedvolumetricmetadata

Ресурсы визуализированных MPR-объёмов

O

M

Раздел 8.3.5.3.13

Ресурсы визуализированных 3D-объёмов

O

M


10.4.1.3 Поля заголовка запроса

Исходный сервер должен поддерживать поля заголовка запроса, как требуется в Таблице 10.4.1-6.

Пользовательский агент должен предоставлять поля заголовка запроса, как требуется в Таблице 10.4.1-6.

Таблица 10.4.1-6. Поля заголовка запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Допустимые типы мультимедиа полезной нагрузки ответа

См. Раздел 10.4.4 для типов мультимедиа, соответствующих каждому набору целевых ресурсов, определённых в Разделе 10.4.1.1.

Accept-Charset

charset

O

M

Допустимые кодировки символов полезной нагрузки ответа


См. также Раздел 8.4.

10.4.1.4 Полезная нагрузка запроса

Запрос не имеет полезной нагрузки.

10.4.2 Поведение

Исходный сервер должен подготовить представление(я) целевого ресурса в выбранном типе мультимедиа. См. Раздел 8.7.4.

10.4.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF)
CRLF
payload

10.4.3.1 Коды состояния

Таблица 10.4.3-1 показывает некоторые общие коды состояния, соответствующие этой транзакции. См. также Раздел 8.5 для дополнительных кодов состояния.

Таблица 10.4.3-1. Значение кодов состояния

Статус

Код

Значение

Успех

200 (OK)

Полезная нагрузка ответа содержит представления для всех целевых ресурсов

Сбой

400 (Bad Request)

Исходный сервер не может обработать запрос из-за ошибок в заголовках или параметрах запроса.

404 (Not Found)

Целевой ресурс не существует

406 (Not Acceptable)

Исходный сервер не поддерживает ни один из допустимых типов мультимедиа

410 (Gone)

Целевой ресурс удалён

413 (Payload Too Large)

Целевой ресурс слишком велик для возврата исходным сервером.


10.4.3.2 Поля заголовка ответа

Исходный сервер должен предоставлять поля заголовка, как требуется Таблицей 10.4.3-2.

Таблица 10.4.3-2. Поля заголовка ответа

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

C

Тип мультимедиа полезной нагрузки.

Должен присутствовать, если ответ имеет полезную нагрузку.


См. также Раздел 8.4.

10.4.3.3 Полезная нагрузка ответа

Успешный ответ должен иметь полезную нагрузку, содержащую одно или несколько представлений целевого ресурса в выбранном типе мультимедиа (см. Раздел 8.7.8.1 и Раздел 10.4.4). Полезная нагрузка должна соответствовать Разделу 8.6.

Полезная нагрузка ответа о сбое должна содержать отчёт о состоянии, описывающий любые сбои, предупреждения или другую полезную информацию.

10.4.3.3.1 Полезная нагрузка ресурса экземпляра

Полезная нагрузка для ресурса экземпляра (см. Раздел 10.4.1.1.1) должна содержать соответствующие экземпляры.

10.4.3.3.2 Полезная нагрузка ресурса метаданных

Полезная нагрузка для ресурса метаданных (см. Раздел 10.4.1.1.2) должна содержать все атрибуты в ресурсе. Для элементов данных с представлением значения (VR) DS, FL, FD, IS, LT, OB, OD, OF, OL, OV, OW, SL, SS, ST, SV, UC, UL, UN, US, UT и UV исходному серверу разрешается заменять поле значения элемента данных на Bulk Data URI. Пользовательский агент может использовать Bulk Data URI для извлечения больших данных в их исходной форме.

10.4.3.3.3 Полезная нагрузка ресурса визуализированного представления

Полезная нагрузка для ресурса визуализированного представления (см. Раздел 10.4.1.1.3) должна содержать визуализацию всех действительных экземпляров составных SOP-классов, для которых заявлено соответствие, например, исходный сервер должен быть способен визуализировать все Photometric Interpretation, определённые в IOD для этого SOP-класса. Тип содержимого полезной нагрузки ответа должен быть визуализированным типом мультимедиа (Rendered Media Type), как указано в Разделе 8.3.5.1.

10.4.3.3.4 Полезная нагрузка ресурса миниатюры

Полезная нагрузка для ресурса миниатюры (см. Раздел 10.4.1.1.4) должна содержать значимое представление в визуализированном типе мультимедиа. Исходный сервер определяет, что составляет значимое представление. Миниатюра не должна содержать никакой идентифицирующей информации о пациенте. Должно быть возвращено только одно изображение.

Исходный сервер может вернуть ответ перенаправления (HTTP-код состояния 302) на ресурс визуализированного представления вместо возврата визуализированного изображения.

Нет требования, чтобы представление было связано с любой Icon Image Sequence (0088,0200), закодированной в экземплярах или возвращённой в ответах на запросы.

10.4.3.3.5 Полезная нагрузка ресурса больших данных

Полезная нагрузка для ресурса больших данных (см. Раздел 10.4.1.1.5) должна содержать все большие данные для ресурса. Если ресурс представляет собой единый Bulk Data URI, полезная нагрузка будет содержать единственный соответствующий элемент. Если ресурс представляет собой Study, Series или Instance Bulk Data, полезная нагрузка будет содержать все большие данные соответствующего экземпляра(ов). Большие данные в составном (multipart) ответе должны иметь поле заголовка Content-Location, соответствующее URI, содержащемуся в соответствующем элементе метаданных.

10.4.3.3.6 Полезная нагрузка ресурса пиксельных данных

Полезная нагрузка для ресурса пиксельных данных (см. Раздел 10.4.1.1.6) должна содержать все пиксельные данные ресурса. Пиксельные данные в составном (multipart) ответе должны иметь поле заголовка Content-Location, соответствующее URI, содержащемуся в соответствующем элементе метаданных. Пиксельные данные — это содержимое элемента данных Pixel Data (7FE0,0010), Float Pixel Data (7FE0,0008) или Double Float Pixel (7FE0,0009) в наборе данных верхнего уровня, как определено в PS3.5, соответствующего экземпляра(ов).

Примечание

Это не включает пиксельные данные, вложенные в Icon Image Sequence или приватный элемент данных.

10.4.3.3.7 Полезная нагрузка ресурса визуализированного объёма

Полезная нагрузка для ресурса визуализированного 3D-объёма (см. Раздел 10.4.1.1.8) или ресурса визуализированного MPR-объёма (см. Раздел 10.4.1.1.7) должна содержать:

  • 2D-представление визуализированного объёма в соответствии с параметрами алгоритма отображения, или

  • Rendered Volume Resources Response Module (см. Приложение K), соответствующий запросу. См. Раздел B.32 для примера.

Полезная нагрузка ответа о сбое может содержать отчёт о состоянии, описывающий любые сбои, предупреждения или другую полезную информацию.

10.4.4 Типы мультимедиа

Исходный сервер должен поддерживать типы мультимедиа, указанные как тип по умолчанию или обязательные в Таблице 10.4.4-1.

Тип мультимедиа application/dicom (без префикса "multipart/related; type="" ) определяет единый закодированный объект и должен использоваться только для отдельных ресурсов экземпляров.

Исходный сервер должен поддерживать параметры Transfer Syntax и Character Set для типов мультимедиа. См. Раздел 8.7.3.5.2 и Раздел 8.7.3.5.3.

Дополнительные сведения о каждом целевом ресурсе см. в Разделе 10.4.1.1.

Дополнительные сведения о каждом типе мультимедиа и связанных синтаксисах передачи см. в Разделе в столбце "Ссылка на тип мультимедиа".

Таблица 10.4.4-1. Типы мультимедиа по умолчанию, обязательные и необязательные

Целевой ресурс

Тип мультимедиа

Использование

Раздел

Ресурсы экземпляров

multipart/related; type="application/dicom"

По умолчанию

Раздел 8.7.3.1

multipart/related; type="application/octet-stream"

(См. примечание2)

Обязательный

Раздел 8.7.3.3.1

application/dicom

(См. примечание3)

Необязательный

Раздел 8.7.3.1

Типы мультимедиа сжатых больших данных

(См. примечание3)

Необязательный

Раздел 8.7.3.3.2

Ресурсы метаданных

application/dicom+json

(См. примечание1)

По умолчанию

Раздел 8.7.3.2

multipart/related; type="application/dicom+xml"

Обязательный

Раздел 8.7.3.2

Ресурсы больших данных

и

Ресурсы пиксельных данных

multipart/related; type="application/octet-stream"

Обязательный

Раздел 8.7.3.3.1

application/octet-stream

(См. примечание3)

Необязательный

Раздел 8.7.3.3.1

multipart/related; type= a Compressed Bulk Data Media Type

Необязательный

Раздел 8.7.3.3.2

Типы мультимедиа сжатых больших данных

(См. примечание3)

Необязательный

Раздел 8.7.3.3.2

Ресурсы визуализированных представлений

multipart/related; type= a Compressed Bulk Data Media Type

Необязательный

Раздел 8.7.4

Типы мультимедиа сжатых больших данных

(См. примечание3)

Необязательный

Раздел 8.7.3.3.2

Ресурсы миниатюр

image/jpeg

По умолчанию

Section 8.7.4

Другие типы мультимедиа визуализированных представлений

Необязательный

Section 8.7.4


Примечание

  1. The Media Type for application/dicom+json does not include “multipart/related” because, per Section F.2.1, JSON Metadata for multiple Instances is encoded in a single top-level array of JSON objects, rather than multiple parts with top-level arrays containing single JSON objects. This is also true when the Media Type compresses the JSON in a zip container.

  2. Requesting Instance Resources (Study, Series, или Instance) with a Media Type of multipart/related; type="application/octet-stream" is retained for historical reasons. Such a request is equivalent to requesting the corresponding Bulk Data Resource (Study, Series, Instance).

  3. Использование одночастичного типа мультимедиа разрешено для ресурсов, являющихся одиночным элементом ответа. Ожидается, что исходный сервер будет игнорировать одночастичные типы мультимедиа для других ресурсов, и если это означает, что не остаётся типов мультимедиа, он вернёт ошибку 406 (Not Acceptable), согласно Section 8.7.8.1. Например, если пользовательский агент запрашивает ресурс визуализированного исследования и указывает только одночастичные типы мультимедиа в заголовке Accept, он должен ожидать ошибку, даже если исследование случайно содержит только один однокадровый экземпляр.

10.4.5 Conformance Statement

Создатель реализации должен задокументировать в своём Заявлении о соответствии:

  • роль или роли исходного сервера и/или пользовательского агента;

  • ресурсы, поддерживаемые для данной транзакции;

  • типы мультимедиа, поддерживаемые для данной транзакции;

  • поддерживаемые необязательные параметры запроса;

  • поддерживаемые необязательные заголовочные поля.

Создатель реализации должен также задокументировать:

  • Поддерживаемые составные классы SOP, включая:

    • поддерживаемые классы SOP хранения изображений;

    • классы SOP хранения изображений, поддерживаемые визуализированными состояниями представления.

  • Если миниатюры поддерживаются:

    • Высокоуровневое описание метода, используемого для отрисовки миниатюр для исследования, серии или экземпляра.

      Примечание

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

    • Минимальный и максимальный размеры миниатюр.

    • Наборы символов, поддерживаемые для ресурсов миниатюр (если отличные от UTF-8).

10.5 Store Transaction

Эта транзакция использует метод POST для сохранения представлений исследований, серий и экземпляров, содержащихся в полезной нагрузке запроса.

Транзакция сохранения поддерживает только DICOM-ресурсы. Ресурс может быть предоставлен как отдельный экземпляр или как отдельные метаданные и большие данные.

10.5.1 Request

Запрос должен иметь следующий синтаксис:

POST SP "/" {/resource} SP version CRLF
Accept: 1#media-type CRLF
Content-Type: dicom-media-type CRLF
(Content-Length: uint / Transfer-Encoding: encoding) CRLF
*(header-field CRLF)
CRLF
payload

10.5.1.1 Target Resources

10.5.1.1.1 DICOM Resources

Table 10.5.1-1 определяет ресурсы, используемые для сохранения экземпляров.

Table 10.5.1-1. Store Transaction DICOM Resources

Ресурс

Шаблон URI

Описание

Studies

/studies

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

Study

/studies/{study}

Сохраняет набор представлений, принадлежащих одному исследованию, т.е. каждое представление должно иметь один и тот же UID экземпляра исследования.


10.5.1.2 Query Parameters

Транзакция сохранения не имеет параметров запроса.

10.5.1.3 Request Header Fields

Исходный сервер должен поддерживать заголовочные поля, как требуется в Table 10.5.1-2.

Пользовательский агент должен предоставлять в запросе заголовочные поля, как требуется в Table 10.5.1-2.

Table 10.5.1-2. Request Header Fields

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Content-Type

media-type

M

M

DICOM-тип мультимедиа полезной нагрузки запроса

Должен присутствовать, если запрос имеет полезную нагрузку

Content-Length

uint

C

M

Должен присутствовать, если кодирование передачи не было применено к полезной нагрузке

Transfer-Encoding

encoding

C

M

Должен присутствовать, если кодирование передачи было применено к полезной нагрузке


См. также Раздел 8.4.

10.5.1.4 Request Payload

Полезная нагрузка запроса должна присутствовать и содержать одно или несколько представлений, согласованных с заголовочным полем Content-Type. Представления должны соответствовать типам мультимедиа, описанным в Section 8.7.3 Наборы типов мультимедиа DICOM. Полезная нагрузка должна соответствовать Section 8.6 Полезные нагрузки.

Полезная нагрузка может содержать представления экземпляров SOP из более чем одного исследования, если UID экземпляра исследования не указан в целевом URI.

Полезная нагрузка запроса должна состоять из:

  • PS3.10 представлений экземпляров SOP, или

  • Представлений метаданных и больших данных экземпляров SOP.

PS3.10 представления экземпляров SOP должны быть закодированы по одному представлению на каждый DICOM-экземпляр.

Представления метаданных и больших данных экземпляров SOP должны быть закодированы следующим образом (см. Figure 8.6-1 Mapping between IOD and HTTP message parts):

  • XML-представления метаданных должны быть закодированы, как описано в Native DICOM Model, определённой в PS3.19 с одним представлением на каждый XML-объект.

  • JSON-представления метаданных должны быть закодированы как массив объектов DICOM JSON Model, определённых в Приложение F в одном представлении.

  • Представления метаданных могут опускать атрибуты макроса описания пикселей изображения для ссылочных пиксельных данных, представление которых закодировано в одном из типов мультимедиа, указанных в Table 10.5.2-1.

  • Метаданные должны включать только набор DICOM-данных (без больших данных) и, в частности, не должны содержать элементы данных метоинформации файла группы 0002. Исходный сервер должен создать соответствующую метаинформацию файла в зависимости от типа мультимедиа предоставленных сжатых пиксельных данных, если он сохраняет набор данных во внутренней памяти в файле PS3.10 File.

  • Несжатые большие данные (включая пиксельные данные, за исключением элемента Encapsulated Document (0042,0011)) должны быть закодированы как application/octet-stream с одним представлением на каждый элемент больших данных.

  • Сжатые пиксельные данные для однокадрового изображения должны быть закодированы как одно сжатое представление больших данных.

  • Сжатые пиксельные данные для многокадрового изображения должны быть закодированы как несколько сжатых представлений больших данных однокадрового изображения.

  • Сжатые пиксельные данные для видео должны быть закодированы как одно сжатое представление больших данных.

  • Элемент больших данных Encapsulated Document (0042,0011) должен быть закодирован с использованием типа мультимедиа из атрибута MIME Type of the Encapsulated Document (0042,0012) с одним представлением на каждый документ.

10.5.2 Behavior

Исходный сервер сохраняет экземпляры из представлений, содержащихся в полезной нагрузке запроса.

Сохранённые экземпляры должны полностью соответствовать требованиям IOD и кодирования PS3.3 and PS3.5 соответственно.

Эта транзакция сохраняет один или несколько новых экземпляров и добавляет их в новые или существующие серии и исследования.

При создании ресурсов из представлений исходный сервер может корректировать или заменять значения элементов данных. Например, имя пациента, ID пациента и номер заявки могут быть скорректированы при импорте носителей из внешнего учреждения, сверке экземпляров с главным индексом пациентов или сверке с заказом на процедуру визуализации. Исходный сервер может также исправлять некорректные значения, такие как имя пациента или ID пациента; например, из-за выбора неверного элемента списка работ или ошибки ввода оператора.

Если какой-либо атрибут был скорректирован или исправлен, Original Attribute Sequence (0400,0561) должна быть включена в DICOM-объект, который сохраняется, и может быть включена в модуль ответа сохранённых экземпляров (см. Приложение I) в ответе.

Примечание

Дополнительную информацию о заполнении Original Attribute Sequence см. Раздел C.12.1 “SOP Common Module” in PS3.3.

Исходный сервер должен инкапсулировать или преобразовать любые сжатые пиксельные данные, полученные как большие данные, в соответствующий DICOM-синтаксис передачи, как определено в Table 10.5.2-1.

Если сообщение запроса содержит сжатые большие данные с Content Type, который является одним из типов мультимедиа, указанных в Table 10.5.2-1, запрос может опускать атрибуты макроса описания пикселей изображения, и исходный сервер выведет их из сжатого потока октетов. Некоторые типы мультимедиа не соответствуют напрямую DICOM-синтаксису передачи, и исходный сервер преобразует полученный поток битов в несжатый или сжатый без потерь (обратимо) синтаксис передачи.

Примечание

  1. Это позволяет пользовательскому агенту использовать потребительские типы мультимедиа для кодирования пиксельных данных, даже если он может не иметь:

    • пиксельных данных в форме, напрямую соответствующей DICOM-синтаксису передачи без потерь (обратимому), или

    • API для доступа к информации, необходимой для заполнения макроса описания пикселей изображения.

  2. Если предоставленный сжатый поток битов имеет формат без потерь (обратимый), цель состоит в том, чтобы обеспечить извлечение распакованных пикселей с полной точностью, а не в том формате, в котором он был отправлен.

Исходный сервер должен инкапсулировать или преобразовать любые сжатые пиксельные данные, полученные как большие данные, в соответствующий DICOM-синтаксис передачи, как определено в Table 10.5.2-1.

Если предоставленный сжатый поток октетов имеет формат с потерями (необратимый), будет существовать соответствующий DICOM-синтаксис передачи, и не ожидается, что исходный сервер будет повторно сжимать его, вызывая дополнительные потери. Table 10.5.2-1 содержит список типов мультимедиа, содержащих сжатые пиксельные данные, из которых исходный сервер должен иметь возможность вывести значения атрибутов макроса описания пиксельных данных изображения.

Требования указаны в Table 10.5.2-1 следующим образом:

Преобразование

DICOM-синтаксис передачи не существует; должен быть преобразован исходным сервером в несжатый или сжатый без потерь синтаксис передачи (выбор которого остаётся на усмотрение исходного сервера).

Без изменений

Должен быть инкапсулирован в соответствующий DICOM-синтаксис передачи без дальнейшего сжатия с потерями.

Table 10.5.2-1. Media Type Transformation to Transfer Syntaxes

Тип мультимедиа

Требование

image/gif

Преобразование

image/jp2

Без изменений

image/jpeg

Без изменений

image/jpx

Без изменений

image/jph

Без изменений

image/jxl

Без изменений

image/png

Преобразование

video/mp4

Без изменений

video/mpeg

Без изменений

video/H265

Без изменений


Примечание

  1. В случае пиксельных данных, предоставленных как image/gif или image/png, исходный сервер может преобразовать цветовое представление из индексированного цвета в истинный цвет (RGB) при необходимости соответствия любым ограничениям фотометрической интерпретации, указанным IOD (т.е. если PALETTE COLOR не разрешён); такое преобразование считается выполняемым без потерь.

  2. Если количество битов на канал файла image/png не поддерживается IOD, преобразование без потерь не может быть выполнено.

  3. Анимированный image/gif будет преобразован в многокадровое изображение путём преобразования дельт кадров в полностью декодированные кадры; image/png не поддерживает анимацию, и Multiple-image Network Graphics (MNG) не включён в Table 10.5.2-1.

  4. Любая информация о прозрачности, присутствующая в файле image/gif или image/png, будет отброшена, поскольку DICOM не поддерживает концепцию прозрачности. Фактическое значение пикселя, используемое для замены прозрачных пикселей (например, чёрный или белый), остаётся на усмотрение реализации, но если используемое значение не встречается в другом месте изображения, может быть полезно записать его в Pixel Padding Value (0028,0120).

  5. Если альфа-канал предоставлен в файле image/png, альфа-канал будет отброшен (т.е. будет считаться состоящим из всех непрозрачных значений, в соответствии с политикой отбрасывания любой информации о прозрачности).

  6. В случае пиксельных данных, содержащих один канал при отсутствии метаданных, описывающих интерпретацию значений пикселей, исходный сервер может предположить, что фотометрическая интерпретация — MONOCHROME2 (ноль интерпретируется как чёрный).

10.5.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[(Content-Length: uint CRLF / Transfer-Encoding: encoding CRLF) ]
*(header-field CRLF)
CRLF
payload

Ответ должен содержать соответствующий код состояния.

Если какой-либо элемент был скорректирован или исправлен, Original Attribute Sequence (0400,0561) должна быть включена в сохраняемый DICOM-объект и может быть включена в модуль ответа сохранённых экземпляров (см. Приложение I) в ответе.

10.5.3.1 Status Codes

Table 10.5.3-1 shows some common status codes corresponding to this Transaction. См. также Раздел 8.5 для дополнительных кодов состояния.

Table 10.5.3-1. Status Code Meaning

Статус

Код

Значение

Успех

200 (OK)

Исходный сервер успешно сохранил все экземпляры.

202 (Accepted)

Исходный сервер сохранил некоторые экземпляры, но для других существуют предупреждения или ошибки.

Дополнительная информация об этой ошибке может быть найдена в теле ответного сообщения.

Отказ

400 (Bad Request)

Исходный сервер не смог сохранить ни одного экземпляра из-за неверного синтаксиса.

409 (Conflict)

Запрос был сформирован корректно, но исходный сервер не смог сохранить ни одного экземпляра из-за конфликта в запросе (например, неподдерживаемый класс SOP или несоответствие UID экземпляра исследования).

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

Дополнительная информация об ошибках экземпляров может быть найдена в полезной нагрузке.

415 (Unsupported Media Type)

Исходный сервер не поддерживает тип мультимедиа, указанный в заголовочном поле Content-Type запроса.


10.5.3.2 Response Header Fields

Исходный сервер должен поддерживать заголовочные поля, как требуется в Table 10.5.3-2.

Table 10.5.3-2. Response Header Fields

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

M

Тип мультимедиа полезной нагрузки ответа, если она присутствует.

Content-Length

uint

C

Должен присутствовать, если полезная нагрузка ответа не имеет кодирования передачи. См. Раздел 8.4.3.

Transfer-Encoding

encoding

C

Должен присутствовать, если полезная нагрузка ответа имеет кодирование передачи. См. Раздел 8.4.3.

Content-Location

url

C

Должен присутствовать, если был создан новый ресурс. Значение — это URL представления, содержащегося в полезной нагрузке запроса.

Может присутствовать в остальных случаях.

Location

url

C

Должен присутствовать, если был создан новый ресурс. Значение — это URL созданного ресурса.

Может присутствовать в остальных случаях.


Все успешные ответы должны также содержать представление содержимого (см. Раздел 8.4.2) и заголовочные поля полезной нагрузки (см. Раздел 8.4.3) с соответствующими значениями.

Рекомендуется, чтобы текст, возвращаемый в заголовочном поле Warning (см. [RFC7234] Раздел 5.5) содержал код состояния DICOM (см. PS3.4 and Приложение C “Status Type Encoding (Normative)” in PS3.7) и описательную причину. Например:

Warning: A700 <service>: Out of memory

См. также Раздел 8.4.

10.5.3.3 Response Payload

Полезная нагрузка успешного ответа должна содержать модуль ответа сохранённых экземпляров. См. Приложение I.

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

10.5.4 Media Types

Исходный сервер должен поддерживать типы мультимедиа по умолчанию и обязательные, как указано в Table 10.5.4-1.

Table 10.5.4-1. Default, Required, and Optional Media Types

Тип мультимедиа

Использование

Раздел

multipart/related; type="application/dicom"

Обязательный

Section 8.7.3.1

multipart/related; type="application/dicom+json"

По умолчанию

Раздел 8.7.3.2

multipart/related; type="application/dicom+xml"

Обязательный

Раздел 8.7.3.2

multipart/related; type="application/octet-stream"

Обязательный

Section 8.7.3.3

multipart/related; type= a Compressed Bulk Data Media Type

Необязательный

Section 8.7.3.3.2


10.5.5 Conformance Statement

Реализация, соответствующая транзакции сохранения, должна поддерживать ресурсы и типы мультимедиа, указанные в Section 10.5.

Реализация должна объявить в своём Заявлении о соответствии классы SOP, поддерживаемые для транзакции сохранения, а также роль исходного сервера или пользовательского агента, или обе.

Специфичные для реализации коды предупреждений и ошибок должны быть включены в Заявление о соответствии.

10.6 Search Transaction

Эта транзакция использует метод GET для поиска исследований, серий и экземпляров, управляемых исходным сервером.

10.6.1 Request

Запрос должен иметь следующий синтаксис:

GET SP "/" {/resource} {?search*} SP version CRLF
Accept: 1#search-media-type CRLF
*(header-field CRLF)
CRLF

Где

search-media-type = multipart/related; type="application/dicom+xml"

или

search-media-type = "application/dicom+json"

Примечание

См. также the syntax of dicom-xml and dicom-json defined in Section 8.7.3.5 Синтаксис типов мультимедиа.

10.6.1.1 Target Resources

Компонент пути целевого ресурса целевого URI указывает коллекцию ресурсов, являющуюся целью поиска.

Исходный сервер, являющийся собственной реализацией, должен поддерживать все обязательные (M) ресурсы, указанные в столбце Native в Table 10.6.1-1.

Исходный сервер, являющийся реализацией DIMSE-прокси, должен поддерживать все обязательные (M) ресурсы, указанные в столбце Proxy в Table 10.6.1-1.

Table 10.6.1-1. Search Transaction Resources

Ресурс

Шаблон URI

Собственный

Прокси

Тип запроса

Все исследования

/studies{?search*}

M

M

иерархический

Серии исследования

/studies/{study}/series{?search*}

M

M

иерархический

Экземпляры исследования

/studies/{study}/instances{?search*}

M

O

реляционный

Все серии

/series{?search*}

M

O

реляционный

Экземпляры серий исследования

/studies/{study}/series/{series}/instances{?search*}

M

M

иерархический

Все экземпляры

/instances{?search*}

M

O

реляционный


Дополнительную информацию об иерархических запросах см. Раздел C.4.1.3.1.1 «Иерархический метод поиска» в PS3.4. Дополнительную информацию о реляционных запросах см. Раздел C.4.1.2.2.1 “Relational-Queries” in PS3.4 and Раздел C.4.1.3.2.1 “Relational-Queries” in PS3.4.

Table 10.6.1-2 shows the resources supported by the Search Transaction along with a description of the search performed and the results returned.

Table 10.6.1-2. Search Resource Descriptions

Ресурс

Описание

Все исследования

Выполняет поиск по всей службе исследований, соответствующих параметрам поиска, и возвращает список соответствующих исследований, включая атрибуты по умолчанию и запрошенные атрибуты, поддерживаемые для каждого исследования.

Серии исследования

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

Экземпляры исследования

Выполняет поиск всех экземпляров в указанном исследовании, соответствующих параметрам поиска, и возвращает список соответствующих экземпляров, включая атрибуты по умолчанию и запрошенные атрибуты, поддерживаемые для каждого экземпляра.

Все серии

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

Экземпляры серий исследования

Выполняет поиск всех экземпляров в указанном исследовании и серии, соответствующих параметрам поиска, и возвращает список соответствующих экземпляров, включая атрибуты по умолчанию и запрошенные атрибуты, поддерживаемые для каждого экземпляра.

Все экземпляры

Выполняет поиск по всей службе экземпляров, соответствующих параметрам поиска, и возвращает список соответствующих экземпляров, включая атрибуты по умолчанию и запрошенные атрибуты, поддерживаемые для каждого экземпляра.


10.6.1.2 Query Parameters

Исходный сервер должен поддерживать параметры запроса, как требуется в Table 8.3.4-1.

Пользовательский агент должен предоставлять параметры запроса, как требуется в Table 8.3.4-1.

10.6.1.2.1 Attribute/Value Pair Requirements

Пары DICOM атрибут/значение, включённые как параметры запроса в запросе, должны удовлетворять требованиям в Section 8.3.4.1.

Пользовательский агент может включить следующие атрибуты в запрос:

  • Атрибуты IE пациента (см. Section 10.6.1.2.3)

  • Атрибуты IE исследования (разрешены только если ресурс — все исследования, все серии, все экземпляры)

  • Series IE Attributes (only allowed if the resource is Study's Series, All Series, Study's Instances, или All Instances)

  • Composite Instance IE Attributes (only allowed if the resource is Study's Instances, Study Series' Instances, или All Instances)

  • Additional Query/Retrieve Attributes (see Section C.3.4 in PS3.4 )

  • Private Data Element Tags and their corresponding Private Creator Element Tags

  • Timezone Offset From UTC (0008,0201)

Ниже приведены примеры URI поиска с допустимыми парами атрибут/значение:

/studies?PatientID=11235813
/studies?PatientID=11235813&StudyDate=20130509
/studies?00100010=SMITH*&00101002.00100020=11235813&limit=25
/studies?00100010=SMITH*&OtherPatientIDsSequence.00100020=11235813
/studies?PatientID=11235813&includefield=00081048,00081049,00081060
/studies?PatientID=11235813&includefield=00081048&includefield=00081049&includefield=00081060
/studies?PatientID=11235813&StudyDate=20130509-20130510
/studies?StudyInstanceUID=1.2.392.200036.9116.2.2.2.2162893313.1029997326.94587,1.2.392.200036.9116.2.2.2.2162893313.1029997326.94583
/studies?00230010=AcmeCompany&includefield=00231002&includefield=00231003
/studies?00230010=AcmeCompany&00231001=001239&includefield=00231002&includefield=00231003
10.6.1.2.2 Search Key Types and Requirements

Table 10.6.1-3 определяет типы ключей поиска и их требования.

Table 10.6.1-3. Search Key Types

Тип

Требование

U

Уникальный и обязательный ключ

R

Обязательный ключ

C

Условный ключ

O

Необязательный ключ


10.6.1.2.3 Required Matching Attributes

Исходный сервер должен поддерживать уровни IE, указанные в Table 10.6.1-4.

Table 10.6.1-4. Required IE Levels by Resource

Ресурс

Уровень IE

Study

Series

Instance

Все исследования

X

Серии исследования

X

Экземпляры исследования

X

X

Все серии

X

X

Экземпляры серий исследования

X

Все экземпляры

X

X

X


Исходный сервер должен поддерживать атрибуты сопоставления, указанные в Table 10.6.1-5 для каждого поддерживаемого уровня IE.

Table 10.6.1-5. Required Matching Attributes

Уровень IE

Имя атрибута

Тег

Study

Study Date

(0008,0020)

Study Time

(0008,0030)

Accession Number

(0008,0050)

Modalities In Study

(0008,0061)

Referring Physician Name

(0008,0090)

Patient Name

(0010,0010)

Patient ID

(0010,0020)

Study Instance UID

(0020,000D)

Study ID

(0020,0010)

Series

Modality

(0008,0060)

Series Instance UID

(0020,000E)

Series Number

(0020,0011)

Performed Procedure Step Start Date

(0040,0244)

Performed Procedure Step Start Time

(0040,0245)

Request Attributes Sequence

(0040,0275)

>Scheduled Procedure Step ID

(0040,0009)

>Requested Procedure ID

(0040,1001)

Instance

SOP Class UID

(0008,0016)

SOP Instance UID

(0008,0018)

Instance Number

(0020,0013)


Примечание

Хотя некоторые из элементов данных в Table 10.6.1-5 являются необязательными в Section C.6.2.1 in PS3.4 , the above list is consistent with those required for IHE RAD-14. See [IHE RAD TF-2] Table 4.14-1.

10.6.1.2.4 Optional Repository Query Attributes

Исходный сервер может поддерживать сопоставляемые атрибуты запроса репозитория в Table 10.6.1.2.4-1 (see Section C.6.4.2 in PS3.4 ).

Table 10.6.1.2.4-1. Required IE Levels by Resource

Уровень IE

Имя атрибута

Тег

Study

Prior Record Key

(0008,041C)

Maximum Number of Records

(0008,0429)

Series

Prior Record Key

(0008,041C)

Maximum Number of Records

(0008,0429)

Instance

Prior Record Key

(0008,041C)

Maximum Number of Records

(0008,0429)


10.6.1.3 Request Header Fields

Исходный сервер должен поддерживать заголовочные поля, как требуется в Table 10.6.1-6 в запросе.

Пользовательский агент должен предоставлять в заголовочных полях запроса, как требуется в Table 10.6.1-6.

Table 10.6.1-6. Request Header Fields

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Приемлемые типы мультимедиа для полезной нагрузки ответа

Accept-Charset

charset

O

M

Приемлемые наборы символов полезной нагрузки ответа


См. также Раздел 8.4.

10.6.1.4 Request Payload

Запрос не имеет полезной нагрузки.

10.6.2 Behavior

Исходный сервер должен выполнить поиск, указанный запросом, используя правила сопоставления в Section 8.3.4.

10.6.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[Content-Location: url CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
*(header-field CRLF)
CRLF
[payload]

10.6.3.1 Status Codes

Table 10.6.3-1 shows some common status codes corresponding to this Transaction. См. также Раздел 8.5 для дополнительных кодов состояния.

Table 10.6.3-1. Status Code Meaning

Статус

Код

Значение

Успех

200 (OK)

Поиск успешно завершён, и результаты содержатся в полезной нагрузке. Если имеются дополнительные результаты или предупреждения, заголовочное поле Warning должно содержать URL, ссылающийся на отчёт о состоянии поиска. Этот код состояния также используется для указания успешного поиска, не дающего результатов; в этом случае полезная нагрузка содержит пустой список результатов.

Отказ

400 (Bad Request)

Возникла проблема с запросом. Например, синтаксис параметра запроса некорректен.

413 (Payload Too Large)

Поиск был слишком широким, и тело ответа должно содержать отчёт о состоянии с дополнительной информацией об ошибке.


10.6.3.2 Response Header Fields

Исходный сервер должен поддерживать заголовочные поля, как требуется в Table 10.6.3-2.

Table 10.6.3-2. Response Header Fields

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

C

DICOM-тип мультимедиа полезной нагрузки ответа

Должен присутствовать, если ответ имеет полезную нагрузку

Content-Length

uint

C

Должен присутствовать, если к полезной нагрузке не применялось кодирование передачи

Transfer-Encoding

encoding

C

Должен присутствовать, если кодирование передачи было применено к полезной нагрузке


10.6.3.3 Response Payload

Успешный ответ должен содержать список соответствующих результатов в приемлемом типе мультимедиа. См. Section 8.7.5.

Если (results = 0), то совпадений нет, и должен быть возвращён ответ 200 (OK) с пустой полезной нагрузкой. The empty payload shall be formatted as specified in Section 8.3.4.4.1.

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

10.6.3.3.1 Study Resource

Для каждого соответствующего исследования ответ исходного сервера должен содержать атрибуты в соответствии с Table 10.6.3-3. Столбец "Тип" в приведённой ниже таблице относится к типам атрибутов Query/Retrieve, определённым в Раздел C.2.2.1 “Attribute Types” in PS3.4. Уникальным ключом для ответа поиска ресурса исследования является Study Instance UID (0020,000D).

Table 10.6.3-3. Study Resource Search Response Payload

Имя атрибута

Тег

Тип

Условие

Study Date

(0008,0020)

R

Study Time

(0008,0030)

R

Accession Number

(0008,0050)

R

Instance Availability

(0008,0056)

C

Должен присутствовать, если известен

Modalities in Study

(0008,0061)

R

Referring Physician's Name

(0008,0090)

R

Timezone Offset From UTC

(0008,0201)

C

Должен присутствовать, если известен

Retrieve URL

(0008,1190)

C

Должен присутствовать, если экземпляр доступен для извлечения посредством транзакции извлечения

Patient's Name

(0010,0010)

R

Patient ID

(0010,0020)

R

Patient's Birth Date

(0010,0030)

R

Patient's Sex

(0010,0040)

R

Study Instance UID

(0020,000D)

U

Study ID

(0020,0010)

R

Number of Study Related Series

(0020,1206)

R

Number of Study Related Instances

(0020,1208)

R


Примечание

  1. Хотя некоторые из вышеуказанных атрибутов являются необязательными в Таблица C.6-1 “Patient Level Attributes for the Patient Root Query/Retrieve Information Model” in PS3.4, Таблица C.6-2 “Study Level Keys for the Patient Root Query/Retrieve Information Model” in PS3.4, and Таблица C.6-5 “Study Level Keys for the Study Root Query/Retrieve Information Model” in PS3.4, они согласуются с требованиями [IHE RAD TF-2] Table 4.14-1.

  2. If either Prior Record Key (0008,041C) или Record Key (0008,041B) is present in the request and the Origin Server supports these attributes, then the responses are ordered as defined in Раздел C.6.4 “Repository Query SOP Class” in PS3.4.

Кроме того, ответ должен содержать:

  • All other Study level Attributes passed as match или includefield parameters in the request которые поддерживаются исходным сервером.

  • Если параметр includefield был указан в запросе и его значение "all", все атрибуты уровня исследования, указанные как Необязательные ключи in Раздел C.6.1.1.2 “Patient Level” in PS3.4, Раздел C.6.1.1.3 “Study Level” in PS3.4, and Раздел C.6.2.1.2 “Study Level” in PS3.4 которые поддерживаются исходным сервером.

  • If a Private Data Element has been specified as an include parameter and it is supported by the origin server, the Private Data Element and its corresponding Private Creator Element.

Series или Атрибуты уровня экземпляра, содержащиеся в параметрах includefield, не должны возвращаться.

10.6.3.3.2 Series Resources

Для каждой соответствующей серии исходный сервер должен вернуть все атрибуты, перечисленные в Table 10.6.3-4. Столбец "Тип" в приведённой ниже таблице относится к типам атрибутов Query/Retrieve, определённым в Раздел C.2.2.1 “Attribute Types” in PS3.4. Уникальным ключом для ответа поиска ресурса серии является Series Instance UID (0020,000E).

Table 10.6.3-4. Series Resources Search Response Payload

Имя атрибута

Тег

Тип

Условие

Modality

(0008,0060)

R

Timezone Offset From UTC

(0008,0201)

C

Должен присутствовать, если известен

Series Description

(0008,103E)

C

Должен присутствовать, если известен

Retrieve URL

(0008,1190)

R

Должен присутствовать, если экземпляр доступен для извлечения посредством транзакции извлечения

Series Instance UID

(0020,000E)

U

Series Number

(0020,0011)

R

Number of Series Related Instances

(0020,1209)

R

Performed Procedure Step Start Date

(0040,0244)

C

Должен присутствовать, если известен

Performed Procedure Step Start Time

(0040,0245)

C

Должен присутствовать, если известен

Request Attributes Sequence

(0040,0275)

C

Должен присутствовать, если известен

>Scheduled Procedure Step ID

(0040,0009)

R

>Requested Procedure ID

(0040,1001)

R


Примечание

  1. Хотя некоторые из вышеуказанных атрибутов являются необязательными в Таблица C.6-3 “Series Level Attributes for the Patient Root Query/Retrieve Information Model” in PS3.4, они согласуются с теми, что требуются в [IHE RAD TF-2] Table 4.14-1.

  2. If either Prior Record Key (0008,041C) или Record Key (0008,041B) is present in the request and the origin server supports these attributes, then the responses are ordered as defined in Раздел C.6.4 “Repository Query SOP Class” in PS3.4.

Кроме того, ответ должен содержать:

  • All other Series Level Attributes passed as match Query Parameters, или Series или Study Level Attributes passed as includefield parameters in the request которые поддерживаются исходным сервером.

  • If the "includefield" parameter has been specified in the request and its value is "all", include all Series Level Attributes specified as Необязательные ключи in Раздел C.6.1.1.4 “Series Level” in PS3.4 которые поддерживаются исходным сервером.

  • Если целевой ресурс — все серии, включить все атрибуты уровня исследования, указанные в Section 10.6.3.3.1.

  • If a Private Data Element has been specified as an include parameter and it is supported by the origin server, the Private Data Element and its corresponding Private Creator Element.

Атрибуты уровня экземпляра, содержащиеся в параметрах includefield, не должны возвращаться.

10.6.3.3.3 Instance Resources

Для каждого соответствующего экземпляра исходный сервер должен вернуть все атрибуты, перечисленные в Table 10.6.3-5, если они присутствуют в экземпляре. Столбец Тип в приведённой ниже таблице относится к типам атрибутов Query/Retrieve, определённым в Раздел C.2.2.1 “Attribute Types” in PS3.4. Уникальным ключом для ответа поиска ресурса экземпляра является SOP Instance UID (0008,0018).

Table 10.6.3-5. Instance Resources Search Response Payload

Имя атрибута

Тег

Тип

Условие

SOP Class UID

(0008,0016)

R

SOP Instance UID

(0008,0018)

U

Instance Availability

(0008,0056)

C

Должен присутствовать, если известен

Timezone Offset From UTC

(0008,0201)

C

Должен присутствовать, если известен

Retrieve URL

(0008,1190)

R

Должен присутствовать, если экземпляр доступен для извлечения посредством транзакции извлечения

Instance Number

(0020,0013)

R

Rows

(0028,0010)

C

Должен присутствовать, если известен

Columns

(0028,0011)

C

Должен присутствовать, если известен

Bits Allocated

(0028,0100)

C

Должен присутствовать, если известен

Number of Frames

(0028,0008)

C

Должен присутствовать, если известен


Примечание

  1. Хотя некоторые из вышеуказанных атрибутов являются необязательными в Таблица C.6-4 “Composite Object Instance Level Keys for the Patient Root Query/Retrieve Information Model” in PS3.4, они согласуются с теми, что требуются в [IHE RAD TF-2] Table 4.14-1.

  2. If either Prior Record Key (0008,041C) или Record Key (0008,041B) is present in the request and the origin server supports these attributes, then the responses are ordered as defined in Раздел C.6.4 “Repository Query SOP Class” in PS3.4.

Кроме того, ответ должен содержать:

  • All other Instance Level Attributes passed as match parameters, или Study, Series, или Instance Level Attributes passed as includefield parameters которые поддерживаются исходным сервером.

  • If the "includefield" parameter has been specified in the request and its value is "all", Attribute include all Instance Level Attributes specified as Необязательные ключи in Раздел C.6.1.1.5 “Composite Object Instance Level” in PS3.4 которые поддерживаются исходным сервером.

  • Если целевой ресурс — все экземпляры, включить все атрибуты уровня исследования, указанные в Section 10.6.3.3.1.

  • If the Target Resource is All Instances или Study's Instances, then include all Series level Attributes specified in Section 10.6.3.3.2.

  • If a Private Data Element has been specified as an include parameter and it is supported by the origin server, the Private Data Element and its corresponding Private Creator Element.

Ответ может дополнительно включать:

  • the Available Transfer Syntax UID (0008,3002) to describe the Transfer Syntaxes that the origin server can assure will be supported for retrieval of the SOP Instance. See Section C.6.1.1.5.2 in PS3.4 .

10.6.4 Media Types

Исходный сервер должен поддерживать типы мультимедиа по умолчанию и обязательные, как указано в Table 10.6.4-1.

Table 10.6.4-1. Default, Required, and Optional Media Types

Тип мультимедиа

Использование

Раздел

application/dicom+json

По умолчанию

Раздел 8.7.3.2

multipart/related; type="application/dicom+xml"

Обязательный

Раздел 8.7.3.2


10.6.5 Conformance Statement

Реализация должна объявить в своём Заявлении о соответствии, какую роль она играет — исходного сервера или пользовательского агента, или обе.

Реализация, выполняющая роль исходного сервера, должна объявить максимальное количество совпадений, поддерживаемое для одного запроса.

Реализация, выполняющая роль исходного сервера, должна объявить о поддержке следующего в своём Заявлении о соответствии:

  • Является ли она собственной реализацией или реализацией прокси

  • Нечёткое сопоставление

  • Сопоставление пустых значений

  • Сопоставление множественных значений

  • Поддерживаемые необязательные ресурсы

  • Поддерживаемые необязательные атрибуты

11 Worklist Service and Resources

11.1 Обзор

Сервис Worklist, также известный как UPS-RS, определяет RESTful интерфейс к SOP-классам сервиса Unified Procedure Step, определённым в Раздел B.26 «Unified Procedure Step IOD» в PS3.3 и Раздел CC «Unified Procedure Step Service and SOP Classes» в PS3.4, где указано поведение UPS.

Сервис Worklist управляет единым списком работ (Worklist), содержащим один или несколько рабочих элементов (Workitem). Каждый рабочий элемент представляет шаг процедуры. Пользовательские агенты и исходные серверы могут создавать, получать, обновлять, искать и изменять состояние рабочих элементов. См. Раздел GGG «Unified Worklist and Procedure Step - UPS (Informative)» в PS3.17 для обзора списков работ и рабочих элементов (экземпляров UPS).

11.1.1 Описание ресурсов

Данный сервис определяет три ресурса:

worklist

Коллекция рабочих элементов, управляемых исходным сервером.

workitem

Набор данных (Data Set), содержащий атрибуты, указанные в Раздел CC.2.5.1.3 «UPS Attribute Service Requirements» в PS3.4.

subscription

Ресурс, указывающий подписчика (Subscriber), которому должны направляться уведомления об изменениях состояния ресурса.

В сервисе Worklist рабочий элемент идентифицируется по UID рабочего элемента (Workitem UID), который соответствует Affected SOP Instance UID и Requested SOP Instance UID, используемым в UPS-сервисе PS3.4.

Следующие переменные шаблона URI используются в определениях ресурсов на протяжении всего Раздела 11.

{workitem}

UID рабочего элемента.

{subscriber}

Заголовок прикладного объекта (Application Entity Title) подписчика.

Сервис Worklist управляет списком работ UPS и его рабочими элементами. Шаблоны URI, определённые данным сервисом, указаны в Таблице 11.1.1-1.

Таблица 11.1.1-1. Ресурсы, шаблоны URI и описания

Ресурс

Шаблон URI

Описание

Worklist

/

Базовый URI сервиса Worklist. Список работ содержит и управляет коллекцией рабочих элементов. На каждый сервис приходится только один список работ.

Все рабочие элементы

/workitems

Ресурс Workitems содержит всю коллекцию рабочих элементов в списке работ.

Workitem

/workitems/{workitem}

Ресурс Workitem содержит единственный рабочий элемент.

Состояние рабочего элемента

/workitems/{workitem}/state

Ресурс Workitem State используется для изменения состояния рабочего элемента.

Запрос отмены рабочего элемента

/workitems/{workitem}/cancelrequest

Ресурс Workitem Cancel используется для запроса отмены рабочего элемента.

Подписка на рабочий элемент

/workitems/{workitem}/subscribers/{subscriber}

Подписка на рабочий элемент.

Подписка на список работ

/workitems/1.2.840.10008.5.1.4.34.5/subscribers/{subscriber}

Ресурс Workitem Subscription содержит подписку на список работ

Отфильтрованная подписка на список работ

/workitems/1.2.840.10008.5.1.4.34.5.1/subscribers/{subscriber}

Ресурс Workitem Subscribers содержит единственного подписчика списка работ.


11.1.1.1 Рабочие элементы (Workitems)

Рабочий элемент — это то, что в Приложении CC «Unified Procedure Step Service and SOP Classes» в PS3.4 называется шагом процедуры (procedure step).

Рабочие элементы представляют различные шаги, такие как: обработка изображений, контроль качества, автоматическое обнаружение (Computer Aided Detection), интерпретация, транскрипция, проверка отчёта или печать. Эти шаги могут как формально планироваться, так и нет.

11.1.1.2 Терминология веб-сервисов и DIMSE

Таблица 11.1.1-2. Соответствие между RESTful и DIMSE терминологией

Термин RESTful

Термин DIMSE

Worklist

Worklist

Workitem

UPS Instance

Блокировка удаления

Блокировка удаления

Фильтр

Ключи сопоставления

Ключ сопоставления

Ключ сопоставления

Подписаться

Подписаться

Отписаться

Отписаться

Подписка

Подписка

Генератор подписок

Подписка на список работ

Отфильтрованная подписка на список работ

Подписчик

Подписчик

Приостановить подписку

Приостановка подписки на список работ

Соединение уведомлений

Ассоциация

Транзакция

N-GET, N-SET, N-ACTION

Уведомление

N-EVENT-REPORT


11.1.2 Общие параметры запроса

Исходный сервер должен поддерживать параметры запроса в соответствии с требованиями Таблицы 11.1.2-1.

Пользовательский агент должен предоставлять в запросе параметры запроса в соответствии с требованиями Таблицы 11.1.2-1.

Таблица 11.1.2-1. Общие параметры запроса

Имя

Значение

Использование

Раздел

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Раздел 8.3.3.1

Accept-Charset

charset

O

M

Раздел 8.3.3.2


См. также Раздел 8.4.

11.1.3 Общие типы мультимедиа

Исходный сервер должен поддерживать типы мультимедиа, перечисленные как «По умолчанию» или «Обязательные» в Таблице 11.1.3-1.

Таблица 11.1.3-1. Типы мультимедиа по умолчанию, обязательные и необязательные

Тип мультимедиа

Использование

Раздел

application/dicom+json

По умолчанию

Раздел 8.7.3.2

multipart/related; type="application/dicom+xml"

Обязательный

Раздел 8.7.3.2


multipart/related; type="application/dicom+xml"; boundary={boundary}

Указывает, что полезная нагрузка представляет собой multipart-тело сообщения, в котором каждая часть является XML-инфоуказателем (Infoset) собственной DICOM-модели PS3.19, содержащим соответствующие атрибуты рабочего элемента. См. Раздел A.1 в PS3.19 .

application/dicom+json

Указывает, что полезная нагрузка представляет собой JSON-массив, содержащий рабочие элементы, и каждый рабочий элемент содержит соответствующие атрибуты. См. Раздел F.2.

Транзакции не должны поддерживать объекты метаданных или массовых данных (Bulk Data).

11.2 Соответствие

Исходный сервер должен поддерживать наборы транзакций данного сервиса, соответствующие одному или нескольким SOP-классам UPS (группам DIMSE-сервисов). См. Раздел CC.2 в PS3.4 . Дополнительные требования к исходному серверу, который также является SCP Unified Worklist and Procedure Step, описаны в Разделе CC.1 в PS3.4 .

Пользовательский агент или исходный сервер, реализующий сервис Worklist, должен соблюдать все требования, предъявляемые к SCU или SCP соответственно, для соответствующих сервисов в Приложении CC «Unified Procedure Step Service and SOP Classes» в PS3.4, включая требования Заявления о соответствии.

Реализация, поддерживающая сервис Worklist, должна описать свою поддержку в Заявлении о соответствии и в ответе на транзакцию Retrieve Capabilities, а также указать, выступает ли она в роли исходного сервера, пользовательского агента или обоих.

11.3 Обзор транзакций

Сервис Worklist состоит из транзакций, перечисленных в Таблице 11.3-1.

Таблица 11.3-1. Методы сервиса Worklist и шаблоны ресурсов

Транзакция

Метод

Полезная нагрузка

Описание

Запрос

Ответ при успехе

Создание

POST

Набор данных

нет

Создаёт новый рабочий элемент

Получение

GET

нет

Набор данных

Получает целевой рабочий элемент

Обновление

POST

Набор данных

нет

Обновляет целевой рабочий элемент

Изменение состояния

PUT

нет

нет

Изменяет состояние целевого рабочего элемента

Запрос отмены

POST

Набор данных

нет

Запрашивает у исходного сервера отмену рабочего элемента

Поиск

GET

нет

результаты

Выполняет поиск рабочих элементов

Подписка

POST

нет

нет

Создаёт подписку на целевой список работ или целевой рабочий элемент

Отписка

DELETE

нет

нет

Отменяет подписку на целевой список работ или целевой рабочий элемент


Подробные сведения обо всех требованиях к переходам между состояниями можно найти в Разделе CC.1.1 «Unified Procedure Step States» в PS3.4.

Транзакция Request Cancellation не выполняет фактического перехода между состояниями, но может вызвать такой переход.

При создании нового рабочего элемента для передачи UID рабочего элемента, который должен быть назначен, DIMSE использует Affected SOP Instance UID в заголовке DIMSE. В веб-сервисах UID рабочего элемента включается как параметр запроса в запрос Create. Все атрибуты в полезных нагрузках HTTP-транзакций те же, что и в полезной нагрузке DIMSE.

11.4 Транзакция Create Workitem

Эта транзакция создаёт рабочий элемент в целевом списке работ. Она соответствует операции UPS DIMSE N-CREATE.

11.4.1 Запрос

Запрос должен иметь следующий синтаксис:

POST SP /workitems ?{workitem} SP version CRLF
Accept: dicom-media-type CRLF
Content-Type: dicom-media-type CRLF
(Content-Length: uint / Transfer-Encoding: encoding) CRLF
*(header-field CRLF)
CRLF
payload

Пользовательский агент должен соответствовать поведению SCU, указанному в Разделе CC.2.5.2 «Service Class User Behavior» в PS3.4.

11.4.1.1 Целевые ресурсы

Целевым ресурсом является либо список работ (Worklist), либо рабочий элемент (Workitem).

Таблица 11.4.1-1. Ресурсы транзакции Create

Ресурс

Шаблон URI

Worklist

/workitems

Workitem

/workitems?{workitem}


Если целевым ресурсом является список работ, то набор данных рабочего элемента в полезной нагрузке должен содержать UID рабочего элемента

Значение параметра запроса workitem — это UID рабочего элемента, который соответствует Affected SOP Instance UID операции UPS DIMSE N-CREATE.

11.4.1.2 Параметры запроса

Исходный сервер должен поддерживать параметры запроса в соответствии с требованиями Раздела 11.1.2.

Пользовательский агент должен предоставлять в запросе параметры запроса в соответствии с требованиями Раздела 11.1.2.

11.4.1.3 Заголовки запроса

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.4.1-3.

Пользовательский агент должен предоставлять заголовки запроса, как определено в Таблице 11.4.1-3.

Таблица 11.4.1-3. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Content-Type

dicom-media-type

M

M

Тип мультимедиа полезной нагрузки

Content-Length

uint

C

M

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи

Transfer-Encoding

encoding

C

M

Должен присутствовать, если к полезной нагрузке применено кодирование передачи


См. также Раздел 8.4.

11.4.1.4 Полезная нагрузка запроса

Полезная нагрузка должна состоять из одной части, содержащей рабочий элемент, закодированный в типе мультимедиа, указанном в заголовке Content-Type. Полезная нагрузка должна содержать все элементы данных, подлежащие сохранению. Affected SOP Instance UID не должен присутствовать в наборе данных рабочего элемента.

Рабочий элемент в полезной нагрузке должен соответствовать всем требованиям к экземплярам из столбца Req. Type N-CREATE в Таблице CC.2.5-3 «UPS SOP Class N-CREATE/N-SET/N-GET/C-FIND Attributes» в PS3.4.

11.4.2 Поведение

Исходный сервер должен создать новый рабочий элемент в состоянии SCHEDULED и вернуть URL-ссылку на созданный рабочий элемент в заголовке Location ответа. Рабочий элемент будет добавлен в список работ только один раз.

Исходный сервер должен создавать и поддерживать рабочий элемент в соответствии с поведением SCP, определённым в Разделе CC.2.5.3 в PS3.4 .

11.4.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
Content-Location: representation CRLF
Location: resource CRLF
*(header-field CRLF)
CRLF
[payload]

11.4.3.1 Коды состояния

Таблица 11.4.3-1 показывает некоторые типичные коды состояния, соответствующие данной транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 11.4.3-1. Значение кодов состояния

Статус

Код

Значение

Успех

201 (Created)

Целевой рабочий элемент был успешно добавлен в список работ.

Ошибка

400 (Bad Request)

Возникла проблема с запросом. Например, полезная нагрузка запроса не удовлетворяла требованиям столбца Req. Type N-CREATE в Таблице CC.2.5-3 «UPS SOP Class N-CREATE/N-SET/N-GET/C-FIND Attributes» в PS3.4.

409 (Conflict)

Целевой рабочий элемент уже существует.


11.4.3.2 Заголовки ответа

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.4.3-2.

Таблица 11.4.3-2. Заголовки ответа

Имена

Значение

Использование исходным сервером

Условие

Content-Type

media-type

C

Должен присутствовать, если ответ имеет полезную нагрузку

Content-Length

uint

C

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи

Transfer-Encoding

encoding

C

Должен присутствовать, если к полезной нагрузке применено кодирование передачи

Content-Location

url

O

Должен присутствовать, если ответ имеет полезную нагрузку, содержащую ресурс. См. Раздел 8.4.3.

Может присутствовать в остальных случаях

Location

url

C

URL-ссылка на созданный рабочий элемент.

Должен присутствовать, если рабочий элемент был создан.

Может присутствовать, если полезная нагрузка содержит ресурс

Warning

См. ниже

C

Должен присутствовать, если целевой рабочий элемент был изменён исходным сервером, и должен включать следующее предупреждение


Если целевой рабочий элемент был изменён исходным сервером, ответ должен также содержать следующий заголовок Warning:

Warning: 299 <service>: The Workitem was created with modifications.CRLF

См. также Раздел 8.4.

11.4.3.3 Полезная нагрузка ответа

Ответ при успехе не должен иметь полезной нагрузки.

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии (Status Report), описывающий любые ошибки, предупреждения или другую полезную информацию.

11.5 Транзакция Retrieve Workitem

Эта транзакция получает рабочий элемент. Она соответствует операции UPS DIMSE N-GET.

Примечание

Требование к исходному серверу отвечать на запросы Retrieve Workitem для экземпляров UPS, перешедших в состояние COMPLETED или CANCELED, ограничено. См. Раздел CC.2.1.3 в PS3.4 .

11.5.1 Запрос

Запрос должен иметь следующий синтаксис:

GET SP /workitems/{workitem} SP version CRLF
Accept dicom-media-type CRLF
[Cache-Control: no-cache CRLF]
*(header-field CRLF)
CRLF

Пользовательский агент должен соответствовать поведению SCU, указанному в Разделе CC.2.7.2 «Service Class User Behavior» в PS3.4.

11.5.1.1 Целевые ресурсы

Целевым ресурсом данной транзакции является рабочий элемент.

11.5.1.2 Параметры запроса

Пользовательский агент должен предоставлять, а исходный сервер должен поддерживать общие параметры запроса из Раздела 11.1.2.

11.5.1.3 Заголовки запроса

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.5.1-1.

Пользовательский агент должен предоставлять заголовки запроса, как определено в Таблице 11.5.1-1.

Таблица 11.5.1-1. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

1#dicom-media-type

M

M

Приемлемые типы мультимедиа полезной нагрузки ответа.


См. также Раздел 8.4.

11.5.1.4 Полезная нагрузка запроса

Запрос не имеет полезной нагрузки.

11.5.2 Поведение

Если рабочий элемент существует на исходном сервере, он должен быть возвращён в приемлемом типе мультимедиа (см. Раздел 8.7.4); однако исходный сервер может отправить ответ об ошибке на запросы для рабочих элементов, перешедших в состояние COMPLETED или CANCELED. См. Раздел CC.2.1.3 в PS3.4 .

Возвращённый рабочий элемент не должен содержать атрибут Transaction UID (0008,1195). Это необходимо для сохранения роли данного атрибута как блокировки доступа.

11.5.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: dicom-media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF)
CRLF
[payload]

11.5.3.1 Коды состояния

Таблица 11.5.3-1 показывает некоторые типичные коды состояния, соответствующие данной транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 11.5.3-1. Значение кодов состояния

Статус

Код

Значение

Успех

200 (OK)

Все экземпляры были успешно получены.

Ошибка

400 (Bad Request)

Возникла проблема с запросом.

404 (Not Found)

Исходный сервер не знает о целевом рабочем элементе. См. Раздел CC.2.1.3 «Service Class Provider Behavior» в PS3.4.

409 (Conflict)

Запрос не может быть выполнен по одной из следующих причин:

  • представленный запрос несовместим с текущим состоянием целевого рабочего элемента

  • отсутствует Transaction UID

  • Transaction UID неверен

410 (Gone)

Исходный сервер знает, что целевой рабочий элемент существовал, но был удалён.


11.5.3.2 Заголовки ответа

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.5.3-2.

Таблица 11.5.3-2. Заголовки ответа

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

M

Тип мультимедиа целевого рабочего элемента или отчёта о состоянии в полезной нагрузке

Content-Location

url

O

Должен присутствовать, если ответ имеет полезную нагрузку, содержащую ресурс. См. Раздел 8.4.3.

Может присутствовать в остальных случаях

Content-Length

uint

C

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи

Transfer-Encoding

encoding

C

Должен присутствовать, если к полезной нагрузке применено кодирование передачи


См. также Раздел 8.4.

11.5.3.3 Полезная нагрузка ответа

Ответ при успехе имеет однопартийную полезную нагрузку, содержащую запрошенный рабочий элемент в выбранном типе мультимедиа. Рабочий элемент в полезной нагрузке должен соответствовать всем требованиям к экземплярам из столбца Req. Type N-GET в Таблице CC.2.5-3 «UPS SOP Class N-CREATE/N-SET/N-GET/C-FIND Attributes» в PS3.4.

Если рабочий элемент находится в состоянии IN PROGRESS, возвращённый рабочий элемент не должен содержать атрибут Transaction UID (0008,1195), так как он должен быть известен только владельцу.

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

11.6 Транзакция Update Workitem

Эта транзакция изменяет атрибуты существующего рабочего элемента. Она соответствует операции UPS DIMSE N-SET.

11.6.1 Запрос

Запрос должен иметь следующий синтаксис:

POST SP /workitems/{workitem}?{Transaction-uid} SP version CRLF
Content-Type: dicom-media-type CRLF
(Content-Length: uint / Transfer-Encoding: encoding) CRLF
Content-Location: url CRLF
*(header-field CRLF)
CRLF
payload

Пользовательский агент должен соответствовать поведению SCU, указанному в Разделе CC.2.6.2 «Service Class User Behavior» в PS3.4.

11.6.1.1 Целевые ресурсы

Целевым ресурсом для данной транзакции является рабочий элемент.

11.6.1.2 Параметры запроса

Исходный сервер и пользовательский агент должны предоставлять общие параметры запроса из Раздела 11.1.2.

Исходный сервер должен также поддерживать параметр запроса Transaction UID, который указывает Transaction UID рабочего элемента, подлежащего обновлению.

11.6.1.3 Заголовки запроса

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.6.1-1.

Пользовательский агент должен предоставлять заголовки запроса, как определено в Таблице 11.6.1-1.

Таблица 11.6.1-1. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Content-Type

dicom-media-type

M

M

Тип мультимедиа полезной нагрузки

Content-Length

uint

C

M

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи

Transfer-Encoding

encoding

C

M

Должен присутствовать, если к полезной нагрузке применено кодирование передачи


См. также Раздел 8.4.

11.6.1.4 Полезная нагрузка запроса

Полезная нагрузка запроса содержит набор данных с изменениями целевого рабочего элемента. Набор данных должен включать все элементы, подлежащие изменению. Все изменения рабочего элемента должны соответствовать всем требованиям, описанным в Раздел CC.2.6.2 в PS3.4 .

11.6.2 Поведение

Исходный сервер должен изменить целевой рабочий элемент, как указано в запросе, и в соответствии с поведением SCP, указанным в Раздел CC.2.6.3 в PS3.4 .

Если рабочий элемент находится в состоянии COMPLETED или CANCELED, ответом должен быть ответ об ошибке 400 (Bad Request).

11.6.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: workitem CRLF
*(header-field CRLF)
CRLF
[payload]

11.6.3.1 Коды состояния

Ответ должен содержать соответствующий код состояния.

Таблица 11.6.3-1 показывает некоторые типичные коды состояния, соответствующие данной транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 11.6.3-1. Значение кодов состояния

Статус

Код

Значение

Успех

200 (OK)

Целевой рабочий элемент был обновлён.

Ошибка

400 (Bad Request)

Возникла проблема с запросом. Например:

  • целевой рабочий элемент находился в состоянии COMPLETED или CANCELED

  • отсутствует UID транзакции

  • UID транзакции неверен, или

  • набор данных не соответствует требованиям

404 (Not Found)

Целевой рабочий элемент не найден.

409 (Conflict)

Запрос несовместим с текущим состоянием целевого рабочего элемента

410 (Gone)

Целевой рабочий элемент ранее существовал, но больше не существует.


11.6.3.2 Заголовки ответа

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.6.3-2.

Таблица 11.6.3-2. Заголовки ответа

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

M

Тип мультимедиа полезной нагрузки

Content-Length

uint

C

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи

Transfer-Encoding

encoding

C

Должен присутствовать, если к полезной нагрузке применено кодирование передачи

Content-Location

url

O

Должен присутствовать, если ответ имеет полезную нагрузку, содержащую ресурс. См. Раздел 8.4.3.

Может присутствовать в остальных случаях

Warning

См. ниже

O

Если целевой рабочий элемент был изменён исходным сервером, он должен включить одно из полей заголовка Warning, указанных ниже.


Если рабочий элемент был успешно обновлён, но с изменениями, внесёнными исходным сервером, ответ должен включать следующее в поле заголовка Warning:

Warning: 299 <service>: The Workitem was updated with modifications.

Если необязательные атрибуты были отклонены, ответ должен включать следующее поле заголовка Warning:

Warning: 299 <service>: Requested optional Attributes are not supported.

Если запрос был отклонён с кодом состояния ошибки, ответ должен включать поле заголовка Warning с одним из следующих сообщений, наиболее точно описывающих характер конфликта:

Warning: 299 <service>: The Target URI did not reference a claimed Workitem.
Warning: 299 <service>: The submitted request is inconsistent with the current state of the Workitem.

См. также Раздел 8.4.

11.6.3.3 Полезная нагрузка ответа

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

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

11.7 Транзакция Change Workitem State

Эта транзакция используется для изменения состояния рабочего элемента. Она соответствует операции UPS DIMSE N-ACTION «Change UPS State». Изменения состояния используются для получения прав собственности, завершения или отмены рабочего элемента.

11.7.1 Запрос

Запрос должен иметь следующий синтаксис:

PUT SP /workitems/{workitem}/state?requester={aetitle} SP version CRLF
Content-Type: dicom-media-type
(Content-Length: uint / Transfer-Encoding: encoding) CRLF
*(header-field CRLF)
CRLF
payload

Пользовательский агент должен соответствовать поведению SCU, указанному в Раздел CC.2.1.2 «Service Class User Behavior» в PS3.4.

11.7.1.1 Целевые ресурсы

Целевым ресурсом для данной транзакции является рабочий элемент.

11.7.1.2 Параметры запроса

Пользовательский агент должен предоставлять, а исходный сервер должен поддерживать общие параметры запроса из Раздела 11.1.2.

Исходный сервер должен поддерживать параметры запроса в соответствии с требованиями Таблицы 11.7.2.1-1.

Пользовательский агент должен предоставлять в запросе параметры запроса в соответствии с требованиями Таблицы 11.7.2.1-1.

Таблица 11.7.2.1-1. Параметры запроса

Ключ

Значение

Использование

Описание

Пользовательский агент

Исходный сервер

requester

aetitle

O

O


Параметр requester имеет следующий синтаксис:

requester = "requester=" aetitle

Если параметр присутствует, его значением должен быть заголовок Application Entity (AE Title) запрашивающего пользовательского агента. Если параметр requester присутствует, исходный сервер должен использовать предоставленный AE Title в качестве значения атрибута Requesting AE (0074,1236) в отчётах о событиях UPS, формируемых для операции с рабочим элементом, как указано в Раздел CC.2.4.1 в PS3.4 .

Если параметр requester отсутствует, исходный сервер должен определять AE Title запрашивающей стороны специфичными для реализации средствами (например, HTTP-аутентификация, сертификаты клиента или другие механизмы).

11.7.1.3 Заголовки запроса

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.7.1-1.

Пользовательский агент должен предоставлять заголовки запроса, как определено в Таблице 11.7.1-1.

Таблица 11.7.1-1. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Content-Type

dicom-media-type

M

M

Приемлемые типы мультимедиа полезной нагрузки ответа

Content-Length

uint

C

M

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи

Transfer-Encoding

encoding

C

M

Должен присутствовать, если к полезной нагрузке применено кодирование передачи


См. также Раздел 8.4.

11.7.1.4 Полезная нагрузка запроса

Полезная нагрузка запроса должна содержать элементы данных Change UPS State, как указано в Таблица CC.2.1-1 «Change UPS State - Action Information» в PS3.4. Этими элементами данных являются:

Transaction UID (0008,1195)

Полезная нагрузка запроса должна включать UID транзакции (Transaction UID). Пользовательский агент создаёт UID транзакции при запросе перехода в состояние IN PROGRESS для данного рабочего элемента. Пользовательский агент предоставляет этот UID транзакции в последующих транзакциях с этим рабочим элементом.

Procedure Step State (0074,1000)

Допустимые значения соответствуют запрашиваемому переходу состояния. Это: «IN PROGRESS», «COMPLETED» или «CANCELED».

11.7.2 Поведение

Исходный сервер должен поддерживать изменения состояния рабочего элемента, указанные в запросе, как описано в поведении SCP в Раздел CC.2.1.3 «Service Class Provider Behavior» в PS3.4.

11.7.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: dicom-media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
*(header-field CRLF) CRLF
[payload]

11.7.3.1 Коды состояния

Таблица 11.7.3-1 показывает некоторые типичные коды состояния, соответствующие данной транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 11.7.3-1. Значение кодов состояния

Статус

Код

Значение

Успех

200 (OK)

Обновление выполнено успешно, и полезная нагрузка ответа содержит документ отчёта о состоянии.

Ошибка

400 (Bad Request)

Запрос не может быть выполнен по одной из следующих причин:

  • запрос недействителен с учётом текущего состояния целевого рабочего элемента

  • отсутствует UID транзакции

  • UID транзакции неверен

404 (Not Found)

Целевой рабочий элемент не найден.

409 (Conflict)

Запрос несовместим с текущим состоянием целевого рабочего элемента

410 (Gone)

Целевой рабочий элемент ранее существовал, но больше не существует.


11.7.3.2 Заголовки ответа

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.7.3-2.

Таблица 11.7.3-2. Заголовки ответа

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

M

Тип мультимедиа полезной нагрузки.

Content-Length

uint

C

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи.

Transfer-Encoding

encoding

C

Должен присутствовать, если к полезной нагрузке применено кодирование передачи.

Content-Location

url

O

Должен присутствовать, если ответ имеет полезную нагрузку, содержащую ресурс. См. Раздел 8.4.3.

Может присутствовать в остальных случаях.

Warning

text

C

См. ниже.


Если пользовательский агент указывает атрибут Procedure Step State (0074,1000) со значением «CANCELED», и рабочий элемент уже находится в этом состоянии, ответное сообщение должно включать следующее поле заголовка HTTP Warning:

Warning: 299 <service>: The UPS is already in the requested state of CANCELED.

Если пользовательский агент указывает атрибут Procedure Step State (0074,1000) со значением «COMPLETED», и экземпляр UPS уже находится в этом состоянии, ответное сообщение должно включать следующее поле заголовка HTTP Warning:

Warning: 299 <service>: The UPS is already in the requested state of COMPLETED.

Если запрос был отклонён с кодом состояния ошибки, ответное сообщение должно включать одно из следующих сообщений в поле заголовка HTTP Warning, описывающих характер конфликта:

Warning: 299 <service>: The Transaction UID is missing.
Warning: 299 <service>: The Transaction UID is incorrect.
Warning: 299 <service>: The submitted request is inconsistent with the state of the UPS Instance.

См. также Раздел 8.4.

11.7.3.3 Полезная нагрузка ответа

Ответ при успехе не должен иметь полезной нагрузки.

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

11.8 Транзакция Request Cancellation

Эта транзакция позволяет пользовательскому агенту, не являющемуся владельцем рабочего элемента, запросить его отмену. Она соответствует операции UPS DIMSE N-ACTION «Request UPS Cancel». См. Раздел CC.2.2 в PS3.4 .

Чтобы отменить рабочий элемент, принадлежащий пользовательскому агенту, т.е. находящийся в состоянии IN PROGRESS, пользовательский агент использует транзакцию Change Workitem State, как описано в Разделе 11.7.

11.8.1 Запрос

Запрос должен иметь следующий синтаксис:

POST SP /workitems/{workitem}/cancelrequest?requester={aetitle} SP version CRLF
Content-Type: dicom-media-type
(Content-Length: uint / Transfer-Encoding: encoding) CRLF
*(header-field CRLF)
CRLF
[payload]

Пользовательский агент должен соответствовать поведению SCU, указанному в Раздел CC.2.2.2 «Service Class User Behavior» в PS3.4.

11.8.1.1 Целевые ресурсы

Целевым ресурсом для данной транзакции является рабочий элемент.

11.8.1.2 Параметры запроса

Пользовательский агент должен предоставлять, а исходный сервер должен поддерживать общие параметры запроса из Раздела 11.1.2.

Исходный сервер должен поддерживать параметры запроса в соответствии с требованиями Таблицы 11.7.2.1-1.

Пользовательский агент должен предоставлять в запросе параметры запроса в соответствии с требованиями Таблицы 11.7.2.1-1.

11.8.1.3 Заголовки запроса

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.8.1-1.

Пользовательский агент должен предоставлять заголовки запроса, как определено в Таблице 11.8.1-1.

Таблица 11.8.1-1. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Content-Type

dicom-media-type

M

M

Тип мультимедиа полезной нагрузки.

Content-Length

uint

C

M

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи.

Transfer-Encoding

encoding

C

M

Должен присутствовать, если к полезной нагрузке применено кодирование передачи.


См. также Раздел 8.4.

11.8.1.4 Полезная нагрузка запроса

Полезная нагрузка запроса, если она присутствует, может описывать причину запроса отмены рабочего элемента, отображаемое имя контактного лица (Contact Display Name) и/или URI контактного лица (Contact URI) для обсуждения запроса на отмену.

Информация для действия Request UPS Cancel указана в Таблица CC.2.2-1 «Request UPS Cancel - Action Information» в PS3.4.

11.8.2 Поведение

Исходный сервер должен обработать запрос, как описано в поведении SCP в Раздел CC.2.2.3 «Service Class Provider Behavior» в PS3.4.

11.8.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type dicom-media-type CRLF]
[Content-Type: dicom-media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF) CRLF
[payload]

11.8.3.1 Коды состояния

Таблица 11.8.3-1 показывает некоторые типичные коды состояния, соответствующие данной транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 11.8.3-1. Значение кодов состояния

Статус

Код

Значение

Успех

202 (Accepted)

Запрос был подтверждён исходным сервером.

Ошибка

400 (Bad Request)

Возникла проблема с синтаксисом запроса.

404 (Not Found)

Целевой рабочий элемент не найден.

409 (Conflict)

Запрос не может быть выполнен из-за конфликта, например:

  • Целевой рабочий элемент находится в состоянии COMPLETED.

  • Исходный сервер является исполнителем/владельцем целевого рабочего элемента и отказывается от отмены.

  • Нет возможности уведомить исполнителя/владельца целевого рабочего элемента о запросе на отмену.


11.8.3.2 Заголовки ответа

Исходный сервер должен поддерживать заголовки в соответствии с требованиями Таблицы 11.8.3-2.

Таблица 11.8.3-2. Заголовки ответа

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

C

Тип мультимедиа документа отчёта о состоянии.

Должен присутствовать, если ответ содержит полезную нагрузку.

Content-Length

uint

C

Должен присутствовать, если к полезной нагрузке не применено кодирование передачи.

Transfer-Encoding

encoding

C

Должен присутствовать, если к полезной нагрузке применено кодирование передачи.


Если экземпляр рабочего элемента уже находится в отменённом состоянии, ответное сообщение должно включать следующее поле заголовка HTTP Warning:

Warning: 299 <service>: The UPS is already in the requested state of CANCELED.

Если запрос был отклонён с кодом состояния ошибки, ответное сообщение должно включать одно из следующих сообщений в поле заголовка HTTP Warning, описывающих характер конфликта:

Warning: <service>: The UPS is already COMPLETED.
Warning: <service>: Performer chooses not to cancel.
Warning: <service>: The performer cannot be contacted.

См. также Раздел 8.4.

11.8.3.3 Полезная нагрузка ответа

Ответ может включать полезную нагрузку, содержащую соответствующий отчёт о состоянии.

11.9 Транзакция Search

Эта транзакция выполняет поиск в списке работ рабочих элементов, соответствующих указанным параметрам запроса, и возвращает список совпадающих рабочих элементов. Каждый рабочий элемент в возвращённом списке включает возвращаемые атрибуты, указанные в запросе. Транзакция соответствует операции UPS DIMSE C-FIND.

11.9.1 Запрос

Запрос должен иметь следующий синтаксис:

GET SP /workitems?{&match*}{&includefield}{&fuzzymatching}{&offset}{&limit} SP version CRLF
Accept: dicom-media-types CRLF
*(header-field CRLF)
CRLF

Пользовательский агент должен соответствовать поведению SCU, указанному в Разделе CC.2.8.2 «Поведение пользователя класса службы» в PS3.4.

11.9.1.1 Target Resources

Целевым ресурсом для этой Транзакции является Рабочий список.

11.9.1.2 Query Parameters

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 8.3.4-1.

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 8.3.4-1.

11.9.1.3 Request Header Fields

Исходный сервер должен поддерживать поля заголовка, как требуется в Таблице 11.9.1-1.

Пользовательский агент должен предоставлять поля заголовка запроса, как определено в Таблице 11.9.1-1.

Таблица 11.9.1-1. Поля заголовка запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

1#dicom-media-type

M

M

Приемлемые типы медиа для полезной нагрузки ответа.

Cache-Control

"no-cache"

O

M

Если включено, указывает, что возвращаемые результаты поиска должны быть актуальными, а не кэшированными.


См. также Раздел 8.4.

11.9.1.4 Request Payload

Запрос не имеет полезной нагрузки.

11.9.2 Behavior

Исходный сервер должен выполнять поиск в соответствии с требованиями, указанными в Разделе 8.3.4.

Для каждого соответствующего Рабочего элемента исходный сервер должен включить в результаты:

  • Все атрибуты экземпляра Unified Procedure Step в Таблице CC.2.5-3 “UPS SOP Class N-CREATE/N-SET/N-GET/C-FIND Attributes” в PS3.4 с типом возвращаемого ключа 1 или 2.

  • Все атрибуты экземпляра Unified Procedure Step в Таблице CC.2.5-3 “UPS SOP Class N-CREATE/N-SET/N-GET/C-FIND Attributes” в PS3.4 с типом возвращаемого ключа 1C или 2C, для которых выполняются условные требования.

  • Все остальные атрибуты Рабочего элемента, переданные в качестве параметров сопоставления, которые поддерживаются исходным сервером в качестве атрибутов сопоставления или возврата.

  • Все остальные атрибуты Рабочего элемента, переданные в качестве значений параметра includefield, которые поддерживаются исходным сервером в качестве атрибутов возврата.

11.9.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: dicom-media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF)
CRLF
[payload]

11.9.3.1 Status Codes

Таблица 11.9.3-1 показывает некоторые общие коды состояния, соответствующие этой Транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Table 11.9.3-1. Status Code Meaning

Статус

Код

Значение

Успех

200 (OK)

Поиск успешно завершён, и соответствующие результаты возвращаются в теле сообщения. Этот код состояния также используется для указания успешного поиска, не дающего результатов; в этом случае полезная нагрузка включает пустой список результатов.

Ошибка

400 (Bad Request)

Возникла проблема с запросом. Например, недопустимый синтаксис параметра запроса.

413 (Payload Too Large)

Размер результатов превышает максимальный размер полезной нагрузки, поддерживаемый исходным сервером. Пользовательский агент может повторить запрос с разбиением на страницы или с более узким запросом для уменьшения размера результата.


11.9.3.2 Response Header Fields

Исходный сервер должен поддерживать поля заголовка, как указано в Таблице 11.9.3-2.

Table 11.9.3-2. Response Header Fields

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

M

Тип медиа полезной нагрузки.

Content-Length

Uint

C

Должен присутствовать, если кодирование передачи не применено к полезной нагрузке.

Transfer-Encoding

Encoding

C

Должен присутствовать, если кодирование передачи применено к полезной нагрузке.

Content-Location

url

C

Должно присутствовать, если ответ содержит полезную нагрузку с ресурсом. См. Раздел 8.4.3.

Может присутствовать в остальных случаях.


См. также Раздел 8.4.

11.9.3.3 Response Payload

Полезная нагрузка ответа при успехе должна содержать результаты поиска в приемлемом типе медиа. См. Раздел 8.7.5. Если (results = 0), то совпадений нет и должен быть возвращён ответ 200 (OK) с пустой полезной нагрузкой. Пустая полезная нагрузка должна быть отформатирована, как указано в Разделе 8.3.4.4.1. См. Раздел 8.6.

Каждый результат поиска в полезной нагрузке должен соответствовать всем требованиям в столбцах Matching Key Type и Return Key Type из Таблицы CC.2.5-3 «Атрибуты N-CREATE/N-SET/N-GET/C-FIND класса SOP UPS» в PS3.4.

Полезная нагрузка ответа об ошибке может содержать Отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

11.10 Subscribe Transaction

Эта Транзакция создаёт подписку на ресурс Рабочего списка или Рабочего элемента. Она соответствует операции UPS DIMSE N-ACTION «Subscribe to Receive UPS Event Reports».

После создания подписки пользовательский агент будет получать уведомления, содержащие Отчёты о событиях для событий, связанных с ресурсом подписки. Чтобы получать уведомления, генерируемые подписками, пользовательский агент должен сначала открыть Соединение уведомлений между собой и исходным сервером с помощью Транзакции открытия соединения уведомлений; см. Раздел 8.10.4.

11.10.1 Request

Запрос должен иметь следующий синтаксис:

POST SP /workitems/{resource}/subscribers/{subscriber}{?deletionlock}{&filter} SP version CRLF
*(header-field CRLF)
CRLF

Пользовательский агент должен соответствовать поведению SCU, указанному в Разделе CC.2.3.2 «Поведение пользователя класса службы» в PS3.4.

11.10.1.1 Target Resources

Исходный сервер должен поддерживать ресурсы, указанные в Таблице 11.10.1-1.

Table 11.10.1-1. Subscribe Transaction Resources

Ресурс

Шаблон URI

Worklist Subscription

/workitems/1.2.840.10008.5.1.4.34.5/subscribers/{subscriber}

Filtered Worklist Subscription

/workitems/1.2.840.10008.5.1.4.34.5.1/subscribers/{subscriber}

Workitem Subscription

/workitems/{workitem}/subscribers/{subscriber}


11.10.1.2 Query Parameters

Исходный сервер должен поддерживать параметры запроса, как указано в Таблице 11.10.1-2.

Пользовательский агент должен указать в параметрах запроса, как требуется в Таблице 11.10.1-2.

Table 11.10.1-2. Query Parameters by Resource

Ключ

Значение

Ресурс

Использование

Описание

Пользовательский агент

Исходный сервер

accept

Тип медиа

Worklist, Filtered Worklist, Workitem

O

M

charset

charset

Worklist, Filtered Worklist, Workitem

O

M

deletionlock

true/false

Worklist, Filtered Worklist, Workitem

O

M

filter

1#(attribute"=" value)

Filtered Worklist

C

M

Должен присутствовать, если целевым ресурсом является отфильтрованный Рабочий список.


Параметр запроса Deletion Lock имеет следующий синтаксис:

deletionlock = "deletionlock=" true / false

Если присутствует со значением true, подписка будет создана с блокировкой удаления (см. Раздел CC.2.3.1 «Информация о действии» в PS3.4).

Параметр запроса Filter имеет следующий синтаксис:

filter = 1#(attribute "=" value)

Это разделённый запятыми список из одного или нескольких ключей сопоставления (пар атрибут/значение). Подписка на Рабочий элемент будет создана для любого существующего и будущего Рабочего элемента, который соответствует парам атрибут/значение фильтра. Допустимые атрибуты для этого параметра запроса определяются IOD UPS (см. Раздел B.26.2 «Модули IOD» в PS3.3).

См. Раздел 8.3.4.1 для синтаксиса ключей сопоставления.

11.10.1.3 Request Header Fields

Запрос не имеет обязательных полей заголовка. See Разделе 8.4.

11.10.1.4 Request Payload

Запрос не имеет полезной нагрузки.

11.10.2 Behavior

Исходный сервер должен создать подписку на целевой ресурс и управлять ею для пользовательского агента. Исходный сервер должен соответствовать поведению SCP, указанному в Разделе CC.2.3.3 «Поведение поставщика класса службы» в PS3.4.

11.10.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF)
CRLF
[payload]

11.10.3.1 Status Codes

Таблица 11.10.3-1 показывает некоторые общие коды состояния, соответствующие этой Транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Table 11.10.3-1. Status Code Meaning

Статус

Код

Значение

Успех

201 (Created)

Подписка была создана.

Ошибка

400 (Bad Request)

Возникла проблема с синтаксисом запроса.

403 (Forbidden)

Исходный сервер понял запрос, но отказывается выполнять запрос (например, исходный сервер не поддерживает фильтрацию подписки на Рабочий список или у авторизованного пользователя недостаточно привилегий).

404 (Not Found)

Целевой ресурс не найден.


11.10.3.2 Response Header Fields

Исходный сервер должен поддерживать поля заголовка, как указано в Таблице 11.10.3-2.

Table 11.10.3-2. Response Header Fields

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

C

Должен присутствовать, если ответ содержит полезную нагрузку.

Content-Location

url

C

URL-ссылка на Соединение WebSocket.

Должен присутствовать, если подписка была создана.

URL должен включать протокол WebSocket (WS или WSS) и может включать комбинацию полномочий и пути.

Warning

String

C

См. ниже.


Если запрос на создание подписки был принят, но Блокировка удаления — нет, ответ должен включать следующее поле заголовка Warning:

Warning: 299 <service>: Deletion Lock not granted.

и может содержать Отчёт о состоянии.

Если запрос был отклонён с кодом состояния 403, поскольку подписка на отфильтрованный Рабочий список не поддерживается, ответ должен включать следующее поле заголовка Warning:

Warning: 299 <service>: Filtered Worklist Subscriptions are not supported.

См. также Раздел 8.4.

11.10.3.3 Response Payload

Полезная нагрузка ответа при успехе может содержать Отчёт о состоянии.

Полезная нагрузка ответа об ошибке может содержать Отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

11.11 Unsubscribe Transaction

Эта Транзакция используется для остановки отправки исходным сервером новых Отчётов о событиях пользовательскому агенту и может также остановить подписку пользовательского агента на новые Рабочие элементы.

11.11.1 Request

Запрос должен иметь следующий синтаксис:

DELETE SP {/resource} SP version CRLF
*(header-field CRLF)
CRLF

11.11.1.1 Target Resources

Исходный сервер должен поддерживать ресурсы, указанные в Таблице 11.11.1-1.

Table 11.11.1-1. Unsubscribe Transaction Resources

Ресурс

Шаблон URI

Worklist Subscription

/workitems/1.2.840.10008.5.1.4.34.5/subscribers/{subscriber}

Filtered Worklist Subscription

/workitems/1.2.840.10008.5.1.4.34.5.1/subscribers/{subscriber}

Workitem Subscription

/workitems/{workitem}/subscribers/{subscriber}


11.11.1.2 Query Parameters

Запрос не имеет параметров запроса.

11.11.1.3 Request Header Fields

Запрос не имеет обязательных полей заголовка.

11.11.1.4 Request Payload

Запрос не имеет полезной нагрузки.

11.11.2 Behavior

При получении запроса отписки исходный сервер должен попытаться удалить подписку на Рабочий элемент, подписку на Рабочий список или подписку на отфильтрованный Рабочий список указанной Application Entity относительно указанного UID Рабочего элемента, UID Рабочего списка или UID отфильтрованного Рабочего списка, как описано в Разделе CC.2.3.3 в PS3.4 and then return an appropriate response.

Для ресурса Рабочего элемента это соответствует операции UPS DIMSE N-ACTION «Unsubscribe from Receiving UPS Event Reports».

Для ресурса Рабочего списка или отфильтрованного Рабочего списка эта Транзакция соответствует операции UPS DIMSE N-ACTION «Unsubscribe from Receiving UPS Event Reports» для глобальной подписки, идентифицируемой известным UID.

11.11.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF)
CRLF
[payload]

11.11.3.1 Status Codes

Таблица 11.11.3-1 показывает некоторые общие коды состояния, соответствующие этой Транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Table 11.11.3-1. Status Code Meaning

Статус

Код

Значение

Успех

200 (OK)

Подписка(и) были удалены.

Ошибка

400 (Bad Request)

Возникла проблема с запросом. Например, отсутствует UID целевого Рабочего элемента.

404 (Not Found)

Целевая подписка не найдена.


11.11.3.2 Response Header Fields

Исходный сервер должен поддерживать поля заголовка, как указано в Таблице 11.11.3-2.

Table 11.11.3-2. Response Header Fields

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

C

Тип медиа полезной нагрузки ответа.

Должен присутствовать, если ответ имеет полезную нагрузку.

Content-Length

uint

C

Должен присутствовать, если кодирование передачи не применено к полезной нагрузке.

Transfer-Encoding

encoding

C

Должен присутствовать, если кодирование передачи применено к полезной нагрузке

Warning

text

O

Предупреждающее сообщение.


См. также Раздел 8.4.

11.11.3.3 Response Payload

Ответ при успехе не должен иметь полезной нагрузки.

Полезная нагрузка ответа об ошибке может содержать Отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

11.12 Suspend Global Subscription Transaction

Эта Транзакция используется для остановки автоматической подписки пользовательского агента исходным сервером на новые Рабочие элементы. Это не удаляет существующие подписки на конкретные Рабочие элементы.

11.12.1 Request

Запрос должен иметь следующий синтаксис:

POST SP {/resource} SP version CRLF
*(header-field CRLF)
CRLF

11.12.1.1 Target Resources

Исходный сервер должен поддерживать ресурсы, указанные в Таблице 11.12.1-1.

Table 11.12.1-1. Suspend Global Subscription Transaction Resources

Ресурс

Шаблон URI

Worklist Subscription

/workitems/1.2.840.10008.5.1.4.34.5/subscribers/{subscriber}/suspend

Filtered Worklist Subscription

/workitems/1.2.840.10008.5.1.4.34.5.1/subscribers/{subscriber}/suspend


11.12.1.2 Query Parameters

Запрос не имеет параметров запроса.

11.12.1.3 Request Header Fields

Запрос не имеет обязательных полей заголовка.

11.12.1.4 Request Payload

Запрос не имеет полезной нагрузки.

11.12.2 Behavior

При получении запроса приостановки исходный сервер должен попытаться удалить подписку на Рабочий список или подписку на отфильтрованный Рабочий список указанной Application Entity относительно указанного UID Рабочего списка или UID отфильтрованного Рабочего списка, как описано в Разделе CC.2.3.3 в PS3.4 and then return an appropriate response.

Эта Транзакция соответствует операции UPS DIMSE N-ACTION «Suspend Global Subscription»

11.12.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF)
CRLF
[payload]

11.12.3.1 Status Codes

Таблица 11.12.3-1 показывает некоторые общие коды состояния, соответствующие этой Транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Table 11.12.3-1. Status Code Meaning

Статус

Код

Значение

Успех

200 (OK)

Подписка на Рабочий список была приостановлена.

Ошибка

400 (Bad Request)

Возникла проблема с запросом. Например, отсутствует UID целевого Рабочего списка.

404 (Not Found)

Целевая подписка не найдена.


11.12.3.2 Response Header Fields

Исходный сервер должен поддерживать поля заголовка, как указано в Таблице 11.12.3-2.

Table 11.12.3-2. Response Header Fields

Имя

Значение

Использование исходным сервером

Описание

Content-Type

media-type

C

Тип медиа полезной нагрузки ответа.

Должен присутствовать, если ответ имеет полезную нагрузку.

Content-Length

uint

C

Должен присутствовать, если кодирование передачи не применено к полезной нагрузке.

Transfer-Encoding

encoding

C

Должен присутствовать, если кодирование передачи применено к полезной нагрузке.

Warning

text

O

Предупреждающее сообщение.


См. также Раздел 8.4.

11.12.3.3 Response Payload

Ответ при успехе не должен иметь полезной нагрузки.

Полезная нагрузка ответа об ошибке может содержать Отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

11.13 Workitem Event Reports

Исходный сервер использует Транзакцию отправки отчёта о событии (см. Раздел 8.10.5) для отправки Отчёта о событии Рабочего элемента, содержащего подробности любого изменения состояния Рабочего элемента пользовательскому агенту.

Исходный сервер должен отправлять Отчёты о событиях Рабочих элементов, как описано в Разделе CC.2.4.3 в PS3.4 .

Отчёт о событии должен содержать все обязательные атрибуты, описанные в Таблице CC.2.4-1 «Отчёт об изменении статуса UPS — информация отчёта о событии» в PS3.4 и Таблице 10.3-2 «Поля сообщения N-EVENT-REPORT-RSP» в PS3.7.

Ниже приведён пример полезной нагрузки Отчёта о событии Рабочего элемента в формате application/dicom+json:

{
"00000002": {"vr": "UI", "Value": ["1.2.840.10008.5.1.4.34.6.4"] },
"00000110": {"vr": "US", "Value": [23] },
"00001000": {"vr": "UI", "Value": ["2.25.13834239247872462607454213026820645668"] },
"00001002": {"vr": "US", "Value": [1] },
"00404041": {"vr": "US", "Value": ["READY"] },
"00741000": {"vr": "LT", "Value": ["SCHEDULED"] }
} CRLF

12 Non-Patient Instance Service and Resources

12.1 Overview

Сервис хранения экземпляров, не связанных с пациентом (NPI), позволяет пользовательскому агенту извлекать, сохранять и выполнять поиск на исходном сервере для экземпляров, не связанных с отдельным пациентом.

Примечание

  1. Экземпляры, не связанные с пациентом, подчиняются информационной модели IOD составного экземпляра, которая не имеет в своём корне информационной сущности пациента, представляющей отдельного пациента.

  2. «Не связанный с пациентом» не означает, что в экземплярах нет связанной с пациентом идентифицируемой информации. Например, IOD Inventory включает атрибуты пациента, но не имеет IE пациента в корне своей информационной модели.

Служба хранилища NPI управляет коллекцией ресурсов, относящихся к категориям, указанным в Таблице 12.1.1-1.

Все исходные серверы сервиса хранения NPI должны поддерживать транзакции Retrieve Capabilities, Retrieve и Search. Поддержка транзакции Store необязательна. Все пользовательские агенты сервиса хранения NPI поддерживают одну или несколько из транзакций Retrieve Capabilities, Retrieve, Store или Search.

12.1.1 Resource Descriptions

Сервис NPI управляет ресурсами из одной категории NPI. Целевые URI имеют следующие шаблоны:

/{npi-name}
/{npi-name}/{uid}

Где

npi-name    = "color-palettes"
            / "defined-procedure-protocols"
            / "hanging-protocols"
            / "implant-templates"
            / "inventories"
            / "protocol-approvals"
uid         ; is the Unique Identifier of an NPI Instance

Таблице 12.1.1-1 contains the templates for the NPI Resource Categories.

Table 12.1.1-1. Resource Categories, URI Templates and Descriptions

Категория ресурса

Шаблон URI и описание

Соответствующий IOD

Класс хранения

Информационная модель

Цветовая палитра

/color-palettes{/uid}

Section A.58 “Color Palette IOD” in PS3.3

Section GG “Non-Patient Object Storage Service Class” в PS3.4

Section X.1.3 “Query/Retrieve Information Model” в PS3.4

Определённый протокол процедуры

/defined-procedure-protocols{/uid}

Section A.82 “Procedure Protocol IODs” in PS3.3

Section GG “Non-Patient Object Storage Service Class” в PS3.4

Section HH.1.3 “Query/Retrieve Information Model” в PS3.4

Протокол вывода на экран

/hanging-protocols{/uid}

Section A.44 “Hanging Protocol IOD” in PS3.3

Section GG “Non-Patient Object Storage Service Class” в PS3.4

Section U.1.3 “Query/Retrieve Information Model” в PS3.4

Шаблон имплантата

/implant-templates{/uid}

Section A.61 “Generic Implant Template IOD” in PS3.3

Section GG “Non-Patient Object Storage Service Class” в PS3.4

Section BB.1.3 “Query/Retrieve Information Model” в PS3.4

Инвентаризация

/inventories{/uid}

Раздел A.88 «Inventory IOD» в PS3.3

Section GG “Non-Patient Object Storage Service Class” в PS3.4

Section JJ.2 “Inventory Q/R Information Model” в PS3.4

Утверждение протокола

/protocol-approvals{/uid}

Section A.82.3 “Protocol Approval IODs” in PS3.3

Section GG “Non-Patient Object Storage Service Class” в PS3.4

Section II.1.3 “Query/Retrieve Information Model” в PS3.4


Классы SOP NPI перечислены в Таблице GG.3-1 «Стандартные классы SOP» в PS3.4.

12.1.2 Common Query Parameters

Исходный сервер должен поддерживать параметры запроса, как указано в Таблице 12.1.2-1.

Пользовательский агент должен указать в параметрах запроса, как требуется в Таблице 12.1.2-1.

Table 12.1.2-1. Common Query Parameters

Имя

Значение

Использование

Раздел

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Разделе 8.3.3.1

Accept-Charset

charset

O

M

Разделе 8.3.3.2


См. также Раздел 8.4.

12.1.3 Common Media Types

Исходный сервер должен поддерживать типы мультимедиа, указанные как обязательные или по умолчанию в Таблице 12.1.3-1 для всех транзакций NPI.

Table 12.1.3-1. Default, Required, and Optional Media Types

Тип медиа

Использование

Раздел

application/dicom

Обязательный

Разделе 8.7.3.1

application/dicom+json

По умолчанию

Разделе 8.7.3.2

multipart/related; type="application/dicom+xml"

Обязательный

Разделе 8.7.3.2


12.2 Conformance

Исходный сервер, соответствующий сервису NPI, должен реализовать Транзакцию Retrieve Capabilities (см. Раздел 8.9.1).

Исходный сервер должен поддерживать транзакции, указанные как обязательные в Таблице 12.2-1.

Table 12.2-1. Required and Optional Transactions

Транзакция

Поддержка

Раздел

Retrieve Capabilities

Обязательный

Разделе 8.9

Retrieve

Обязательный

Разделе 12.4

Store

Необязательный

Разделе 12.5

Search

Обязательный

Разделе 12.6


Реализации должны указать в своём Заявлении о соответствии (см. PS3.2) и Транзакции Retrieve Capabilities (см. Раздел 8.9 и Приложение H):

  • Роль реализации: исходный сервер, пользовательский агент или обе роли.

  • Поддерживаемые ресурсы (IOD) для каждой роли.

Кроме того, для каждой поддерживаемой Транзакции они должны указать:

  • Поддерживаемые параметры запроса, включая необязательные атрибуты, если они есть.

  • Поддерживаемые типы медиа DICOM.

  • Поддерживаемые наборы символов (если отличные от UTF-8).

12.3 Transactions Обзор

Служба NPI состоит из транзакций, перечисленных в Таблице 12.3-1.

Table 12.3-1. NPI Service Transactions

Транзакция

Метод

Ресурс

Полезная нагрузка

Описание

Запрос

Ответ при успехе

Retrieve Capabilities

OPTIONS

/

N/A

Описание возможностей

Извлекает описание возможностей сервиса NPI, включая транзакции, ресурсы, параметры запроса и т. д.

Retrieve

GET

/{npi-name}/{uid}

N/A

Экземпляр и/или отчёт о состоянии

Извлекает экземпляр, указанный целевым ресурсом, в приемлемом типе медиа DICOM.

Store

POST

/{npi-name}{/uid}

Экземпляр(ы)

Status Report

Сохраняет один или несколько экземпляров DICOM, содержащихся в полезной нагрузке запроса, в расположении, на которое ссылается целевой URL.

Search

GET

/{npi-name}

?{params*}

N/A

Результат(ы) и/или отчёт о состоянии

Выполняет поиск в целевом ресурсе экземпляров, соответствующих параметрам поиска, и возвращает список совпадений в приемлемом типе медиа DICOM.


Параметр npi-name указывает тип ресурса(ов), содержащегося в полезной нагрузке.

Таблице 12.3-2 summarizes the Target Resources permitted for each Transaction.

Table 12.3-2. Resources by Transaction

Ресурс

URI

Retrieve

Store

Search

Capabilities

Сервис NPI

/

X

Все экземпляры

/{npi-name}

X

X

Экземпляр

/{npi-name}/{uid}

X

X


12.4 Retrieve Transaction

Транзакция извлечения извлекает целевой ресурс NPI в типе медиа DICOM.

12.4.1 Request

Запрос должен иметь следующий синтаксис:

GET SP /{npi-name}/{uid} SP version CRLF
Accept: 1#dicom-media-type CRLF
*(header-field CRLF)
CRLF

12.4.1.1 Target Resources

Целевой URI должен ссылаться на один из ресурсов, показанных в Таблице 12.4.1-1.

Исходный сервер должен указать все поддерживаемые npi-names в своём Заявлении о соответствии и в ответе на Транзакцию Retrieve Capabilities.

Table 12.4.1-1. Retrieve Transaction Resources

Ресурс

Шаблон URI

Экземпляр

/{npi-name}/{uid}

12.4.1.2 Query Parameters

Пользовательский агент должен предоставлять, а исходный сервер должен поддерживать общие параметры запроса из Раздела 12.1.2.

12.4.1.3 Request Header Fields

Исходный сервер должен поддерживать поля заголовка, как указано в Таблице 12.4.1-2.

Пользовательский агент должен указать в полях заголовка запроса, как определено в Таблице 12.4.1-2.

Table 12.4.1-2. Request Header Fields

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

1#dicom-media-type

M

M

Приемлемые типы медиа для полезной нагрузки ответа.


См. также Раздел 8.4.

12.4.1.4 Request Payload

Запрос не имеет полезной нагрузки.

12.4.2 Behavior

Исходный сервер должен попытаться найти целевой ресурс и, если он найден, вернуть его в допустимом типе мультимедиа DICOM. См. Раздел 8.7.5.

Полезная нагрузка ответа об ошибке может содержать Отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

12.4.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: dicom-media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF
CRLF
[payload]

12.4.3.1 Status Codes

Таблица 12.4.3-1 показывает некоторые общие коды состояния, соответствующие этой Транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Table 12.4.3-1. Status Code Meaning

Статус

Код

Значение

Успех

200 (OK)

Экземпляр был успешно извлечён.

Ошибка

400 (Bad Request)

Возникла проблема с запросом.

404 (Not Found)

Исходный сервер не нашёл текущее представление для целевого ресурса или не желает раскрывать его существование. Например, неподдерживаемый IOD или экземпляр отсутствует на сервере.

406 (Unsupported Media Type)

Исходный сервер не поддерживает ни один из приемлемых типов медиа.


12.4.3.2 Response Header Fields

Table 12.4.3-2. Response Header Fields

Поле заголовка

Значение

Использование исходным сервером

Требования

Content-Type

dicom-media-type

M

Тип медиа полезной нагрузки ответа.

Content-Length

uint

C

Должен присутствовать, если кодирование передачи не применено к полезной нагрузке.

Transfer-Encoding

encoding

C

Должен присутствовать, если кодирование передачи применено к полезной нагрузке.


См. также Раздел 8.4.

12.4.3.3 Response Payload

Ответ при успехе должен иметь полезную нагрузку, содержащую экземпляр DICOM, указанный целевым ресурсом.

Полезная нагрузка ответа об ошибке может содержать Отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

12.5 Store Transaction

Эта Транзакция запрашивает у исходного сервера сохранение представлений NPI, содержащихся в полезной нагрузке запроса, чтобы они могли быть извлечены в будущем с использованием UID экземпляров SOP.

12.5.1 Request

Запрос должен иметь следующий синтаксис:

POST SP /{npi-name} {/uid} SP version CRLF
Content-Type: dicom-media-type CRLF
(Content-Length: uint / Transfer-Encoding: encoding) CRLF
CRLF
payload

12.5.1.1 Target Resources

Целевой URI должен ссылаться на один из ресурсов, показанных в Таблице 12.5.1-1.

Исходный сервер должен указать все поддерживаемые npi-names в своём Заявлении о соответствии и в ответе на Транзакцию Retrieve Capabilities.

Table 12.5.1-1. Store Transaction Resources

Ресурс

Шаблон URI

Описание

Все экземпляры

/{npi-name}

Сохраняет представления набора экземпляров.

Экземпляр

/{npi-name} {/uid}

Сохраняет представление одного экземпляра с UID, равным uid.


12.5.1.2 Query Parameters

Пользовательский агент должен предоставлять, а исходный сервер должен поддерживать общие параметры запроса из Раздела 12.1.2.

12.5.1.3 Request Header Fields

Table 12.5.1-2. Request Header Fields

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Content-Type

media-type

M

M

Тип медиа DICOM полезной нагрузки запроса.

Content-Length

uint

C

M

Должен присутствовать, если кодирование передачи не применено к полезной нагрузке.

Transfer-Encoding

encoding

C

M

Должен присутствовать, если кодирование передачи применено к полезной нагрузке.


См. также Раздел 8.4.

12.5.1.4 Request Payload

Полезная нагрузка запроса должна присутствовать и содержать одно или несколько представлений в типе медиа DICOM, указанном в поле заголовка Content-Type сообщения, а для многосоставных полезных нагрузок — в поле заголовка Content-Type каждой части.

12.5.2 Behavior

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

Перед сохранением представлений исходный сервер может скорректировать элементы данных.

Если какой-либо элемент скорректирован, Original Attribute Sequence (0400,0561) (см. Раздел C.12.1 «Общий модуль SOP» в PS3.3) должен быть включён в сохранённые экземпляры DICOM. Как Original Attribute Sequence, так и ответ должны описывать изменения.

12.5.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF)
CRLF
[payload]

12.5.3.1 Status Codes

Таблица 12.5.3-1 показывает некоторые общие коды состояния, соответствующие этой Транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Table 12.5.3-1. Status Code Meaning

Статус

Код

Значение

Успех

200 (OK)

Исходный сервер успешно сохранил или создал по крайней мере одно из представлений, содержащихся в полезной нагрузке запроса, и возвращает полезную нагрузку ответа.

202 (Accepted)

Исходный сервер успешно проверил сообщение запроса, но ещё не сохранил и не создал представления в полезной нагрузке запроса. Исходный сервер мог проверить или не проверять полезную нагрузку.

Пользовательский агент может позже использовать Транзакцию запроса или извлечения, чтобы определить, завершён ли запрос.

Ошибка

400 (Bad Request)

Возникла проблема с запросом. Например:

  • the origin server did not store any of the representations contained in the request payload because of errors in the request message,

  • запрос содержал недопустимый параметр запроса,

  • запрос ссылался на недопустимый экземпляр.

404 (Not Found)

Исходный сервер не нашёл текущее представление для целевого ресурса или не желает раскрывать его существование. Например, неподдерживаемый IOD или экземпляр отсутствует на сервере.

409 (Conflict)

Запрос не может быть выполнен из-за конфликта с текущим состоянием целевого ресурса.

415 (Unsupported Media Type)

Исходный сервер не поддерживает тип медиа, указанный в поле заголовка Content-Type запроса, и ни одно из представлений, содержащихся в запросе, не было обработано или сохранено.


12.5.3.2 Response Header Fields

Table 12.5.3-2. Response Header Fields

Поле заголовка

Значение

Использование исходным сервером

Требования

Content-Type

dicom-media-type

M

Тип медиа полезной нагрузки ответа.

Content-Length

uint

C

Должен присутствовать, если кодирование передачи не применено к полезной нагрузке

Transfer-Encoding

encoding

C

Должен присутствовать, если кодирование передачи применено к полезной нагрузке


См. также Раздел 8.4.

12.5.3.3 Response Payload

Если исходному серверу не удалось сохранить или он изменил какие-либо представления в полезной нагрузке запроса, полезная нагрузка ответа должна содержать Отчёт о состоянии, описывающий любые добавления, изменения или удаления сохранённых представлений. Отчёт о состоянии может также описывать любые предупреждения или другую полезную информацию.

12.6 Search Transaction

Транзакция поиска выполняет поиск в коллекции экземпляров NPI, содержащихся в целевом ресурсе. Критерии поиска указываются в параметрах запроса. Каждое совпадение включает атрибуты по умолчанию и запрошенные атрибуты из соответствующего экземпляра. Успешный ответ возвращает список, описывающий соответствующие экземпляры.

12.6.1 Request

Запрос должен иметь следующий синтаксис:

GET SP /{npi-name} {?parameter*} SP version CRLF
Accept: 1#dicom-media-type CRLF
*(header-field CRLF)
CRLF

12.6.1.1 Target Resources

Целевой URI должен ссылаться на один из ресурсов, показанных в Таблице 12.6.1-1.

Исходный сервер должен указать все поддерживаемые npi-names в своём Заявлении о соответствии и в ответе на Транзакцию Retrieve Capabilities.

Table 12.6.1-1. Search Transaction Resources

Ресурс

Шаблон URI

Описание

Все экземпляры

/{npi-name}

Выполняет поиск в коллекции экземпляров NPI.


12.6.1.2 Query Parameters

Пользовательский агент должен предоставлять, а исходный сервер должен поддерживать общие параметры запроса из Раздела 12.1.2.

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 8.3.4-1.

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 8.3.4-1.

Для каждой категории ресурсов, поддерживаемой исходным сервером, он должен поддерживать поведение и ключевые атрибуты сопоставления, указанные в соответствующих разделах в Таблице 12.6.1-2.

Table 12.6.1-2. NPI Resource Search Attributes

Категория ресурса

Поведение и ключевые атрибуты сопоставления

Цветовая палитра

Section X.6.1.2 “Color Palette Attributes” в PS3.4.

Определённый протокол процедуры

Section HH.6.1.2 “Defined Procedure Protocol Attributes” в PS3.4.

Протокол вывода на экран

Section U.6.1.2 “Hanging Protocol Attributes” в PS3.4.

Шаблон имплантата

Section BB.6.1.2 “Implant Template Attributes” в PS3.4.

Инвентаризация

Section JJ.2.2 “Inventory Q/R Information Model Attributes” в PS3.4.

Утверждение протокола

Section II.6.1.2 “Protocol Approval Attributes” в PS3.4.


12.6.1.3 Request Header Fields

Исходный сервер должен поддерживать поля заголовка, как указано в Таблице 12.6.1-3.

Пользовательский агент должен указать в полях заголовка запроса, как определено в Таблице 12.6.1-3.

Table 12.6.1-3. Request Header Fields

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

1#dicom-media-type

M

M

Приемлемые типы медиа для полезной нагрузки ответа.


См. также Раздел 8.4.

12.6.1.4 Request Payload

Запрос не имеет полезной нагрузки.

12.6.2 Behavior

Исходный сервер должен выполнить поиск, указанный в запросе, используя поведение сопоставления, указанное в Разделе 8.3.4.1.1 и в соответствующих разделах в Таблице 8.3.4-1.

Правила для результатов поиска указаны в Разделе 8.3.4.

12.6.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[Content-Type: dicom-media-type CRLF]
[(Content-Length: uint / Transfer-Encoding: encoding) CRLF]
[Content-Location: url CRLF]
*(header-field CRLF
CRLF
[payload]

12.6.3.1 Status Codes

Таблица 12.6.3-1 показывает некоторые общие коды состояния, соответствующие этой Транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Table 12.6.3-1. Status Code Meaning

Статус

Код

Значение

Успех

200 (OK)

Запрос завершён, и любые соответствующие результаты возвращаются в теле сообщения.

Ошибка

400 (Bad Request)

Сообщение запроса содержало ошибку. Например, недопустимые параметры запроса

406 (Unsupported Media Type)

Исходный сервер не поддерживает ни один из приемлемых типов медиа.

413 (Payload Too Large)

Поиск был слишком широким, и тело ответа должно содержать Отчёт о состоянии с дополнительной информацией об ошибке.


12.6.3.2 Response Header Fields

Table 12.6.3-2. Response Header Fields

Поле заголовка

Значение

Использование исходным сервером

Требование

Content-Type

dicom-media-type

M

Тип медиа полезной нагрузки ответа.

Content-Length

Uint

C

Должен присутствовать, если кодирование передачи не применено к полезной нагрузке.

Transfer-Encoding

Encoding

C

Должен присутствовать, если кодирование передачи применено к полезной нагрузке.


См. также Раздел 8.4.

12.6.3.3 Response Payload

Успешный ответ должен содержать результаты поиска в допустимом типе мультимедиа. См. Раздел 8.7.5.

Полезная нагрузка ответа об ошибке может содержать Отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

13 Storage Commitment Service and Resources

13.1 Обзор

Служба подтверждения сохранения (Storage Commitment Service) позволяет пользовательскому агенту запрашивать надежное сохранение экземпляров на исходном сервере. Она соответствует классу службы DIMSE Storage Commitment, определенному в Разделе J «Класс службы подтверждения сохранения» в PS3.4, и имеет ту же семантику.

Поскольку подтверждение сохранения экземпляров часто является длительной операцией на исходном сервере, использование этой службы может быть разделено на две транзакции по усмотрению исходного сервера: 1) запрос подтверждения и — когда исходный сервер еще не может вернуть результат — 2) проверка результата, в соответствии с шаблоном Asynchronous Request-Reply (ARR) [Ekuan].

Примечание

PACS может задерживать ответ на запрос подтверждения сохранения, который он получает, например, до тех пор, пока используемая им VNA для долгосрочного хранения не даст подтверждение для указанных экземпляров.

Рисунок 13.1-1 показывает возможные сценарии запроса подтверждения сохранения.

Процесс службы подтверждения сохранения

Рисунок 13.1-1. Процесс службы подтверждения сохранения


Процесс начинается, когда пользовательский агент отправляет запрос исходному серверу. Этот запрос требует от исходного сервера подтверждения надежного сохранения набора SOP-экземпляров, определенных соответствующими UID.

В случае, если исходный сервер отвечает на запрос статусом Done, он ведет себя синхронно и возвращает для каждого экземпляра, подтверждает ли он надежное сохранение этого экземпляра или нет. Пользовательский агент может обработать этот результат соответствующим образом, например, удалив локальные копии экземпляров, которые теперь надежно сохранены на исходном сервере.

В случае, если исходный сервер отвечает на запрос статусом Working, он ведет себя асинхронно и продолжает обработку запроса. В этом случае пользовательскому агенту необходимо через некоторое время выполнить проверку результата. При выполнении такой проверки исходный сервер может ответить статусом Done и предоставит результат того же типа, что и в синхронном случае, который пользовательский агент может обработать тем же образом. Исходный сервер также может ответить на проверку результата статусом Working, что заставит пользовательского агента повторить проверку результата. Этот процесс продолжается до тех пор, пока исходный сервер не ответит статусом Done, завершая процесс.

Как для запроса, так и для проверки результата возможно, что исходный сервер вернет ошибку, и это также должно быть соответствующим образом обработано пользовательским агентом; см. Таблицу 13.4.3-1 и Таблицу 13.5.3-1 для получения более подробной информации.

13.1.1 Описания ресурсов

Эта служба определяет один ресурс:

Таблица 13.1.1-1. Описания ресурсов службы подтверждения сохранения

Ресурс

Шаблон URI

/commitment-requests

Запросы подтверждения сохранения, управляемые исходным сервером.


13.1.2 Общие параметры запроса

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 13.1.2-1.

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 13.1.2-1.

Таблица 13.1.2-1. Общие параметры запроса

Имя

Значение

Использование

Раздел

Пользовательский агент

Исходный сервер

Accept

media-type

O

M

Раздел 8.3.3.1

Accept-Charset

charset

O

M

Раздел 8.3.3.2


См. также Раздел 8.4.

13.1.3 Общие типы носителей

Исходный сервер должен поддерживать типы носителей, указанные как По умолчанию или Обязательные в Таблице 13.1.3-1.

Таблица 13.1.3-1. Типы носителей по умолчанию, обязательные и необязательные

Тип носителя

Использование

Раздел

application/dicom+json

По умолчанию

Раздел 8.7.3.2

application/dicom+xml

Обязательный

Раздел 8.7.3.2

multipart/related; type="application/dicom+json"

Обязательный

Раздел 8.7.3.2

multipart/related; type="application/dicom+xml"

Обязательный

Раздел 8.7.3.2


13.2 Соответствие

Реализации, соответствующие службе подтверждения сохранения, должны поддерживать транзакции, указанные как Обязательные в Таблице 13.2-1.

Таблица 13.2-1. Обязательные и необязательные транзакции

Транзакция

Поддержка

Раздел

Запрос (Request)

Обязательный

Раздел 13.4

Проверка результата (Result Check)

Обязательный

Раздел 13.5


Реализации, соответствующие службе подтверждения сохранения, должны указывать свою роль в Заявлении о соответствии (см. PS3.2): исходный сервер, пользовательский агент или оба варианта.

Кроме того, для каждой поддерживаемой транзакции они должны указывать:

  • поддерживаемые параметры запроса, включая необязательные атрибуты, если они есть;

  • поддерживаемые типы носителей DICOM;

  • поддерживаемые наборы символов (если они отличаются от UTF-8).

Исходный сервер, соответствующий службе подтверждения сохранения, должен реализовать транзакцию Retrieve Capabilities, указав свою роль (см. Раздел 8.9 и Приложение H).

Специфичные для реализации коды предупреждений и ошибок должны быть включены в Заявление о соответствии.

Реализация исходного сервера определяет, как она обеспечивает подтверждение сохранения. Некоторые исходные серверы могут подтверждать постоянное хранение SOP-экземпляров (например, система архивирования), тогда как другие исходные серверы могут подтверждать хранение SOP-экземпляров в течение ограниченного времени. Исходный сервер должен документировать в своем Заявлении о соответствии характер своего подтверждения сохранения (например, длительность хранения, возможности извлечения и задержка, емкость).

После того как исходный сервер подтвердил сохранение SOP-экземпляров, пользовательский агент может решить, что целесообразно удалить свои копии SOP-экземпляров. Поведение такого рода выходит за рамки настоящего Стандарта; тем не менее пользовательский агент должен документировать типы поведения, которые он может обеспечить, в своем Заявлении о соответствии.

Реализация исходного сервера должна указать в своем Заявлении о соответствии, как долго результат запроса будет доступен для пользовательского агента.

13.3 Обзор транзакций

Служба подтверждения сохранения состоит из транзакций, перечисленных в Таблице 13.3-1.

Таблица 13.3-1. Транзакции службы подтверждения сохранения

Имя транзакции

Метод

Полезная нагрузка

Описание

Запрос

Ответ при успехе

Запрос (Request)

POST

UID класса SOP и UID экземпляров SOP; при необходимости UID исследований и серий

Результат подтверждения сохранения

Запрашивает надежное сохранение указанного набора экземпляров.

Проверка результата (Result Check)

GET

Н/Д

Результат подтверждения сохранения

Получает результат запроса.


Эти транзакции используют один и тот же ресурс (/commitment-requests/{TransactionUID}), но различаются своим методом.

13.4 Транзакция запроса (Request)

Эта транзакция позволяет пользовательскому агенту запросить исходный сервер подтвердить надежное сохранение набора экземпляров.

13.4.1 Запрос

Запрос должен иметь следующий синтаксис:

POST SP /commitment-requests/{TransactionUID} SP version CRLF
Accept: 1#media-type CRLF
*(header-field CRLF)
CRLF
payload

13.4.1.1 Целевой ресурс

Целевым ресурсом этой транзакции является индивидуальный запрос подтверждения сохранения, идентифицируемый своим Transaction UID.

В DIMSE результаты могут возвращаться асинхронно, и SCU использует атрибут Transaction UID, возвращаемый SCP в результате, для сопоставления его с соответствующим запросом. В DICOMweb каждый запрос, содержащий Transaction UID в пути ресурса, синхронно связывается с ответом, поэтому Transaction UID не кодируется в ответе.

13.4.1.2 Параметры запроса

Запрос не имеет параметров запроса.

13.4.1.3 Заголовки запроса

Исходный сервер должен поддерживать заголовки запроса, как требуется в Таблице 13.4.1-2.

Пользовательский агент должен предоставлять заголовки запроса, как требуется в Таблице 13.4.1-2.

Таблица 13.4.1-2. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Допустимые типы носителей полезной нагрузки ответа.


См. также Раздел 8.4.

13.4.1.4 Полезная нагрузка запроса

Полезная нагрузка запроса должна присутствовать и должна содержать одно представление, согласованное с заголовком Content-Type. Представление должно соответствовать типам носителей, описанным в Разделе 8.7.3 Наборы типов носителей DICOM. Полезная нагрузка должна соответствовать Разделу 8.6 Полезные нагрузки.

Полезная нагрузка запроса должна содержать Referenced SOP Instance UIDs, для которых пользовательский агент запрашивает у исходного сервера подтверждение сохранения.

Полезная нагрузка запроса должна содержать Модуль запроса подтверждения сохранения. См. Раздел J.1.

13.4.2 Поведение

Исходный сервер должен обработать запрос подтверждения сохранения. Ответ при успехе либо возвращает:

  • статус 200 (OK) с полезной нагрузкой ответа подтверждения сохранения, указывающей статус подтверждения сохранения для каждого указанного SOP-экземпляра, или

  • статус 202 (Accepted) без полезной нагрузки, указывающий пользовательскому агенту, что ему следует получить этот результат позже.

Примечание

Код успешного завершения 200 (OK) следует понимать только в том смысле, что запрос был успешно разобран и исходный сервер вернул ответ подтверждения сохранения. Ответ подтверждения сохранения может указывать на то, что подтверждение сохранения не удалось для некоторых или даже для всех указанных SOP-экземпляров.

13.4.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[retry-after CRLF]
CRLF
[payload]

13.4.3.1 Коды состояния

Таблица 13.4.3-1 показывает некоторые общие коды состояния, соответствующие этой транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 13.4.3-1. Значение кода состояния

Статус

Код

Значение

Успех

200 (OK)

Исходный сервер завершил обработку запроса подтверждения сохранения; полезная нагрузка подробно описывает, какие указанные SOP-экземпляры были приняты для надежного сохранения, а какие — нет.

202 (Accepted)

Исходный сервер еще не завершил обработку запроса подтверждения сохранения; полезная нагрузка отсутствует. Ожидается, что пользовательский агент продолжит взаимодействие с помощью транзакции проверки результата, как описано в Разделе 13.5, чтобы получить результат запроса подтверждения сохранения.

Ошибка

400 (Bad Request)

Исходный сервер не может обработать запрос подтверждения сохранения из-за ошибок в заголовках или параметрах запроса.

409 (Conflict)

Исходный сервер не может обработать запрос подтверждения сохранения, поскольку предоставленный Transaction UID уже используется.

503 (Service Unavailable)

Исходный сервер не может обработать запрос подтверждения сохранения; это может быть временным или постоянным состоянием.


13.4.3.2 Заголовки ответа

Исходный сервер должен поддерживать заголовки, как требуется в Таблице 13.4.3-2.

Таблица 13.4.3-2. Заголовки ответа

Имя

Значение

Использование на исходном сервере

Описание

Content-Type

media-type

C

См. Раздел 8.4.2.

Content-Encoding

encoding

C

См. Раздел 8.4.2.

Content-Length

uint

C

См. Раздел 8.4.3.

Retry-After

uint

O

Количество секунд, в течение которых пользовательскому агенту предлагается подождать до (следующей) проверки результата или повторного выполнения запроса.


Все ответы при успехе должны также содержать Заголовки представления содержимого (см. Раздел 8.4.2) и заголовки полезной нагрузки (см. Раздел 8.4.3) с соответствующими значениями.

Рекомендуется, чтобы текст, возвращаемый в заголовке Warning (см. [RFC7234] Раздел 5.5), содержал код состояния DICOM (см. PS3.4 и Приложение C «Кодирование типов состояния (нормативное)» в PS3.7) и описательную причину. Например:

Warning: A700 <service>: Out of memory

13.4.3.3 Полезная нагрузка ответа

Полезная нагрузка успешного ответа 200 (OK) должна содержать Модуль ответа подтверждения сохранения. См. Раздел J.2.

Успешный ответ 202 (Accepted) не будет содержать полезной нагрузки.

Полезная нагрузка ответа при ошибке может содержать отчет о состоянии, описывающий ошибки, предупреждения или другую полезную информацию.

13.5 Транзакция проверки результата (Result Check)

Эта транзакция позволяет пользовательскому агенту запросить исходный сервер предоставить результат более раннего запроса.

Примечание

Пользовательский агент использует эту транзакцию, когда исходный сервер ответил кодом состояния 202 (Accepted) либо на запрос, либо на транзакцию проверки результата.

13.5.1 Запрос

Запрос должен иметь следующий синтаксис:

GET SP /commitment-requests/{TransactionUID} SP version CRLF
Accept: 1#media-type CRLF
*(header-field CRLF)
CRLF

13.5.1.1 Целевой ресурс

Целевым ресурсом этой транзакции является индивидуальный запрос подтверждения сохранения, идентифицируемый своим Transaction UID.

13.5.2.2 Параметры запроса

Запрос не имеет параметров запроса.

13.5.2.3 Заголовки запроса

Исходный сервер должен поддерживать заголовки проверки результата, как требуется в Таблице 13.5.1-2.

Пользовательский агент должен предоставлять заголовки проверки результата, как требуется в Таблице 13.5.1-2.

Примечание

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

Таблица 13.5.1-2. Заголовки проверки результата

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Допустимые типы носителей полезной нагрузки ответа.


См. также Раздел 8.4.

13.5.1.4 Полезная нагрузка запроса

Запрос не имеет полезной нагрузки.

13.5.2 Поведение

Если результат, идентифицированный Transaction UID, доступен на исходном сервере, этот результат возвращается в допустимом типе носителя (см. Раздел 8.7.4); результат подробно описывает, какие указанные SOP-экземпляры были приняты для надежного сохранения, а какие — нет.

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

13.5.3 Ответ

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
[retry-after CRLF]
CRLF
[payload]

13.5.3.1 Коды состояния

Таблица 13.5.3-1 показывает некоторые общие коды состояния, соответствующие этой транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 13.5.3-1. Значение кода состояния

Статус

Код

Значение

Успех

200 (OK)

Исходный сервер завершил обработку транзакции запроса, идентифицированной предоставленным Transaction UID (см. Раздел 13.4); полезная нагрузка содержит результат.

202 (Accepted)

Исходный сервер еще не завершил обработку транзакции запроса, идентифицированной предоставленным Transaction UID; полезная нагрузка отсутствует.

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

Ошибка

404 (Not Found)

Исходный сервер не может найти результат запроса подтверждения сохранения, идентифицированный предоставленным Transaction UID.

410 (Gone)

Исходный сервер больше не может предоставить результат запроса подтверждения сохранения, идентифицированный предоставленным Transaction UID.

503 (Service Unavailable)

Исходный сервер не может обработать запрос проверки результата; это может быть временным или постоянным состоянием.


Примечание

  1. Код состояния 404 (Not Found) может быть вызван неправильным Transaction UID, предоставленным пользовательским агентом, либо исходный сервер мог удалить соответствующий результат.

  2. Код состояния 410 (Gone) может быть вызван удалением исходным сервером соответствующего результата, при этом у него все еще есть запись о Transaction UID.

  3. При возврате кода состояния 404 (Not Found) или 410 (Gone) пользовательский агент может инициировать новый запрос подтверждения сохранения. При возврате кода состояния 503 (Service Unavailable) пользовательский агент может повторить попытку позже с помощью другой транзакции проверки результата.

13.5.3.2 Заголовки ответа

См. Раздел 13.4.3.2.

13.5.3.3 Полезная нагрузка ответа

См. Раздел 13.4.3.3.

14 Служба запланированных этапов процедуры модальности и ресурсы

14.1 Обзор

Служба запланированных этапов процедуры модальности позволяет пользовательскому агенту выполнять поиск запланированных этапов процедуры и сущностей, связанных с этими этапами, предназначенных для выполнения на модальности визуализации. Она соответствует службе DIMSE Modality Worklist (MWL), определенной в Приложении K к PS3.4 , и имеет ту же семантику.

14.1.1 Описания ресурсов

Служба запланированных этапов процедуры модальности обеспечивает доступ к коллекции запланированных этапов процедуры модальности, определенной как ресурс в Таблице 14.1.1-1.

Таблица 14.1.1-1. Ресурсы, шаблоны URI и описания

Ресурс

Шаблон URI

Описание

Запланированные этапы процедуры модальности

/modality-scheduled-procedure-steps

Коллекция запланированных этапов процедуры модальности, управляемая исходным сервером.


14.1.2 Общие параметры запроса

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 14.1.2-1.

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 14.1.2-1.

Таблица 14.1.2-1. Общие параметры запроса

Имя

Значение

Использование

Раздел

Пользовательский агент

Исходный сервер

Accept

media-type

O

M

Раздел 8.3.3.1

Accept-Charset

charset

O

M

Раздел 8.3.3.2


14.1.3 Общие типы носителей

Исходный сервер должен поддерживать типы носителей, указанные как По умолчанию или Обязательные в Таблице 14.1.3-1.

Таблица 14.1.3-1. Типы носителей по умолчанию, обязательные и необязательные

Тип носителя

Использование

Раздел

application/dicom+json

По умолчанию

Раздел 8.7.3.2

application/dicom+xml

Обязательный

Раздел 8.7.3.2

multipart/related; type="application/dicom+json"

Обязательный

Раздел 8.7.3.2

multipart/related; type="application/dicom+xml"

Обязательный

Раздел 8.7.3.2


14.2 Соответствие

Исходный сервер, соответствующий службе запланированных этапов процедуры модальности, должен поддерживать транзакцию Retrieve Capabilities (см. Раздел 8.9.1).

Исходный сервер, соответствующий службе запланированных этапов процедуры модальности, должен поддерживать транзакции, указанные как Обязательные в Таблице 14.2-1, и может поддерживать транзакции, указанные как Необязательные.

Таблица 14.2-1. Обязательные и необязательные транзакции

Транзакция

Поддержка

Раздел

Retrieve Capabilities

Обязательный

Раздел 8.9

Поиск (Search)

Обязательный

Раздел 14.4


Реализации должны указывать в своем Заявлении о соответствии (см. PS3.2) и в транзакции Retrieve Capabilities поддерживаемые транзакции и роль реализаций: исходный сервер, пользовательский агент или оба варианта.

Кроме того, для каждой поддерживаемой транзакции они должны указывать:

  • Поддерживаемые параметры запроса, включая необязательные атрибуты, если они есть.

  • Поддерживаемые типы носителей DICOM.

  • Поддерживаемые наборы символов (если они отличаются от UTF-8).

14.3 Обзор транзакций

Служба запланированных этапов процедуры модальности состоит из транзакций, перечисленных в Таблице 14.3-1.

Таблица 14.3-1. Транзакции службы запланированных этапов процедуры модальности

Имя транзакции

Метод

Полезная нагрузка

Описание

Запрос

Ответ при успехе

Поиск (Search)

GET

нет

Набор данных согласно Таблице K.6-1 в PS3.4

Выполняет поиск запланированных этапов процедуры модальности


Таблица 14.3-2 перечисляет транзакции службы запланированных этапов процедуры модальности и соответствующие им операции DIMSE, используемые в MWL.

Таблица 14.3-2. Соответствие транзакций службы запланированных этапов процедуры модальности и операций DIMSE

Транзакция

Операция

Ссылка

Служба DIMSE

Поиск (Search)

Запрос рабочего списка (Query Worklist)

Раздел K.4 в PS3.4

C-FIND


Примечание

Как и в DIMSE, эти транзакции не предоставляют полный интерфейс CRUDL для соответствующего ресурса. Например, невозможно создать запланированные этапы процедуры модальности с использованием DICOM — ни с помощью DIMSE, ни с помощью DICOMweb. То, что DICOM предоставляет, — это доступ к запланированным этапам процедуры на уровне, необходимом для модальностей.

14.4 Транзакция поиска (Search)

Эта транзакция выполняет поиск запланированных этапов процедуры модальности для тех этапов, которые соответствуют указанным параметрам запроса, и возвращает список подходящих запланированных этапов процедуры. Каждый запланированный этап процедуры в возвращаемом списке включает возвращаемые атрибуты, указанные в запросе. Эта транзакция соответствует операции DIMSE MWL C-FIND (см. Раздел K.4.1 в PS3.4 ).

14.4.1 Запрос

Запрос должен иметь следующий синтаксис:

GET SP /modality-scheduled-procedure-steps?{&match*}{&includefield}{&fuzzymatching}{&offset}{&limit} SP version CRLF
Accept: 1#media-type CRLF
*(header-field CRLF)
CRLF

Пользовательский агент должен соответствовать поведению SCU, указанному в Разделе K.2.2 «Определение атрибутов» в PS3.4 .

14.4.1.1 Целевые ресурсы

Целевым ресурсом для этой транзакции являются запланированные этапы процедуры модальности.

14.4.1.2 Параметры запроса

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 8.3.4-1.

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 8.3.4-1.

14.4.1.3 Заголовки запроса

Исходный сервер должен поддерживать заголовки, как требуется в Таблице 14.4.1-1.

Пользовательский агент должен предоставлять в запросе заголовки, как определено в Таблице 14.4.1-1.

Таблица 14.4.1-1. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Допустимые типы носителей полезной нагрузки ответа.


См. также Раздел 8.4.

14.4.1.4 Request Payload

Запрос не должен иметь полезной нагрузки.

14.4.2 Behavior

Исходный сервер должен выполнять поиск в соответствии с требованиями, указанными в Разделе 8.3.4.

Для каждого совпадающего запланированного этапа процедуры модальности исходный сервер должен включить в результаты:

14.4.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
*(header-field CRLF)
CRLF
[payload]

14.4.3.1 Status Codes

Таблица 14.4.3-1 показывает некоторые общие коды состояния, соответствующие этой транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 14.4.3-1. Значение кода состояния

Статус

Код

Значение

Успех

200 (OK)

Исходный сервер возвращает совпадающие результаты. Этот код состояния также используется для указания успешного поиска, не дающего результатов; в этом случае полезная нагрузка содержит пустой список результатов.

Ошибка

400 (Bad Request)

Исходный сервер не может обработать поисковый запрос из-за ошибок в заголовках или параметрах запроса.

413 (Payload Too Large)

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

503 (Service Unavailable)

Исходный сервер не может обработать запрос; это может быть временным или постоянным состоянием.


14.4.3.2 Response Header Fields

Исходный сервер должен поддерживать поля заголовка, как требуется в Таблице 14.4.3-2.

Таблица 14.4.3-2. Заголовки ответа

Имя

Значения

Использование исходным сервером

Описание

Content-Type

media-type

C

См. Раздел 8.4.2.

Content-Encoding

encoding

C

См. Раздел 8.4.2.

Content-Length

Uint

C

См. Раздел 8.4.3.


Все ответы об успехе должны также содержать поля заголовка представления содержимого (см. Раздел 8.4.2) и полезной нагрузки (см. Раздел 8.4.3) с соответствующими значениями.

14.4.3.3 Response Payload

Ответ об успехе должен содержать набор данных согласно Таблице K.6-1 в PS3.4 , предоставленный в допустимом типе носителя. См. Раздел 8.7.5.

Если (results = 0), то совпадений нет, и должен быть возвращён ответ 200 (OK) с пустой полезной нагрузкой. Пустая полезная нагрузка должна быть отформатирована, как указано в Разделе 8.3.4.4.1.

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

15 Modality Performed Procedure Step Service and Resources

15.1 Overview

Служба выполненного этапа процедуры модальности позволяет пользовательскому агенту сообщать о ходе выполнения этапов процедуры, выполняемых модальностями визуализации. Эта служба соответствует службе DIMSE Modality Performed Procedure Step (MPPS), определённой в Приложении F к PS3.4 , и имеет ту же семантику. Однако уведомления (Notifications), определённые в Разделе F.9 в PS3.4, не поддерживаются этой службой.

Примечание

Для достижения поведения, подобного уведомлению, предлагается имитировать подход, принятый в профиле интеграции Scheduled Workflow IHE [IHE RAD TF-1], где актор Performed Procedure Step Manager передает создание и обновление выполненных этапов процедуры модальности другим заинтересованным акторам.

15.1.1 Resource Descriptions

Эта служба определяет один ресурс:

В службе выполненного этапа процедуры модальности MPPS идентифицируется по MPPS UID, который соответствует UID экземпляра SOP, используемому в службе MPPS PS3.4; см., напр., Раздел F.7.2.1.2 в PS3.4.

Следующие переменные шаблона URI используются в определениях ресурсов на протяжении всего Раздела 15.

{mppsUID} UID объекта MPPS.

Служба выполненного этапа процедуры модальности управляет рядом объектов MPPS; её ресурсы приведены в Таблице 15.1.1-1.

Таблица 15.1.1-1. Описания ресурсов службы выполненного этапа процедуры модальности

Ресурс

URI Template

Описание

Выполненный этап процедуры модальности

/modality-performed-procedure-steps/{mppsUID}

Отдельный выполненный этап процедуры модальности.


15.1.2 Common Query Parameters

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 15.1.2-1.

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 15.1.2-1.

Таблица 15.1.2-1. Общие параметры запроса

Имя

Значение

Использование

Раздел

Пользовательский агент

Исходный сервер

Accept

media-type

O

M

Раздел 8.3.3.1

Accept-Charset

charset

O

M

Раздел 8.3.3.2


15.1.3 Common Media Types

Исходный сервер должен поддерживать типы носителей, указанные как Default или Required в Таблице 15.1.3-1.

Таблица 15.1.3-1. Типы носителей по умолчанию, обязательные и необязательные

Тип носителя

Использование

Раздел

application/dicom+json

По умолчанию

Раздел 8.7.3.2

application/dicom+xml

Обязательный

Раздел 8.7.3.2


15.2 Conformance

Исходный сервер, соответствующий службе выполненного этапа процедуры модальности, должен поддерживать транзакцию Retrieve Capabilities (см. Раздел 8.9.1). Кроме того, он должен поддерживать транзакции, указанные как Required в Таблице 15.2-1, и может поддерживать транзакции, указанные как Optional.

Таблица 15.2-1. Обязательные и необязательные транзакции

Транзакция

Поддержка

Раздел

Retrieve Capabilities

Обязательный

Раздел 8.9

Create

Обязательный

Раздел 15.4

Update

Обязательный

Раздел 15.5

Retrieve

Необязательный

Раздел 15.6


Реализации должны указывать в своём Заявлении о соответствии (см. PS3.2) и в транзакции Retrieve Capabilities поддерживаемые транзакции и роль реализаций: исходный сервер, пользовательский агент или обе роли.

Кроме того, для каждой поддерживаемой транзакции они должны указать:

  • Поддерживаемые параметры запроса, включая необязательные атрибуты, если таковые имеются.

  • Поддерживаемые типы носителей DICOM.

  • Поддерживаемые наборы символов (если они отличаются от UTF-8).

15.3 Transactions Overview

Служба выполненного этапа процедуры модальности состоит из транзакций, перечисленных в Таблице 15.3-1.

Таблица 15.3-1. Транзакции службы выполненного этапа процедуры модальности

Имя транзакции

Метод

Полезная нагрузка

Описание

Запрос

Ответ об успехе

Create

POST

Набор данных согласно Таблице F.7.2-1 в PS3.4 (N-CREATE)

нет

Создаёт новый выполненный этап процедуры модальности

Update

POST

Набор данных согласно Таблице F.7.2-1 в PS3.4 (N-SET)

нет

Обновляет целевой выполненный этап процедуры модальности

Retrieve

GET

нет

Набор данных согласно Таблице F.8.2-1 в PS3.4

Извлекает целевой выполненный этап процедуры модальности


В Таблице 15.3-2 целевые ресурсы, разрешённые для каждой транзакции, помечены буквой M, если поддержка обязательна для исходного сервера, и буквой O, если она необязательна. Пустая ячейка указывает, что ресурс не разрешён в транзакции.

Таблица 15.3-2. Ресурсы по транзакциям

Ресурс

Create

Update

Retrieve

MPPS

M

M

O


Таблица 15.3-3 перечисляет транзакции службы выполненного этапа процедуры модальности, имеющие соответствующую операцию DIMSE в DIMSE MPPS.

Таблица 15.3-3. Соответствие транзакций службы выполненного этапа процедуры модальности и операций DIMSE

Транзакция

Операция

Ссылка

Служба DIMSE

Create

Создание экземпляра MPPS

Раздел F.7.2.1 в PS3.4

N-CREATE

Update

Установка информации MPPS

Раздел F.7.2.2 в PS3.4

N-SET

Retrieve

Получение информации MPPS

Раздел F.8.2.1 в PS3.4

N-GET


Примечание

Как и в DIMSE, транзакции не предоставляют полный интерфейс CRUDL для соответствующих ресурсов. Например, невозможно перечислить все выполненные этапы процедур модальности с использованием DICOM — ни через DIMSE, ни через DICOMweb. DICOM предоставляет доступ к выполненным этапам процедур на уровне, требуемом для модальностей.

15.4 Create Transaction

Эта транзакция создаёт выполненный этап процедуры модальности с заданными атрибутами. Она соответствует операции DIMSE MPPS N-CREATE (см. Раздел F.7.2.1 в PS3.4 ).

15.4.1 Request

Запрос должен иметь следующий синтаксис:

POST SP /modality-performed-procedure-steps/{mppsUID} SP version CRLF
Accept: 1#media-type CRLF
*(header-field CRLF)
CRLF
payload

15.4.1.1 Target Resource

Целевой ресурс этой транзакции — отдельный выполненный этап процедуры модальности, идентифицированный своим MPPS UID.

15.4.1.2 Query Parameters

Запрос не имеет параметров запроса.

15.4.1.3 Request Header Fields

Исходный сервер должен поддерживать поля заголовка запроса, как требуется в Таблице 15.4.1-1.

Пользовательский агент должен предоставлять поля заголовка запроса, как требуется в Таблице 15.4.1-1.

Таблица 15.4.1-1. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Допустимые типы носителей полезной нагрузки ответа.


См. также Раздел 8.4.

15.4.1.4 Request Payload

Полезная нагрузка запроса должна присутствовать и содержать одно представление, согласованное с полем заголовка Content-Type. Представление должно соответствовать типам носителей, описанным в Разделе 8.7.3 DICOM Media Type Sets. Полезная нагрузка должна соответствовать Разделу 8.6 Payloads.

Атрибуты выполненного этапа процедуры модальности в полезной нагрузке должны соответствовать требованиям SCU в столбце Usage N-CREATE (SCU/SCP) Таблицы F.7.2-1 «Атрибуты N-CREATE, N-SET и атрибуты конечного состояния класса SOP выполненного этапа процедуры модальности» в PS3.4 .

15.4.2 Behavior

Исходный сервер должен создать выполненный этап процедуры модальности, идентифицированный предоставленным MPPS UID, и заполнить его предоставленными атрибутами в полезной нагрузке. Исходный сервер должен создавать и поддерживать выполненный этап процедуры модальности, как указано в поведении SCP, определённом в Разделе F.7.2.1 в PS3.4 .

15.4.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
*(header-field CRLF)
CRLF
[payload]

15.4.3.1 Status Codes

Таблица 15.4.3-1 показывает некоторые общие коды состояния, соответствующие этой транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 15.4.3-1. Значение кода состояния

Статус

Код

Значение

Успех

201 (Created)

Исходный сервер создал запрошенный выполненный этап процедуры модальности с предоставленными атрибутами.

Ошибка

400 (Bad Request)

Исходный сервер не может обработать запрос на создание из-за ошибок в заголовках или параметрах запроса.

409 (Conflict)

Исходный сервер не может создать целевой выполненный этап процедуры модальности, так как предоставленный UID выполненного этапа процедуры модальности уже используется.

503 (Service Unavailable)

Исходный сервер не может обработать создание выполненного этапа процедуры модальности; это может быть временным или постоянным состоянием.


15.4.3.2 Response Header Fields

Исходный сервер должен поддерживать поля заголовка, как требуется в Таблице 15.4.3-2.

Таблица 15.4.3-2. Заголовки ответа

Имя

Значения

Использование исходным сервером

Описание

Content-Type

media-type

C

См. Раздел 8.4.2.

Content-Encoding

encoding

C

См. Раздел 8.4.2.

Content-Length

uint

C

См. Раздел 8.4.3.


Все ответы об успехе должны также содержать поля заголовка представления содержимого (см. Раздел 8.4.2) и полезной нагрузки (см. Раздел 8.4.3) с соответствующими значениями.

15.4.3.3 Response Payload

Ответ об успехе не должен иметь полезной нагрузки.

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

15.5 Update Transaction

Эта транзакция устанавливает атрибуты существующего выполненного этапа процедуры модальности. Она соответствует операции DIMSE MPPS N-SET (см. Раздел F.7.2.2 в PS3.4 ).

15.5.1 Request

Запрос должен иметь следующий синтаксис:

POST SP /modality-performed-procedure-steps/{mppsUID}?update SP version CRLF
Accept: 1#media-type CRLF
*(header-field CRLF)
CRLF
payload

15.5.1.1 Target Resources

Целевой ресурс этой транзакции — отдельный выполненный этап процедуры модальности, идентифицированный предоставленным MPPS UID.

15.5.1.2 Query Parameters

Исходный сервер должен поддерживать параметры запроса, как требуется в Таблице 15.5.1.2-1.

Пользовательский агент должен предоставлять в запросе параметры запроса, как требуется в Таблице 15.5.1.2-1.

Таблица 15.5.1.2-1. Параметры запроса по ресурсам

Ключ

Ресурс

Использование

Пользовательский агент

Исходный сервер

update

Выполненный этап процедуры модальности

M

M


Параметр «update» указывает, что это обновление существующего выполненного этапа процедуры модальности, идентифицированного предоставленным MPPS UID, и отличает транзакцию обновления от транзакции создания.

15.5.1.3 Request Header Fields

Исходный сервер должен поддерживать поля заголовка запроса, как требуется в Таблице 15.5.1-1.

Пользовательский агент должен предоставлять поля заголовка запроса, как требуется в Таблице 15.5.1-1.

Таблица 15.5.1-1. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Допустимые типы носителей полезной нагрузки ответа.


См. также Раздел 8.4.

15.5.1.4 Request Payload

Полезная нагрузка запроса должна присутствовать и содержать одно представление, согласованное с полем заголовка Content-Type. Представление должно соответствовать типам носителей, описанным в Разделе 8.7.3 DICOM Media Type Sets. Полезная нагрузка должна соответствовать Разделу 8.6 Payloads.

Атрибуты выполненного этапа процедуры модальности в полезной нагрузке должны соответствовать требованиям SCU в столбце Usage N-SET (SCU/SCP) Таблицы F.7.2-1 «Атрибуты N-CREATE, N-SET и атрибуты конечного состояния класса SOP выполненного этапа процедуры модальности» в PS3.4 .

15.5.2 Behavior

Исходный сервер должен обновить выполненный этап процедуры модальности, идентифицированный предоставленным MPPS UID, предоставленными атрибутами в полезной нагрузке. Исходный сервер должен обновлять и поддерживать выполненный этап процедуры модальности, как указано в поведении SCP, определённом в Разделе F.7.2.2 в PS3.4 .

15.5.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
*(header-field CRLF)
CRLF
[payload]

15.5.3.1 Status Codes

Таблица 15.5.3-1 показывает некоторые общие коды состояния, соответствующие этой транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 15.5.3-1. Значение кода состояния

Статус

Код

Значение

Успех

200 (OK)

Исходный сервер обновил выполненный этап процедуры модальности предоставленными атрибутами.

Ошибка

400 (Bad Request)

Исходный сервер не может обработать запрос на обновление из-за ошибок в заголовках или параметрах запроса.

404 (Not Found)

Исходный сервер не имеет сведений о целевом выполненном этапе процедуры модальности.

409 (Conflict)

Исходный сервер не может обновить целевой выполненный этап процедуры модальности, например, потому что предоставленные изменения несовместимы с данными целевого выполненного этапа процедуры модальности.

410 (Gone)

Исходный сервер знает, что целевой выполненный этап процедуры модальности существовал, но был удалён.

503 (Service Unavailable)

Исходный сервер не может обработать создание выполненного этапа процедуры модальности; это может быть временным или постоянным состоянием.


Примечание

Когда запрашивается обновление атрибутов, которые не были предоставлены во время создания, может быть возвращён код 409 (Conflict); это имеет место, когда Таблица F.7.2-1 в PS3.4 указывает, что эти атрибуты должны были быть предоставлены во время создания.

15.5.3.2 Response Header Fields

Исходный сервер должен поддерживать поля заголовка, как требуется в Таблице 15.5.3-2.

Таблица 15.5.3-2. Заголовки ответа

Имя

Значения

Использование исходным сервером

Описание

Content-Type

media-type

C

См. Раздел 8.4.2.

Content-Encoding

encoding

C

См. Раздел 8.4.2.

Content-Length

uint

C

См. Раздел 8.4.3.


Все ответы об успехе должны также содержать поля заголовка представления содержимого (см. Раздел 8.4.2) и полезной нагрузки (см. Раздел 8.4.3) с соответствующими значениями.

15.5.3.3 Response Payload

Ответ об успехе не должен иметь полезной нагрузки.

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

15.6 Retrieve Transaction

Эта транзакция извлекает существующий выполненный этап процедуры модальности. Она соответствует операции DIMSE MPPS N-GET (см. Раздел F.8.2.1 в PS3.4 ).

15.6.1 Request

Запрос должен иметь следующий синтаксис:

GET SP /modality-performed-procedure-steps/{mppsUID}{?includefield*} SP version CRLF
Accept: 1#media-type CRLF
*(header-field CRLF)
CRLF

15.6.1.1 Target Resources

Целевой ресурс этой транзакции — отдельный выполненный этап процедуры модальности, идентифицированный своим MPPS UID.

15.6.1.2 Query Parameters

Исходный сервер должен поддерживать параметр запроса includefield. Он указывает атрибуты, которые должны быть включены в ответ. Значением является либо разделённый запятыми список атрибутов, либо единственное ключевое слово «all», которое означает, что все доступные атрибуты объекта должны быть включены в ответ.

includefield = *("includefield" "=" (1#attribute / "all") )

Может быть один или несколько параметров includefield; однако, если присутствует параметр со значением «all», то другие параметры includefield не должны присутствовать.

Параметр includefield соответствует Таблице F.8.2-1 «Modality Performed Procedure Step Retrieve SOP Class N-GET Attributes» в PS3.4 DIMSE.

Пользовательский агент может предоставлять параметры запроса includefield, как описано выше.

15.6.1.3 Request Header Fields

Исходный сервер должен поддерживать поля заголовка запроса, как требуется в Таблице 15.6.1-1.

Пользовательский агент должен предоставлять поля заголовка запроса, как требуется в Таблице 15.6.1-1.

Таблица 15.6.1-1. Заголовки запроса

Имя

Значения

Использование

Описание

Пользовательский агент

Исходный сервер

Accept

media-type

M

M

Допустимые типы носителей полезной нагрузки ответа.


См. также Раздел 8.4.

15.6.1.4 Request Payload

Запрос не должен иметь полезной нагрузки.

15.6.2 Behavior

Если выполненный этап процедуры модальности существует на исходном сервере, его атрибуты, указанные в параметре includefield, должны быть возвращены в допустимом типе носителя (см. Раздел 8.7.4). Если параметр includefield отсутствует, должны быть возвращены все атрибуты. Исходный сервер должен вернуть выполненный этап процедуры модальности, как указано в поведении SCP, определённом в Разделе F.8.2 в PS3.4 .

15.6.3 Response

Ответ должен иметь следующий синтаксис:

version SP status-code SP reason-phrase CRLF
*(header-field CRLF)
CRLF
[payload]

15.6.3.1 Status Codes

Таблица 15.6.3-1 показывает некоторые общие коды состояния, соответствующие этой транзакции. См. также Раздел 8.5 для получения дополнительных кодов состояния.

Таблица 15.6.3-1. Значение кода состояния

Статус

Код

Значение

Успех

200 (OK)

Исходный сервер вернул целевой выполненный этап процедуры модальности.

Ошибка

400 (Bad Request)

Исходный сервер не может обработать запрос на извлечение из-за ошибок в заголовках или параметрах запроса.

404 (Not Found)

Исходный сервер не имеет сведений о целевом выполненном этапе процедуры модальности.

410 (Gone)

Исходный сервер знает, что целевой выполненный этап процедуры модальности существовал, но был удалён.

503 (Service Unavailable)

Исходный сервер не может обработать извлечение целевого выполненного этапа процедуры модальности; это может быть временным или постоянным состоянием.


15.6.3.2 Response Header Fields

Исходный сервер должен поддерживать поля заголовка, как требуется в Таблице 15.6.3-2.

Таблица 15.6.3-2. Заголовки ответа

Имя

Значения

Использование исходным сервером

Описание

Content-Type

media-type

C

См. Раздел 8.4.2.

Content-Encoding

encoding

C

См. Раздел 8.4.2.

Content-Length

uint

C

См. Раздел 8.4.3.


Все ответы об успехе должны также содержать поля заголовка представления содержимого (см. Раздел 8.4.2) и полезной нагрузки (см. Раздел 8.4.3) с соответствующими значениями.

15.6.3.3 Response Payload

Ответ об успехе содержит полезную нагрузку с запрошенным выполненным этапом процедуры модальности в выбранном типе носителя. Атрибуты выполненного этапа процедуры модальности в полезной нагрузке должны соответствовать требованиям SCP в столбце Usage N-GET (SCU/SCP) Таблицы F.8.2-1 «Атрибуты N-GET класса SOP извлечения выполненного этапа процедуры модальности» в PS3.4 .

Полезная нагрузка ответа об ошибке может содержать отчёт о состоянии, описывающий любые ошибки, предупреждения или другую полезную информацию.

A Collected ABNF

A machine readable collected ABNF for the syntax defined in this Part of the Standard can be found at ftp://medical.nema.org/medical/dicom/ABNF/part18_abnf.txt

B Примеры (Информативное)

B.1 Получение простого DICOM-изображения в формате JPEG

http://www.hospital-stmarco/radiology/wado.php?requestType=WADO
  &studyUID=1.2.250.1.59.40211.12345678.678910
  &seriesUID=1.2.250.1.59.40211.789001276.14556172.67789
  &objectUID=1.2.250.1.59.40211.2678810.87991027.899772.2

B.2 Получение DICOM SR в формате HTML

http://server234/script678.asp?requestType=WADO
  &studyUID=1.2.250.1.59.40211.12345678.678910
  &seriesUID=1.2.250.1.59.40211.789001276.14556172.67789
  &objectUID=1.2.250.1.59.40211.2678810.87991027.899772.2
  &charset=UTF-8

B.3 Получение фрагмента DICOM-изображения

Получение фрагмента DICOM-изображения, при возможности преобразованного в JPEG2000, с вшитыми в изображение аннотациями, содержащими имя пациента и техническую информацию, и приведённого к заданному размеру изображения:

https://aspradio/imageaccess.js?requestType=WADO
  &studyUID=1.2.250.1.59.40211.12345678.678910
  &seriesUID=1.2.250.1.59.40211.789001276.14556172.67789
  &objectUID=1.2.250.1.59.40211.2678810.87991027.899772.2
  &contentType=image%2Fjp2;level=1,image%2Fjpeg;q=0.5
  &annotation=patient,technique
  &columns=400
  &rows=300
  &region=0.3,0.4,0.5,0.5
  &windowCenter=-1000
  &windowWidth=2500

B.4 Получение в качестве DICOM-типа носителя

Получение объекта DICOM-изображения с использованием базового 8-битного JPEG Transfer Syntax с потерями и деидентифицированного:

http://www.medical-webservice.st/RetrieveDocument?requestType=WADO
  &studyUID=1.2.250.1.59.40211.12345678.678910
  &seriesUID=1.2.250.1.59.40211.789001276.14556172.67789
  &objectUID=1.2.250.1.59.40211.2678810.87991027.899772.2
  &contentType=application%2Fdicom
  &anonymize=yes
  &transferSyntax=1.2.840.10008.1.2.4.50

B.5 Запрос исследований за определённый день с ограничением количества результатов, начиная со смещения 0

GET /radiology/studies?00080020=20000817&limit=20&offset=0&includefield=all HTTP/1.1
Host: www.hospital-stmarco
Accept: application/dicom+json

HTTP/1.1 200 OK
Content-Length: 1191
Content-Type: application/dicom+json; charset=utf-8

[ 
	{
	    "00080005": {
	        "vr": "CS",
	        "Value": [
	            "ISO_IR192"
	        	] 
		},
…
	    "00081190": {
	        "vr": "UT",
	        "Value": [
	            "https://www.hospital-stmarco/radiology/studies/1.2.250.1.59.40211.12345678.678910"
	        	] 
		}
	}
…
]         

B.6 Запрос серий из определённого исследования, возвращаемые данные в JSON

GET /radiology/studies/1.3.12.2.1107.5.99.3.30000013043011165912900000002/series?includefield=all HTTP/1.1
Host: www.hospital-stmarco
Accept: application/dicom+json

B.7 Запрос экземпляров из серии, возвращаемые данные в XML

GET /radiology/studies/1.3.12.2.1107.5.99.3.30000013043011165912900000002
  /series/1.3.12.2.1107.5.99.3.30000013043011165912900000003/instances HTTP/1.1
Host: www.hospital-stmarco
Accept: multipart/related; type="application/dicom+xml"

HTTP/1.1 200 OK
Content-Length: 2887
Content-Type: multipart/related; boundary="DICOM DATA BOUNDARY"; type="application/dicom+xml"
…

--DICOM DATA BOUNDARY
Content-Type: application/dicom+xml

<?xml version="1.0" encoding="utf-8"?>
<NativeDicomModel>
  <DicomAttribute keyword="TransferSyntaxUID" tag="00020010" vr="UI">
    <Value number="1">1.2.840.10008.1.2.1</Value>
  </DicomAttribute>
  <DicomAttribute keyword="SOPClassUID" tag="00080016" vr="UI">
    <Value number="1">1.2.840.10008.5.1.4.1.1.4</Value>
  </DicomAttribute>
  <DicomAttribute keyword="StudyInstanceUID" tag="0020000D" vr="UI">
    <Value number="1">1.3.12.2.1107.5.99.3.30000013043011165912900000002</Value>
  </DicomAttribute>
  <DicomAttribute keyword="SeriesInstanceUID" tag="0020000E" vr="UI">
    <Value number="1">1.3.12.2.1107.5.99.3.30000013043011165912900000003</Value>
  </DicomAttribute>
  <DicomAttribute keyword="SOPInstanceUID" tag="00080018" vr="UI">
    <Value number="1">1.3.12.2.1107.5.99.3.99.30000009101512360337100000243</Value>
  </DicomAttribute>
…
</NativeDicomModel>
--DICOM DATA BOUNDARY
Content-Type: application/dicom+xml

<?xml version="1.0" encoding="utf-8"?>
<NativeDicomModel>
  <DicomAttribute keyword="TransferSyntaxUID" tag="00020010" vr="UI">
    <Value number="1">1.2.840.10008.1.2.1</Value>
  </DicomAttribute>
  <DicomAttribute keyword="SOPClassUID" tag="00080016" vr="UI">
    <Value number="1">1.2.840.10008.5.1.4.1.1.4</Value>
  </DicomAttribute>
  <DicomAttribute keyword="StudyInstanceUID" tag="0020000D" vr="UI">
    <Value number="1">1.3.12.2.1107.5.99.3.30000013043011165912900000002</Value>
  </DicomAttribute>
  <DicomAttribute keyword="SeriesInstanceUID" tag="0020000E" vr="UI">
    <Value number="1">1.3.12.2.1107.5.99.3.30000013043011165912900000003</Value>
  </DicomAttribute>
  <DicomAttribute keyword="SOPInstanceUID" tag="00080018" vr="UI">
    <Value number="1">1.3.12.2.1107.5.99.3.99.30000009101512360337100000232</Value>
  </DicomAttribute>
…
</NativeDicomModel>
--DICOM DATA BOUNDARY--

B.8 Получение экземпляра как DICOM

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789/instances/1.2.250.1.59.40211.2678810.87991027.899772.2 HTTP/1.1
Host: www.hospital-stmarco
Accept: multipart/related; type="application/dicom"

HTTP/1.1 200 OK
Content-Length: 383203
Content-Type: multipart/related; boundary="DICOM DATA BOUNDARY"; type="application/dicom"
…

--DICOM DATA BOUNDARY
Content-Type: application/dicom

<BINARY DICOM DATA> 
--DICOM DATA BOUNDARY

B.9 Получение экземпляра как визуализированного JPEG-изображения

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2/rendered HTTP/1.1
Host: www.hospital-stmarco
Accept: image/jpeg

HTTP/1.1 200 OK
Content-Length: 79323
Content-Type: image/jpeg

<BINARY JPEG DATA>

B.10 Получение экземпляра как объемных данных

Предположим, что ответ с метаданными содержит BulkDataURI "/radiology/studies/…/bulkdata/00091010" с исходным значением в бинарном потоке DICOM Raw, тогда запрос:

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2 HTTP/1.1
Host: www.hospital-stmarco
Accept: multipart/related; type="application/octet-stream"

будет содержать:

HTTP/1.1 200 OK
Content-Length: 6374971
Content-Type: multipart/related; boundary="bcd8711f-1384-4a49-adcf-ae9b9ddc2d35"; type="application/octet-stream"
…

--bcd8711f-1384-4a49-adcf-ae9b9ddc2d35
Content-Location: /radiology/studies/…/bulkdata/00091010
Content-Type: application/octet-stream

Raw binary stream
--bcd8711f-1384-4a49-adcf-ae9b9ddc2d35

B.11 Получение объекта DICOM-изображения с использованием базового 8-битного JPEG Transfer Syntax с потерями

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2 HTTP/1.1
Host: www.hospital-stmarco
Accept: multipart/related; type="application/dicom"; transfer-
syntax=1.2.840.10008.1.2.4.50

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: multipart/related; boundary="5e3c723b-ad24-42f9-88e0-10d29d87115c"
…

22\r\n
--5e3c723b-ad24-42f9-88e0-10d29d87115c\r\n
22A1\r\n
Content-Type: application/dicom; transfer-syntax="1.2.840.10008.1.2.4.50"

<BINARY DICOM DATA in multipart boundaries> 
\r\n

B.12 Визуализация фрагмента DICOM-изображения, преобразованного в JPEG2000, с вшитыми в изображение аннотациями, содержащими имя пациента и техническую информацию, с использованием заданной области просмотра и окна

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2
  /rendered?annotation=patient,technique&viewport=1024,1024,0,0,512,512&window=200,600,linear HTTP/1.1
Host: www.hospital-stmarco
Accept: image/jp2;level=1,image/jpeg;q=0.5

B.13 Получение DICOM SR в формате HTML

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2/rendered?charset=UTF-8 HTTP/1.1
Host: www.hospital-stmarco
Accept: text/html

B.14 Получение DICOM SR в формате JSON (только метаданные)

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2/metadata?charset=UTF-8 HTTP/1.1
Host: www.hospital-stmarco
Accept: application/dicom+json

B.15 Проверка возможности получения метаданных в формате XML

OPTIONS http://www.hospital-stmarco/radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2/metadata HTTP/1.1
Host: www.hospital-stmarco
Accept: multipart/related; type="application/dicom+xml"
Origin: http://localhost:65232
…

HTTP/1.1 200 OK
…

B.16 Получение метаданных в формате XML с использованием параметра "accept"

GET http://www.hospital-stmarco/radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789/instances/1.2.250.1.59.40211.2678810.87991027.899772.2
  /metadata?charset=UTF-8&accept=multipart/related;type=%22application/dicom+xml%22 HTTP/1.1

B.17 Получение кадров DICOM как "octet-stream"

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2/frames/22,23,24 HTTP/1.1
Host: www.hospital-stmarco
Accept: multipart/related; type="application/octet-stream"

B.18 Получение кадров DICOM, визуализированных в типе носителя GIF

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2/frames/40,41,42,43,44
  /rendered?annotation=patient&viewport=1024,1024&window=40,40,linear&accept=image/gif HTTP/1.1
Host: www.hospital-stmarco

B.19 Получение эскиза для серии в типе носителя JPEG

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789/thumbnail?viewport=100,100 HTTP/1.1
Host: www.hospital-stmarco
Accept: image/jpeg

B.20 Получение эскиза для одного кадра в типе носителя PNG

GET /radiology/studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789/instances/1.2.250.1.59.40211.2678810.87991027.899772.2/frames/40
  /thumbnail?viewport=100,100 HTTP/1.1
Host: www.hospital-stmarco
Accept: image/png

B.21 Сохранение одиночного DICOM-экземпляра

POST /radiology/studies/1.2.250.1.59.40211.12345678.678910 HTTP/1.1
Host: www.hospital-stmarco
Content-Type: application/dicom
<BINARY DICOM DATA>

HTTP/1.1 200 OK
Content-Length: 826
Content-Type: application/dicom+json; charset=utf-8
…

{
  "00020010": {
    "vr": "UI",
    "Value": [
      "1.2.840.10008.1.2.1"
    ]
  },
  "00081199": {
    "vr": "SQ",
    "Value": [
  {
    "00080016": {
      "vr": "UI",
      "Value": [
        "1.2.840.10008.5.1.4.1.1.4"
      ]
    },
    "00080018": {
      "vr": "UI",
      "Value": [
        "1.3.12.2.1107.5.99.3.30000012031310075961300000059"
      ]
    },
…
}

B.22 Сохранение нескольких DICOM-экземпляров

POST /radiology/studies/1.2.250.1.59.40211.12345678.678910 HTTP/1.1
Host: www.hospital-stmarco
Content-Type: multipart/related; type="application/dicom"; boundary=MESSAGEBOUNDARY

--MESSAGEBOUNDARY
Content-Type: application/dicom
< BINARY DICOM DATA for instance 1 >
--MESSAGEBOUNDARY
Content-Type: application/dicom
< BINARY DICOM DATA for instance 2 >
…
--MESSAGEBOUNDARY

B.23 Сохранение нескольких файлов JPEG

POST /radiology/studies/1.2.250.1.59.40211.12345678.678910 HTTP/1.1
Host: www.hospital-stmarco
Content-Type: multipart/related; type="application/dicom+xml"; boundary=MESSAGEBOUNDARY

--MESSAGEBOUNDARY
Content-Type: application/dicom+xml
<?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel>
	<DicomAttribute Tag="00080020" VR="DT" Keyword="StudyDate">
		<Value number="1">20130409</value>
…
	<DicomAttribute Tag="0020000D" VR="UI" Keyword="StudyInstanceUID">
		<Value number="1">1.2.250.1.59.40211.12345678.678910</value>
	</DicomAttribute>
	<DicomAttribute Tag="0020000E" VR="UI" Keyword="SeriesInstanceUID">
		<Value number="1">1.2.250.1.59.40211.789001276.14556172.67789</value>
	</DicomAttribute>
	<DicomAttribute Tag="00080018" VR="UI" Keyword="SOPInstanceUID">
		<Value number="1">1.2.250.1.59.40211.2678810.87991027.899772.2</value>
	</DicomAttribute>
	<DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
		<Value number="1">1.2.840.10008.1.2.4.50</Value>
	</DicomAttribute>
	<DicomAttribute Tag="7FE00010" VR="OB" Keyword="PixelData">
		<Value number="1">jpeg-image</value>
	</DicomAttribute>
</NativeDicomModel>
--MESSAGEBOUNDARY
Content-Type: image/jpeg
Content-Location: jpeg-image
<<BINARY JPEG DATA> 
--MESSAGEBOUNDARY--
…

HTTP/1.1 200 OK
Content-Length: 826
Content-Type: multipart/related; type="application/dicom+xml"
…

<?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel>
	<DicomAttribute Tag="00081199" VR="SQ" keyword="ReferencedSOPSequence">
		<Item number="1">

			<DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
				<Value number="1">1.2.840.10008.1.2.4.50</Value>
			</DicomAttribute>
			<DicomAttribute tag="00081155" vr="UI" keyword="ReferencedSOPInstanceUID">
				<Value number="1">1.2.250.1.59.40211.2678810.87991027.899772.2</Value>
			</DicomAttribute>
			<DicomAttribute tag="00081190" vr="UT" keyword="RetrieveURL">
				<Value number="1">https://www.hospital-stmarco/radiology/studies/1.2.250.1.59.40211.12345678.678910
				/series/1.2.250.1.59.40211.789001276.14556172.67789/instances/1.2.250.1.59.40211.2678810.87991027.899772.2</Value>
			</DicomAttribute>
		</Item>
	</DicomAttribute>
	<DicomAttribute Tag="00081190" VR="UT" Keyword="RetrieveURL">
		<Value number="1">https://www.hospital-stmarco/radiology/studies/1.2.250.1.59.40211.12345678.67891</value>
	</DicomAttribute>
</NativeDicomModel>

B.24 Получение всех рабочих элементов

GET /radiology/workitems HTTP/1.1
Host: www.hospital-stmarco
Accept: application/dicom+json

B.25 Отмена рабочего элемента

POST /radiology/workitems/1.2.840.10008.5.1.4.34.5/cancelrequest HTTP/1.1
Host: www.hospital-stmarco
Accept: application/dicom+json

B.26 Определение метода WADL для описания возможностей исходного сервера, поддерживающего поиск исследований

<method id="searchForStudies" name="GET">
	<request>
		<param default="multipart/related; type=application/dicom+xml" name="Accept" style="header">
			<option value="multipart/related; type=application/dicom+xml"/>
			<option value="application/json"/>
		</param>
		<param name="limit" style="query" type="xs:int">
			<doc>maximum number of records</doc>
		</param>
		<param name="offset" style="query" type="xs:int">
			<doc>skipped results</doc>
		</param>
		<param name="StudyDate" style="query"/>
		<param name="00080020" style="query"/>
		<param name="StudyTime" style="query"/>
		<param name="00080030" style="query"/>
		<param name="AccessionNumber" style="query"/>
		<param name="00080050" style="query"/>
		<param name="ModalitiesInStudy" style="query"/>
		<param name="00080061" style="query"/>
		<param name="ReferringPhysicianName" style="query"/>
		<param name="00080090" style="query"/>
		<param name="PatientName" style="query"/>
		<param name="00100010" style="query"/>
		<param name="PatientID" style="query"/>
		<param name="00100020" style="query"/>
		<param name="StudyInstanceUID" repeating="true" style="query"/>
		<param name="0020000D" repeating="true" style="query"/>
		<param name="StudyID" style="query"/>
		<param name="00200010" style="query"/>
		<param name="includefield" repeating="true" style="query" type="xs:string">
			<option value="all"/>
			<doc>include fields</doc>
		</param>
		<param name="fuzzymatching" style="query" type="xs:boolean">
			<option value="true"/>
			<option value="false"/>
			<doc>additional fuzzy semantic matching</doc>
		</param>
			<param name="emptyvaluematching" style="query" type="xs:boolean">
			<option value="true"/>
			<option value="false"/>
			<doc>additional fuzzy semantic matching</doc>
		</param>
		<param name="multiplevaluematching" style="query" type="xs:boolean">
			<option value="true"/>
			<option value="false"/>
			<doc>additional fuzzy semantic matching</doc>
		</param>
	</request>
	<response status="200 204 299">
		<representation mediaType="multipart/related; type=application/dicom+xml"/>
		<representation mediaType="application/json"/>
	</response>
	<response status="400 403 500 503"/>
</method>

Примечание

Этот пример иллюстрирует поддержку параметров нечёткого сопоставления (Fuzzy Matching) и запроса к репозиторию (Repository Query).

B.27 Запрос подтверждения хранения нескольких экземпляров в формате JSON

Этот пример показывает поток сообщений между пользовательским агентом и исходным сервером для сценария, в котором 1) пользовательский агент запрашивает подтверждение хранения двух SOP-экземпляров в формате JSON, 2) исходный сервер сообщает пользовательскому агенту, что следует проверить результат этого запроса позднее, 3) пользовательский агент проверяет результат, и 4) результат, предоставленный исходным сервером, показывает, что он обязуется безопасно хранить один из экземпляров, тогда как он не обязуется безопасно хранить другой экземпляр.

Шаг 1 этого сценария включает отправку пользовательским агентом POST-запроса для двух экземпляров с Transaction UID 1.1.99999.20220901 в HTTP-заголовке:

POST/radiology/commitment-requests/1.1.99999.20220901 HTTP/1.1
Host: www.hospital-stmarco
Content-Type: application/dicom+json
…
{
  "00081199": {
    "vr": "SQ",
    "Value": [{
      "00081150": {
        "vr": "UI",
        "Value": [
          "1.2.840.10008.5.1.4.1.1.2"
        ]
      },
      "00081155": {
        "vr": "UI",
        "Value": [
          "1.3.12.2.1107.5.99.3.30000012031310075961300000059"
        ]
      }
    },
    {
      "00081150": {
        "vr": "UI",
        "Value": [
          "1.2.840.10008.5.1.4.1.1.2"
        ]
      },
      "00081155": {
        "vr": "UI",
        "Value": [
          "1.3.12.2.1107.5.99.3.30000012031310075961300000060"
        ]
      }
    }]
  }
}

Здесь ссылки на соответствующие SOP-экземпляры находятся в Referenced SOP Sequence (0008,1199); см. Таблицу J.1-1 для возможных структур запроса подтверждения хранения. SOP Class UID обоих экземпляров — CT Image (для обоих экземпляров Referenced SOP Class UID (0008,1150) имеет значение 1.2.840.10008.5.1.4.1.1.2), а соответствующие экземпляры идентифицируются по их соответствующим SOP Instance UID (значения Referenced SOP Instance UID (0008,1155) — 1.3.12.2.1107.5.99.3.30000012031310075961300000059 и …00060 соответственно).

На шаге 2 исходный сервер возвращает ответ на запрос. В этом сценарии имеет место асинхронный случай, когда немедленный результат отсутствует (код возврата 202 Accepted), и сервер также уведомляет пользовательский агент о том, что ему следует подождать не менее 300 секунд перед выполнением повторного запроса результата; в случае синхронного ответа шаги 2 и 3 были бы пропущены, и выполнение продолжилось бы с шага 4.

HTTP/1.1 202 Accepted
Retry-After: 300
…

На шаге 3, после ожидания в течение предложенного периода времени, пользовательский агент выполняет GET-запрос статуса запроса с использованием того же Transaction UID, что был указан в исходном запросе:

GET /radiology/commitment-requests/1.1.99999.20220901 HTTP/1.1
Host: www.hospital-stmarco
Content-Type: application/dicom+json
…

Шаг 4 этого сценария включает возврат исходным сервером результата запроса подтверждения хранения. В данном случае это ответ на проверку результата, как показано на шаге 3. Следует отметить, что в случае, если сервер первоначально отвечает на POST-запрос шага 1 кодом состояния HTTP-ответа 200 (синхронный случай), будет возвращён тот же результат:

HTTP/1.1 200 OK
Content-Length: 842
Content-Type: application/dicom+json; charset=utf-8

{
  "00081199": {
    "vr": "SQ",
    "Value": [{
      "00081150": {
        "vr": "UI",
        "Value": [
          "1.2.840.10008.5.1.4.1.1.2"
        ]
      },
      "00081155": {
        "vr": "UI",
        "Value": [
          "1.3.12.2.1107.5.99.3.30000012031310075961300000059"
        ]
      }
    }]
  },
  "00081198": {
    "vr": "SQ",
    "Value": [{
      "00081150": {
        "vr": "UI",
        "Value": [
          "1.2.840.10008.5.1.4.1.1.2"
        ]
      },
      "00081155": {
        "vr": "UI",
        "Value": [
          "1.3.12.2.1107.5.99.3.30000012031310075961300000060"
        ]
      },
      "00081197": {
        "vr": "US",
        "Value": [ 274 ]
      }
    }]
  }
}

Исходный сервер предоставил значение 274 для Failure Reason (0008,1197). Это 0112H и означает "No such object Instance" (см. Раздел C.14.1.1 в PS3.3 ). Очевидно, что SOP-экземпляр, идентифицируемый SOP Instance UID 1.3.12.2.1107.5.99.3.30000012031310075961300000060, отсутствует на исходном сервере.

B.28 Запрос подтверждения хранения нескольких экземпляров в формате XML со ссылками на Study Instance UID и Series Instance UID

Цель этого примера та же, что и в Разделе B.27, а именно — сценарий запроса подтверждения хранения двух SOP-экземпляров, где для одного он завершается успешно, а для другого — с ошибкой. Различия заключаются в синхронности (в данном случае она синхронная), синтаксисе (в данном случае используется XML) и структуре (в данном случае используется иерархическая структура исследование-серия-SOP Class-экземпляр, начинающаяся с Referenced Study Sequence (0008,1110); см. Таблицу J.1-1 для получения дополнительных сведений об этой структуре).

Шаг 1:

POST /radiology/commitment-requests/1.1.99999.20220901 HTTP/1.1
Host: www.hospital-stmarco
Content-Type: application/dicom+xml

<?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel>
  <DicomAttribute Tag="00081110" VR="SQ" Keyword="ReferencedStudySequence">
  <Item number="1">
    <DicomAttribute Tag="0020000D" VR="UI" Keyword="StudyInstanceUID">
      <Value number="1">1.2.250.1.59.40211.12345678.678910</Value>
    </DicomAttribute>
    <DicomAttribute Tag="00081115" VR="SQ" Keyword="ReferencedSeriesSequence">
    <Item number="1">
      <DicomAttribute Tag="0020000E" VR="UI" Keyword="SeriesInstanceUID">
        <Value number="1">1.2.250.1.59.40211.789001276.14556172.67789</Value>
      </DicomAttribute>
      <DicomAttribute Tag="00081112" VR="SQ" Keyword="ReferencedInstancesBySOPClassSequence">
      <Item number="1">
        <DicomAttribute Tag="00081150" VR="UI" Keyword="ReferencedSOPClassUID">
          <Value number="1">1.2.840.10008.5.1.4.1.1.2</Value>
        </DicomAttribute>
        <DicomAttribute Tag="0008114A" VR="SQ" Keyword="ReferencedInstanceSequence">
        <Item number="1">
          <DicomAttribute Tag="00081155" VR="UI" Keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.12.2.1107.5.99.3.30000012031310075961300000059</Value>
          </DicomAttribute>
        </Item>
        <Item number="2">
          <DicomAttribute Tag="00081155" VR="UI" Keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.12.2.1107.5.99.3.30000012031310075961300000060</Value>
          </DicomAttribute>
        </Item>
        </DicomAttribute>
      </Item>
      </DicomAttribute>
    </Item>
    </DicomAttribute>
  </Item>
  </DicomAttribute>
</NativeDicomModel>

В представленном выше применимое Исследование идентифицируется по его Study Instance UID (0020,000D) со значением 1.2.250.1.59.40211.12345678.678910. Применимая Серия идентифицируется по её Series Instance UID (0020,000E) со значением 1.2.250.1.59.40211.789001276.14556172.67789. SOP Class UID и SOP Instance UID совпадают с примером, приведённым в Разделе B.27.

Шаг 2:

HTTP/1.1 200 OK
Content-Length: 2910
Content-Type: application/dicom+xml

<?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel>
  <DicomAttribute Tag="00081110" VR="SQ" Keyword="ReferencedStudySequence">
  <Item number="1">
    <DicomAttribute Tag="0020000D" VR="UI" Keyword="StudyInstanceUID">
      <Value number="1">1.2.250.1.59.40211.12345678.678910</Value>
    </DicomAttribute>
    <DicomAttribute Tag="00081115" VR="SQ" Keyword="ReferencedSeriesSequence">
    <Item number="1">
      <DicomAttribute Tag="0020000E" VR="UI" Keyword="SeriesInstanceUID">
        <Value number="1">1.2.250.1.59.40211.789001276.14556172.67789</Value>
      </DicomAttribute>
      <DicomAttribute Tag="00081112" VR="SQ" Keyword="ReferencedInstancesBySOPClassSequence">
      <Item number="1">
        <DicomAttribute Tag="00081150" VR="UI" Keyword="ReferencedSOPClassUID">
          <Value number="1">1.2.840.10008.5.1.4.1.1.2</Value>
        </DicomAttribute>
        <DicomAttribute Tag="0008114A" VR="SQ" Keyword="ReferencedInstanceSequence">
        <Item number="1">
          <DicomAttribute Tag="00081155" VR="UI" Keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.12.2.1107.5.99.3.30000012031310075961300000059</Value>
          </DicomAttribute>
        </Item>
        </DicomAttribute>
      </Item>
      </DicomAttribute>
    </Item>
    </DicomAttribute>
  </Item>
  </DicomAttribute>
  <DicomAttribute Tag="0008119B" VR="SQ" Keyword="FailedStudySequence">
  <Item number="1">
    <DicomAttribute Tag="0020000D" VR="UI" Keyword="StudyInstanceUID">
      <Value number="1">1.2.250.1.59.40211.12345678.678910</Value>
    </DicomAttribute>
    <DicomAttribute Tag="00081115" VR="SQ" Keyword="ReferencedSeriesSequence">
    <Item number="1">
      <DicomAttribute Tag="0020000E" VR="UI" Keyword="SeriesInstanceUID">
        <Value number="1">1.2.250.1.59.40211.789001276.14556172.67789</Value>
      </DicomAttribute>
      <DicomAttribute Tag="00081112" VR="SQ" Keyword="ReferencedInstancesBySOPClassSequence">
      <Item number="1">
        <DicomAttribute Tag="00081150" VR="UI" Keyword="ReferencedSOPClassUID">
          <Value number="1">1.2.840.10008.5.1.4.1.1.2</Value>
        </DicomAttribute>
        <DicomAttribute Tag="0008114A" VR="SQ" Keyword="ReferencedInstanceSequence">
        <Item number="1">
          <DicomAttribute Tag="00081155" VR="UI" Keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.12.2.1107.5.99.3.30000012031310075961300000060</Value>
          </DicomAttribute>
          <DicomAttribute Tag="00081197" VR="UI" Keyword="FailureReason">
            <Value number="1">274</Value>
          </DicomAttribute>
        </Item>
        </DicomAttribute>
      </Item>
      </DicomAttribute>
    </Item>
    </DicomAttribute>
  </Item>
  </DicomAttribute>
</NativeDicomModel>

Failed Study Sequence (0008,119B) имеет ту же структуру, что и Referenced Study Sequence, за исключением того, что она добавляет Failure Reason (0008,1197) к каждому Referenced SOP Instance UID, указывая причину, по которой исходный сервер не смог гарантировать безопасное хранение этого связанного SOP-экземпляра.

B.29 Запрос подтверждения хранения с составным HTTP-запросом (multipart) для экземпляров из нескольких исследований

Этот пример имеет ту же цель, что и Раздел B.28, но отличается наличием составного запроса (multipart) и тем, что SOP-экземпляры принадлежат разным исследованиям.

Шаг 1:

POST /radiology/commitment-requests/1.1.99999.20220901 HTTP/1.1
Host: www.hospital-stmarco
Content-Type: multipart/related; type="application/dicom+xml"; boundary=MESSAGEBOUNDARY

--MESSAGEBOUNDARY
<?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel>
  <DicomAttribute Tag="00081110" VR="SQ" Keyword="ReferencedStudySequence">
  <Item number="1">
    <DicomAttribute Tag="0020000D" VR="UI" Keyword="StudyInstanceUID">
      <Value number="1">1.2.250.1.59.40211.12345678.678910</Value>
    </DicomAttribute>
    <DicomAttribute Tag="00081115" VR="SQ" Keyword="ReferencedSeriesSequence">
    <Item number="1">
      <DicomAttribute Tag="0020000E" VR="UI" Keyword="SeriesInstanceUID">
        <Value number="1">1.2.250.1.59.40211.789001276.14556172.67789</Value>
      </DicomAttribute>
      <DicomAttribute Tag="00081112" VR="SQ" Keyword="ReferencedInstancesBySOPClassSequence">
      <Item number="1">
        <DicomAttribute Tag="00081150" VR="UI" Keyword="ReferencedSOPClassUID">
          <Value number="1">1.2.840.10008.5.1.4.1.1.2</Value>
        </DicomAttribute>
        <DicomAttribute Tag="0008114A" VR="SQ" Keyword="ReferencedInstanceSequence">
        <Item number="1">
          <DicomAttribute Tag="00081155" VR="UI" Keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.12.2.1107.5.99.3.30000012031310075961300000059</Value>
          </DicomAttribute>
        </Item>
        </DicomAttribute>
      </Item>
      </DicomAttribute>
    </Item>
    </DicomAttribute>
  </Item>
  </DicomAttribute>
</NativeDicomModel>
--MESSAGEBOUNDARY
<?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel>
  <DicomAttribute Tag="00081110" VR="SQ" Keyword="ReferencedStudySequence">
  <Item number="1">
    <DicomAttribute Tag="0020000D" VR="UI" Keyword="StudyInstanceUID">
      <Value number="1">1.2.250.1.59.40211.12345678.678911</Value>
    </DicomAttribute>
    <DicomAttribute Tag="00081115" VR="SQ" Keyword="ReferencedSeriesSequence">
    <Item number="1">
      <DicomAttribute Tag="0020000E" VR="UI" Keyword="SeriesInstanceUID">
        <Value number="1">1.2.250.1.59.40211.789001276.14556172.68856</Value>
      </DicomAttribute>
      <DicomAttribute Tag="00081112" VR="SQ" Keyword="ReferencedInstancesBySOPClassSequence">
      <Item number="1">
        <DicomAttribute Tag="00081150" VR="UI" Keyword="ReferencedSOPClassUID">
          <Value number="1">1.2.840.10008.5.1.4.1.1.2</Value>
        </DicomAttribute>
        <DicomAttribute Tag="0008114A" VR="SQ" Keyword="ReferencedInstanceSequence">
        <Item number="1">
          <DicomAttribute Tag="00081155" VR="UI" Keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.12.2.1107.5.99.3.30000012031310075961300000060</Value>
          </DicomAttribute>
        </Item>
        </DicomAttribute>
      </Item>
      </DicomAttribute>
    </Item>
    </DicomAttribute>
  </Item>
  </DicomAttribute>
</NativeDicomModel>
--MESSAGEBOUNDARY

Шаг 2:

HTTP/1.1 200 OK
Content-Length: 2917
Content-Type: application/dicom+xml

<?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel>
  <DicomAttribute Tag="00081110" VR="SQ" Keyword="ReferencedStudySequence">
  <Item number="1">
    <DicomAttribute Tag="0020000D" VR="UI" Keyword="StudyInstanceUID">
      <Value number="1">1.2.250.1.59.40211.12345678.678910</Value>
    </DicomAttribute>
    <DicomAttribute Tag="00081115" VR="SQ" Keyword="ReferencedSeriesSequence">
    <Item number="1">
      <DicomAttribute Tag="0020000E" VR="UI" Keyword="SeriesInstanceUID">
        <Value number="1">1.2.250.1.59.40211.789001276.14556172.67789</Value>
      </DicomAttribute>
      <DicomAttribute Tag="00081112" VR="SQ" Keyword="ReferencedInstancesBySOPClassSequence">
      <Item number="1">
        <DicomAttribute Tag="00081150" VR="UI" Keyword="ReferencedSOPClassUID">
              <Value number="1">1.2.840.10008.5.1.4.1.1.2</Value>
        </DicomAttribute>
        <DicomAttribute Tag="0008114A" VR="SQ" Keyword="ReferencedInstanceSequence">
        <Item number="1">
          <DicomAttribute Tag="00081155" VR="UI" Keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.12.2.1107.5.99.3.30000012031310075961300000059</Value>
          </DicomAttribute>
        </Item>
        </DicomAttribute>
      </Item>
      </DicomAttribute>
    </Item>
    </DicomAttribute>
  </Item>
  </DicomAttribute>
  <DicomAttribute Tag="0008119B" VR="SQ" Keyword="FailedStudySequence">
  <Item number="1">
    <DicomAttribute Tag="0020000D" VR="UI" Keyword="StudyInstanceUID">
      <Value number="1">1.2.250.1.59.40211.12345678.678911</Value>
    </DicomAttribute>
    <DicomAttribute Tag="00081115" VR="SQ" Keyword="ReferencedSeriesSequence">
    <Item number="1">
      <DicomAttribute Tag="0020000E" VR="UI" Keyword="SeriesInstanceUID">
        <Value number="1">1.2.250.1.59.40211.789001276.14556172.68856</Value>
      </DicomAttribute>
      <DicomAttribute Tag="00081112" VR="SQ" Keyword="ReferencedInstancesBySOPClassSequence">
      <Item number="1">
        <DicomAttribute Tag="00081150" VR="UI" Keyword="Referenced SOP Class UID">
          <Value number="1">1.2.840.10008.5.1.4.1.1.2</Value>
        </DicomAttribute>
        <DicomAttribute Tag="0008114A" VR="SQ" Keyword="ReferencedInstanceSequence">
        <Item number="1">
          <DicomAttribute Tag="00081155" VR="UI" Keyword="ReferencedSOPInstanceUID">
            <Value number="1">1.3.12.2.1107.5.99.3.30000012031310075961300000060</Value>
          </DicomAttribute>
          <DicomAttribute Tag="00081197" VR="UI" Keyword="FailureReason">
            <Value number="2">274</Value>
          </DicomAttribute>
        </Item>
        </DicomAttribute>
      </Item>
      </DicomAttribute>
    </Item>
    </DicomAttribute>
  </Item>
  </DicomAttribute>
</NativeDicomModel>

B.30 Двунаправленный прокси-сервер для подтверждения хранения

Служба подтверждения хранения DICOMweb Storage Commitment может быть развёрнута в гибридной среде, т.е. в среде, в которой используются как DICOMweb, так и DIMSE. В такой гибридной среде прокси-сервер может обеспечивать взаимодействие транзакций между службами, позволяя исходному серверу DICOMweb или DIMSE SCP поддерживать подтверждение хранения для смешанного набора пользовательских агентов DICOMweb и DIMSE SCU.

DICOM не требует реализации прокси-серверов; однако, поскольку они были бы очень полезны в гибридной среде, примеры в этом разделе показывают, как это можно сделать. Ответственность за согласование возможно асинхронного поведения DIMSE с поведением опроса DICOMweb, например, управление Transaction UID, лежит на разработчике.

Рисунок B.30-1 показывает, как прокси-сервер может облегчить запрос подтверждения хранения от DIMSE SCU к исходному серверу DICOMweb.

Storage Commitment DIMSE Proxy for a DICOMweb Origin Server

Рисунок B.30-1. DIMSE-прокси подтверждения хранения для исходного сервера DICOMweb


Рисунок B.30-2 показывает, как прокси-сервер может облегчить запрос подтверждения хранения от пользовательского агента DICOMweb к DIMSE SCP. При проксировании в этом направлении прокси-сервер получит от SCP информацию, которую он не сможет немедленно передать пользовательскому агенту.

Storage Commitment DICOMweb Proxy for a DIMSE SCP

Рисунок B.30-2. DICOMweb-прокси подтверждения хранения для DIMSE SCP


B.31 Визуализация серии как трёхмерного объёма

Этот пример иллюстрирует запрос на визуализацию серии в виде трёхмерного объёма, результат которого возвращается как JPEG-изображение. Серия содержит унаследованные экземпляры. Поскольку другие параметры не указаны, они определяются исходным сервером.

GET /radiology
  /studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /rendered3D?renderingmethod=volume_rendered
  HTTP/1.1
Host: www.hospital-stmarco
Accept: image/jpeg

HTTP/1.1 200 OK
Content-Length: 79323
Content-Type: image/jpeg
<BINARY JPEG DATA>

B.32 Визуализация много кадрового экземпляра как трёхмерной объёмной визуализации

Этот пример иллюстрирует запрос Rendered Volume Response Module, представляющего визуализацию многокадрового изображения в виде трёхмерного объёма, возвращаемого в виде видео MPEG4 с анимацией начального вида, ориентированного со стороны передней поверхности пациента (anterior), повёрнутого на 180 градусов со скоростью 20 кадров в секунду. Поскольку ориентация указана как anterior, сервер определяет эквиваленты ориентации камеры. Ось поворота выровнена с Viewpoint Up Direction (0070,1605), которая ориентирована к верхней части пациента (superior), пересекая Viewpoint LookAt Point (0070,1604), направленный от передней поверхности к задней (posterior), что приводит к повороту вокруг оси superior-inferior. Поскольку размер шага анимации не указан, он определяется исходным сервером и включается в запрошенные объёмные метаданные в Rendered Volume Response Module.

Примечание

Запрос кодирует ориентацию как "Anterior". Rendered Volume Response Module кодирует ориентацию камеры, как описано в Разделе 8.3.5.3.

GET /radiology
  /studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789
  /instances/1.2.250.1.59.40211.2678810.87991027.899772.2
  /rendered3D?renderingmethod=volume_rendered
    &orientation=a
    &swivelrange=180
    &animationrate=20
    &renderedvolumetricmetadata=yes
  HTTP/1.1 
Host: www.hospital-stmarco
Accept: application/dicom+json

HTTP/1.1 200 OK
Content-Length: 369
Content-Type: application/dicom+json
{
    "00720510": {
        "vr": "CS",
        "Value": ["3D_RENDERING"]
    },
    "0070120D": {
        "vr": "CS",
        "Value": ["VOLUME_RENDERED"]
    },
    "00701603": {
        "vr": "FD",
        "Value": [100,101,200]
    },
    "00701604": {
        "vr": "FD",
        "Value": [100,100,200]
    },
    "00701605": {
        "vr": "FD",
        "Value": [0,0,1]
    },
    "00701A06": {
        "vr": "FD",
        "Value": [180]
    },
    "00701A05": {
        "vr": "FD",
        "Value": [1.8]
    },
    "00701A03": {
        "vr": "FD",
        "Value": [20]
    }
}

B.33 Визуализация исследования в режиме MPR

Этот пример иллюстрирует запрос на визуализацию исследования в режиме MPR, результат которого возвращается в виде видео MPEG4 со скоростью 30 кадров в секунду с анимацией косой (Oblique) ориентации (заданной с использованием параметров точки обзора). В запросе также указывается ширина окна 400 и центр 40, а также метод визуализации — проекция средней интенсивности (average intensity projection). Пользовательский агент указывает, что визуализированные экземпляры должны состоять из кадров многофазной сердечной acquisition для интервала R-R от 140 до 260 миллисекунд.

Примечание

См. Раздел C.2.2.2 в PS3.4 для сопоставления атрибутов.

Исходному серверу потребуется идентифицировать соответствующие экземпляры в исследовании (на основе наличия Cardiac R-R Interval Specified (0018,9070) с совпадающими значениями). Поскольку размер шага анимации не указан, а диапазон времени указан (для интервала R-R сердца), исходный сервер понимает, что запрашивается временная анимация нескольких серий, каждая из которых содержит одну фазу. Поскольку толщина среза MPR не указана, сервер выполняет визуализацию тонкого MPR, что означает минимально толстый срез неуказанной толщины.

GET /radiology
  /studies/1.2.250.1.59.40211.12345678.678910/renderedmpr?CardiacRRIntervalSpecified=140-260
    &renderingmethod=average_ip
    &viewpointposition=532,38,126
    &viewpointlookat=-532,-76,-154
    &viewpointup=0,0,0
    &animationrate=30
    &window=400,40,linear
  HTTP/1.1 
Host: www.hospital-stmarco
Accept: video/mp4

HTTP/1.1 200 OK
Content-Length: 3145728
Content-Type: video/mp4
<BINARY MPEG-4 DATA>

B.34 Визуализация одной фазы многофазной серии в режиме MIP

Этот пример иллюстрирует запрос на статическую MPR-визуализацию одной фазы многофазной серии. Ссылка на входной объём (volume input reference) предоставляется для идентификации нужной фазы. Корональная ориентация задаётся с использованием параметров ориентации камеры. MPR MIP имеет толщину 20 мм и окно шириной 700 с центром 100. Возвращаемое JPEG-изображение масштабировано до размера матрицы 256 на 256.

GET /radiology
  /studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.789001276.14556172.67789/renderedmpr?
    volumeinputreference=1.2.250.1.59.40211.2678810.87991027.899772.2
    &renderingmethod=maximum_ip
    &mprslab=20
    &viewpointposition=100,101,200
    &viewpointlookat=100,100,200
    &viewpointup=0,0,1
    &viewport=256,256
    &window=700,100,linear
  HTTP/1.1 
            
Host: www.hospital-stmarco
Accept: image/jpeg
HTTP/1.1 200 OK
Content-Length: 79323
Content-Type: image/jpeg
<BINARY JPEG DATA>

B.35 Визуализация состояния объёмной презентации (Volume Rendering Volumetric Presentation State)

Этот пример иллюстрирует запрос на визуализацию экземпляра Volume Rendering Volumetric Presentation State как JPEG-изображения. Исходный сервер извлекает экземпляр, соответствующий указанному UID, получает объёмные параметры визуализации из экземпляра Volume Rendering Volumetric Presentation State и извлекает изображения, указанные в Referenced Image Sequence.

Поскольку в самом запросе не предоставлены дополнительные параметры, сервер применяет объёмные параметры визуализации из экземпляра Volume Rendering Volumetric Presentation State, включая методы визуализации, затенения и цветового оформления, для создания визуализированного JPEG-изображения.

Сервер выполняет визуализацию и возвращает результат в запрошенном типе носителя.

GET /radiology
  /studies/1.2.250.1.59.40211.12345678.678910
  /series/1.2.250.1.59.40211.981472893.33567182.83456
  /instances/1.2.250.1.59.40211.2678810.76391234.455673.3
  /rendered3D
  HTTP/1.1 
            
Host: www.hospital-stmarco
Accept: image/jpeg
HTTP/1.1 200 OK
Content-Length: 78,643
Content-Type: image/jpeg
<BINARY JPEG DATA>

B.36 Поиск модальности запланированных этапов процедуры с использованием типа носителя JSON

Этот пример иллюстрирует запрос на получение запланированных этапов процедуры для запланированной станции: CTSCANNER, даты начала: 20250101 и модальности: CT, где результаты должны быть возвращены в формате JSON. Кроме того, количество возвращаемых результатов ограничено 20, и запрошено, чтобы результаты содержали все доступные теги. Смещение возвращаемых результатов установлено в 0.

GET /radiology/modality-scheduled-procedure-steps/
    ?00400100.00400010=CTSCANNER&amp;00400100.00400002=20250101&amp;00400100.00080060=CT
    &amp;limit=20&amp;offset=0&amp;includefield=all HTTP/1.1
Host: www.hospital-stmarco
Accept: application/dicom+json

Пример успешного ответа на приведённый выше запрос представлен ниже:

HTTP/1.1 200 OKContent-Length: 1191
Content-Type: application/dicom+json; charset=utf-8
…
[ {
 …,
 "00100010": { "vr": "PN", "Value": [{ "Alphabetic": "Doe^Sally" }] },
 "0020000D": { "vr": "UI", "Value": ["1.2.250.1.59.40211.30000008090412501082300000004"] },
 "00401001": { "vr": "SH", "Value": ["P-ID-22"] },
 …,
 "00400100": { "vr": "SQ", "Value":
  [
    {
      "00400002": { "vr": "DA", "Value": ["20250101"] },
      "00400007": { "vr": "LO", "Value": ["Specials^04a_HeadCTA"] },
      "00400009": { "vr": "SH", "Value": ["PS-ID-23"] },
      "00400010": { "vr": "SH", "Value": ["CTSCANNER"] },
      …
    },
    {
      "00400002": { "vr": "DA", "Value": ["20250101"] },
      "00400007": { "vr": "LO", "Value": ["Specials^04a_SpineCTA"] },
      "00400009": { "vr": "SH", "Value": ["PS-ID-24"] },
      "00400010": { "vr": "SH", "Value": ["CTSCANNER"] },
      …
    },
    …
  ]
 },
 …
}, … ]

Ответ возвращает два запланированных этапа процедуры для Sally Doe — один для головы и один для позвоночника. Атрибуты соответствуют Таблице K.6-1 в PS3.4 :

  • Patient's Name (0010,0010);

  • Study Instance UID (0020,000D);

  • Requested Procedure ID (0040,1001);

  • Scheduled Procedure Step Sequence (0040,0100);

    • Scheduled Procedure Step Description (0040,0007);

    • Scheduled Station Name (0040,0010);

    • Scheduled Procedure Step Start Date (0040,0002);

    • Scheduled Procedure Step ID (0040,0009).

B.37 Создание выполненного этапа процедуры модальности с использованием типа содержимого JSON

Этот пример иллюстрирует запрос на создание выполненного этапа процедуры модальности с использованием JSON. Намерение состоит в том, чтобы перевести его в состояние: "IN PROGRESS". Это продолжение предыдущего примера, приведённого в Разделе B.36, где Patient's Name (0010,0010), Study Instance UID (0020,000D), Scheduled Procedure Step Description (0040,0007) и Requested Procedure ID (0040,1001) переняты из полученного запланированного этапа процедуры модальности, а Performed Procedure Step Status (0040,0252), Performed Procedure Step ID (0040,0253), Accession Number (0008,0050) и Scheduled Procedure Step ID (0040,0009) добавлены как "IN PROGRESS", 1.2.250.1.59.40211.12345678.987654, 1 и "PS-ID-23" соответственно, некоторые из них — в Scheduled Step Attributes Sequence (0040,0270).

POST /radiology/modality-performed-procedure-steps/1.2.250.1.59.40211.12345678.987654 HTTP/1.1
Host: www.hospital-stmarco
Content-Type: application/dicom+json
…
{
  …,
  "00100010": { "vr": "PN", "Value": [{ "Alphabetic": "Doe^Sally" }] },
  "00400242": { "vr": "SH", "Value": ["CTSCANNER"] },
  "00400252": { "vr": "CS", "Value": ["IN PROGRESS"] },
  "00400253": { "vr": "SH", "Value": ["1.2.250.1.59.40211.12345678.987654"] },
  …,
  "00400270": { "vr": "SQ", "Value":
    [
      {
        "00080050": { "vr": "SH", "Value": ["1"] },
        "0020000D": { "vr": "UI", "Value": ["1.2.250.1.59.40211.30000008090412501082300000004"] },
        "00400007": { "vr": "LO", "Value": ["Specials^04a_HeadCTA"] },
        "00400009": { "vr": "SH", "Value": ["PS-ID-23"] },
        "00401001": { "vr": "SH", "Value": ["P-ID-22"] },
        …
      },
      …
    ]
  },
…
}

Успешный ответ на запрос будет следующим:

HTTP/1.1 200 OK

B.38 Обновление выполненного этапа процедуры модальности с произведёнными данными изображений с использованием типа содержимого JSON

Этот пример иллюстрирует HTTP-запрос на обновление выполненного этапа процедуры модальности с использованием JSON. Намерение состоит в том, чтобы записать вновь созданные экземпляры как часть Referenced Image Sequence (0008,1140) во время текущего сбора изображений на модальности.

Этот пример является продолжением предыдущего примера, приведённого в Разделе B.37, и работает с тем же MPPS с UID 1.2.250.1.59.40211.12345678.987654. Он добавляет Performed Series Sequence (0040,0340), которая содержит:

  • описание серии (Series Description (0008,103E)) со значением "Head 1.50 Hr64 ax";

  • Грегори Хаус в качестве выполняющего врача (Performing Physician's Name (0008,1050));

  • Referenced Image Sequence (0008,1140) с двумя элементами, имеющими одинаковый Referenced SOP Class UID (0008,1150), а именно "1.2.840.10008.5.1.4.1.1.2", который является CT Image, и различными Referenced SOP Instance UID (0008,1155);

  • имя протокола (Protocol Name (0018,1030)) со значением "Special^99a_HeadCTA";

  • Series Instance UID (0020,000E): "1.2.250.1.59.40211.197132.30000020040718322840300000007".

POST /radiology/modality-performed-procedure-steps/1.2.250.1.59.40211.12345678.987654/update HTTP/1.1
Host: www.hospital-stmarco
Content-Type: application/dicom+json
…
{
  …,
  "00400340": { "vr": "SQ", "Value":
    [
      {
        "0008103E": { "vr": "LO", "Value": ["Head 1.50 Hr64 ax"] },
        "00081050": { "vr": "PN", "Value": [{ "Alphabetic": "House^Gregory" }] },
        "00081140": { "vr": "SQ", "Value":
          [
            {
              "00081150": { "vr": "UI", "Value": ["1.2.840.10008.5.1.4.1.1.2"] },
              "00081155": { "vr": "UI", "Value": ["1.2.250.1.59.40211.197132.3000002004071832284030000520"] },
              …
            },
            {
              "00081150": { "vr": "UI", "Value": ["1.2.840.10008.5.1.4.1.1.2"] },
              "00081155": { "vr": "UI", "Value": ["1.2.250.1.59.40211.197132.3000002004071832284030000521"] },
              …
            },
            …
          ]
        },
        … ,
        "00181030": { "vr": "LO", "Value": ["Special^99a_HeadCTA"] },
        "0020000E": { "vr": "UI", "Value": ["1.2.250.1.59.40211.197132.30000020040718322840300000007"] },
        …
      },
      …
    ]
  },
  …
}
…

Успешный ответ на запрос будет следующим:

HTTP/1.1 200 OK

Примечание

Обновление последовательностей в рамках Modality Performed Procedure Step, таких как Performed Series Sequence (0040,0340) и Referenced Image Sequence (0008,0140), возможно только путём их предоставления целиком, как требуется в DIMSE. Обновление последовательностей путём предоставления только изменений невозможно. См. Раздел F.7.2.2.2 в PS3.4 . Если исходный сервер обнаруживает, что содержимое последовательности в Modality Performed Procedure Step не расширено, т.е. не все элементы её текущего представления присутствуют в представлении транзакции обновления, он может выдать предупреждающее сообщение. Это не обязательно должно быть ошибкой, так как такое поведение может быть намеренным, например, исправлением ранее допущенной ошибки.

B.39 Завершение выполненного этапа процедуры модальности с использованием типа содержимого JSON

Этот пример иллюстрирует пример HTTP-запроса на завершение выполненного этапа процедуры модальности. Это продолжение предыдущего примера, приведённого в Разделе B.38, работающего с тем же MPPS с UID 1.2.250.1.59.40211.12345678.987654. Здесь добавляются обязательные Performed Procedure Step End Date (0040,0250) и Performed Procedure Step End Time (0040,0251), а Performed Procedure Step Status (0040,0252) устанавливается в "COMPLETED".

POST /radiology/modality-performed-procedure-steps/1.2.250.1.59.40211.12345678.987654/update HTTP/1.1
Host: www.hospital-stmarco
Content-Type: application/dicom+json
…
{
  …,
  "00400250": { "vr": "DA", "Value": ["20200101"] },
  "00400251": { "vr": "TM", "Value": ["1300"] },
  "00400252": { "vr": "CS", "Value": ["COMPLETED"] },
  …
}
…

Успешный ответ на запрос будет следующим:

HTTP/1.1 200 OK

B.40 Получение выполненного этапа процедуры модальности с использованием типа носителя и содержимого JSON

Здесь представлены два примера: первый возвращает все доступные атрибуты, а второй — указанный набор атрибутов.

B.40.1 Возврат всех атрибутов

Этот пример иллюстрирует запрос на получение существующего выполненного этапа процедуры модальности в формате JSON со возвратом всех атрибутов. Он является culmination предыдущих примеров, приведённых в Разделе B.37, Разделе B.38 и Разделе B.39, в котором все добавленные атрибуты возвращаются здесь.

GET /radiology/modality-performed-procedure-steps/1.2.250.1.59.40211.12345678.987654?includefield=all HTTP/1.1
Host: www.hospital-stmarco
Accept: application/dicom+json
A successful response to the request will be:
HTTP/1.1 200 OK
Content-Length: 2191
Content-Type: application/dicom+json; charset=utf-8
…
[
  {
    …
    "00100010": { "vr": "PN", "Value": [{ "Alphabetic": "Doe^Sally" }] },
    "00400242": { "vr": "SH", "Value": ["CTSCANNER"] },
    "00400252": { "vr": "CS", "Value": ["COMPLETED"] },
    "00400253": { "vr": "SH", "Value": ["1.2.250.1.59.40211.12345678.987654"] },
    …,
    "00400270": { "vr": "SQ", "Value":
      [
        {
          "00080050": { "vr": "SH", "Value": ["1"] },
          "0020000D": { "vr": "UI", "Value": ["1.2.250.1.59.40211..30000008090412501082300000004"] },
          "00400007": { "vr": "LO", "Value": ["Specials^04a_HeadCTA"] },
          "00400009": { "vr": "SH", "Value": ["PS-ID-23"] },
          "00401001": { "vr": "SH", "Value": ["P-ID-22"] },
           …
        },
        …
      ]
    },
    …,
    "00400340": { "vr": "SQ", "Value":
      [
        {
          "0008103E": { "vr": "LO", "Value": ["Head 1.50 Hr64 ax"] },
          "00081050": { "vr": "PN", "Value": [{ "Alphabetic": "House^Gregory" }] },
          "00081140": { "vr": "SQ", "Value":
          [
            {
              "00081150": { "vr": "UI", "Value": ["1.2.840.10008.5.1.4.1.1.2"] },
              "00081155": { "vr": "UI", "Value": ["1.2.250.1.59.40211.197132.3000002004071832284030000520"] },
              …
            },
            {
               "00081150": { "vr": "UI", "Value": ["1.2.840.10008.5.1.4.1.1.2"] },
               "00081155": { "vr": "UI", "Value": ["1.2.250.1.59.40211.197132.3000002004071832284030000521"] },
               …
            },
            …
          ]
        },
        …,
        "00181030": { "vr": "LO", "Value": ["Special^99a_HeadCTA"] },
        "0020000E": { "vr": "UI", "Value": ["1.2.250.1.59.40211.197132.30000020040718322840300000007"] },
        …
        },
        …
      ]
    },
    …
  }
]

Атрибуты соответствуют Разделу F.8 в PS3.4 .

B.40.2 Возврат только определённых атрибутов

Этот пример иллюстрирует запрос на получение существующего выполненного этапа процедуры модальности в формате JSON с возвратом только определённых атрибутов, в данном случае Patient's Name (0010,0010), Performed Procedure Step Status (0040,0252) и Performed Station Name (0040,0242).

GET /radiology/modality-performed-procedure-steps/1.2.250.1.59.40211.12345678.987654?includefield=00100010,00400252,00400242 HTTP/1.1
Host: www.hospital-stmarco
Accept: application/dicom+json

Успешный ответ на запрос будет следующим:

HTTP/1.1 200 OK
Content-Length: 289
Content-Type: application/dicom+json; charset=utf-8
[
  {
    "00100010": { "vr": "PN", "Value": [{ "Alphabetic": "Doe^Sally" }] },
    "00400242": { "vr": "SH", "Value": ["CTSCANNER"] },
    "00400252": { "vr": "CS", "Value": ["COMPLETED"] }
  }
]

Примечание

Порядок атрибутов в результате отличается от порядка в запросе, поскольку результат в JSON должен предоставлять атрибуты в порядке возрастания (см. Раздел F.2.2). Такое упорядочивание не требуется для параметров запроса.

B.41 Двунаправленные прокси-серверы для поиска модальности запланированных этапов процедуры

Служба DICOMweb Modality Scheduled Procedure Step Service может быть развёрнута в гибридной среде, т.е. в среде, в которой используются как DICOMweb, так и DIMSE. В такой гибридной среде прокси-сервер может обеспечивать взаимодействие транзакций между службами, позволяя исходному серверу DICOMweb или DIMSE SCP поддерживать примитивы рабочего процесса для смешанного набора пользовательских агентов DICOMweb и DIMSE SCU.

DICOM не требует реализации прокси-серверов; однако, поскольку они были бы очень полезны в гибридной среде, примеры в этом разделе показывают, как это можно сделать.

Рисунок B.41-1 показывает, как прокси-сервер может облегчить запрос на поиск модальности запланированных этапов процедуры от DIMSE SCU к исходному серверу DICOMweb.

Modality Scheduled Procedure Step DIMSE Proxy for DICOMweb Origin Server

Рисунок B.41-1. DIMSE-прокси модальности запланированных этапов процедуры для исходного сервера DICOMweb


Рисунок B.41-2 показывает, как прокси-сервер может облегчить запрос на поиск модальности запланированных этапов процедуры от пользовательского агента DICOMweb к DIMSE SCP.

Modality Scheduled Procedure Step DICOMweb Proxy for DIMSE SCP

Рисунок B.41-2. DICOMweb-прокси модальности запланированных этапов процедуры для DIMSE SCP


B.42 Двунаправленные прокси-серверы для управления выполненным этапом процедуры модальности

Служба DICOMweb Modality Performed Procedure Step Service может быть развёрнута в гибридной среде, т.е. в среде, в которой используются как DICOMweb, так и DIMSE. В такой гибридной среде прокси-сервер может обеспечивать взаимодействие транзакций между службами, позволяя исходному серверу DICOMweb или DIMSE SCP поддерживать примитивы рабочего процесса для смешанного набора пользовательских агентов DICOMweb и DIMSE SCU.

DICOM не требует реализации прокси-серверов; однако, поскольку они были бы очень полезны в гибридной среде, примеры в этом разделе показывают, как это можно сделать.

B.42.1 Создание

Рисунок B.42.1-1 показывает, как прокси-сервер может облегчить запрос на создание выполненного этапа процедуры модальности от DIMSE SCU к исходному серверу DICOMweb.

MPPS Create DIMSE Proxy for DICOMweb Origin Server

Рисунок B.42.1-1. DIMSE-прокси создания MPPS для исходного сервера DICOMweb


Рисунок B.42.1-2 показывает, как прокси-сервер может облегчить запрос на создание выполненного этапа процедуры модальности от пользовательского агента DICOMweb к DIMSE SCP.

MPPS Create DICOMweb Proxy for DIMSE SCP

Рисунок B.42.1-2. DICOMweb-прокси создания MPPS для DIMSE SCP


B.42.2 Обновление

Рисунок B.42.2-1 показывает, как прокси-сервер может облегчить запрос на обновление выполненного этапа процедуры модальности от DIMSE SCU к исходному серверу DICOMweb.

MPPS Update DIMSE Proxy for DICOMweb Origin Server

Рисунок B.42.2-1. DIMSE-прокси обновления MPPS для исходного сервера DICOMweb


Рисунок B.42.2-2 показывает, как прокси-сервер может облегчить запрос на обновление выполненного этапа процедуры модальности от пользовательского агента DICOMweb к DIMSE SCP.

MPPS Update DICOMweb Proxy for DIMSE SCP

Рисунок B.42.2-2. DICOMweb-прокси обновления MPPS для DIMSE SCP


B.42.3 Получение

Рисунок B.42.3-1 показывает, как прокси-сервер может облегчить запрос на получение выполненного этапа процедуры модальности от DIMSE SCU к исходному серверу DICOMweb.

MPPS Retrieve DIMSE Proxy for DICOMweb Origin Server

Рисунок B.42.3-1. DIMSE-прокси получения MPPS для исходного сервера DICOMweb


Рисунок B.42.3-2 показывает, как прокси-сервер может облегчить запрос на получение выполненного этапа процедуры модальности от пользовательского агента DICOMweb к DIMSE SCP.

MPPS Retrieve DICOMweb Proxy for DIMSE SCP

Рисунок B.42.3-2. DICOMweb-прокси получения MPPS для DIMSE SCP


C Устаревшие

См. PS3.18-2019a.

D Преобразование наборов символов IANA

Таблица D-1 предоставляет сопоставление некоторых предпочтительных MIME-имён из Реестра наборов символов IANA с определёнными терминами DICOM Specific Character Set.

Таблица D-1. Преобразование наборов символов IANA

Предпочтительное MIME-имя IANA

Определённые термины DICOM для Specific Character Set (0008,0005)

Язык

ISO-8859-1

ISO_IR 100

Латинский алфавит Latin-1

ISO-8859-2

ISO_IR 101

Latin-2 Восточная Европа

ISO-8859-3

ISO_IR 109

Латинский алфавит №3

ISO-8859-4

ISO_IR 110

Латинский алфавит №4

ISO-8859-5

ISO_IR 144

Кириллица

ISO-8859-6

ISO_IR 127

Арабский

ISO-8859-7

ISO_IR 126

Греческий

ISO-8859-8

ISO_IR 138

Иврит

ISO-8859-9

ISO_IR 148

Латинский алфавит №5

ISO-8859-15

ISO_IR 203

Латинский алфавит №9

TIS-620

ISO_IR 166

Тайский

ISO-2022-JP

ISO 2022 IR 13\ISO 2022 IR 87

Японский

ISO-2022-KR

ISO 2022 IR 6\ISO 2022 IR 149

Корейский

ISO-2022-CN

ISO 2022 IR 6\ISO 2022 IR 58

Китайский

GB18030

GB18030

Китайский

GBK

GBK

Китайский

UTF-8

ISO_IR 192

Юникод


E Устаревшие

См. PS3.18-2019a.

F Модель DICOM JSON

F.1 Введение в JavaScript Object Notation (JSON)

JSON — это текстовый открытый стандарт, производный от JavaScript, для представления структур данных и связанных с ними массивов. Он является независимым от языка и в основном используется для сериализации и передачи лёгких структурированных данных по сетевому соединению. Он подробно описан Internet Engineering Task Force (IETF) в [RFC8259].

Модель DICOM JSON дополняет основанную на XML нативную модель DICOM (Native DICOM Model), предоставляя компактное представление данных, возвращаемых веб-службами DICOM. Хотя это представление может использоваться для кодирования любого типа набора данных DICOM, ожидается, что оно будет применяться клиентскими приложениями, особенно мобильными клиентами, как описано в вариантах использования QIDO-RS (см. Приложение HHH «Переход от WADO к RESTful-службам (Информативное)» в PS3.17).

За исключением выравнивания до чётной длины в байтах, источник данных, создающий новый экземпляр модели DICOM JSON, должен следовать правилам кодирования DICOM при создании значений для атрибутов DICOM в экземпляре модели DICOM JSON. Значения атрибутов, закодированные в модели DICOM JSON, не обязаны выравниваться до чётной длины в байтах.

Получатель данных, преобразующий данные из экземпляра модели DICOM JSON обратно в бинарно закодированный DICOM-объект, должен скорректировать выравнивание до чётной длины в байтах по мере необходимости для соответствия правилам кодирования, указанным в PS3.5.

F.2 Модель DICOM JSON

Модель DICOM JSON очень близко следует нативной модели DICOM для XML (Native DICOM Model), так что системы могут использовать оба формата без значительной переработки. Тип носителя для DICOM JSON — application/dicom+json. Репертуар символов по умолчанию должен быть UTF-8 / ISO_IR 192.

F.2.1 Структура множественных результатов

Множественные результаты, возвращаемые в JSON, организованы как один массив объектов JSON верхнего уровня. Это отличается от нативной модели DICOM, которая возвращает несколько результатов как составную коллекцию одиночных XML-документов.

F.2.1.1 Примеры

F.2.1.1.1 Нативная модель DICOM
<?xml version="1.0" encoding="UTF-8" xml:space="preserve" ?>
<NativeDicomModel>
  <DicomAttribute tag="0020000D" vr="UI" keyword="StudyInstanceUID">
    <Value number="1">1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873</Value>
  </DicomAttribute>
</NativeDicomModel>
…
<?xml version="1.0" encoding="UTF-8" xml:space="preserve" ?>
<NativeDicomModel>
  <DicomAttribute tag="0020000D" vr="UI" keyword="StudyInstanceUID">
    <Value number="1">1.2.444.200036.9116.2.2.2.1762893313.1029997326.945876</Value>
  </DicomAttribute>
</NativeDicomModel>
F.2.1.1.2 Модель DICOM JSON
[
  {
     "0020000D": {
      "vr": "UI",
      "Value": [ "1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" ]
    }
  },
  {
    "0020000D" : {
      "vr": "UI",
      "Value": [ "1.2.392.200036.9116.2.2.2.2162893313.1029997326.945876" ]
    }
  }
]

F.2.2 Структура объекта модели DICOM JSON

Объект модели DICOM JSON является представлением набора данных DICOM.

Внутренняя структура объекта модели DICOM JSON представляет собой последовательность объектов, представляющих атрибуты в наборе данных DICOM.

Объекты атрибутов в объекте модели DICOM JSON должны быть упорядочены по имени свойства в порядке возрастания лексикографического (алфавитного) порядка.

Атрибуты Group Length (gggg,0000) не должны включаться в объект модели DICOM JSON.

Имя каждого объекта атрибута:

  • Восьмисимвольное шестнадцатеричное представление в верхнем регистре DICOM-тега

Каждый объект атрибута содержит следующие именованные дочерние объекты:

  • vr: строка, кодирующая представление значения DICOM (DICOM Value Representation). Соответствие между представлениями значений DICOM и представлениями значений JSON описано в Разделе F.2.3.

  • Не более одного из:

    • Value: массив, содержащий один из следующих элементов:

      • Элементы поля значений атрибута DICOM с VR, отличным от PN, SQ, OB, OD, OF, OL, OV, OW или UN (описано в Разделе F.2.4)

        Кодирование пустых элементов поля значений описано в Разделе F.2.5

      • Элементы поля значений атрибута DICOM с VR PN. Непустые компоненты имени каждого элемента кодируются как строки JSON со следующими именами:

        • Alphabetic

        • Ideographic

        • Phonetic

      • Объекты модели DICOM JSON, соответствующие элементам последовательности атрибута с VR SQ

        Пустые элементы последовательности представляются пустыми объектами

    • BulkDataURI: строка, кодирующая URL WADO-RS значения объемных данных (Bulk Data Value), описывающая поле значений объемлющего атрибута с VR DS, FL, FD, IS, LT, OB, OD, OF, OL, OV, OW, SL, SS, ST, SV, UC, UL, UN, US, UT или UV (описано в Разделе F.2.6)

    • InlineBinary: строка base64, кодирующая поле значений объемлющего атрибута с VR OB, OD, OF, OL, OV, OW или UN (описано в Разделе F.2.7)

Примечание

  1. For Private Data Elements, the group and element numbers will follow the rules specified in Раздел 7.8.1 в PS3.5

  2. Представление имени лица более тесно согласовано с представлением элемента данных DICOM, чем с XML-представлением DICOM PS3.19.

  3. Атрибут Specific Character Set (0008,0005), если он присутствует, отражает кодировку символов исходного набора данных DICOM и не указывает кодировку символов представления JSON, которая является UTF-8 согласно [RFC8259]. Этот атрибут сохраняется как метаданные и может использоваться для реконструкции исходной бинарной кодировки DICOM. См. Раздел C.12.1.1.2 в PS3.3 для получения дополнительных сведений.

  4. При преобразовании BulkData с VR, зависящими от набора символов (SH, LO, ST, PN, LT, UC или UT), в представление JSON кодировка будет UTF-8, как указано в [RFC8259]. Для InlineBinary и BulkData с VR UN исходная байтовая кодировка сохраняется без преобразования набора символов.

  5. Если InlineBinary или BulkData с VR UN интерпретируется как содержащее строковое содержимое, для определения кодировки символов используется Specific Character Set (0008,0005) исходного набора данных DICOM.

F.2.3 Представление значений DICOM JSON

DICOM Value Representation (VR) включается в каждый объект атрибута модели DICOM JSON и именуется "vr". Например:

"vr": "CS"

Кодирование JSON атрибута должно использовать тип данных JSON, соответствующий представлениям значений DICOM в Таблице F.2.3-1. Кодировки JSON должны соответствовать определению, набору символов (если применимо) и длине значения, указанным для данного представления значения DICOM (см. Раздел 6.2 «Value Representation (VR)» в PS3.5 ) со следующими исключениями:

  • Атрибуты с представлением значения AT должны быть ограничены восьмисимвольным шестнадцатеричным представлением в верхнем регистре тега DICOM

Таблица F.2.3-1. Сопоставление VR DICOM с типом данных JSON

Имя VR

Тип

Тип данных JSON

AE

Application Entity

String

AS

Age String

String

AT

Attribute Tag

String

CS

Code String

String

DA

Date

String

DS

Decimal String

Number or String

См. примечание.

DT

Date Time

String

FL

Floating Point Single

Number

FD

Floating Point Double

Number

IS

Integer String

Number or String

См. примечание.

LO

Long String

String

LT

Long Text

String

OB

Other Byte

Base64 encoded octet-stream

OD

Other Double

Base64 encoded octet-stream

OF

Other Float

Base64 encoded octet-stream

OL

Other Long

Base64 encoded octet-stream

OV

Other 64-bit Very Long

Base64 encoded octet-stream

OW

Other Word

Base64 encoded octet-stream

PN

Person Name

Object containing Person Name component groups as strings (see Section F.2.2)

SH

Short String

String

SL

Signed Long

Number

SQ

Sequence of Items

Array containing DICOM JSON Objects

SS

Signed Short

Number

ST

Short Text

String

SV

Signed 64-bit Very Long

Number or String

See Note.

TM

Time

String

UC

Unlimited Characters

String

UI

Unique Identifier (UID)

String

UL

Unsigned Long

Number

UN

Unknown

Base64 encoded octet-stream

UR

Universal Resource Identifier or Universal Resource Locator (URI/URL)

String

US

Unsigned Short

Number

UT

Unlimited Text

String

UV

Unsigned 64-bit Very Long

Number or String.

См. примечание.


Примечание

Для IS, DS, SV и UV может использоваться строковое представление JSON для сохранения исходного формата при преобразовании представления или, при необходимости, во избежание потери точности десятичной строки.

Хотя данные, такие как даты, представляются в модели DICOM JSON в виде строк, ожидается, что они будут обрабатываться так же, как исходный атрибут, определенный в Главе 6 в PS3.6 .

F.2.4 Кратность значений DICOM JSON

Значение или значения заданного атрибута DICOM приводятся в массиве "Value". Кратность значения (VM) не содержится в объекте DICOM JSON.

Например:

"Value": [ "bar", "foo" ]

или:

"Value": [ "bar" ]

Примечание

  1. Для тех VR, указанных в PS3.5 как зависящих от Specific Character Set (0008,0005) и допускающих несколько строковых значений, разделенных разделителем, т.е. SH, LO, PN и UC, битовая комбинация 05/12 (0x5C) используется для разделения значений в массиве “Value”, независимо от того, является ли графический символ, представленный комбинацией 05/12, ОБРАТНОЙ КОСОЙ ЧЕРТОЙ (BACKSLASH) (как в наборе символов по умолчанию) или ЗНАКОМ ИЕНЫ (YEN SIGN) (как в [JIS X 0201]). См. Раздел 6.1.2.3 «Encoding of Character Repertoires» в PS3.5. Ожидаемое поведение при перекодировании из JSON в другие представления и наоборот заключается в сохранении семантики нескольких отдельных значений, независимо от того, закодированы ли они как многозначный массив в JSON или как поток символов с разделителями в представлениях PS3.5.

  2. Графические символы, совпадающие с разделителем, заданным для набора символов многозначных VR, не могут быть представлены как значения в некоторых наборах символов при кодировании в представлениях PS3.5. Соответственно, не рекомендуется использовать графический символ в значении JSON для VR SH, LO, PN и UC, такой как ОБРАТНАЯ КОСАЯ ЧЕРТА (BACKSLASH) или ЗНАК ИЕНЫ (YEN SIGN), который будет представлен как 05/12 в наборе символов по умолчанию или [JIS X 0201], поскольку при перекодировании в представление PS3.5, из-за отсутствия определенного механизма экранирования, они могут ошибочно интерпретироваться как разделители, разбивая значение. Например, пути в стиле DOS, использующие ОБРАТНУЮ КОСУЮ ЧЕРТУ в качестве разделителя компонентов файла, не могут быть закодированы в одном значении одного из затронутых VR.

F.2.5 Нулевые значения модели DICOM JSON

Если атрибут присутствует в DICOM, но пуст (т.е. длина значения равна 0), он должен быть сохранен в объекте атрибута DICOM JSON, не содержащем "Value", "BulkDataURI" или "InlineBinary".

Если многозначный атрибут имеет одно или несколько пустых значений, они представляются как элементы массива "null". Например:

"Value": [ "bar", null, "foo" ]

Если последовательность содержит пустые элементы, они представляются как пустые объекты JSON в массиве.

"Value": [ { … }, { }, { … } ]

F.2.6 BulkDataURI

Если атрибут содержит "BulkDataURI" , это поле содержит URI значения элемента BulkData, как определено в Таблице A.1.5-2 в PS3.19 .

F.2.7 InlineBinary

Если атрибут содержит "InlineBinary", это поле содержит кодировку base64 поля значений объемлющего атрибута, как определено в Таблице A.1.5-2 в PS3.19 .

F.3 Преобразование в другие форматы DICOM

F.3.1 Нативная модель DICOM XML

Преобразование между XML нативной модели DICOM и моделью DICOM JSON не может быть выполнено с помощью универсальных преобразователей XML - JSON.

Сопоставление между двумя форматами приведено ниже (см. также Таблицу F.3.1-1):

  • XML-элемент "NativeDicomModel" сопоставляется с объектом модели DICOM JSON

  • Каждый элемент "DicomAttribute" сопоставляется с объектом атрибута в объекте модели DICOM JSON

    • Атрибут "tag" сопоставляется с именем объекта JSON

      • XML нативной модели DICOM допускает дублирование значений Tag, а модель DICOM JSON — нет. Для разрешения этой проблемы значения Tag частных атрибутов должны быть переназначены в соответствии с правилами предотвращения конфликтов, указанными в Разделе 7.8.1 «Private Data Element Tags» в PS3.5 .

    • Атрибут "vr" сопоставляется с дочерней строкой "vr"

  • Элементы "Value" сопоставляются с членами дочернего массива "Value"

    • Элемент "Value" с атрибутом "number=n" сопоставляется с "Value[n-1]"

    • Пустые элементы "Value" представляются записями "null" в массиве "Value"

  • Элементы "PersonName" сопоставляются с объектами в массиве "Value". Для элемента "PersonName" с атрибутом "number=n":

    • Элемент "Alphabetic" сопоставляется с "Value[ n-1 ].Alphabetic"

    • Элемент "Ideographic" сопоставляется с "PersonName[ n ].Ideographic"

    • Элемент "Phonetic" сопоставляется с "PersonName[ n ].Phonetic"

  • Элементы "Item" сопоставляются с членами дочернего массива "Value"

    • Элемент "Item" с атрибутом "number=n" сопоставляется с "Value[n-1]"

    • Пустые элементы "Item" представляются пустыми записями свойств JSON в массиве "Value"

  • Атрибут "uri" элемента "BulkData" сопоставляется со строкой "BulkDataURI"

  • Элемент "InlineBinary" сопоставляется со строкой "InlineBinary"

Таблица F.3.1-1. Сопоставление XML с JSON

DICOM PS3.19 XML

DICOM JSON Model

<NativeDicomModel>

<DicomAttribute tag= "ggggee01" … />

<DicomAttribute tag= "ggggee02" … />

</NativeDicomModel>

{

"ggggee01" : { … },

"ggggee02" : { … },

}

<DicomAttribute

tag= "ggggeeee"

vr= "VR" >

<Value number="1"> Value </Value>

</DicomAttribute>

"ggggeeee" : {

"vr": "VR" ,

"Value": [ Value ]

}

<DicomAttribute tag= "ggggeeee" … >

<Value number="1"> Value1 </Value>

<Value number="2"> Value2 </Value>

</DicomAttribute>

"ggggeeee" : {

"Value": [ Value1 ,

Value2 , …

]

}

<DicomAttribute tag= "ggggeeee" … >

</DicomAttribute>

"ggggeeee" : {

}

<DicomAttribute tag= "ggggeeee" vr="PN" … >

<PersonName number="1">

<Alphabetic>

<FamilyName> SB1

</FamilyName>

<GivenName> SB2

</GivenName>

<MiddleName> SB3

</MiddleName>

<NamePrefix> SB4

</NamePrefix>

<NameSuffix> SB5

</NameSuffix>

</Alphabetic>

<Ideographic>

<FamilyName> ID1

</FamilyName>

</Ideographic>

<Phonetic>

<FamilyName> PH1

</FamilyName>

</Phonetic>

</PersonName>

<PersonName number="2">

<Alphabetic>

<FamilyName> SB6

</FamilyName>

</Alphabetic>

</PersonName>

</DicomAttribute>

"ggggeeee" : {

"vr": "PN",

"Value": [

{

"Alphabetic" : "SB1^SB2^SB3^SB4^SB5",

"Ideographic": "ID1^ID2^ID3^ID4^ID5" ,

"Phonetic": "PH1^PH2^PH3^PH4^PH5"

},

{

"Alphabetic":

" SB6 "

}

]

}

<DicomAttribute tag= "ggggeeee" vr="SQ" … >

<Item number="1">

<DicomAttribute tag= "ggggee01" … />

<DicomAttribute tag= "ggggee02" … />

</Item>

<Item number="2">

<DicomAttribute tag= "ggggee01" … />

<DicomAttribute tag= "ggggee02" … />

</Item>

<Item number="3">

</Item>

</DicomAttribute>

"ggggeeee" : {

"vr": "SQ",

"Value":

[

{

"ggggee01" : { … },

"ggggee02" : { … },

}

{

"ggggee01" : { … },

"ggggee02" : { … },

}

{ }

]

}

<DicomAttribute tag= "ggggeeee" … >

<BulkData uri= "BulkDataURI" >

</DicomAttribute>

"ggggeeee" : {

"BulkDataURI": "BulkDataURI"

}

<DicomAttribute tag= "ggggeeee" … >

<InlineBinary> Base64String </InlineBinary>

</DicomAttribute>

"ggggeeee" : {

"InlineBinary": "Base64String"

}

<DicomAttribute tag= "gggg00ee" privateCreator= "PrivateCreator" … >

</DicomAttribute>

"gggg00XX" : {

"vr": "LO" ,

"Value": [ "PrivateCreator" ]

}

"ggggXXee" : {

}


F.4 Пример модели DICOM JSON

// The following example is a QIDO-RS SearchForStudies response consisting 
// of two matching studies, corresponding to the example QIDO-RS request:
// GET http://qido.nema.org/studies?PatientID=12345&includefield=all&limit=2
[
    {   // Result 1
        "00080005": {
            "vr": "CS",
            "Value": [ "ISO_IR 192" ]
        },
        "00080020": {
            "vr": "DA",
            "Value": [ "20130409" ]
        },
        "00080030": {
            "vr": "TM",
            "Value": [ "131600.0000" ]
        },
        "00080050": {
            "vr": "SH",
            "Value": [ "11235813" ]
        },
        "00080056": {
            "vr": "CS",
            "Value": [ "ONLINE" ]
        },
        "00080061": {
            "vr": "CS",
            "Value": [
                "CT",
                "PET"
            ]
        },
        "00080090": {
            "vr": "PN",
            "Value": [
              {
                "Alphabetic": "^Bob^^Dr."
              }
            ]
        },
        "00081190": {
            "vr": "UR",
            "Value": [ "http://wado.nema.org/studies/
            1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" ]
        },
        "00090010": {
            "vr": "LO",
            "Value": [ "Vendor A" ]
        },
        "00091002": {
            "vr": "UN",
            "InlineBinary": "z0x9c8v7"
        },
        "00100010": {
            "vr": "PN",
            "Value": [
              {
                "Alphabetic": "Wang^XiaoDong",
                "Ideographic": "王^小東"
              }
            ]
        },
        "00100020": {
            "vr": "LO",
            "Value": [ "12345" ]
        },
        "00100021": {
            "vr": "LO",
            "Value": [ "Hospital A" ]
        },
        "00100030": {
            "vr": "DA",
            "Value": [ "19670701" ]
        },
        "00100040": {
            "vr": "CS",
            "Value": [ "M" ]
        },
        "00101002": {
            "vr": "SQ",
            "Value": [
                {
                    "00100020": {
                        "vr": "LO",
                        "Value": [ "54321" ]
                    },
                    "00100021": {
                        "vr": "LO",
                        "Value": [ "Hospital B" ]
                    }
                },
                {
                    "00100020": {
                        "vr": "LO",
                        "Value": [ "24680" ]
                    },
                    "00100021": {
                        "vr": "LO",
                        "Value": [ "Hospital C" ]
                    }
                }
            ]
        },
        "0020000D": {
            "vr": "UI",
            "Value": [ "1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" ]
        },
        "00200010": {
            "vr": "SH",
            "Value": [ "11235813" ]
        },
        "00201206": {
            "vr": "IS",
            "Value": [ 4 ]
        },
        "00201208": {
            "vr": "IS",
            "Value": [ 942 ]
        }
    },
    {   // Result 2
        "00080005": {
            "vr": "CS",
            "Value": [ "ISO_IR 192" ]
        },
        "00080020": {
            "vr": "DT",
            "Value": [ "20130309" ]
        },
        "00080030": {
            "vr": "TM",
            "Value": [ "111900.0000" ]
        },
        "00080050": {
            "vr": "SH",
            "Value": [ "11235821" ]
        },
        "00080056": {
            "vr": "CS",
            "Value": [ "ONLINE" ]
        },
        "00080061": {
            "vr": "CS",
            "Value": [
                "CT",
                "PET"
            ]
        },
        "00080090": {
            "vr": "PN",
            "Value": [
              {
                "Alphabetic": "^Bob^^Dr." 
              }
            ]
        },
        "00081190": {
            "vr": "UR",
            "Value": [ "http://wado.nema.org/studies/
            1.2.392.200036.9116.2.2.2.2162893313.1029997326.945876" ]
        },
        "00090010": {
            "vr": "LO",
            "Value": [ "Vendor A" ]
        },
        "00091002": {
            "vr": "UN",
            "InlineBinary": "z0x9c8v7"
        },
        "00100010": {
            "vr": "PN",
            "Value": [
              {
                "Alphabetic": "Wang^XiaoDong",
                "Ideographic": "王^小東" 
              }
            ]
        },
        "00100020": {
            "vr": "LO",
            "Value": [ "12345" ]
        },
        "00100021": {
            "vr": "LO",
            "Value": [ "Hospital A" ]
        },
        "00100030": {
            "vr": "DA",
            "Value": [ "19670701" ]
        },
        "00100040": {
            "vr": "CS",
            "Value": [ "M" ]
        },
        "00101002": {
            "vr": "SQ",
            "Value": [
                {
                    "00100020": {
                        "vr": "LO",
                        "Value": [ "54321" ]
                    },
                    "00100021": {
                        "vr": "LO",
                        "Value": [ "Hospital B" ]
                    }
                },
                {
                    "00100020": {
                        "vr": "LO",
                        "Value": [ "24680" ]
                    },
                    "00100021": {
                        "vr": "LO",
                        "Value": [ "Hospital C" ]
                    }
                }
            ]
        },
        "0020000D": {
            "vr": "UI",
            "Value": [ "1.2.392.200036.9116.2.2.2.2162893313.1029997326.945876" ]
        },
        "00200010": {
            "vr": "SH",
            "Value": [ "11235821" ]
        },
        "00201206": {
            "vr": "IS",
            "Value": [ 5 ]
        },
        "00201208": {
            "vr": "IS",
            "Value": [ 1123 ]
        }
    }
]

F.5 Устаревшие

See PS3.18-2019a.

G WADL JSON Representation

G.1 Введение

Хотя спецификация WADL определяет только XML-кодирование для полезной нагрузки WADL, структуру данных можно легко представить с использованием JSON. Кроме того, преобразование из XML в JSON и наоборот может быть выполнено без потерь.

G.2 XML-элементы

JSON-кодирование XML-элементов WADL зависит от того, является ли элемент:

  • элементом "doc"

  • элементом, уникальным в пределах определённого родительского элемента (например, "request")

  • элементом, который может повторяться в пределах определённого родительского элемента (например, "param")

G.2.1 Элементы Doc

Элемент "doc" представляется в виде массива объектов, где каждый объект может содержать:

  • строка "@xml:lang"

  • строка "@title"

  • строка "value"

Пример:

"doc": [ 
		{
			"@xml:lang": "en",
			"value": "Granular cell tumor"
		},
		{
			"@xml:lang": "ja",
			"value": "顆粒細胞腫"
		},
		{
			"@xml:lang": "fr",
			"value": "Tumeur à cellules granuleuses"
		}
]

G.2.2 Уникальные элементы

Все уникальные XML-элементы WADL представляются как объект, имя которого является именем XML-элемента, и где каждый член может содержать:

  • строку "@{attribute}" для каждого XML-атрибута с именем {attribute}

  • дочерний объект для каждого дочернего элемента, который должен быть уникальным

  • дочерний массив для каждого дочернего элемента, который может быть неуникальным

Пример:

"request": {
			"param": [ ... ],
			"representation": [ ... ]
}

G.2.3 Повторяющиеся элементы

Все повторяющиеся XML-элементы WADL представляются в виде массива объектов, имя которого является именем XML-элемента, и где каждый может содержать:

  • строку "@{attribute}" для каждого XML-атрибута с именем {attribute}

  • дочерний объект для каждого дочернего элемента, который должен быть уникальным

  • дочерний массив для каждого дочернего элемента, который может быть неуникальным

Пример:

"param": [ 
		{
			"@name": "Accept",
			"@style": "header"
		},
		{
			"@name": "Cache-control",
			"@style": "header"
		}
	]

H Описание возможностей

Описание возможностей представляет собой документ WADL. См. [WADL].

Ресурс описания возможностей напрямую и однозначно следует из RESTful-ресурсов, определённых в Разделе 10, Разделе 11, Разделе 12, Разделе 13, Разделе 14 и Разделе 15.

Документ WADL должен содержать один элемент верхнего уровня "application".

Элемент "application" должен содержать один элемент "resources", значение атрибута "base" которого является базовым URL-адресом для службы. Это может быть комбинация протокола (http или https), хоста, порта и приложения.

Кроме того, содержимое WADL должно включать элемент "resource" для целевого ресурса, указанного в запросе, описывающий все методы и дочерние ресурсы для указанного ресурса и каждого из его потомков.

Полное дерево ресурсов и методы, определённые для каждого ресурса, описаны в Таблице H-1.

Примечание

Транзакция получения возможностей (Retrieve Capabilities Transaction) исключена из Таблицы H-1, поскольку эта транзакция используется для получения данного документа, а WADL не является самоописываемым.

Таблица H-1. Ресурсы и методы

Служба

Ресурс

Транзакции

Ссылка

Исследования (Studies) (см. Раздел 10.1.1)

studies

Поиск исследований

Сохранение экземпляров

Раздел 10.6

Раздел 10.5

{StudyInstance}

Получение исследования

Сохранение экземпляров исследования

Раздел 10.4

Раздел 10.5

metadata

Получение метаданных исследования

Раздел 10.4

rendered

Получение визуализированного исследования

Раздел 10.4

renderedmpr

Получение визуализированного MPR-объёмного исследования

Раздел 10.4

rendered3d

Получение визуализированного 3D-объёмного исследования

Раздел 10.4

thumbnail

Получение миниатюры исследования

Раздел 10.4

bulkdata

Получение объёмных данных исследования

Раздел 10.4

pixeldata

Получение пиксельных данных исследования

Раздел 10.4

series

Поиск серий исследования

Раздел 10.6

{SeriesInstance}

Получение серии

Раздел 10.4

metadata

Получение метаданных серии

Раздел 10.4

rendered

Получение визуализированной серии

Раздел 10.4

renderedmpr

Получение визуализированной MPR-объёмной серии

Раздел 10.4

rendered3d

Получение визуализированной 3D-объёмной серии

Раздел 10.4

thumbnail

Получение миниатюры серии

Раздел 10.4

bulkdata

Получение объёмных данных серии

Раздел 10.4

pixeldata

Получение пиксельных данных серии

Раздел 10.4

instances

Поиск экземпляров серии исследования

Раздел 10.4

{SOPInstance}

Получение экземпляра

Раздел 10.4

metadata

Получение метаданных экземпляра

Раздел 10.4

rendered

Получение визуализированного экземпляра

Раздел 10.4

renderedmpr

Получение визуализированного MPR-объёмного экземпляра

Раздел 10.4

rendered3d

Получение визуализированного 3D-объёмного экземпляра

Раздел 10.4

thumbnail

Получение миниатюры экземпляра

Раздел 10.4

bulkdata

Получение объёмных данных экземпляра

Раздел 10.4

pixeldata

Получение пиксельных данных экземпляра

Раздел 10.4

frames

N/A

N/A

{framelist}

Получение кадров

Раздел 10.4

rendered

Получение визуализированных кадров

Раздел 10.4

renderedmpr

Получение визуализированных MPR-объёмных кадров

Раздел 10.4

rendered3d

Получение визуализированных 3D-объёмных кадров

Раздел 10.4

thumbnail

Получение миниатюры кадра

Раздел 10.4

pixeldata

Получение пиксельных данных кадра

Раздел 10.4

instances

Поиск экземпляров исследования

Раздел 10.6

series

Поиск серий

Раздел 10.6

{SeriesInstance}

N/A

N/A

{instances}

Поиск экземпляров

Раздел 10.6

instances

Поиск экземпляров

Раздел 10.6

{BulkDataReference}

Получение объёмных данных

Раздел 10.4

Список работ (Worklist) (см. Раздел 11.1.1)

workitems

Поиск рабочих элементов

Создание рабочего элемента

Раздел 11.9

Раздел 11.4

{Workitem}

Получение рабочего элемента

Обновление рабочего элемента

Раздел 11.4

Раздел 11.6

state

Изменение состояния рабочего элемента

Раздел 11.7

cancelrequest

Запрос отмены рабочего элемента

Раздел 11.8

subscribers

N/A

N/A

{subscriber}

Подписка

Отписка

Раздел 11.10

Раздел 11.11

1.2.840.10008.5.1.4.34.5

N/A

N/A

subscribers

N/A

N/A

{subscriber}

Подписка

Отписка

Раздел 11.10

Раздел 11.11

suspend

Отписка

Раздел 11.11

1.2.840.10008.5.1.4.34.5.1

N/A

N/A

subscribers

N/A

N/A

{subscriber}

Подписка

Отписка

Раздел 11.10

Раздел 11.11

suspend

Приостановка подписки на список работ

Раздел 11.11

Объекты, не связанные с пациентом (Non-Patient Instance) (см. Раздел 12.1.1)

color-palettes

N/A

N/A

{uid}

Получение

Сохранение

Поиск

Раздел 12.4

Раздел 12.5

Раздел 12.6

defined-procedure-protocol

N/A

N/A

{uid}

Получение

Сохранение

Поиск

Раздел 12.4

Раздел 12.5

Раздел 12.6

hanging-protocol

N/A

N/A

{uid}

Получение

Сохранение

Поиск

Раздел 12.4

Раздел 12.5

Раздел 12.6

implant-templates

N/A

N/A

{uid}

Получение

Сохранение

Поиск

Раздел 12.4

Раздел 12.5

Раздел 12.6

inventories

N/A

N/A

{uid}

Получение

Сохранение

Поиск

Раздел 12.4

Раздел 12.5

Раздел 12.6

protocol-approvals

N/A

N/A

{uid}

Получение

Сохранение

Поиск

Раздел 12.4

Раздел 12.5

Раздел 12.6

Запросы подтверждения сохранения (Storage Commitment requests) (см. Раздел 13.1.1)

commitment-requests

Запрос

Раздел 13.4

Проверка результата

Раздел 13.5

Служба запланированных этапов процедуры модальности (Modality Scheduled Procedure Step Service) (см. Раздел 14.1.1)

modality-scheduled-procedure-steps

Поиск

Раздел 14.4

Служба выполненных этапов процедуры модальности (Modality Performed Procedure Step Service) (см. Раздел 15.1.1)

modality-performed-procedure-steps

Создание

Раздел 15.4

Обновление

Раздел 15.5

Получение

Раздел 15.6


I Модуль ответа Store Instances

I.1 Тело ответного сообщения

Таблица I.1-1 определяет атрибуты для ссылок на SOP-экземпляры, содержащиеся в модуле ответа Store Instances в теле ответного сообщения.

Таблица I.1-1. Атрибуты модуля ответа Store Instances

Имя атрибута

Тег

Тип

Описание атрибута

Retrieve URL

(0008,1190)

2

URL-адрес, по которому исследование доступно для получения через транзакцию получения исследований (Studies Retrieve Transaction) (Раздел 10.4).

Примечание

VR этого атрибута была изменена с UT на UR.

Failed SOP Sequence

(0008,1198)

1C

Последовательность элементов, где каждый элемент ссылается на один SOP-экземпляр, для которого не удалось обеспечить сохранение.

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

>Таблица 10-11 “SOP Instance Reference Macro Attributes” в PS3.3

>Failure Reason

(0008,1197)

1

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

См. Раздел I.2.2.

Referenced SOP Sequence

(0008,1199)

1C

Последовательность элементов, где каждый элемент ссылается на один SOP-экземпляр, который был успешно сохранён.

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

>Таблица 10-11 “SOP Instance Reference Macro Attributes” в PS3.3

>Retrieve URL

(0008,1190)

2

URL-адрес, по которому SOP-экземпляр доступен для получения через транзакцию получения исследований (Studies Retrieve Transaction) (Раздел 10.4).

Примечание

VR этого атрибута была изменена с UT на UR.

>Warning Reason

(0008,1196)

1C

Причина, по которой данный SOP-экземпляр был принят с предупреждениями.

Обязательно, если для данного SOP-экземпляра было выдано предупреждение.

См. Раздел I.2.1.

>Original Attributes Sequence

(0400,0561)

3

Последовательность элементов, содержащая все атрибуты, которые были удалены или заменены другими значениями.

В этой последовательности допускается один или несколько элементов.

>>Attribute Modification DateTime

(0400,0562)

1

Дата и время, когда атрибуты были удалены и/или заменены.

>>Modifying System

(0400,0563)

1

Идентификация системы, которая удалила и/или заменила атрибуты.

>>Reason for the Attribute Modification

(0400,0565)

1

Причина изменения атрибута.

Определённые термины

COERCE

Замена значений таких атрибутов, как Имя пациента, ID, Номер доступа (Accession Number), например, при импорте носителей из внешнего учреждения или сверке с главным индексом пациентов.

CORRECT

Замена некорректных значений, таких как Имя пациента или ID, например, при выборе неверного элемента списка работ или ошибке ввода оператора.

>>Modified Attributes Sequence

(0400,0550)

1

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

В этой последовательности должен быть включён только один элемент.

>>Любой атрибут из основного набора данных, который был изменён или удалён; может включать атрибуты-последовательности и их элементы.

Other Failures Sequence

(0008,119A)

1C

Причины, не связанные с конкретным SOP-экземпляром, по которым не удалось обеспечить сохранение.

Каждый элемент ссылается на одну ошибку сохранения.

Обязательно, если есть одна или несколько ошибок, не связанных с конкретным SOP-экземпляром.

>Failure Reason

(0008,1197)

1

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

См. Раздел I.2.2.


I.2 Описание атрибутов ответа Store Instances

I.2.1 Причина предупреждения

Таблица I.2-1 определяет семантику, для которой соответствующее значение должно использоваться для причины предупреждения (Warning Reason) (0008,1196):

Таблица I.2-1. Значения причины предупреждения ответа Store Instances

Код состояния (шестнадцатеричный)

Код состояния (десятичный)

Значение

Пояснение

B000

45056

Принудительное изменение элементов данных

Транзакция сохранения исследований (Studies Store Transaction) (Раздел 10.5) изменила один или несколько элементов данных во время сохранения экземпляра. См. Раздел 10.5.3.

B006

45062

Элементы удалены

Транзакция сохранения исследований (Studies Store Transaction) (Раздел 10.5) отбросила некоторые элементы данных во время сохранения экземпляра. См. Раздел 10.5.3.

B007

45063

Набор данных не соответствует SOP Class

Транзакция сохранения исследований (Studies Store Transaction) (Раздел 10.5) обнаружила, что набор данных не соответствует ограничениям SOP Class во время сохранения экземпляра.


Дополнительные коды могут использоваться для причины предупреждения (Warning Reason) (0008,1196) для отражения семантики других проблем.

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

I.2.2 Причина ошибки

Таблица I.2-2 определяет семантику, для которой соответствующее значение должно использоваться для причины ошибки (Failure Reason) (0008,1197). Специфичные для реализации коды предупреждений и ошибок должны быть определены в заявлении о соответствии:

Таблица I.2-2. Значения причины ошибки ответа Store Instances

Код состояния (шестнадцатеричный)

Код состояния (десятичный)

Значение

Пояснение

A7xx

42752 - 43007

Отказано из-за нехватки ресурсов

Транзакция сохранения исследований (Studies Store Transaction) (Раздел 10.5) не сохранила экземпляр из-за нехватки ресурсов.

A9xx

43264 - 43519

Ошибка: Набор данных не соответствует SOP Class

Транзакция сохранения исследований (Studies Store Transaction) (Раздел 10.5) не сохранила экземпляр, поскольку экземпляр не соответствует указанному SOP Class.

Cxxx

49152 - 53247

Ошибка: Не удалось понять

Транзакция сохранения исследований (Studies Store Transaction) (Раздел 10.5) не сохранила экземпляр, поскольку не может понять определённые элементы данных.

C122

49442

Указанный Transfer Syntax не поддерживается

Транзакция сохранения исследований (Studies Store Transaction) (Раздел 10.5) не сохранила экземпляр, поскольку она не поддерживает запрошенный Transfer Syntax для экземпляра.

0110

272

Ошибка обработки

Транзакция сохранения исследований (Studies Store Transaction) (Раздел 10.5) не сохранила экземпляр из-за общей ошибки обработки операции.

0122

290

Указанный SOP Class не поддерживается

Транзакция сохранения исследований (Studies Store Transaction) (Раздел 10.5) не сохранила экземпляр, поскольку она не поддерживает запрошенный SOP Class.


Дополнительные коды могут использоваться для причины ошибки (Failure Reason) (0008,1197) для отражения семантики других проблем.

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

I.3 Пример тела ответного сообщения

Ниже приведён пример XML-модуля ответа Store Instances PS3.18 в теле ответного сообщения, содержащего 2 ошибочных SOP-экземпляра, 1 успешный SOP-экземпляр и 1 принятый SOP-экземпляр с предупреждением:

<?xml version="1.0" encoding="utf-8" xml:space="preserve"?>
<NativeDicomModel xmlns="http://dicom.nema.org/PS3.19/models/NativeDICOM"
xsi:schemaLocation="http://dicom.nema.org/PS3.19/models/NativeDICOM"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <DicomAttribute tag="00081198" vr="SQ" keyword="FailedSOPSequence">
    <Item number="1">
      <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
        <Value number="1">1.2.840.10008.3.1.2.3.1</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081155" vr="UI"
      keyword="ReferencedSOPInstanceUID">
        <Value number="1">
        2.16.124.113543.6003.1011758472.49886.19426.2085542308</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081197" vr="US" keyword="FailureReason">
        <Value number="1">290</Value>
      </DicomAttribute>
    </Item>
    <Item number="2">
      <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
        <Value number="1">1.2.840.10008.3.1.2.3.1</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081155" vr="UI"
      keyword="ReferencedSOPInstanceUID">
        <Value number="1">
        2.16.124.113543.6003.1011758472.49886.19426.2085542309</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081197" vr="US" keyword="FailureReason">
        <Value number="1">290</Value>
      </DicomAttribute>
    </Item>
  </DicomAttribute>
  <DicomAttribute tag="00081199" vr="SQ" keyword="ReferencedSOPSequence">
    <Item number="1">
      <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
        <Value number="1">1.2.840.10008.5.1.4.1.1.2</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081155" vr="UI"
      keyword="ReferencedSOPInstanceUID">
        <Value number="1">
        2.16.124.113543.6003.189642796.63084.16748.2599092903</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
        <Value number="1">
        https://wadors.hospital.com/studies/2.16.124.113543.6003.1154777499.30246.19789.3503430045/
        series/2.16.124.113543.6003.2588828330.45298.17418.2723805630/
        instances/2.16.124.113543.6003.189642796.63084.16748.2599092903</Value>
      </DicomAttribute>
    </Item>
    <Item number="2">
      <DicomAttribute tag="00081150" vr="UI" keyword="ReferencedSOPClassUID">
        <Value number="1">1.2.840.10008.5.1.4.1.1.2</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081155" vr="UI"
      keyword="ReferencedSOPInstanceUID">
        <Value number="1">
        2.16.124.113543.6003.189642796.63084.16748.2599092905</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081196" vr="US" keyword="WarningReason">
        <Value number="1">45056</Value>
      </DicomAttribute>
      <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
        <Value number="1">
        https://wadors.hospital.com/studies/2.16.124.113543.6003.1154777499.30246.19789.3503430045/
        series/2.16.124.113543.6003.2588828330.45298.17418.2723805630/
        instances/2.16.124.113543.6003.189642796.63084.16748.2599092905</Value>
      </DicomAttribute>
    </Item>
  </DicomAttribute>
  <DicomAttribute tag="00081190" vr="UR" keyword="RetrieveURL">
    <Value number="1">
    https://wadors.hospital.com/studies/2.16.124.113543.6003.1154777499.30246.19789.3503430045</Value>
  </DicomAttribute>
</NativeDicomModel>

J Модули подтверждения сохранения

J.1 Модуль запроса подтверждения сохранения

Таблица J.1-1 определяет атрибуты модуля запроса подтверждения сохранения.

Таблица J.1-1. Модуль запроса подтверждения сохранения

Имя атрибута

Тег

Тип

Описание атрибута

Referenced SOP Sequence

(0008,1199)

1C

SOP-экземпляры, для которых запрашивается подтверждение сохранения. В эту последовательность должен быть включён один или несколько элементов. Обязательно, если Referenced Study Sequence (0008,1110) отсутствует.

>Включить Таблица 10-11 “SOP Instance Reference Macro Attributes” в PS3.3

Referenced Study Sequence

(0008,1110)

1C

Исследования, содержащие экземпляры, для которых запрашивается подтверждение сохранения. В эту последовательность должен быть включён один или несколько элементов. Обязательно, если Referenced SOP Sequence (0008,1199) отсутствует.

>Study Instance UID

(0020,000D)

1

Однозначно идентифицирует указанное исследование.

>Referenced Series Sequence

(0008,1115)

1

Серии, содержащие экземпляры, для которых запрашивается подтверждение сохранения. В эту последовательность должен быть включён один или несколько элементов.

>>Series Instance UID

(0020,000E)

1

Однозначно идентифицирует указанную серию.

>>Referenced Instances by SOP Class Sequence

(0008,1112)

1

SOP-экземпляры, для которых запрашивается подтверждение сохранения, сгруппированные по SOP Class. В эту последовательность должен быть включён один или несколько элементов.

>>>Referenced SOP Class UID

(0008,1150)

1

Однозначно идентифицирует указанный SOP Class.

>>>Referenced Instance Sequence

(0008,114A)

1

SOP-экземпляры, для которых запрашивается подтверждение сохранения. В эту последовательность должен быть включён один или несколько элементов.

>>>>Referenced SOP Instance UID

(0008,1155)

1

Однозначно идентифицирует указанный SOP-экземпляр.


J.2 Модуль ответа подтверждения сохранения

Таблица J.2-1 определяет атрибуты модуля ответа подтверждения сохранения.

Таблица J.2-1. Модуль ответа подтверждения сохранения

Имя атрибута

Тег

Тип

Описание атрибута

Referenced SOP Sequence

(0008,1199)

1C

SOP-экземпляры, для которых подтверждение сохранения выполнено. Обязательно, если полезная нагрузка запроса содержала Referenced SOP Sequence (0008,1199), и в указанной последовательности есть хотя бы один SOP-экземпляр, для которого подтверждение сохранения выполнено.

>Включить Таблица 10-11 “SOP Instance Reference Macro Attributes” в PS3.3

Failed SOP Sequence

(0008,1198)

1C

SOP-экземпляры, для которых подтверждение сохранения не выполнено. Обязательно, если полезная нагрузка запроса содержала Referenced SOP Sequence (0008,1199), и в указанной последовательности есть хотя бы один SOP-экземпляр, для которого подтверждение сохранения не выполнено.

>Включить Таблица 10-11 “SOP Instance Reference Macro Attributes” в PS3.3

>Failure Reason

(0008,1197)

1

Причина, по которой подтверждение сохранения не выполнено для данного SOP-экземпляра. См. Раздел C.14.1.1 в PS3.3 для возможных значений.

Referenced Study Sequence

(0008,1110)

1C

Исследования, содержащие экземпляры, для которых подтверждение сохранения выполнено. Обязательно, если полезная нагрузка запроса содержала Referenced Study Sequence (0008,1110), и есть хотя бы один SOP-экземпляр, для которого подтверждение сохранения выполнено.

>Study Instance UID

(0020,000D)

1

Однозначно идентифицирует указанное исследование.

>Referenced Series Sequence

(0008,1115)

1

Серии, содержащие экземпляры, для которых подтверждение сохранения выполнено.

>>Series Instance UID

(0020,000E)

1

Однозначно идентифицирует указанную серию.

>>Referenced Instances by SOP Class Sequence

(0008,1112)

1

SOP-экземпляры, для которых подтверждение сохранения выполнено, сгруппированные по SOP Class.

>>>Referenced SOP Class UID

(0008,1150)

1

Однозначно идентифицирует указанный SOP Class.

>>>Referenced Instance Sequence

(0008,114A)

1

SOP-экземпляры, для которых подтверждение сохранения выполнено.

>>>>Referenced SOP Instance UID

(0008,1155)

1

Однозначно идентифицирует указанный SOP-экземпляр.

Failed Study Sequence

(0008,119B)

1C

Исследования, содержащие экземпляры, для которых подтверждение сохранения не выполнено. Обязательно, если полезная нагрузка запроса содержала Referenced Study Sequence (0008,1110), и в указанной последовательности есть хотя бы один SOP-экземпляр, для которого подтверждение сохранения не выполнено.

>Study Instance UID

(0020,000D)

1

Однозначно идентифицирует указанное исследование.

>Referenced Series Sequence

(0008,1115)

1

Серии, содержащие экземпляры, для которых подтверждение сохранения не выполнено.

>>Referenced Series Instance UID

(0020,000E)

1

Однозначно идентифицирует указанную серию.

>>Referenced Instances by SOP Class Sequence

(0008,1112)

1

SOP-экземпляры, для которых сохранение не было обеспечено, сгруппированные по SOP Class.

>>>Referenced SOP Class UID

(0008,1150)

1

Однозначно идентифицирует указанный SOP Class.

>>>Referenced Instance Sequence

(0008,114A)

1

SOP-экземпляры, для которых подтверждение сохранения не выполнено.

>>>>Referenced SOP Instance UID

(0008,1155)

1

Однозначно идентифицирует указанный SOP-экземпляр.

>>>>Failure Reason

(0008,1197)

1

Причина, по которой подтверждение сохранения не выполнено для данного SOP-экземпляра.


K Модуль ответа визуализированного объёма

Модуль ответа визуализированного объёма (Rendered Volume Response Module) предоставляет пользовательскому агенту представление параметров, применённых исходным сервером для генерации объёмной визуализации.

Пользовательский агент может использовать эту информацию для:

K.1 Тело ответного сообщения

Таблица K.1-1 определяет атрибуты, возвращаемые в теле ответного сообщения ресурса визуализированного MPR-объёма (Rendered MPR Volume Resource) или ресурса визуализированного 3D-объёма (Rendered 3D Volume Resource).

Примечание

  1. Они представляют параметры запроса, которые могут быть указаны пользовательским агентом в ресурсах визуализированного MPR-объёма или ресурсах визуализированного 3D-объёма. См. Раздел 8.3.5.3.

  2. Параметры анатомической ориентации (см. Раздел 8.3.5.3.4) преобразуются в параметры ориентации камеры для обеспечения точной настройки в последующем запросе.

Таблица K.1-1. Атрибуты модуля ответа визуализированного объёма

Имя атрибута

Тег

Тип

Описание атрибута

Reformatting Operation Type

(0072,0510)

1

Операция переформатирования, применяемая к набору изображений.

Rendering Method

(0070,120D)

1

Определяет алгоритм отображения, применяемый к объёмным данным.

Viewpoint Position

(0070,1603)

1

Положение точки наблюдения в объёмном пространстве.

Viewpoint LookAt Point

(0070,1604)

1

Точка, в которую направлен взгляд точки наблюдения.

Viewpoint Up Direction

(0070,1605)

1

Вертикальная ориентация вида.

MPR Slab Thickness

(0070,1503)

1C

Обязательно, если Reformatting Operation Type (0072,0510) имеет значение MPR и указана толщина.

VOI LUT Function

(0028,1056)

1C

Обязательно, если Rendering Method (0070,120D) не равно VOLUME_RENDERED.

Window Width

(0028,1051)

1C

Обязательно, если Rendering Method (0070,120D) не равно VOLUME_RENDERED.

Window Center

(0028,1050)

1C

Обязательно, если Rendering Method (0070,120D) не равно VOLUME_RENDERED.

Swivel Range

(0070,1A06)

1C

Обязательно для анимаций SWIVEL.

Animation Step Size

(0070,1A05)

1C

Обязательно для анимаций SWIVEL или CROSSCURVE.

Recommended Animation Rate

(0070,1A03)

1C

Обязательно для видео Media Types.