Оператор соответствия DICOM версии 2
Примечание.
API версии 2 — это последняя версия API. Список изменений в версии 2 по сравнению с версией 1 см. в разделе API службы DICOM версии 2.
Сервер медицинской визуализации для DICOM® поддерживает подмножество DICOMweb Standard. Поддержка включает:
Кроме того, поддерживаются следующие нестандартные API:
Служба использует управление версиями REST API. Версия REST API должна быть явно указана как часть базового URL-адреса, как показано в следующем примере:
https://<service_url>/v<version>/studies
Эта версия инструкции соответствия соответствует v2
версии REST API.
Дополнительные сведения о том, как указать версию при выполнении запросов, см. в документации по использованию версий API.
Примеры запросов для поддерживаемых транзакций можно найти в коллекции Postman.
Предварительная очистка
Служба игнорирует предварительное заполнение 128-байтового файла и заменяет его содержимое пустыми символами. Это поведение гарантирует, что никакие файлы, передаваемые через службу, не уязвимы для вредоносной уязвимости. Однако эта предварительная очистка также означает, что преамблирование, используемое для кодирования содержимого двойного формата, например TIFF, нельзя использовать с службой.
Служба исследований
Служба исследований позволяет пользователям хранить, извлекать и искать diCOM Studies, Series и Instances. Мы добавили нестандартную транзакцию Delete, чтобы включить полный жизненный цикл ресурсов.
Store (STOW-RS)
Эта транзакция использует метод POST или PUT для хранения представлений исследований, рядов и экземпляров, содержащихся в полезных данных запроса.
Способ | Путь | Description |
---|---|---|
POST | .. /учёба | Хранить экземпляры. |
POST | .. /studies/{study} | Храните экземпляры для определенного исследования. |
PUT | .. /учёба | Экземпляры Upsert. |
PUT | .. /studies/{study} | Экземпляры Upsert для определенного исследования. |
Параметр study
соответствует атрибуту DICOM StudyInstanceUID. При указании любой экземпляр, который не принадлежит предоставленному 43265
исследованию, отклоняется с кодом предупреждения.
Ниже приведен единственный поддерживаемый заголовок ответа Accept
:
application/dicom+json
Поддерживаются следующие Content-Type
заголовки:
multipart/related; type="application/dicom"
application/dicom
Примечание.
Сервер не будет принуждать или заменить атрибуты, конфликтующие с существующими данными для запросов POST. Все данные хранятся как предоставленные. Для запросов upsert (PUT) существующие данные заменяются новыми полученными данными.
Хранение обязательных атрибутов
Следующие элементы DICOM должны присутствовать во всех файлах DICOM, пытающихся храниться:
StudyInstanceUID
SeriesInstanceUID
SOPInstanceUID
SOPClassUID
PatientID
Примечание.
Все идентификаторы пользовательского интерфейса должны находиться в диапазоне от 1 до 64 символов и содержать только буквы-числовые символы или следующие специальные символы: .
, . -
PatientID
по-прежнему является обязательным тегом и может иметь значение null в входных данных. PatientID
проверяется на основе его LO
VR
типа.
Каждый сохраненный файл должен иметь уникальное сочетание StudyInstanceUID
, SeriesInstanceUID
и SopInstanceUID
. Код 45070
предупреждения возвращается, если файл с теми же идентификаторами уже существует.
Принимаются только синтаксисы передачи с явными представлениями значений.
Примечание.
Запросы ограничены 4 ГБ. Ни один файл DICOM или сочетание файлов не может превышать это ограничение.
Сохранение изменений из версии 1
В предыдущих версиях запрос Магазина завершится ошибкой, если произошел сбой проверки любого из обязательных или доступных для поиска атрибутов. Начиная с версии 2 запрос завершается ошибкой, только если обязательные атрибуты завершаются проверкой.
Сбой проверки атрибутов, не необходимых API, приводит к хранению файла с предупреждением. Предупреждение предоставляется о каждом неудачном атрибуте для каждого экземпляра. Если последовательность содержит атрибут, завершающийся ошибкой проверки или при наличии нескольких проблем с одним атрибутом, отмечается только первая причина сбоя атрибута.
Если атрибут заполняется значением NULL, атрибут индексируется при возможности поиска и хранится как в метаданных dicom+json. Предупреждение проверки не предоставляется.
Хранение кодов состояния ответа
Код | Описание |
---|---|
200 (OK) |
Все экземпляры SOP в запросе хранятся. |
202 (Accepted) |
Сервер-источник хранит некоторые экземпляры и другие не удалось или вернул предупреждения. Дополнительные сведения об этой ошибке можно найти в тексте сообщения ответа. |
204 (No Content) |
Содержимое не было предоставлено в запросе транзакции хранилища. |
400 (Bad Request) |
Запрос был плохо отформатирован. Например, указанный идентификатор экземпляра исследования не соответствовал ожидаемому формату UID. |
401 (Unauthorized) |
Клиент не проходит проверку подлинности. |
406 (Not Acceptable) |
Указанный Accept заголовок не поддерживается. |
409 (Conflict) |
Ни один из экземпляров в запросе транзакции хранилища не был сохранен. |
415 (Unsupported Media Type) |
Предоставленный Content-Type параметр не поддерживается. |
424 (Failed Dependency) |
Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
500 (Internal Server Error) |
Сервер столкнулся с неизвестной внутренней ошибкой. Повторите попытку позже. |
503 (Service Unavailable) |
Служба недоступна или занята. Повторите попытку позже. |
Paylo ответа в магазине
Полезные данные ответа заполняют набор данных DICOM следующими элементами:
Тег | Имя | Описание |
---|---|---|
(0008, 1190) | RetrieveURL |
URL-адрес получения исследования, если объект StudyInstanceUID был предоставлен в запросе на хранение и по крайней мере один экземпляр успешно хранится. |
(0008, 1198) | FailedSOPSequence |
Последовательность экземпляров, которые не удалось сохранить. |
(0008, 1199) | ReferencedSOPSequence |
Последовательность сохраненных экземпляров. |
Каждый набор данных в наборе FailedSOPSequence
данных содержит следующие элементы (если файл DICOM, пытающийся сохраниться, может быть прочитан):
Тег | Имя | Описание |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Уникальный идентификатор класса SOP экземпляра, который не удалось сохранить. |
(0008, 1155) | ReferencedSOPInstanceUID |
Уникальный идентификатор экземпляра SOP для экземпляра, который не удалось сохранить. |
(0008, 1197) | FailureReason |
Код причины, почему этот экземпляр не удалось сохранить. |
(0008, 1196) | WarningReason |
Указывает WarningReason на обнаруженные проблемы проверки, но не были достаточно серьезными, чтобы завершить операцию хранения. |
(0074, 1048) | FailedAttributesSequence |
Последовательность ErrorComment , которая включает причину для каждого неудачного атрибута. |
Каждый набор данных в наборе ReferencedSOPSequence
данных содержит следующие элементы:
Тег | Имя | Описание |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Уникальный идентификатор класса SOP для сохраненного экземпляра. |
(0008, 1155) | ReferencedSOPInstanceUID |
Уникальный идентификатор экземпляра SOP для сохраненного экземпляра. |
(0008, 1190) | RetrieveURL |
URL-адрес получения этого экземпляра на сервере DICOM. |
Пример ответа с Accept
заголовком application/dicom+json
без failedAttributesSequence в referencedSOPSequence:
{
"00081190":
{
"vr":"UR",
"Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232"]
},
"00081198":
{
"vr":"SQ",
"Value":
[{
"00081150":
{
"vr":"UI","Value":["cd70f89a-05bc-4dab-b6b8-1f3d2fcafeec"]
},
"00081155":
{
"vr":"UI",
"Value":["22c35d16-11ce-43fa-8f86-90ceed6cf4e7"]
},
"00081197":
{
"vr":"US",
"Value":[43265]
}
}]
},
"00081199":
{
"vr":"SQ",
"Value":
[{
"00081150":
{
"vr":"UI",
"Value":["d246deb5-18c8-4336-a591-aeb6f8596664"]
},
"00081155":
{
"vr":"UI",
"Value":["4a858cbb-a71f-4c01-b9b5-85f88b031365"]
},
"00081190":
{
"vr":"UR",
"Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232/series/8c4915f5-cc54-4e50-aa1f-9b06f6e58485/instances/4a858cbb-a71f-4c01-b9b5-85f88b031365"]
}
}]
}
}
Пример ответа с Accept
заголовком application/dicom+json
с failedAttributesSequence в referencedSOPSequence:
{
"00081190":
{
"vr":"UR",
"Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232"]
},
"00081199":
{
"vr":"SQ",
"Value":
[{
"00081150":
{
"vr":"UI",
"Value":["d246deb5-18c8-4336-a591-aeb6f8596664"]
},
"00081155":
{
"vr":"UI",
"Value":["4a858cbb-a71f-4c01-b9b5-85f88b031365"]
},
"00081190":
{
"vr":"UR",
"Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232/series/8c4915f5-cc54-4e50-aa1f-9b06f6e58485/instances/4a858cbb-a71f-4c01-b9b5-85f88b031365"]
},
"00081196": {
"vr": "US",
"Value": [
1
]
},
"00741048": {
"vr": "SQ",
"Value": [
{
"00000902": {
"vr": "LO",
"Value": [
"DICOM100: (0008,0020) - Content \"NotAValidDate\" does not validate VR DA: one of the date values does not match the pattern YYYYMMDD"
]
}
},
{
"00000902": {
"vr": "LO",
"Value": [
"DICOM100: (0008,002a) - Content \"NotAValidDate\" does not validate VR DT: value does not mach pattern YYYY[MM[DD[HH[MM[SS[.F{1-6}]]]]]]"
]
}
}
]
}
}]
}
}
Хранение кодов причин сбоя
Код | Описание |
---|---|
272 |
Транзакция хранилища не сохраняла экземпляр из-за общего сбоя при обработке операции. |
43264 |
Экземпляр DICOM завершился ошибкой проверки. |
43265 |
Предоставленный экземпляр StudyInstanceUID не соответствовал указанному StudyInstanceUID в запросе хранилища. |
45070 |
Экземпляр DICOM с тем же StudyInstanceUID именем SeriesInstanceUID и SopInstanceUID уже был сохранен. Если вы хотите обновить содержимое, сначала удалите этот экземпляр. |
45071 |
Экземпляр DICOM создается другим процессом или предыдущей попыткой создать сбой, и процесс очистки не завершен. Сначала удалите экземпляр перед попыткой создать еще раз. |
Хранение кодов причин предупреждения
Код | Описание |
---|---|
45063 |
Набор данных экземпляра DICOM не соответствует классу SOP. Транзакция хранилища исследований (раздел 10.5) отметила, что набор данных не соответствует ограничениям класса SOP во время хранения экземпляра. |
1 |
Транзакция хранилища исследований (раздел 10.5) заметила, что набор данных имеет проверку |
Хранение кодов ошибок
Код | Описание |
---|---|
100 |
Предоставленные атрибуты экземпляра не соответствуют критериям проверки. |
Получение (WADO-RS)
Эта транзакция извлекает хранимые исследования, ряды, экземпляры и кадры по ссылке.
Способ | Путь | Description |
---|---|---|
GET | .. /studies/{study} | Извлекает все экземпляры в исследовании. |
GET | .. /studies/{study}/метаданные | Извлекает метаданные для всех экземпляров в исследовании |
GET | .. /studies/{study}/series/{series} | Извлекает все экземпляры в серии |
GET | .. /studies/{study}/series/{series}/metadata | Извлекает метаданные для всех экземпляров в серии |
GET | .. /studies/{study}/series/{series}/instances/{instance} | Получение одного экземпляра |
GET | .. /studies/{study}/series/{series}/instances/{instance}/metadata | Извлекает метаданные для одного экземпляра |
GET | .. /studies/{study}/series/{series}/instances/{instance}/rendered | Извлекает экземпляр, отрисованный в формате изображения |
GET | .. /studies/{study}/series/{series}/instances/{instance}/кадры/{кадры} | Извлекает один или несколько кадров из одного экземпляра. Чтобы указать несколько кадров, запятая отделяет каждый кадр для возврата. Например, /studies/1/series/2/instance/3/frames/4,5,6 . |
GET | .. /studies/{study}/series/{series}/instances/{instance}/frame/{frame}/rendered | Извлекает один кадр, отрисованный в формате изображения |
Получение экземпляров в рамках исследования или ряда
Accept
Следующие заголовки поддерживаются для получения экземпляров в рамках исследования или ряда.
multipart/related; type="application/dicom"; transfer-syntax=*
multipart/related; type="application/dicom";
(если синтаксис передачи не указан, 1.2.840.10008.1.2.1 используется в качестве значения по умолчанию)multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.1
multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.90
*/*
(если синтаксис передачи не указан,*
используется в качестве значения по умолчанию и mediaType по умолчаниюapplication/dicom
)
Получение экземпляра
Для получения определенного экземпляра поддерживаются следующие Accept
заголовки.
application/dicom; transfer-syntax=*
multipart/related; type="application/dicom"; transfer-syntax=*
application/dicom;
(если синтаксис передачи не указан,1.2.840.10008.1.2.1
используется в качестве значения по умолчанию)multipart/related; type="application/dicom"
(если синтаксис передачи не указан,1.2.840.10008.1.2.1
используется в качестве значения по умолчанию)application/dicom; transfer-syntax=1.2.840.10008.1.2.1
multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.1
application/dicom; transfer-syntax=1.2.840.10008.1.2.4.90
multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.90
*/*
(если синтаксис передачи не указан,*
используется в качестве значения по умолчанию и mediaType по умолчаниюapplication/dicom
)
Получение кадров
Для получения кадров поддерживаются следующие Accept
заголовки.
multipart/related; type="application/octet-stream"; transfer-syntax=*
multipart/related; type="application/octet-stream";
(если синтаксис передачи не указан,1.2.840.10008.1.2.1
используется в качестве значения по умолчанию)multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1
multipart/related; type="image/jp2";
(если синтаксис передачи не указан,1.2.840.10008.1.2.4.90
используется в качестве значения по умолчанию)multipart/related; type="image/jp2";transfer-syntax=1.2.840.10008.1.2.4.90
application/octet-stream; transfer-syntax=*
для извлечения одного кадра
*/*
(если синтаксис передачи не указан,*
используется в качестве значения по умолчанию и mediaType по умолчаниюapplication/octet-stream
)
Получение синтаксиса передачи
Если запрошенный синтаксис передачи отличается от исходного файла, исходный файл перекодируется для запрошенного синтаксиса передачи. Исходный файл должен быть одним из следующих форматов для успешного транскодирования, в противном случае перекодирование может завершиться ошибкой.
- 1.2.840.10008.1.2 (маленький неявный эндиан)
- 1.2.840.10008.1.2.1 (маленький эндиан явный)
- 1.2.840.10008.1.2.2 (явный big endian VR)
- 1.2.840.10008.1.2.4.50 (базовый процесс JPEG 1)
- 1.2.840.10008.1.2.4.57 (JPEG Lossless)
- 1.2.840.10008.1.2.4.70 (значение выбора без потери JPEG 1)
- 1.2.840.10008.1.2.4.90 (ТОЛЬКО JPEG 2000 Без потери)
- 1.2.840.10008.1.2.4.91 (JPEG 2000)
- 1.2.840.10008.1.2.5 (RLE Lossless)
Неподдерживаемый transfer-syntax
результат 406 Not Acceptable
.
Получение метаданных (для изучения, ряда или экземпляра)
Accept
Следующий заголовок поддерживается для получения метаданных для исследования, ряда или экземпляра.
application/dicom+json
Получение метаданных не возвращает атрибуты со следующими представлениями значений.
Имя виртуальной реальности | Description |
---|---|
0 Б | Другие байты |
OD | Другие двойные |
OF | Другие плавающие |
OL | Другие длинные |
OV | Другие 64-разрядные очень длинные |
OW | Другое слово |
UN | Неизвестно |
Извлеченные метаданные включают пустой символ, когда атрибут был заполнен значениями NULL и хранится как есть.
Получение проверки кэша метаданных (для изучения, ряда или экземпляра)
Проверка кэша ETag
поддерживается с помощью механизма. В ответе на запрос метаданных ETag возвращается в качестве одного из заголовков. Этот ETag можно кэшировать и добавить в качестве заголовка If-None-Match
в последующих запросах на те же метаданные. Если данные существуют, возможны два типа ответов.
- Данные не изменяются с момента последнего запроса:
HTTP 304 (Not Modified)
ответ отправляется без текста ответа. - Данные изменились с момента последнего запроса:
HTTP 200 (OK)
ответ отправляется с обновленным ETag. Обязательные данные возвращаются в составе тела.
Получение отрисованного изображения (для экземпляра или кадра)
Accept
Следующие заголовки поддерживаются для получения отрисованного изображения экземпляра или кадра.
image/jpeg
image/png
В случае, если заголовок не Accept
указан, служба выполняет отрисовку image/jpeg
по умолчанию.
Служба поддерживает отрисовку только одного кадра. Если для экземпляра с несколькими кадрами запрашивается отрисовка, по умолчанию отрисовывается только первый кадр в виде изображения.
При указании определенного кадра для возврата индексирование кадров начинается с 1.
Также quality
поддерживается параметр запроса. Целочисленное значение между 1
и 100
инклюзивным (1 является худшим качеством и 100 лучшим качеством) может быть передано в качестве значения параметра запроса. Этот параметр используется для изображений, отображаемых как jpeg
, и игнорируется для запросов на png
отрисовку. Если параметр по умолчанию 100
не указан.
Получение исходной версии
При использовании операции массового обновления можно получить исходную или последнюю версию исследования, ряда или экземпляра. Последняя версия исследования, ряда или экземпляра всегда возвращается по умолчанию. Исходная версия может быть возвращена, задав для заголовка msdicom-request-original
значение true
. Ниже приведен пример запроса.
GET ../studies/{study}/series/{series}/instances/{instance}
Accept: multipart/related; type="application/dicom"; transfer-syntax=*
msdicom-request-original: true
Content-Type: application/dicom
Получение кодов состояния ответа
Код | Описание |
---|---|
200 (OK) |
Извлекаются все запрошенные данные. |
304 (Not Modified) |
Запрошенные данные не изменяются с момента последнего запроса. Содержимое не добавляется в текст ответа в таком случае. Дополнительные сведения см. в предыдущем разделе, посвященном извлечению проверки кэша метаданных (для исследования, ряда или экземпляра). |
400 (Bad Request) |
Запрос был плохо отформатирован. Например, указанный идентификатор экземпляра исследования не соответствует ожидаемому формату UID, или запрошенная кодировка синтаксиса передачи не поддерживается. |
401 (Unauthorized) |
Клиент не проходит проверку подлинности. |
403 (Forbidden) |
Пользователь не авторизован. |
404 (Not Found) |
Указанный ресурс DICOM не найден или для отрисованного запроса экземпляр не содержал пиксельных данных. |
406 (Not Acceptable) |
Указанный Accept заголовок не поддерживается или для отрисовки и перекодировки запросов запрошенного файла было слишком большим. |
424 (Failed Dependency) |
Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
503 (Service Unavailable) |
Служба недоступна или занята. Повторите попытку позже. |
Поиск (QIDO-RS)
Запрос на основе идентификатора объектов DICOM (QIDO) позволяет искать исследования, ряды и экземпляры по атрибутам.
Способ | Путь | Description |
---|---|---|
Поиск исследований | ||
GET | .. /учёба?... | Поиск исследований |
Поиск ряда | ||
GET | .. /серия?... | Поиск рядов |
GET | .. /studies/{study}/series?... | Поиск ряда в исследовании |
Поиск экземпляров | ||
GET | .. /Экземпляров?... | Поиск экземпляров |
GET | .. /studies/{study}/instances?... | Поиск экземпляров в исследовании |
GET | .. /studies/{study}/series/{series}/instances?... | Поиск экземпляров в серии |
Accept
Следующий заголовок поддерживается для поиска.
application/dicom+json
Поиск изменений из версии 1
В API версии 1 и продолжается для версии 2, если тег расширенного запроса имеет ошибки, так как один или несколько существующих экземпляров имели значение тега, которое не удалось индексировать, последующие поисковые запросы, содержащие расширенный тег запроса, возвращаются erroneous-dicom-attributes
, как описано в документации. Однако теги (также известные как атрибуты) с предупреждениями проверки из STOW-RS не включены в этот заголовок. Если запрос хранилища приводит к предупреждениям проверки для атрибутов, доступных для поиска во время хранения экземпляра, эти атрибуты могут не использоваться для поиска хранимого экземпляра. Однако все атрибуты , доступные для поиска, которые не удалось проверить, могут возвращать результаты, если значения перезаписываются экземплярами в том же исследовании или ряде, которые хранятся после сбоя, или если значения уже хранятся правильно предыдущим экземпляром. Если значения атрибутов не перезаписываются, они не создают результаты поиска.
Атрибут можно исправить следующими способами.
- Удаление сохраненного экземпляра и отправка нового экземпляра с исправленными данными
- Отправка нового экземпляра в том же исследовании или серии с исправленными данными
Поддерживаемые параметры поиска
Поддерживаются следующие параметры для каждого запроса:
Атрибуты, доступные для поиска
Мы поддерживаем поиск следующих атрибутов и типов поиска.
Ключевое слово атрибута | Все исследования | Все серии | Все экземпляры | Серия исследований | Экземпляры исследования | Экземпляры серии исследований |
---|---|---|---|---|---|---|
StudyInstanceUID |
X | X | X | |||
PatientName |
X | X | X | |||
PatientID |
X | X | X | |||
PatientBirthDate |
X | X | X | |||
AccessionNumber |
X | X | X | |||
ReferringPhysicianName |
X | X | X | |||
StudyDate |
X | X | X | |||
StudyDescription |
X | X | X | |||
ModalitiesInStudy |
X | X | X | |||
SeriesInstanceUID |
X | X | X | X | ||
Modality |
X | X | X | X | ||
PerformedProcedureStepStartDate |
X | X | X | X | ||
ManufacturerModelName |
X | X | X | X | ||
SOPInstanceUID |
X | X | X |
Примечание.
Мы не поддерживаем поиск с помощью пустой строки для каких-либо атрибутов.
Сопоставление поиска
Мы поддерживаем следующие типы сопоставления.
Тип поиска | Поддерживаемый атрибут | Пример |
---|---|---|
Запрос в диапазоне | StudyDate /PatientBirthDate |
{attributeID}={value1}-{value2} . Для значений даты и времени мы поддерживаем инклюзивное диапазон тега. Этот диапазон сопоставляется с attributeID >= {value1} AND attributeID <= {value2} . Если {value1} значение не указано, все вхождения дат и времени до и, в том числе {value2} , совпадают. Аналогичным образом, если {value2} не указано, все вхождения {value1} и последующие даты и время сопоставляются. Однако одно из этих значений должно присутствовать. {attributeID}={value1}- и {attributeID}=-{value2} допустимы, однако, {attributeID}=- недопустимы. |
Точное совпадение | Все поддерживаемые атрибуты | {attributeID}={value1} |
Нечеткий матч | PatientName , ReferringPhysicianName |
Соответствует любому компоненту имени, начинающегося со значения |
Сопоставление списка пользовательского интерфейса | StudyInstanceUID |
Соответствует исследованиям, определяемым значениями, указанными в списке. Поддерживает запятую (,) или обратную косую черту (\) в качестве допустимого разделителя. {attributeID}=1.2.3,5.6.7,8.9.0 возвращает сведения, связанные со всеми исследованиями, учитывая их существование. |
Идентификатор атрибута
Теги можно закодировать несколькими способами для параметра запроса. Мы частично реализовали стандарт, определенный в PS3.18 6.7.1.1.1. Поддерживаются следующие кодировки для тега.
Значение | Пример |
---|---|
{group}{element} |
0020000D |
{dicomKeyword} |
StudyInstanceUID |
Пример поиска экземпляров:
../instances?Modality=CT&00280011=512&includefield=00280010&limit=5&offset=0
Ответ поиска
Ответ представляет собой массив наборов данных DICOM. В зависимости от ресурса возвращаются следующие атрибуты.
Теги изучения по умолчанию
Тег | Имя атрибута |
---|---|
(0008, 0020) | StudyDate |
(0008, 0050) | AccessionNumber |
(0008, 1030) | StudyDescription |
(0009, 0090) | ReferringPhysicianName |
(0010, 0010) | PatientName |
(0010, 0020) | PatientID |
(0010, 0030) | PatientBirthDate |
(0020, 000D) | StudyInstanceUID |
Теги серии по умолчанию
Тег | Имя атрибута |
---|---|
(0008, 0060) | Modality |
(0008, 1090) | ManufacturerModelName |
(0020, 000E) | SeriesInstanceUID |
(0040, 0244) | PerformedProcedureStepStartDate |
Теги экземпляра по умолчанию
Тег | Имя атрибута |
---|---|
(0008, 0018) | SOPInstanceUID |
Если includefield=all
эти атрибуты включены вместе с атрибутами по умолчанию. Наряду с атрибутами по умолчанию этот список содержит полный список атрибутов, поддерживаемых на каждом уровне ресурсов.
Другие теги исследования
Тег | Имя атрибута |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0030) | StudyTime |
(0008, 0056) | InstanceAvailability |
(0008, 0201) | TimezoneOffsetFromUTC |
(0008, 0063) | AnatomicRegionsInStudyCodeSequence |
(0008, 1032) | ProcedureCodeSequence |
(0008, 1060) | NameOfPhysiciansReadingStudy |
(0008, 1080) | AdmittingDiagnosesDescription |
(0008, 1110) | ReferencedStudySequence |
(0010, 1010) | PatientAge |
(0010, 1020) | PatientSize |
(0010, 1030) | PatientWeight |
(0010, 2180) | Occupation |
(0010, 21B0) | AdditionalPatientHistory |
(0010, 0040) | PatientSex |
(0020, 0010) | StudyID |
Другие теги серии
Тег | Имя атрибута |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0011) | Число серий |
(0020, 0060) | Боковое |
(0008, 0021) | SeriesDate |
(0008, 0031) | SeriesTime |
(0008, 103E) | SeriesDescription |
(0040, 0245) | PerformedProcedureStepStartTime |
(0040, 0275) | RequestAttributesSequence |
Другие теги экземпляра
Тег | Имя атрибута |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0016) | SOPClassUID |
(0008, 0056) | InstanceAvailability |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0013) | InstanceNumber |
(0028, 0010) | Строки |
(0028, 0011) | Столбцы |
(0028, 0100) | BitsAllocated |
(0028, 0008) | NumberOfFrames |
Возвращаются следующие атрибуты.
- Все параметры запроса соответствия и идентификаторы пользовательского интерфейса в URL-адресе ресурса
IncludeField
атрибуты, поддерживаемые на этом уровне ресурсов- Если целевой ресурс имеет значение
All Series
,Study
то также возвращаются атрибуты уровня. - Если целевой ресурс имеет значение
All Instances
,Study
то такжеSeries
возвращаются атрибуты уровня. - Если целевой ресурс имеет значение
Study's Instances
,Series
то также возвращаются атрибуты уровня. NumberOfStudyRelatedInstances
Агрегированный атрибут поддерживается наStudy
уровнеincludeField
.NumberOfSeriesRelatedInstances
Агрегированный атрибут поддерживается наSeries
уровнеincludeField
.
Коды ответов поиска
API запросов возвращает один из следующих кодов состояния в ответе.
Код | Описание |
---|---|
200 (OK) |
Полезные данные ответа содержат все соответствующие ресурсы. |
204 (No Content) |
Поиск завершился успешно, но не вернул результатов. |
400 (Bad Request) |
Сервер не смог выполнить запрос, так как компонент запроса недействителен. Текст ответа содержит сведения о сбое. |
401 (Unauthorized) |
Клиент не проходит проверку подлинности. |
403 (Forbidden) |
Пользователь не авторизован. |
414 (URI Too Long) |
URI превысил максимальную поддерживаемую длину 8192 символов. |
424 (Failed Dependency) |
Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
503 (Service Unavailable) |
Служба недоступна или занята. Повторите попытку позже. |
Примечания.
- Запросы с помощью не
TimezoneOffsetFromUTC (00080201)
поддерживаются. - API запроса не возвращается
413 (request entity too large)
. Если запрошенное ограничение ответа запроса выходит за пределы допустимого диапазона, возвращается неправильный запрос. Разрешено все запрошенное в допустимом диапазоне. - Если целевой ресурс — Study/Series, существует потенциал для несогласованных метаданных уровня исследования или ряда в нескольких экземплярах. Например, два экземпляра могут иметь разные
patientName
. В этом случае последние победы и поиск можно выполнять только на последних данных. - Результаты страниц оптимизированы для возврата соответствующего нового экземпляра, что может привести к дублированию записей на последующих страницах, если добавлены новые данные, соответствующие запросу.
- Сопоставление не учитывает регистр и не учитывает акцент для типов виртуальной реальности PN.
- Сопоставление не учитывает регистр и учитывает акцент для других типов виртуальной реальности строки.
- Только первое значение индексируется из одного элемента данных со значением, который неправильно имеет несколько значений.
- Использование атрибутов по умолчанию или ограничение количества запрошенных результатов повышает производительность.
- При хранении атрибута с помощью заполнения null его можно искать с помощью или без кодирования URI или без него. Полученные результаты предназначены для атрибутов, хранящихся как с заполнением null, так и без заполнения null.
Удаление
Эта транзакция не является частью официального DICOMweb Standard. Он использует метод DELETE для удаления представлений исследований, ряда и экземпляров из хранилища.
Способ | Путь | Description |
---|---|---|
DELETE | .. /studies/{study} | Удалите все экземпляры для определенного исследования. |
DELETE | .. /studies/{study}/series/{series} | Удалите все экземпляры для определенной серии в рамках исследования. |
DELETE | .. /studies/{study}/series/{series}/instances/{instance} | Удаление определенного экземпляра в серии. |
Параметры study
, series
и instance
соответствуют атрибутам StudyInstanceUID
SeriesInstanceUID
DICOM и SopInstanceUID
соответственно.
Нет ограничений на заголовок, Content-Type
заголовок или текст запросаAccept
.
Примечание.
После транзакции Delete удаленные экземпляры не будут восстановлены.
Коды состояния ответа
Код | Описание |
---|---|
204 (No Content) |
Когда удаляются все экземпляры SOP. |
400 (Bad Request) |
Запрос был плохо отформатирован. |
401 (Unauthorized) |
Клиент не проходит проверку подлинности. |
403 (Forbidden) |
Пользователь не авторизован. |
404 (Not Found) |
Если указанный ряд не найден в исследовании или указанный экземпляр не найден в пределах ряда. |
424 (Failed Dependency) |
Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
503 (Service Unavailable) |
Служба недоступна или занята. Повторите попытку позже. |
Удаление полезных данных ответа
Текст ответа пуст. Код состояния — это единственная полезная информация, возвращаемая.
Служба worklist (UPS-RS)
Служба DICOM поддерживает поставщик услуг push-уведомлений и извлечения служб рабочего списка (UPS-RS). Эта служба предоставляет доступ к одному списку, содержаму Workitems, каждому из которых представляется шаг единой процедуры (UPS).
В течение всего переменная {workitem}
в шаблоне URI обозначает идентификатор пользовательского интерфейса Workitem.
Доступные конечные точки UPS-RS включают:
Команда | Путь | Description |
---|---|---|
POST | {s}/workitems{? AffectedSOPInstanceUID} | Создание рабочего элемента |
POST | {s}/workitems/{instance}{?transaction} | Обновить рабочий элемент |
GET | {s}/workitems{?query*} | Поиск рабочих элементов |
GET | {s}/workitems/{instance} | Получение рабочего элемента |
PUT | {s}/workitems/{instance}/state | Изменение состояния рабочего элемента |
POST | {s}/workitems/{instance}/cancelrequest | Отмена рабочего элемента |
POST | {s}/workitems/{instance}/subscription/{AETitle}{?удаление} | Создание подписки |
POST | {s}/workitems/1.2.840.10008.5.1.4.34.5/ | Приостановка подписки |
DELETE | {s}/workitems/{instance}/subscription/{AETitle} | Удаление подписки |
GET | {s}/подписчики/{AETitle} | Открытие канала подписки |
Создание Workitem
Эта транзакция использует метод POST для создания нового Workitem.
Способ | Путь | Description |
---|---|---|
POST | .. /workitems | Создайте Workitem. |
POST | .. /workitems? {workitem} | Создает Workitem с указанным идентификатором пользовательского интерфейса. |
Если он не указан в URI, полезный набор данных должен содержать Workitem в атрибуте SOPInstanceUID
.
В Accept
запросе требуются заголовки и Content-Type
должны иметь значение application/dicom+json
.
Существует несколько требований, связанных с атрибутами данных DICOM в контексте конкретной транзакции. Атрибуты могут быть обязательными, обязательными для того, чтобы не присутствовать, быть пустыми или не должны быть пустыми. Эти требования можно найти в этой таблице.
Примечание.
Хотя в справочной таблице указано, что идентификатор пользовательского интерфейса экземпляра SOP не должен присутствовать, это руководство зависит от протокола DIMSE и обрабатывается по-разному в DICOMWeb. Идентификатор пользовательского интерфейса экземпляра SOP должен присутствовать в наборе данных, если не в URI.
Примечание.
Все коды условных требований, включая 1C и 2C, рассматриваются как необязательные.
Создание кодов состояния ответа
Код | Описание |
---|---|
201 (Created) |
Целевой workitem успешно создан. |
400 (Bad Request) |
Возникла проблема с запросом. Например, полезные данные запроса не соответствуют требованиям. |
401 (Unauthorized) |
Клиент не проходит проверку подлинности. |
403 (Forbidden) |
Пользователь не авторизован. |
409 (Conflict) |
Workitem уже существует. |
415 (Unsupported Media Type) |
Предоставленный Content-Type параметр не поддерживается. |
424 (Failed Dependency) |
Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
503 (Service Unavailable) |
Служба недоступна или занята. Повторите попытку позже. |
Создание полезных данных ответа
Ответ успешного выполнения не содержит полезных данных. Заголовки Location
и Content-Location
заголовки ответов содержат ссылку URI на созданный Workitem.
Полезные данные ответа на сбои содержат сообщение, описывающее сбой.
Отмена запроса
Эта транзакция позволяет пользователю запрашивать отмену не принадлежащих Workitem.
Существует четыре допустимых состояния Workitem:
SCHEDULED
IN PROGRESS
CANCELED
COMPLETED
Эта транзакция выполняется только в отношении Workitems в SCHEDULED
состоянии. Любой пользователь может претендовать на владение Workitem, задав пользовательский интерфейс транзакции и изменив его состояние IN PROGRESS
на . После этого пользователь может изменить только Workitem, предоставив правильный пользовательский интерфейс транзакции. Хотя UPS определяет классы Watch и Event SOP, которые позволяют пересылать запросы на отмену и другие события, эта служба DICOM не реализует эти классы и поэтому запросы на отмену на рабочих объектах, которые IN PROGRESS
возвращают сбой. Принадлежащий Workitem можно отменить с помощью транзакции "Изменить состояние Workitem".
Способ | Путь | Description |
---|---|---|
POST | .. /workitems/{workitem}/cancelrequest | Запрос на отмену запланированного workitem |
Заголовок Content-Type
является обязательным и должен иметь значение application/dicom+json
.
Полезные данные запроса могут содержать сведения о действии, как определено в стандарте DICOM.
Коды состояния ответа отмены запроса
Код | Описание |
---|---|
202 (Accepted) |
Запрос был принят сервером, но состояние Target Workitem еще не изменено. |
400 (Bad Request) |
Возникла проблема с синтаксисом запроса. |
401 (Unauthorized) |
Клиент не проходит проверку подлинности. |
403 (Forbidden) |
Пользователь не авторизован. |
404 (Not Found) |
Целевой workitem не найден. |
409 (Conflict) |
Запрос не согласуется с текущим состоянием target Workitem. Например, target Workitem находится в SCHEDULED состоянии или COMPLETED состоянии. |
415 (Unsupported Media Type) |
Предоставленный Content-Type параметр не поддерживается. |
424 (Failed Dependency) |
Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
503 (Service Unavailable) |
Служба недоступна или занята. Повторите попытку позже. |
Полезные данные ответа на отмену запроса
Ответ успешного выполнения не содержит полезных данных, а полезные данные ответа на сбои содержат сообщение, описывающее сбой.
Если экземпляр Workitem уже находится в отмененном состоянии, ответ содержит следующий заголовок предупреждения HTTP: 299: The UPS is already in the requested state of CANCELED.
Получение Workitem
Эта транзакция извлекает Workitem. Он соответствует операции UPS DIMSE N-GET.
См: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.5
Если Workitem существует на исходном сервере, workitem возвращается в допустимом типе мультимедиа. Возвращаемый workitem не будет содержать атрибут UID транзакции (0008 1195). Это необходимо для сохранения роли атрибута в качестве блокировки доступа.
Способ | Путь | Description |
---|---|---|
GET | .. /workitems/{workitem} | Запрос на получение Workitem |
Заголовок Accept
является обязательным и должен иметь значение application/dicom+json
.
Получение кодов состояния ответа Workitem
Код | Описание |
---|---|
200 OK; | Экземпляр Workitem успешно получен. |
400 (недопустимый запрос) | Возникла проблема с запросом. |
401 (Не авторизовано) | Клиент не проходит проверку подлинности. |
403 (Forbidden (Запрещено)) | Пользователь не авторизован. |
404 (не найдено) | Целевой workitem не найден. |
424 (сбой зависимости) | Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
503 (служба недоступна) | Служба недоступна или занята. Повторите попытку позже. |
Получение полезных данных ответа Workitem
- Ответ успешного выполнения содержит одну часть полезных данных, содержащую запрошенный Workitem в выбранном типе мультимедиа.
- Возвращаемый Workitem не должен содержать атрибут UID транзакции (0008, 1195), так как это должно быть известно только владельцу.
Обновление Workitem
Эта транзакция изменяет атрибуты существующего Workitem. Он соответствует операции UPS DIMSE N-SET.
См: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.6
Чтобы обновить Workitem в настоящее время в SCHEDULED
состоянии, Transaction UID
атрибут не должен присутствовать. Для Workitem в IN PROGRESS
состоянии запрос должен включать текущий пользовательский интерфейс транзакции в качестве параметра запроса. Если Workitem уже находится в COMPLETED
или CANCELED
состояниях, ответ равен 400 (Bad Request)
.
Способ | Путь | Description |
---|---|---|
POST | .. /workitems/{workitem}? {transaction-uid} | Обновление транзакции Workitem |
Заголовок Content-Type
является обязательным и должен иметь значение application/dicom+json
.
Полезные данные запроса содержат набор данных с изменениями, которые будут применены к целевому Workitem. При изменении последовательности запрос должен включать все элементы в последовательность, а не только элементы, которые необходимо изменить. Если необходимо обновить несколько атрибутов в виде группы, обновите их как несколько атрибутов в одном запросе, а не как несколько запросов.
Существует множество требований, связанных с атрибутами данных DICOM в контексте конкретной транзакции. Атрибуты могут быть обязательными, обязательными для того, чтобы не присутствовать, быть пустыми или не должны быть пустыми. Эти требования можно найти в этой таблице.
Примечание.
Все коды условных требований, включая 1C и 2C, рассматриваются как необязательные.
Примечание.
Запрос не может задать значение атрибута "Состояние шага процедуры" (0074 1000). Состояние шага процедуры управляется с помощью транзакции "Изменение состояния" или транзакции "Отмена запроса".
Обновление кодов состояния отклика транзакций Workitem
Код | Описание |
---|---|
200 (OK) |
Объект Target Workitem был обновлен. |
400 (Bad Request) |
Возникла проблема с запросом. Например: (1) Target Workitem был в COMPLETED состоянии или CANCELED состоянии. (2) Отсутствует идентификатор пользовательского интерфейса транзакции. (3) Идентификатор пользовательского интерфейса транзакции неверный. (4) Набор данных не соответствовал требованиям. |
401 (Unauthorized) |
Клиент не проходит проверку подлинности. |
403 (Forbidden) |
Пользователь не авторизован. |
404 (Not Found) |
Целевой workitem не найден. |
409 (Conflict) |
Запрос не согласуется с текущим состоянием target Workitem. |
415 (Unsupported Media Type) |
Предоставленный Content-Type параметр не поддерживается. |
424 (Failed Dependency) |
Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
503 (Service Unavailable) |
Служба недоступна или занята. Повторите попытку позже. |
Обновление полезных данных ответа на транзакцию Workitem
Сервер-источник поддерживает поля заголовков в таблице 11.6.3-2.
Ответ успешного выполнения не содержит полезных данных или полезных данных, содержащих документ отчета о состоянии.
Полезные данные ответа на сбои могут содержать отчет о состоянии, описывающий любые сбои, предупреждения или другие полезные сведения.
Изменение состояния Workitem
Эта транзакция используется для изменения состояния Workitem. Он соответствует операции UPS DIMSE N-ACTION "Изменение состояния UPS". Изменения состояния используются для утверждения владения, завершения или отмены Workitem.
См: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.7
Если Workitem существует на исходном сервере, workitem возвращается в допустимом типе мультимедиа. Возвращенный Workitem не будет содержать атрибут UID транзакции (0008 1195). Это необходимо для сохранения роли атрибута в качестве блокировки доступа, как описано здесь.
Способ | Путь | Description |
---|---|---|
PUT | .. /workitems/{workitem}/state | Изменение состояния Workitem |
Заголовок Accept
является обязательным и должен иметь значение application/dicom+json
.
Полезные данные запроса содержат элементы данных состояния Change UPS. Эти элементы данных приведены следующим образом.
- UiD транзакции (0008, 1195) Полезные данные запроса включают идентификатор пользовательского интерфейса транзакции. Агент пользователя создает идентификатор пользовательского интерфейса транзакции при запросе перехода к
IN PROGRESS
состоянию для заданного Workitem. Агент пользователя предоставляет идентификатор пользовательского интерфейса транзакции в последующих транзакциях с этим Workitem. - Состояние шага процедуры (0074, 1000) Юридические значения соответствуют запрошенному переходу состояния. Это:
IN PROGRESS
,COMPLETED
илиCANCELED
.
Изменение кодов состояния ответа состояния Workitem
Код | Описание |
---|---|
200 (OK) |
Экземпляр Workitem успешно получен. |
400 (Bad Request) |
Запрос не может быть выполнен по одной из следующих причин: (1) запрос недействителен, учитывая текущее состояние Target Workitem. (2) Отсутствует идентификатор пользовательского интерфейса транзакции. (3) Идентификатор пользовательского интерфейса транзакции является неверным |
401 (Unauthorized) |
Клиент не проходит проверку подлинности. |
403 (Forbidden) |
Пользователь не авторизован. |
404 (Not Found) |
Целевой workitem не найден. |
409 (Conflict) |
Запрос не согласуется с текущим состоянием target Workitem. |
424 (Failed Dependency) |
Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
503 (Service Unavailable) |
Служба недоступна или занята. Повторите попытку позже. |
Изменение полезных данных ответа о состоянии Workitem
- Ответы включают поля заголовка, указанные в разделе 11.7.3.2.
- Ответ успешного выполнения не содержит полезных данных.
- Полезные данные ответа на сбои могут содержать отчет о состоянии, описывающий любые сбои, предупреждения или другие полезные сведения.
Поиск Workitems
Эта транзакция позволяет выполнять поиск Workitems по атрибутам.
Способ | Путь | Description |
---|---|---|
GET | .. /workitems? | Поиск Workitems |
Accept
Следующий заголовок поддерживается для поиска.
application/dicom+json
Поддерживаемые параметры поиска
Поддерживаются следующие параметры для каждого запроса:
Ключ | Значения поддержки | Допустимое число | Description |
---|---|---|---|
{attributeID}= |
{value} |
0...N | Поиск сопоставления атрибутов и значений в запросе. |
includefield= |
{attributeID} all |
0...N | Другие атрибуты, возвращаемые в ответе. Можно включить только атрибуты верхнего уровня , а не атрибуты, которые являются частью последовательностей. Поддерживаются как общедоступные, так и частные теги. При all указании. Дополнительные сведения о том, какие атрибуты возвращаются для каждого типа запроса, см . в ответе поиска. Если используется смесь {attributeID} и all предоставляется, сервер по умолчанию использует значение "all". |
limit= |
{value} |
0...1 | Целочисленное значение, ограничивающее количество значений, возвращаемых в ответе. Значение может быть между диапазоном 1 >= x <= 200 . По умолчанию используется 100 значение . |
offset= |
{value} |
0...1 | Пропустить результаты {value}. Если смещение предоставляется больше количества результатов поискового запроса, 204 (no content) возвращается ответ. |
fuzzymatching= |
true \ false |
0...1 | Если истинное нечеткое сопоставление применяется к любым атрибутам с представлением значения имени пользователя (PN). Он выполняет сопоставление слов префикса любой части имени внутри этих атрибутов. Например, если PatientName имеет значение John^Doe , то joh do , jo do Doe и John Doe все совпадения. Однако ohn не соответствует. |
Атрибуты, доступные для поиска
Мы поддерживаем поиск по следующим атрибутам.
Ключевое слово атрибута |
---|
PatientName |
PatientID |
ReferencedRequestSequence.AccessionNumber |
ReferencedRequestSequence.RequestedProcedureID |
ScheduledProcedureStepStartDateTime |
ScheduledStationNameCodeSequence.CodeValue |
ScheduledStationClassCodeSequence.CodeValue |
ScheduledStationGeographicLocationCodeSequence.CodeValue |
ProcedureStepState |
StudyInstanceUID |
Примечание.
Мы не поддерживаем поиск с помощью пустой строки для каких-либо атрибутов.
Сопоставление поиска
Мы поддерживаем следующие типы сопоставления.
Тип поиска | Поддерживаемый атрибут | Пример |
---|---|---|
Запрос в диапазоне | ScheduledProcedureStepStartDateTime |
{attributeID}={value1}-{value2} . Для значений даты и времени мы поддерживаем инклюзивное диапазон тега. Этот диапазон сопоставляется с attributeID >= {value1} AND attributeID <= {value2} . Если {value1} значение не указано, все вхождения дат и времени до этого и в том числе {value2} совпадают. Аналогичным образом, если {value2} не указано, все вхождения {value1} и последующие даты и время сопоставляются. Однако одно из этих значений должно присутствовать. {attributeID}={value1}- и {attributeID}=-{value2} допустимы, однако, {attributeID}=- недопустимы. |
Точное совпадение | Все поддерживаемые атрибуты | {attributeID}={value1} |
Нечеткий матч | PatientName |
Соответствует любому компоненту имени, начинающегося со значения. |
Совпадение с подстановочными знаками | PatientID , ReferencedRequestSequence.AccessionNumber , ReferencedRequestSequence.RequestedProcedureID , ProcedureStepState , ScheduledStationNameCodeSequence.CodeValue , ScheduledStationClassCodeSequence.CodeValue , ScheduledStationGeographicLocationCodeSequence.CodeValue |
Поддерживаются следующие подстановочные знаки: * — соответствует нулю или нескольким символам. Например, {attributeID}={val*} соответствует "val", "valid", "value", но не "evaluate". ? — соответствует одному символу. Например, {attributeID}={valu?} соответствует "value", "valu1", но не "valued" или "valu" |
Примечание.
Хотя мы не поддерживаем полное сопоставление последовательности, мы поддерживаем точное соответствие атрибутов, перечисленных в последовательности.
Идентификатор атрибута
Теги можно закодировать различными способами для параметра запроса. Мы частично реализовали стандарт, определенный в PS3.18 6.7.1.1.1. Поддерживаются следующие кодировки для тега.
Значение | Пример |
---|---|
{group}{element} |
00100010 |
{dicomKeyword} |
PatientName |
Пример запроса:
../workitems?PatientID=K123&0040A370.00080050=1423JS&includefield=00404005&limit=5&offset=0
Ответ поиска
Ответ представляет собой массив 0...N
наборов данных DICOM со следующими атрибутами.
- Все атрибуты в DICOM PowerShell 3.4 Table CC.2.5-3 с типом возвращаемого ключа 1 или 2
- Все атрибуты в DICOM PowerShell 3.4 Table CC.2.5-3 с типом возвращаемого ключа 1C, для которого выполняются условные требования
- Все остальные атрибуты Workitem, переданные в качестве параметров соответствия
- Все остальные атрибуты Workitem, переданные в качестве
includefield
значений параметров
Коды ответов поиска
API запросов возвращает один из следующих кодов состояния в ответе:
Код | Описание |
---|---|
200 (OK) |
Полезные данные ответа содержат все соответствующие ресурсы. |
206 (Partial Content) |
Полезные данные ответа содержат только некоторые результаты поиска, а остальные можно запросить с помощью соответствующего запроса. |
204 (No Content) |
Поиск завершился успешно, но не вернул результатов. |
400 (Bad Request) |
Возникла проблема с запросом. Например, недопустимый синтаксис параметра запроса. Текст ответа содержит сведения о сбое. |
401 (Unauthorized) |
Клиент не проходит проверку подлинности. |
403 (Forbidden) |
Пользователь не авторизован. |
424 (Failed Dependency) |
Служба DICOM не может получить доступ к ресурсу, который зависит от завершения этого запроса. Например, не удается получить доступ к подключенном хранилищу Data Lake или хранилищу ключей для поддержки шифрования ключей, управляемых клиентом. |
503 (Service Unavailable) |
Служба недоступна или занята. Повторите попытку позже. |
Дополнительные примечания
API запроса не возвращается 413 (request entity too large)
. Если запрошенное ограничение ответа запроса выходит за пределы допустимого диапазона, возвращается неправильный запрос. Разрешено все запрошенное в допустимом диапазоне.
- Результаты страниц оптимизированы для возврата соответствующего нового экземпляра, что может привести к дублированию записей на последующих страницах, если добавлены новые данные, соответствующие запросу.
- Сопоставление не учитывает регистр и не учитывает акцент для типов виртуальной реальности PN.
- Сопоставление не учитывает регистр и учитывает акцент для других типов виртуальной реальности строки.
- Если есть сценарий, в котором отмена Workitem и запросы совпадают одновременно, запрос, скорее всего, исключает workitem, который обновляется, и код ответа.
206 (Partial Content)
Примечание.
DICOM® является зарегистрированным товарным знаком Национальной ассоциации производителей электрических технологий для публикаций по стандартам, касающихся цифровых коммуникаций медицинской информации.