Compartir vía


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, SeriesInstanceUIDy 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, SeriesInstanceUIDy 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 tiene application/dicomcomo 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 tiene application/dicomcomo 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 tiene application/octet-streamcomo 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 jpegy 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 trueen . 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=alles , 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 y Series .
  • Si el recurso de destino es Study's Instances, Series también se devuelven los atributos de nivel.
  • NumberOfStudyRelatedInstances el atributo agregado se admite en Study el nivel includeField.
  • NumberOfSeriesRelatedInstances el atributo agregado se admite en Series el nivel includeField.

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 StudyInstanceUIDDICOM , SeriesInstanceUIDy 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, COMPLETEDo CANCELED.

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, , johdo, jo doy 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.