Instrucción de conformidad de DICOM v2
Nota:
La versión 2 de la API es la versión más reciente de la API. Para obtener una lista de los cambios en la versión 2 en comparación con v1, consulte Cambios de API de servicio DICOM v2.
El servidor de imágenes médicas para DICOM® admite un subconjunto del estándar DICOMweb. La compatibilidad incluye:
Además, se admiten estas API no estándar:
El servicio usa el control de versiones de la API REST. La versión de la API REST debe especificarse explícitamente como parte de la dirección URL base, como en el ejemplo siguiente:
https://<service_url>/v<version>/studies
Esta versión de la instrucción de conformidad corresponde a la v2
versión de las API REST.
Para obtener más información sobre cómo especificar la versión al realizar solicitudes, consulte la documentación de control de versiones de API.
Puede encontrar solicitudes de ejemplo para transacciones admitidas en la colección Postman.
Saneamiento del preámbulo
El servicio omite el preámbulo del archivo de 128 bytes y reemplaza su contenido por caracteres NULL. Este comportamiento garantiza que ningún archivo pasado a través del servicio sea vulnerable a la vulnerabilidad de preámbulo malintencionada. Sin embargo, esta sanación de preámbulo también significa que los preámbulos usados para codificar contenido de formato dual, como TIFF, no se pueden usar con el servicio.
Servicio de estudios
El Servicio de estudios permite a los usuarios almacenar, recuperar y buscar estudios, series e instancias de DICOM. Se ha agregado la transacción Delete no estándar para habilitar un ciclo de vida completo de los recursos.
Almacenamiento (STOW-RS)
Esta transacción usa el método POST o PUT para almacenar representaciones de estudios, series e instancias contenidas en la carga de la solicitud.
Método | Ruta de acceso | Descripción |
---|---|---|
POST | ../studies | Almacena instancias. |
PUBLICAR | ../studies/{estudio} | Almacena instancias para un estudio específico. |
PUT | ../studies | Instancias de Upsert. |
PUT | ../studies/{estudio} | Instancias de Upsert para un estudio específico. |
El parámetro study
corresponde al atributo StudyInstanceUID de DICOM. Si se especifica, cualquier instancia que no pertenezca al estudio proporcionado se rechaza con un 43265
código de advertencia.
A continuación se muestra el único encabezado de respuesta Accept
admitido:
application/dicom+json
Se admiten los siguientes Content-Type
encabezados:
multipart/related; type="application/dicom"
application/dicom
Nota:
El servidor no coerce ni reemplazará los atributos que entran en conflicto con los datos existentes para las solicitudes POST. Todos los datos se almacenan según se proporciona. Para las solicitudes upsert (PUT), los datos existentes se reemplazan por los nuevos datos recibidos.
Almacenar los atributos necesarios
Es necesario que los elementos DICOM siguientes estén presentes en cada archivo DICOM que se intente almacenar:
StudyInstanceUID
SeriesInstanceUID
SOPInstanceUID
SOPClassUID
PatientID
Nota:
Todos los UID deben tener entre 1 y 64 caracteres, y solo deben contener caracteres alfa numéricos o los siguientes caracteres especiales: .
, -
. PatientID
sigue siendo una etiqueta necesaria y puede tener el valor como null en la entrada. PatientID
se valida en función de su LO
VR
tipo.
Cada archivo almacenado debe tener una combinación única de StudyInstanceUID
, SeriesInstanceUID
y SopInstanceUID
. El código 45070
de advertencia se devuelve si ya existe un archivo con los mismos identificadores.
Solo se aceptan sintaxis de transferencia con representaciones de valor explícitas.
Nota:
Las solicitudes están limitadas a 4 GB. Ningún archivo DICOM o combinación de archivos puede superar este límite.
Almacenar los cambios de la versión 1
En versiones anteriores, se produciría un error en una solicitud de la Tienda si se produce un error en cualquiera de los atributos necesarios o en los que se pueden realizar búsquedas. A partir de la versión 2, la solicitud solo produce un error si los atributos necesarios no se validan.
La validación errónea de los atributos no requeridos por la API da como resultado que el archivo se almacena con una advertencia. Se da una advertencia sobre cada atributo con errores por instancia. Cuando una secuencia contiene un atributo que produce un error en la validación o cuando hay varios problemas con un único atributo, solo se indica el primer motivo del atributo con errores.
Si un atributo se rellena con valores NULL, el atributo se indexa cuando se puede buscar y se almacena tal como está en los metadatos dicom+json. No se proporciona ninguna advertencia de validación.
Códigos de estado de respuesta de almacenamiento
Código | Descripción |
---|---|
200 (OK) |
Todas las instancias de SOP de la solicitud se almacenaron. |
202 (Accepted) |
El servidor de origen almacenó algunas de las instancias y otras advertencias con errores o devueltas. Puede encontrar información adicional sobre este error en el cuerpo del mensaje de respuesta. |
204 (No Content) |
No se proporcionó contenido en la solicitud de transacción de almacenamiento. |
400 (Bad Request) |
El formato de la solicitud no era correcto. Por ejemplo, el identificador de instancia de estudio proporcionado no cumplan el formato de UID esperado. |
401 (Unauthorized) |
El cliente no está autenticado. |
406 (Not Acceptable) |
No se admite el encabezado especificado Accept . |
409 (Conflict) |
Ninguna de las instancias de la solicitud de transacción del almacén se almacenó. |
415 (Unsupported Media Type) |
No se admite el proporcionado Content-Type . |
424 (Failed Dependency) |
El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
500 (Internal Server Error) |
El servidor encontró un error interno desconocido. Vuelva a intentarlo más tarde. |
503 (Service Unavailable) |
El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Carga de la respuesta de almacenamiento
La carga de respuesta rellena un conjunto de datos DICOM con los siguientes elementos:
Etiqueta | Nombre | Descripción |
---|---|---|
(0008, 1190) | RetrieveURL |
La dirección URL de recuperación del estudio si se proporcionó StudyInstanceUID en la solicitud de almacenamiento y, al menos, una instancia se almacenó correctamente. |
(0008, 1198) | FailedSOPSequence |
Secuencia de las instancias que no se pudieron almacenar. |
(0008, 1199) | ReferencedSOPSequence |
Secuencia de las instancias almacenadas. |
Cada conjunto de datos de FailedSOPSequence
tiene los siguientes elementos (si se puede leer el archivo DICOM que intenta almacenarse):
Etiqueta | Nombre | Descripción |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Identificador único de la clase de SOP de la instancia que no se pudo almacenar. |
(0008, 1155) | ReferencedSOPInstanceUID |
Identificador único de la instancia de SOP de la instancia que no se pudo almacenar. |
(0008, 1197) | FailureReason |
Código del motivo por el cual no se pudo almacenar esta instancia. |
(0008, 1196) | WarningReason |
indica WarningReason los problemas de validación detectados, pero que no eran lo suficientemente graves como para producir un error en la operación de almacenamiento. |
(0074, 1048) | FailedAttributesSequence |
Secuencia de ErrorComment que incluye el motivo de cada atributo con error. |
Cada conjunto de datos de ReferencedSOPSequence
tiene los siguientes elementos:
Etiqueta | Nombre | Descripción |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Identificador único de la clase SOP de la instancia almacenada. |
(0008, 1155) | ReferencedSOPInstanceUID |
Identificador único de la instancia de SOP de la instancia que se almacenó. |
(0008, 1190) | RetrieveURL |
Dirección URL de recuperación de esta instancia en el servidor DICOM. |
Una respuesta de ejemplo con Accept
encabezado application/dicom+json
sin failedAttributesSequence en 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"]
}
}]
}
}
Una respuesta de ejemplo con Accept
encabezado application/dicom+json
con failedAttributesSequence en 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}]]]]]]"
]
}
}
]
}
}]
}
}
Códigos de motivo de error de almacenamiento
Código | Descripción |
---|---|
272 |
La transacción de almacén no almacenaba la instancia debido a un error general en el procesamiento de la operación. |
43264 |
No se pudo validar la instancia de DICOM. |
43265 |
La instancia StudyInstanceUID proporcionada no coincide con la especificada StudyInstanceUID en la solicitud de almacén. |
45070 |
Ya se almacenó una instancia de DICOM con el mismo StudyInstanceUID , SeriesInstanceUID y SopInstanceUID . Si desea actualizar el contenido, elimine primero esta instancia. |
45071 |
Otro proceso crea una instancia de DICOM o el intento anterior de crear un error y el proceso de limpieza no se ha completado. Primero elimine esta instancia antes de volver a intentar la creación. |
Almacenar códigos de motivo de advertencia
Código | Descripción |
---|---|
45063 |
Un conjunto de datos de instancia de DICOM no coincide con la clase SOP. La transacción del almacén de estudios (sección 10.5) observó que el conjunto de datos no coincidía con las restricciones de la clase SOP durante el almacenamiento de la instancia. |
1 |
La transacción del almacén de estudios (sección 10.5) observó que el conjunto de datos tiene validación |
Almacenar códigos de error
Código | Descripción |
---|---|
100 |
Los atributos de instancia proporcionados no cumplen los criterios de validación. |
Recuperación (WADO-RS)
Esta transacción de recuperación ofrece compatibilidad para recuperar estudios almacenados, series, instancias y marcos por referencia.
Método | Ruta de acceso | Descripción |
---|---|---|
GET | ../studies/{estudio} | Recupera todas las instancias de un estudio. |
GET | ../studies/{estudio}/metadata | Recupera los metadatos de todas las instancias de un estudio. |
GET | ../studies/{estudio}/series/{serie} | Recupera todas las instancias de una serie |
GET | ../studies/{estudio}/series/{serie}/metadata | Recupera los metadatos de todas las instancias de una serie. |
GET | ../studies/{estudio}/series/{serie}/instances/{instancia} | Recupera una sola instancia |
GET | ../studies/{estudio}/series/{serie}/instances/{instancia}/metadata | Recupera los metadatos de una sola instancia. |
GET | .. /studies/{study}/series/{series}/instances/{instance}/rendered | Recupera una instancia representada en un formato de imagen. |
GET | ../studies/{estudio}/series/{serie}/instances/{instancia}/frames/{fotogramas} | Recupera uno o varios fotogramas de una sola instancia. Para especificar más de un marco, una coma separa cada fotograma que se va a devolver. Por ejemplo, /studies/1/series/2/instance/3/frames/4,5,6 . |
GET | .. /studies/{study}/series/{series}/instances/{instance}/frames/{frame}/rendered | Recupera un único fotograma representado en un formato de imagen. |
Recuperación de instancias de un estudio o una serie
Los encabezados siguientes Accept
se admiten para recuperar instancias dentro de un estudio o una serie.
multipart/related; type="application/dicom"; transfer-syntax=*
multipart/related; type="application/dicom";
(cuando no se especifica transfer-syntax, se usa 1.2.840.10008.1.2.1 como valor predeterminado).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
*/*
(cuando no se especifica la sintaxis de transferencia,*
se usa como valor predeterminado y mediaType tieneapplication/dicom
como valor predeterminado ).
Recuperación de una instancia
Se admiten los siguientes Accept
encabezados para recuperar una instancia específica.
application/dicom; transfer-syntax=*
multipart/related; type="application/dicom"; transfer-syntax=*
application/dicom;
(cuando no se especifica la sintaxis de transferencia,1.2.840.10008.1.2.1
se usa como valor predeterminado)multipart/related; type="application/dicom"
(cuando no se especifica la sintaxis de transferencia,1.2.840.10008.1.2.1
se usa como valor predeterminado)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
*/*
(cuando no se especifica la sintaxis de transferencia,*
se usa como valor predeterminado y mediaType tieneapplication/dicom
como valor predeterminado ).
Recuperar fotogramas
Se admiten los siguientes Accept
encabezados para recuperar fotogramas.
multipart/related; type="application/octet-stream"; transfer-syntax=*
multipart/related; type="application/octet-stream";
(cuando no se especifica la sintaxis de transferencia,1.2.840.10008.1.2.1
se usa como valor predeterminado)multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1
multipart/related; type="image/jp2";
(cuando no se especifica la sintaxis de transferencia,1.2.840.10008.1.2.4.90
se usa como valor predeterminado)multipart/related; type="image/jp2";transfer-syntax=1.2.840.10008.1.2.4.90
application/octet-stream; transfer-syntax=*
para la recuperación de fotogramas únicos
*/*
(cuando no se especifica la sintaxis de transferencia,*
se usa como valor predeterminado y mediaType tieneapplication/octet-stream
como valor predeterminado ).
Recuperación de la sintaxis de transferencia
Cuando la sintaxis de transferencia solicitada es diferente del archivo original, el archivo original se transcodifica para la sintaxis de transferencia solicitada. El archivo original debe ser uno de los siguientes formatos para que la transcodificación se realice correctamente; de lo contrario, podría producirse un error en la transcodificación.
- 1.2.840.10008.1.2 (Little Endian Implicit)
- 1.2.840.10008.1.2.1 (Little Endian Explicit)
- 1.2.840.10008.1.2.2 (Explicit VR Big Endian)
- 1.2.840.10008.1.2.4.50 (JPEG Baseline Process 1)
- 1.2.840.10008.1.2.4.57 (JPEG Lossless)
- 1.2.840.10008.1.2.4.70 (JPEG Lossless Selection Value 1)
- 1.2.840.10008.1.2.4.90 (JPEG 2000 Lossless Only)
- 1.2.840.10008.1.2.4.91 (JPEG 2000)
- 1.2.840.10008.1.2.5 (RLE Lossless)
Un resultado no admitido transfer-syntax
es 406 Not Acceptable
.
Recuperación de metadatos (para estudio, serie o instancia)
El siguiente Accept
encabezado es compatible con la recuperación de metadatos para un estudio, una serie o una instancia de .
application/dicom+json
La recuperación de metadatos no devuelve atributos con las siguientes representaciones de valor.
Nombre de VR | Descripción |
---|---|
OB | Other Byte |
OD | Other Double |
OF | Other Float |
OL | Other Long |
OV | Other 64-Bit Very Long |
OW | Other Word |
UN | Unknown |
Los metadatos recuperados incluyen el carácter NULL cuando el atributo se rellena con valores NULL y se almacena tal como está.
Recuperación de la validación de caché de metadatos (para estudio, serie o instancia)
La validación de caché se admite mediante el mecanismo ETag
. En la respuesta a una solicitud de metadatos, se devuelve ETag como uno de los encabezados. Esta ETag se puede almacenar en caché y agregarse como un If-None-Match
encabezado en las solicitudes posteriores para los mismos metadatos. Si los datos existen, pueden existir dos tipos de respuestas.
- Los datos no se modifican desde la última solicitud: la
HTTP 304 (Not Modified)
respuesta se envía sin cuerpo de respuesta. - Datos modificados desde la última solicitud: la respuesta se envía con ETag
HTTP 200 (OK)
actualizado. Los datos necesarios se devuelven como parte del cuerpo.
Recuperar imagen representada (por ejemplo o marco)
Se admiten los siguientes Accept
encabezados para recuperar una imagen representada, una instancia o un marco.
image/jpeg
image/png
En caso de que no se especifique ningún Accept
encabezado, el servicio representa un image/jpeg
valor de forma predeterminada.
El servicio solo admite la representación de un solo fotograma. Si la representación se solicita para una instancia con varios fotogramas, de forma predeterminada solo se representa el primer fotograma como una imagen.
Al especificar un marco determinado que se va a devolver, la indexación de fotogramas comienza en 1.
También se admite el quality
parámetro de consulta. Un valor entero entre 1
e 100
inclusivo (1 siendo la peor calidad y 100 como mejor calidad) puede pasarse como valor para el parámetro de consulta. Este parámetro se usa para las imágenes representadas como jpeg
y se omite para png
las solicitudes de representación. Si no se especifica el parámetro, el valor predeterminado es 100
.
Recuperación de la versión original
El uso de la operación de actualización masiva permite recuperar la versión original o más reciente de un estudio, una serie o una instancia. La versión más reciente de un estudio, una serie o una instancia siempre se devuelve de forma predeterminada. Es posible que se devuelva la versión original estableciendo el msdicom-request-original
encabezado true
en . Este es un ejemplo de solicitud:
GET ../studies/{study}/series/{series}/instances/{instance}
Accept: multipart/related; type="application/dicom"; transfer-syntax=*
msdicom-request-original: true
Content-Type: application/dicom
Códigos de estado de respuesta de recuperación
Código | Descripción |
---|---|
200 (OK) |
Se recuperaron todos los datos solicitados. |
304 (Not Modified) |
Los datos solicitados no se modifican desde la última solicitud. El contenido no se agrega al cuerpo de la respuesta en ese caso. Para obtener más información, consulte la sección anterior Recuperación de la validación de caché de metadatos (para estudio, serie o instancia). |
400 (Bad Request) |
El formato de la solicitud no era correcto. Por ejemplo, el identificador de instancia de estudio proporcionado no se ajustaba al formato UID esperado o no se admite la codificación de sintaxis de transferencia solicitada. |
401 (Unauthorized) |
El cliente no está autenticado. |
403 (Forbidden) |
El usuario no está autorizado. |
404 (Not Found) |
No se encontró el recurso DICOM especificado o para la solicitud representada, la instancia no contenía datos de píxeles. |
406 (Not Acceptable) |
No se admite el encabezado especificado Accept , ni para las solicitudes representadas y transcodificas que el archivo solicitado era demasiado grande. |
424 (Failed Dependency) |
El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
503 (Service Unavailable) |
El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Búsqueda (QIDO-RS)
La consulta basada en identificador para los objetos DICOM (QIDO) permite buscar estudios, series e instancias por atributos.
Método | Ruta de acceso | Descripción |
---|---|---|
Búsqueda de estudios | ||
GET | ../studies?... | Búsqueda de estudios |
Búsqueda de series | ||
GET | ../series?... | Búsqueda de series |
GET | ../studies/{estudio}/series?... | Búsqueda de series en un estudio |
Búsqueda de instancias | ||
GET | ../instances?... | Búsqueda de instancias |
GET | ../studies/{estudio}/instances?... | Búsqueda de instancias en un estudio |
GET | ../studies/{estudio}/series/{serie}/instances?... | Búsqueda de instancias en una serie |
Se admite el siguiente Accept
encabezado para la búsqueda.
application/dicom+json
Buscar cambios de la versión 1
En la API v1 y continúa para v2, si una etiqueta de consulta extendida tiene errores porque una o varias de las instancias existentes tenían un valor de etiqueta que no se podía indexar, las consultas de búsqueda posteriores que contienen la etiqueta de consulta extendida devuelven erroneous-dicom-attributes
como se detalla en la documentación. Sin embargo, las etiquetas (también conocidas como atributos) con advertencias de validación de STOW-RS no se incluyen en este encabezado. Si una solicitud de almacén da como resultado advertencias de validación para atributos que se pueden buscar en el momento en que se almacenó la instancia, es posible que esos atributos no se usen para buscar la instancia almacenada. Sin embargo, los atributos que no se pueden realizar búsquedas en la validación pueden devolver resultados si las instancias de la misma serie o estudio que se almacenan después del error, o si una instancia anterior ya almacena correctamente los valores. Si los valores de atributo no se sobrescriben, no generan ningún resultado de búsqueda.
Un atributo se puede corregir de las maneras siguientes.
- Eliminar la instancia almacenada y cargar una nueva instancia con los datos corregidos
- Carga de una nueva instancia en el mismo estudio o serie con datos corregidos
Parámetros de búsqueda admitidos
Se admiten los parámetros siguientes para cada consulta:
Clave | Valores de compatibilidad | Número permitido | Descripción |
---|---|---|---|
{attributeID}= |
{value} |
0…N | Búsqueda de coincidencias de atributos y valores en la consulta |
includefield= |
{attributeID} all |
0…N | Los demás atributos que se van a devolver en la respuesta. Se admiten las etiquetas públicas y las privadas. Cuando all se proporciona, consulte Respuesta de búsqueda para obtener más información.Si se proporciona una combinación de {attributeID} y all , el servidor usa de forma predeterminada all |
limit= |
{value} |
0..1 | Valor entero para limitar el número de valores que se devuelven en la respuesta. El valor puede estar entre el intervalo 1 >= x <= 200. El valor predeterminado es 100 |
offset= |
{value} |
0..1 | Omita {value} los resultados.Si se proporciona un desplazamiento mayor que el número de resultados de la consulta de búsqueda, se devuelve una respuesta 204 (sin contenido). |
fuzzymatching= |
true / false |
0..1 | Si el valor es "true", se aplica la coincidencia aproximada verdadera al atributo PatientName. Hace una coincidencia de palabra de prefijo de cualquier parte de nombre dentro del valor PatientName. Por ejemplo, si PatientName es "John^Doe", "joh", "do", "jo do", "Doe" y "John Doe" coinciden. Sin embargo, "ohn" no coincide. |
Atributos que se pueden buscar
Es posible buscar los atributos y tipos de búsqueda siguientes.
Palabra clave de atributo | Todos los estudios | Todas las series | Todas las instancias | Serie de estudios | Instancias del estudio | Instancias de la serie de estudios |
---|---|---|---|---|---|---|
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 |
Nota:
No se admite la búsqueda mediante cadenas vacías para ningún atributo.
Coincidencias de búsqueda
Se admiten estos tipos de coincidencia.
Tipo de búsqueda | Atributo admitido | Ejemplo |
---|---|---|
Consulta por rango | StudyDate /PatientBirthDate |
{attributeID}={value1}-{value2} . Para los valores de fecha y hora, se admite un intervalo inclusivo en la etiqueta. Este intervalo se asigna a attributeID >= {value1} AND attributeID <= {value2} . Si {value1} no se especifica, todas las apariciones de fechas y horas anteriores a e incluyen {value2} coincidencias. Del mismo modo, si {value2} no se especifica, se coinciden todas las apariciones de {value1} y las fechas y horas posteriores. Sin embargo, uno de estos valores debe estar presente. {attributeID}={value1}- y {attributeID}=-{value2} son válidos, sin embargo, {attributeID}=- no es válido. |
Coincidencia exacta | Todos los atributos admitidos | {attributeID}={value1} |
Coincidencia aproximada | PatientName , ReferringPhysicianName |
Coincide con cualquier componente del nombre que comience por el valor. |
Coincidencia de lista UID | StudyInstanceUID |
Coincide con los estudios identificados por los valores proporcionados en la lista. Admite comas (,) o una barra diagonal inversa (\) como separador válido. {attributeID}=1.2.3,5.6.7,8.9.0 devolverá los detalles asociados a todos los estudios, dado que existen. |
Identificador de atributo
Las etiquetas se pueden codificar de varias maneras para el parámetro de consulta. Implementamos parcialmente el estándar tal como se define en PS3.18 6.7.1.1.1. Se admiten las siguientes codificaciones para una etiqueta.
Valor | Ejemplo |
---|---|
{group}{element} |
0020000D |
{dicomKeyword} |
StudyInstanceUID |
Consulta de ejemplo que busca instancias:
../instances?Modality=CT&00280011=512&includefield=00280010&limit=5&offset=0
Respuesta de la búsqueda
La respuesta es una matriz de conjuntos de datos DICOM. Según el recurso, de forma predeterminada se devuelven los atributos siguientes.
Etiquetas de estudio predeterminadas
Etiqueta | Nombre del atributo |
---|---|
(0008, 0020) | StudyDate |
(0008, 0050) | AccessionNumber |
(0008, 1030) | StudyDescription |
(0009, 0090) | ReferringPhysicianName |
(0010, 0010) | PatientName |
(0010, 0020) | PatientID |
(0010, 0030) | PatientBirthDate |
(0020, 000D) | StudyInstanceUID |
Etiquetas de serie predeterminadas
Etiqueta | Nombre del atributo |
---|---|
(0008, 0060) | Modality |
(0008, 1090) | ManufacturerModelName |
(0020, 000E) | SeriesInstanceUID |
(0040, 0244) | PerformedProcedureStepStartDate |
Etiquetas de instancia predeterminadas
Etiqueta | Nombre del atributo |
---|---|
(0008, 0018) | SOPInstanceUID |
Si includefield=all
es , estos atributos se incluyen junto con los atributos predeterminados. Junto con los atributos predeterminados, esta lista contiene una lista completa de atributos admitidos en cada nivel de recurso.
Otras etiquetas de estudio
Etiqueta | Nombre del atributo |
---|---|
(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 |
Otras etiquetas de serie
Etiqueta | Nombre del atributo |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0011) | SeriesNumber |
(0020, 0060) | Laterality |
(0008, 0021) | SeriesDate |
(0008, 0031) | SeriesTime |
(0008, 103E) | SeriesDescription |
(0040, 0245) | PerformedProcedureStepStartTime |
(0040, 0275) | RequestAttributesSequence |
Otras etiquetas de instancia
Etiqueta | Nombre del atributo |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0016) | SOPClassUID |
(0008, 0056) | InstanceAvailability |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0013) | NúmeroInstancia |
(0028, 0010) | Filas |
(0028, 0011) | Columnas |
(0028, 0100) | BitsAllocated |
(0028, 0008) | NumberOfFrames |
Se devuelven los atributos siguientes.
- Todos los parámetros de consulta de coincidencia y LOS UID en la dirección URL del recurso
IncludeField
atributos admitidos en ese nivel de recurso- Si el recurso de destino es
All Series
,Study
también se devuelven los atributos de nivel. - Si el recurso de destino es
All Instances
,Study
también se devuelven los atributos de nivel ySeries
. - Si el recurso de destino es
Study's Instances
,Series
también se devuelven los atributos de nivel. NumberOfStudyRelatedInstances
el atributo agregado se admite enStudy
el nivelincludeField
.NumberOfSeriesRelatedInstances
el atributo agregado se admite enSeries
el nivelincludeField
.
Códigos de respuesta de búsqueda
La API de consulta devuelve uno de los siguientes códigos de estado en la respuesta.
Código | Descripción |
---|---|
200 (OK) |
La carga de respuesta contiene todos los recursos correspondientes. |
204 (No Content) |
La búsqueda se completó correctamente, pero no devolvió ningún resultado. |
400 (Bad Request) |
El servidor no pudo realizar la consulta porque el componente de la consulta no era válido. El cuerpo de la respuesta contiene detalles del error. |
401 (Unauthorized) |
El cliente no está autenticado. |
403 (Forbidden) |
El usuario no está autorizado. |
414 (URI Too Long) |
El URI superó la longitud máxima admitida de 8192 caracteres. |
424 (Failed Dependency) |
El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
503 (Service Unavailable) |
El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Notas
- No se admite la consulta mediante .
TimezoneOffsetFromUTC (00080201)
- La API de consulta no devuelve
413 (request entity too large)
. Si el límite de respuesta de consulta solicitado está fuera del intervalo aceptable, se devuelve una solicitud incorrecta. Todo lo solicitado dentro del intervalo aceptable se resuelve. - Cuando el recurso de destino es Study/Series, hay una posibilidad de metadatos de nivel de estudio o serie incoherentes en varias instancias. Por ejemplo, dos instancias podrían tener un valor diferente
patientName
. En este caso, la versión más reciente gana y solo puede buscar en los datos más recientes. - Los resultados paginados están optimizados para devolver primero la instancia más reciente coincidente, lo que puede dar lugar a registros duplicados en páginas posteriores si se han agregado datos más recientes que coincidan con la consulta.
- La coincidencia no distingue mayúsculas de minúsculas y no distingue acentos para los tipos de VR de PN.
- La coincidencia no distingue mayúsculas de minúsculas y distingue acentos para otros tipos de vr de cadena.
- Solo el primer valor se indexa de un único elemento de datos con valores que tiene varios valores incorrectamente.
- El uso de los atributos predeterminados o la limitación del número de resultados solicitados maximiza el rendimiento.
- Cuando un atributo se almacenó mediante relleno nulo, se puede buscar con o sin el relleno nulo en codificación URI. Los resultados recuperados son para atributos almacenados con y sin relleno nulo.
Eliminar
Esta transacción no forma parte del estándar oficial DICOMweb. Usa el método DELETE para quitar representaciones de Estudios, Series e Instancias del almacén.
Método | Ruta de acceso | Descripción |
---|---|---|
Delete | ../studies/{estudio} | Elimina todas las instancias de un estudio específico. |
Delete | ../studies/{estudio}/series/{serie} | Elimina todas las instancias de una serie específica de un estudio. |
Delete | ../studies/{estudio}/series/{serie}/instances/{instancia} | Elimine una instancia específica de una serie. |
Los parámetros study
, , y instance
corresponden a los atributos StudyInstanceUID
DICOM , SeriesInstanceUID
y SopInstanceUID
respectivamente. series
No hay restricciones en el contenido del encabezado, Content-Type
el encabezado o el cuerpo de Accept
la solicitud.
Nota:
Después de una transacción Delete, las instancias eliminadas no se podrán recuperar.
Códigos de estado de respuesta
Código | Descripción |
---|---|
204 (No Content) |
Cuando se eliminan todas las instancias de SOP. |
400 (Bad Request) |
El formato de la solicitud no era correcto. |
401 (Unauthorized) |
El cliente no está autenticado. |
403 (Forbidden) |
El usuario no está autorizado. |
404 (Not Found) |
Cuando no se encontró la serie especificada dentro de un estudio o la instancia especificada no se encontró dentro de la serie. |
424 (Failed Dependency) |
El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
503 (Service Unavailable) |
El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Carga de la respuesta de eliminación
El cuerpo de la respuesta está vacío. El código de estado es la única información útil que se devuelve.
Servicio worklist (UPS-RS)
El servicio DICOM admite los SOP de inserción y extracción del servicio Worklist (UPS-RS).. Este servicio proporciona acceso a una lista de trabajo que contiene Workitems, cada una de las cuales representa un paso de procedimiento unificado (UPS).
A lo largo de todo, la variable {workitem}
de una plantilla de URI representa un UID workitem.
Los puntos de conexión UPS-RS disponibles incluyen:
Verbo | Ruta de acceso | Descripción |
---|---|---|
POST | {s}/workitems{? AffectedSOPInstanceUID} | Crear un elemento de trabajo |
PUBLICAR | {s}/workitems/{instance}{?transaction} | Actualizar un elemento de trabajo |
GET | {s}/workitems{?query*} | Búsqueda de elementos de trabajo |
GET | {s}/workitems/{instance} | Recuperar un elemento de trabajo |
PUT | {s}/workitems/{instance}/state | Cambio del estado del elemento de trabajo |
PUBLICAR | {s}/workitems/{instance}/cancelrequest | Cancelar elemento de trabajo |
PUBLICAR | {s}/workitems/{instance}/subscribers/{AETitle}{?deletionlock} | Creación de una suscripción |
PUBLICAR | {s}/workitems/1.2.840.10008.5.1.4.34.5/ | Suspender suscripción |
Delete | {s}/workitems/{instance}/subscribers/{AETitle} | Eliminación de suscripción |
GET | {s}/subscribers/{AETitle} | Abrir canal de suscripción |
Creación de workitem
Esta transacción usa el método POST para crear un nuevo workitem.
Método | Ruta de acceso | Descripción |
---|---|---|
POST | .. /workitems | Cree un objeto Workitem. |
PUBLICAR | .. /workitems? {workitem} | Crea un objeto Workitem con el UID especificado. |
Si no se especifica en el URI, el conjunto de datos de carga debe contener el objeto Workitem en el SOPInstanceUID
atributo .
Los Accept
encabezados y Content-Type
son necesarios en la solicitud y deben tener el valor application/dicom+json
.
Hay varios requisitos relacionados con los atributos de datos DICOM en el contexto de una transacción específica. Es posible que sea necesario que los atributos estén presentes, que no estén presentes, que estén vacíos o que no estén vacíos. Estos requisitos se pueden encontrar en esta tabla.
Nota:
Aunque la tabla de referencia indica que UID de instancia de SOP no debe estar presente, esta guía es específica del protocolo DIMSE y se controla de forma diferente en DICOMWeb. El UID de instancia de SOP debe estar presente en el conjunto de datos si no está en el URI.
Nota:
Todos los códigos de requisitos condicionales, incluidos 1C y 2C, se tratan como opcionales.
Creación de códigos de estado de respuesta
Código | Descripción |
---|---|
201 (Created) |
Workitem de destino se creó correctamente. |
400 (Bad Request) |
Hubo un problema con la solicitud. Por ejemplo, la carga de la solicitud no cumplió los requisitos. |
401 (Unauthorized) |
El cliente no está autenticado. |
403 (Forbidden) |
El usuario no está autorizado. |
409 (Conflict) |
El objeto Workitem ya existe. |
415 (Unsupported Media Type) |
No se admite el proporcionado Content-Type . |
424 (Failed Dependency) |
El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
503 (Service Unavailable) |
El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Creación de una carga de respuesta
Una respuesta correcta no tiene carga. Los Location
encabezados de respuesta y Content-Location
contienen una referencia de URI al workitem creado.
Una carga de respuesta de error contiene un mensaje que describe el error.
Cancelación de solicitudes
Esta transacción permite al usuario solicitar la cancelación de un workitem no propiedad.
Hay cuatro estados workitem válidos:
SCHEDULED
IN PROGRESS
CANCELED
COMPLETED
Esta transacción solo se realiza correctamente en Workitems en el SCHEDULED
estado . Cualquier usuario puede reclamar la propiedad de un objeto Workitem estableciendo su UID de transacción y cambiando su estado a IN PROGRESS
. A partir de entonces, un usuario solo puede modificar el objeto Workitem proporcionando el UID de transacción correcto. Aunque UPS define las clases Watch y Event SOP que permiten reenviar solicitudes de cancelación y otros eventos, este servicio DICOM no implementa estas clases y, por tanto, las solicitudes de cancelación en los elementos de trabajo que devuelven IN PROGRESS
un error. Un workitem propiedad se puede cancelar a través de la transacción Change Workitem State .
Método | Ruta de acceso | Descripción |
---|---|---|
POST | .. /workitems/{workitem}/cancelrequest | Solicitar la cancelación de un workitem programado |
El Content-Type
encabezado es obligatorio y debe tener el valor application/dicom+json
.
La carga de la solicitud puede incluir información de acción tal como se define en el estándar DICOM.
Códigos de estado de respuesta de cancelación de solicitud
Código | Descripción |
---|---|
202 (Accepted) |
El servidor aceptó la solicitud, pero el estado workitem de destino aún no ha cambiado. |
400 (Bad Request) |
Hubo un problema con la sintaxis de la solicitud. |
401 (Unauthorized) |
El cliente no está autenticado. |
403 (Forbidden) |
El usuario no está autorizado. |
404 (Not Found) |
No se encontró el objeto Workitem de destino. |
409 (Conflict) |
La solicitud es incoherente con el estado actual del objeto Workitem de destino. Por ejemplo, el objeto Workitem de destino está en el SCHEDULED estado o COMPLETED . |
415 (Unsupported Media Type) |
No se admite el proporcionado Content-Type . |
424 (Failed Dependency) |
El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
503 (Service Unavailable) |
El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Carga de respuesta de cancelación de solicitudes
Una respuesta correcta no tiene carga y una carga de respuesta de error contiene un mensaje que describe el error.
Si la instancia de Workitem ya está en estado cancelado, la respuesta incluye el siguiente encabezado de advertencia HTTP: 299: The UPS is already in the requested state of CANCELED.
Recuperar workitem
Esta transacción recupera un objeto Workitem. Corresponde a la operación UPS DIMSE N-GET.
Consulte: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.5
Si el objeto Workitem existe en el servidor de origen, el objeto Workitem se devuelve en un tipo de medio aceptable. El workitem devuelto no contendrá el atributo Transaction UID (0008,1195). Esto es necesario para conservar el rol del atributo como bloqueo de acceso.
Método | Ruta de acceso | Descripción |
---|---|---|
GET | .. /workitems/{workitem} | Solicitud para recuperar un objeto Workitem |
El Accept
encabezado es obligatorio y debe tener el valor application/dicom+json
.
Recuperar códigos de estado de respuesta de Workitem
Código | Descripción |
---|---|
200(OK) | La instancia de Workitem se recuperó correctamente. |
400 (Solicitud incorrecta) | Hubo un problema con la solicitud. |
401 (No autorizado) | El cliente no está autenticado. |
403 (Prohibido) | El usuario no está autorizado. |
404 (No encontrado) | No se encontró el objeto Workitem de destino. |
424 (Dependencia con error) | El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
503 (Servicio no disponible) | El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Recuperación de la carga de respuesta de Workitem
- Una respuesta correcta tiene una carga de una sola parte que contiene el objeto Workitem solicitado en el tipo de medio seleccionado.
- El workitem devuelto no contendrá el atributo Transaction UID (0008, 1195) del workitem, ya que solo se debe conocer al propietario.
Actualizar workitem
Esta transacción modifica los atributos de un workitem existente. Corresponde a la operación N-SET de UPS DIMSE.
Consulte: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.6
Para actualizar un workitem actualmente en el SCHEDULED
estado, el Transaction UID
atributo no estará presente. Para un workitem en el IN PROGRESS
estado , la solicitud debe incluir el UID de transacción actual como parámetro de consulta. Si workitem ya está en los COMPLETED
estados o CANCELED
, la respuesta es 400 (Bad Request)
.
Método | Ruta de acceso | Descripción |
---|---|---|
POST | .. /workitems/{workitem}? {transaction-uid} | Actualizar transacción workitem |
El Content-Type
encabezado es obligatorio y debe tener el valor application/dicom+json
.
La carga de solicitud contiene un conjunto de datos con los cambios que se aplicarán al workitem de destino. Cuando se modifica una secuencia, la solicitud debe incluir todos los elementos de la secuencia, no solo los elementos que se van a modificar. Cuando necesite actualizar varios atributos como grupo, actualícelos como varios atributos en una sola solicitud, no como varias solicitudes.
Hay muchos requisitos relacionados con los atributos de datos DICOM en el contexto de una transacción específica. Es posible que sea necesario que los atributos estén presentes, que no estén presentes, que estén vacíos o que no estén vacíos. Estos requisitos se pueden encontrar en esta tabla.
Nota:
Todos los códigos de requisitos condicionales, incluidos 1C y 2C, se tratan como opcionales.
Nota:
La solicitud no puede establecer el valor del atributo Estado del paso de procedimiento (0074 1000). El estado del paso de procedimiento se administra mediante la transacción Cambiar estado o la transacción De cancelación de solicitudes.
Actualizar códigos de estado de respuesta de transacción workitem
Código | Descripción |
---|---|
200 (OK) |
Target Workitem se actualizó. |
400 (Bad Request) |
Hubo un problema con la solicitud. Por ejemplo: (1) el objeto Workitem de destino estaba en el COMPLETED estado o CANCELED . (2) Falta el UID de transacción. (3) El UID de transacción es incorrecto. (4) El conjunto de datos no se ajustaba a los requisitos. |
401 (Unauthorized) |
El cliente no está autenticado. |
403 (Forbidden) |
El usuario no está autorizado. |
404 (Not Found) |
No se encontró el objeto Workitem de destino. |
409 (Conflict) |
La solicitud es incoherente con el estado actual del objeto Workitem de destino. |
415 (Unsupported Media Type) |
No se admite el proporcionado Content-Type . |
424 (Failed Dependency) |
El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
503 (Service Unavailable) |
El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Actualización de la carga de respuesta de la transacción workitem
El servidor de origen admite campos de encabezado según sea necesario en la tabla 11.6.3-2.
Una respuesta correcta no tiene ninguna carga o una carga que contenga un documento de informe de estado.
Una carga de respuesta de error puede contener un informe de estado que describa los errores, advertencias u otra información útil.
Cambio del estado workitem
Esta transacción se usa para cambiar el estado de un objeto Workitem. Corresponde a la operación N-ACTION de UPS DIMSE "Cambiar el estado de UPS". Los cambios de estado se usan para reclamar la propiedad, completar o cancelar un workitem.
Consulte: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.7
Si el objeto Workitem existe en el servidor de origen, el objeto Workitem se devuelve en un tipo de medio aceptable. El workitem devuelto no contendrá el atributo Transaction UID (0008,1195). Esto es necesario para conservar el rol del atributo como un bloqueo de acceso como se describe aquí.
Método | Ruta de acceso | Descripción |
---|---|---|
PUT | .. /workitems/{workitem}/state | Cambiar el estado del objeto Workitem |
El Accept
encabezado es obligatorio y debe tener el valor application/dicom+json
.
La carga de solicitud contiene los elementos de datos de estado de UPS modificados. Estos elementos de datos son los siguientes.
- UID de transacción (0008, 1195). La carga de solicitud incluye un UID de transacción. El agente de usuario crea el UID de transacción al solicitar una transición al
IN PROGRESS
estado de un workitem determinado. El agente de usuario proporciona que transaction UID en transacciones posteriores con ese workitem. - Estado del paso de procedimiento (0074, 1000). Los valores legales corresponden a la transición de estado solicitada. Estos son:
IN PROGRESS
,COMPLETED
oCANCELED
.
Cambiar códigos de estado de respuesta de workitem
Código | Descripción |
---|---|
200 (OK) |
La instancia de Workitem se recuperó correctamente. |
400 (Bad Request) |
La solicitud no se puede realizar por uno de los siguientes motivos: (1) la solicitud no es válida dado el estado actual del objeto Workitem de destino. (2) Falta el UID de transacción. (3) El UID de transacción es incorrecto |
401 (Unauthorized) |
El cliente no está autenticado. |
403 (Forbidden) |
El usuario no está autorizado. |
404 (Not Found) |
No se encontró el objeto Workitem de destino. |
409 (Conflict) |
La solicitud es incoherente con el estado actual del objeto Workitem de destino. |
424 (Failed Dependency) |
El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
503 (Service Unavailable) |
El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Cambio de la carga de respuesta de estado workitem
- Las respuestas incluyen los campos de encabezado especificados en la sección 11.7.3.2.
- Una respuesta correcta no tiene carga.
- Una carga de respuesta de error puede contener un informe de estado que describa los errores, advertencias u otra información útil.
Search Workitems
Esta transacción le permite buscar Workitems por atributos.
Método | Ruta de acceso | Descripción |
---|---|---|
GET | .. /workitems? | Buscar Workitems |
Se admite el siguiente Accept
encabezado para la búsqueda.
application/dicom+json
Parámetros de búsqueda admitidos
Se admiten los parámetros siguientes para cada consulta:
Clave | Valores de compatibilidad | Número permitido | Descripción |
---|---|---|---|
{attributeID}= |
{value} |
0…N | Busque la coincidencia de atributos y valores en la consulta. |
includefield= |
{attributeID} all |
0…N | Los demás atributos que se van a devolver en la respuesta. Solo se pueden incluir atributos de nivel superior, no atributos que forman parte de secuencias. Se admiten etiquetas públicas y privadas. Cuando se proporciona all . Consulte Respuesta de búsqueda para obtener más información sobre qué atributos se devuelven para cada tipo de consulta. Si se proporciona una mezcla de {attributeID} y all , el servidor usa "all". |
limit= |
{value} |
0...1 | Valor entero para limitar el número de valores que se devuelven en la respuesta. El valor puede estar entre el intervalo 1 >= x <= 200 . El valor predeterminado es 100 . |
offset= |
{value} |
0...1 | Omita los resultados de {value}. Si se proporciona un desplazamiento mayor que el número de resultados de la consulta de búsqueda, se devuelve una 204 (no content) respuesta. |
fuzzymatching= |
true \ false |
0...1 | Si la coincidencia aproximada verdadera se aplica a cualquier atributo con la representación de valor de nombre de persona (PN) (VR). Hace una coincidencia de palabra de prefijo de cualquier parte de nombre dentro de estos atributos. Por ejemplo, si PatientName es John^Doe , , joh do , jo do y Doe John Doe todas coinciden. Sin embargo ohn , no coincide. |
Atributos que se pueden buscar
Se admite la búsqueda en los atributos siguientes.
Palabra clave de atributo |
---|
PatientName |
PatientID |
ReferencedRequestSequence.AccessionNumber |
ReferencedRequestSequence.RequestedProcedureID |
ScheduledProcedureStepStartDateTime |
ScheduledStationNameCodeSequence.CodeValue |
ScheduledStationClassCodeSequence.CodeValue |
ScheduledStationGeographicLocationCodeSequence.CodeValue |
ProcedureStepState |
StudyInstanceUID |
Nota:
No se admite la búsqueda mediante cadenas vacías para ningún atributo.
Búsqueda de coincidencias
Se admiten estos tipos de coincidencia.
Tipo de búsqueda | Atributo admitido | Ejemplo |
---|---|---|
Consulta por rango | ScheduledProcedureStepStartDateTime |
{attributeID}={value1}-{value2} . Para los valores de fecha y hora, se admite un intervalo inclusivo en la etiqueta. Este intervalo se asigna a attributeID >= {value1} AND attributeID <= {value2} . Si {value1} no se especifica, todas las apariciones de fechas y horas anteriores a e incluso {value2} se coinciden. Del mismo modo, si {value2} no se especifica, se coinciden todas las apariciones de {value1} y las fechas y horas posteriores. Sin embargo, uno de estos valores debe estar presente. {attributeID}={value1}- y {attributeID}=-{value2} son válidos, sin embargo, {attributeID}=- no son válidos. |
Coincidencia exacta | Todos los atributos admitidos | {attributeID}={value1} |
Coincidencia aproximada | PatientName |
Coincide con cualquier componente del nombre que comience por el valor . |
Coincidencia de caracteres comodín | PatientID , ReferencedRequestSequence.AccessionNumber , ReferencedRequestSequence.RequestedProcedureID , ProcedureStepState , ScheduledStationNameCodeSequence.CodeValue , ScheduledStationClassCodeSequence.CodeValue , ScheduledStationGeographicLocationCodeSequence.CodeValue |
Se admiten los siguientes caracteres comodín: * - Coincide con cero o más caracteres. Por ejemplo: {attributeID}={val*} coincide con "val", "valid", "value" pero no "evaluate". ? - Coincide con un solo carácter. Por ejemplo: {attributeID}={valu?} coincide con "value", "valu1", pero no "valued" o "valu". |
Nota:
Aunque no se admite la coincidencia completa de secuencias, se admite la coincidencia exacta en los atributos enumerados que se encuentran en una secuencia.
Identificador de atributo
Las etiquetas se pueden codificar de muchas maneras para el parámetro de consulta. Implementamos parcialmente el estándar tal como se define en PS3.18 6.7.1.1.1. Se admiten las siguientes codificaciones para una etiqueta.
Valor | Ejemplo |
---|---|
{group}{element} |
00100010 |
{dicomKeyword} |
PatientName |
Consulta de ejemplo:
../workitems?PatientID=K123&0040A370.00080050=1423JS&includefield=00404005&limit=5&offset=0
Respuesta de búsqueda
La respuesta es una matriz de conjuntos de 0...N
datos DICOM con los atributos siguientes devueltos.
- Todos los atributos de DICOM PowerShell 3.4 Table CC.2.5-3 con un tipo de clave de retorno de 1 o 2
- Todos los atributos de DICOM PowerShell 3.4 Tabla CC.2.5-3 con un tipo de clave de retorno de 1C para el que se cumplen los requisitos condicionales
- Todos los demás atributos workitem pasados como parámetros de coincidencia
- Todos los demás atributos workitem pasados como
includefield
valores de parámetro
Códigos de respuesta de búsqueda
La API de consulta devuelve uno de los códigos de estado siguientes en la respuesta:
Código | Descripción |
---|---|
200 (OK) |
La carga de respuesta contiene todo el recurso coincidente. |
206 (Partial Content) |
La carga de respuesta contiene solo algunos de los resultados de búsqueda y el resto se puede solicitar a través de la solicitud adecuada. |
204 (No Content) |
La búsqueda se completó correctamente, pero no devolvió ningún resultado. |
400 (Bad Request) |
Hubo un problema con la solicitud. Por ejemplo, sintaxis de parámetro de consulta no válida. El cuerpo de la respuesta contiene detalles del error. |
401 (Unauthorized) |
El cliente no está autenticado. |
403 (Forbidden) |
El usuario no está autorizado. |
424 (Failed Dependency) |
El servicio DICOM no puede acceder a un recurso que depende de para completar esta solicitud. Un ejemplo es un error al acceder al almacén de Data Lake conectado o al almacén de claves para admitir el cifrado de claves administradas por el cliente. |
503 (Service Unavailable) |
El servicio no está disponible o está ocupado. Vuelva a intentarlo más tarde. |
Notas adicionales
La API de consulta no devuelve 413 (request entity too large)
. Si el límite de respuesta de consulta solicitado está fuera del intervalo aceptable, se devuelve una solicitud incorrecta. Todo lo solicitado dentro del intervalo aceptable se resuelve.
- Los resultados paginados están optimizados para devolver primero la instancia más reciente coincidente, lo que podría dar lugar a registros duplicados en páginas posteriores si se han agregado datos más recientes que coincidan con la consulta.
- La coincidencia no distingue mayúsculas de minúsculas y no distingue acentos para los tipos de VR de PN.
- La coincidencia no distingue mayúsculas de minúsculas y distingue acentos para otros tipos de vr de cadena.
- Si hay un escenario en el que cancelar un workitem y consultar lo mismo ocurre al mismo tiempo, la consulta probablemente excluye el objeto Workitem que se actualiza y el código de respuesta es
206 (Partial Content)
.
Nota:
DICOM® es la marca registrada de la Asociación Nacional de Fabricantes Eléctricos para sus publicaciones de normas relacionadas con las comunicaciones digitales de información médica.