Etiquetas de consulta extendidas

Información general

De forma predeterminada, el servicio DICOM admite consultas en las etiquetas DICOM especificadas en la instrucción de conformidad. Al habilitar etiquetas de consulta extendidas, la lista de etiquetas se puede expandir fácilmente en función de las necesidades de la aplicación.

Con las API que se enumeran a continuación, los usuarios pueden indexar sus estudios, series e instancias de DICOM tanto en etiquetas DICOM estándar como privadas, de modo que se pueden especificar en consultas QIDO-RS.

API existentes

Versión: v1

Para ayudar a administrar las etiquetas admitidas en una instancia de servicio DICOM determinada, se han agregado los siguientes puntos de conexión de API.

API Descripción
POST .../extendedquerytags Agregar etiquetas de consulta extendidas
GET .../extendedquerytags Enumerar etiquetas de consulta extendidas
GET .../extendedquerytags/{tagPath} Obtener etiqueta de consulta extendida
DELETE .../extendedquerytags/{tagPath} Eliminar etiqueta de consulta extendida
PATCH .../extendedquerytags/{tagPath} Actualizar etiqueta de consulta extendida
GET .../extendedquerytags/{tagPath}/errors Enumerar errores de etiqueta de consulta extendida
GET .../operations/{operationId} Operación GET

Adición de etiquetas de consulta extendidas

Agrega una o varias etiquetas de consulta extendidas e inicia una operación de ejecución prolongada que vuelve a indexar las instancias de DICOM actuales con las etiquetas especificadas.

POST .../extendedquerytags

Encabezado de solicitud

Nombre Obligatorio Tipo Descripción
Content-Type True string application/json se admite

Cuerpo de la solicitud

Nombre Obligatorio Tipo Descripción
body Etiqueta de consulta extendida para agregar[]

Limitaciones

Se admiten los siguientes tipos de VR:

VR Descripción Coincidencia de valores únicos Coincidencia de intervalos Coincidencia aproximada
AE Entidad de aplicación x
AS Cadena de edad x
CS Cadena de código x
DA Date x x
DS Cadena decimal x
DT Date Time x x
FD Punto flotante doble x
FL Punto flotante único x
IS Cadena de entero x
LO Cadena larga x
PN Nombre de la persona x x
SH Cadena corta x
SL Long firmado x
SS Signed Short x
TM Time x x
UI Identificador único x
UL Long sin signo x
US Short sin signo X

Nota:

Actualmente no se admiten etiquetas secuenciales, que son etiquetas bajo una etiqueta de tipo Secuencia de elementos (SQ). Puede agregar hasta 128 etiquetas de consulta extendidas.

Respuestas

Nombre Tipo Descripción
202 (Accepted) Referencia de la operación Se han agregado etiquetas de consulta extendidas y se ha iniciado una operación de larga duración para volver a indexar las instancias de DICOM existentes.
400 (Solicitud incorrecta) El cuerpo de la solicitud tiene datos no válidos
409 (Conflicto) Ya se admiten una o varias etiquetas de consulta solicitadas.

Enumerar etiquetas de consulta extendidas

Listas de todas las etiquetas de consulta extendidas.

GET .../extendedquerytags

Respuestas

Nombre Tipo Descripción
200 (OK) Etiqueta de consulta extendida[] Devuelve etiquetas de consulta extendidas.

Obtención de la etiqueta de consulta extendida

Obtiene una etiqueta de consulta extendida.

GET .../extendedquerytags/{tagPath}

Parámetros del identificador URI

Nombre En Obligatorio Tipo Descripción
tagPath path True string tagPath es la ruta de acceso de la etiqueta, que puede ser etiqueta o palabra clave. Por ejemplo, el id. de paciente se representa mediante 00100020 o PatientId

Respuestas

Nombre Tipo Descripción
200 (OK) Etiqueta de consulta extendida Etiqueta de consulta extendida con el especificado tagPath
400 (Solicitud incorrecta) La ruta de acceso de etiqueta solicitada no es válida
404 (No encontrado) No se encuentra la etiqueta de consulta extendida con tagPath solicitada.

Eliminar etiqueta de consulta extendida

Elimine una etiqueta de consulta extendida.

DELETE .../extendedquerytags/{tagPath}

Parámetros del identificador URI

Nombre En Obligatorio Tipo Descripción
tagPath path True string tagPath es la ruta de acceso de la etiqueta, que puede ser etiqueta o palabra clave. Por ejemplo, el id. de paciente se representa mediante 00100020 o PatientId

Respuestas

Nombre Tipo Descripción
204 (No Content) La etiqueta de consulta extendida con tagPath solicitada se ha eliminado correctamente.
400 (Solicitud incorrecta) La ruta de acceso de etiqueta solicitada no es válida.
404 (No encontrado) No se encuentra la etiqueta de consulta extendida con tagPath solicitada.

Actualización de la etiqueta de consulta extendida

Actualice una etiqueta de consulta extendida.

PATCH .../extendedquerytags/{tagPath}

Parámetros del identificador URI

Nombre En Obligatorio Tipo Descripción
tagPath path True string tagPath es la ruta de acceso de la etiqueta, que puede ser etiqueta o palabra clave. Por ejemplo, el id. de paciente se representa mediante 00100020 o PatientId

Encabezado de solicitud

Nombre Obligatorio Tipo Descripción
Content-Type True string application/json es compatible.

Cuerpo de la solicitud

Nombre Obligatorio Tipo Descripción
body Etiqueta de consulta extendida para actualizar

Respuestas

Nombre Tipo Descripción
20 (correcto) Etiqueta de consulta extendida Etiqueta de consulta extendida actualizada
400 (Solicitud incorrecta) La ruta de acceso o el cuerpo de etiqueta solicitadas no son válidas
404 (No encontrado) No se encuentra la etiqueta de consulta extendida con tagPath solicitada.

Enumeración de errores de etiquetas de consulta extendidas

Enumera los errores en una etiqueta de consulta extendida.

GET .../extendedquerytags/{tagPath}/errors

Parámetros del identificador URI

Nombre En Obligatorio Tipo Descripción
tagPath path True string tagPath es la ruta de acceso de la etiqueta, que puede ser etiqueta o palabra clave. Por ejemplo, el id. de paciente se representa mediante 00100020 o PatientId

Respuestas

Nombre Tipo Descripción
200 (OK) Error de etiqueta de consulta extendida[] Lista de errores de etiquetas de consulta extendidas asociadas a la etiqueta
400 (Solicitud incorrecta) La ruta de acceso de etiqueta solicitada no es válida
404 (No encontrado) No se encuentra la etiqueta de consulta extendida con tagPath solicitada.

Obtención de la operación

Obtenga una operación de ejecución prolongada.

GET .../operations/{operationId}

Parámetros del identificador URI

Nombre En Obligatorio Tipo Descripción
operationId path True string El identificador de la operación

Respuestas

Nombre Tipo Descripción
200 (OK) operación Operación completada para el identificador especificado
202 (Accepted) operación Operación en ejecución para el identificador especificado
404 (No encontrado) No se encuentra la operación

QIDO con etiquetas de consulta extendidas

Estado de la etiqueta

El estado de la etiqueta de consulta extendida indica el estado actual. Cuando se agrega una etiqueta de consulta extendida por primera vez, su estado se establece Addingen y se inicia una operación de larga duración para volver a indexar las instancias de DICOM existentes. Una vez completada la operación, el estado de la etiqueta se actualiza a Ready. La etiqueta de consulta extendida ahora se puede usar en QIDO.

Por ejemplo, si se agrega la etiqueta Nombre del modelo de fabricante (0008 1090) y, en Ready ese momento, las siguientes consultas se pueden usar para filtrar las instancias almacenadas por el nombre del modelo de fabricante.

../instances?ManufacturerModelName=Microsoft

También se pueden usar con etiquetas existentes. Por ejemplo:

../instances?00081090=Microsoft&PatientName=Jo&fuzzyMatching=true

Etiquetar el estado de la consulta

QueryStatus indica si se permite QIDO para la etiqueta . Cuando una operación de reindexación no puede procesar una o varias instancias de DICOM para una etiqueta, esa etiqueta se establece Disabled en automáticamente. Puede optar por omitir los errores de indexación y permitir que las consultas usen esta etiqueta estableciendo en QueryStatusEnabled a través de Update Extended Query Tag API. Las solicitudes QIDO que hagan referencia al menos una etiqueta habilitada manualmente incluirán el conjunto de etiquetas con errores de indexación en el encabezado erroneous-dicom-attributesde respuesta .

Por ejemplo, supongamos que la etiqueta PatientAge de consulta extendida tenía errores durante la reindexación, pero se habilitó manualmente. Para la consulta siguiente, podría ver PatientAge en el erroneous-dicom-attributes encabezado .

../instances?PatientAge=035Y

Definiciones

Etiqueta de consulta extendida

Una etiqueta DICOM que se admitirá para QIDO-RS.

Nombre Tipo Descripción
Path string Ruta de acceso de etiqueta, normalmente compuesta de identificador de grupo e identificador de elemento. Por ejemplo, PatientId (0010 0020) tiene ruta de acceso 00100020
VR string Representación de valor de esta etiqueta
PrivateCreator string Código de identificación del implementador de esta etiqueta privada
Nivel Nivel de etiqueta de consulta extendida Nivel de etiqueta de consulta extendida
Estado Estado de etiqueta de consulta extendida Estado de la etiqueta de consulta extendida
QueryStatus Estado de consulta de etiqueta de consulta extendida Estado de consulta de la etiqueta de consulta extendida
Errors Referencia de errores de etiqueta de consulta extendida Referencia a errores de etiquetas de consulta extendidas
Operación Referencia de operación Referencia a una operación de larga duración

El ejemplo de código 1 es una etiqueta estándar (0008 0070) en Ready estado.

{
    "status": "Ready",
    "level": "Instance",
    "queryStatus": "Enabled",
    "path": "00080070",
    "vr": "LO"
}

El ejemplo de código 2 es una etiqueta estándar (0010 1010) en Adding estado. Hasta ahora se ha producido una operación con el identificador 1a5d0306d9624f699929ee1a59ed57a0 y se han producido 21 errores.

{
    "status": "Adding",
    "level": "Study",
    "errors": {
        "count": 21,
        "href": "https://localhost:63838/extendedquerytags/00101010/errors"
    },
    "operation": {
        "id": "1a5d0306d9624f699929ee1a59ed57a0",
        "href": "https://localhost:63838/operations/1a5d0306d9624f699929ee1a59ed57a0"
    },
    "queryStatus": "Disabled",
    "path": "00101010",
    "vr": "AS"
}

Referencia de operación

Referencia a una operación de larga duración.

Nombre Tipo Descripción
id string identificador de operación
Href string Uri de la operación

Operación

Representa una operación de larga duración.

Nombre Tipo Descripción
OperationId string El identificador de la operación
OperationType Tipo de operación Tipo de la operación de larga duración
CreatedTime string Hora en que se creó la operación
LastUpdatedTime string Hora en la que la operación se actualizó la última vez
Estado Estado de la operación Representa el estado de tiempo de ejecución de la operación.
PercentComplete Entero Porcentaje de trabajo completado por la operación
Recursos string[] Colección de ubicaciones de recursos que la operación está creando o manipulando

El ejemplo de código siguiente es una operación de reindexación en ejecución.

{
    "resources": [
        "https://localhost:63838/extendedquerytags/00101010"
    ],
    "operationId": "a99a8b51-78d4-4fd9-b004-b6c0bcaccf1d",
    "type": "Reindex",
    "createdTime": "2021-10-06T16:40:02.5247083Z",
    "lastUpdatedTime": "2021-10-06T16:40:04.5152934Z",
    "status": "Running",
    "percentComplete": 10
}

Estado de la operación

Representa un estado de tiempo de ejecución de la operación de larga duración.

Nombre Tipo Descripción
NotStarted string La operación no se inicia
En ejecución string La operación se está ejecutando y aún no ha finalizado.
Completado string La operación ha finalizado correctamente.
Con error string La operación se ha detenido prematuramente después de encontrar uno o varios errores.

Error de etiqueta de consulta extendida

Error que se produjo durante una operación de indexación de etiquetas de consulta extendida.

Nombre Tipo Descripción
StudyInstanceUid string UID de la instancia de estudio donde se produjeron errores de indexación
SeriesInstanceUid string UID de instancia de serie donde se produjeron errores de indexación
SopInstanceUid string UID de instancia de Sop donde se produjeron errores de indexación
CreatedTime string Hora en la que se produjo el error(UTC)
ErrorMessage string Mensaje de error

El ejemplo de código siguiente contiene un error de longitud de valor inesperado en una instancia de DICOM. Se produjo en 2021-10-06T16:41:44.4783136.

{
    "studyInstanceUid": "2.25.253658084841524753870559471415339023884",
    "seriesInstanceUid": "2.25.309809095970466602239093351963447277833",
    "sopInstanceUid": "2.25.225286918605419873651833906117051809629",
    "createdTime": "2021-10-06T16:41:44.4783136",
    "errorMessage": "Value length is not expected."
}

Referencia de errores de etiquetas de consulta extendidas

Referencia a errores de etiquetas de consulta extendidas.

Nombre Tipo Descripción
Count Entero Número total de errores en la etiqueta de consulta extendida
Href string URI para errores de etiquetas de consulta extendidas

Tipo de operación

Tipo de una operación de ejecución prolongada.

Nombre Tipo Descripción
Volver a indexar string Una operación de reindexación que actualiza los índices de los datos agregados anteriormente en función de las nuevas etiquetas.

Estado de etiqueta de consulta extendida

Estado de la etiqueta de consulta extendida.

Nombre Tipo Descripción
Agregando string Se ha agregado la etiqueta de consulta extendida y una operación de ejecución prolongada vuelve a indexar las instancias de DICOM existentes.
Ready string La etiqueta de consulta extendida está lista para QIDO-RS
Eliminando string Se está eliminando la etiqueta de consulta extendida.

Nivel de etiqueta de consulta extendida

Nivel de la jerarquía de información de DICOM en la que se aplica esta etiqueta.

Nombre Tipo Descripción
Instancia string La etiqueta de consulta extendida es relevante en el nivel de instancia.
Serie string La etiqueta de consulta extendida es relevante en el nivel de serie.
Estudio string La etiqueta de consulta extendida es relevante en el nivel de estudio.

Estado de la consulta de etiqueta de consulta extendida

Estado de la consulta de la etiqueta de consulta extendida.

Nombre Tipo Descripción
Disabled string No se permite consultar la etiqueta de consulta extendida.
habilitado string Se permite consultar la etiqueta de consulta extendida.

Nota

Los errores durante la operación de reindexación deshabilitan QIDO en la etiqueta de consulta extendida. Puede llamar a update Extended Query Tag API para habilitarla.

Etiqueta de consulta extendida para actualizar

Representa la etiqueta de consulta extendida para la actualización.

Nombre Tipo Descripción
QueryStatus Estado de consulta de etiqueta de consulta extendida El estado de la consulta de la etiqueta de consulta extendida

Etiqueta de consulta extendida para agregar

Representa la etiqueta de consulta extendida para agregar.

Nombre Obligatorio Tipo Descripción
Ruta de acceso True string Ruta de acceso de etiqueta, normalmente compuesta por el identificador de grupo y el PatientId identificador de elemento que es (0010 0020) tiene la ruta de acceso 00100020
VR string Representación de valor de esta etiqueta. Es opcional para la etiqueta estándar y es necesario para la etiqueta privada.
PrivateCreator string Código de identificación del implementador de esta etiqueta privada. Solo se establece cuando la etiqueta es una etiqueta privada
Nivel True Nivel de etiqueta de consulta extendida Representa la jerarquía en la que esta etiqueta es relevante. Debe ser uno de los estudios, series o instancias

El ejemplo de código 1 MicrosoftPC es definir la etiqueta privada (0401 1001) con la SS representación de valor en el nivel de instancia.

{
    "Path": "04011001",
    "VR": "SS",
    "PrivateCreator": "MicrosoftPC",
    "Level": "Instance"
}

En el ejemplo de código 2 se usa la etiqueta estándar con la palabra clave ManufacturerModelName con la LO representación de valor definida en el nivel de serie.

{
    "Path": "ManufacturerModelName",
    "VR": "LO",
    "Level": "Series"
}

En el ejemplo de código 3 se usa la etiqueta estándar (0010 0040) y se define en estudios. La representación del valor ya está definida por el estándar DICOM.

{
    "Path": "00100040",
    "Level": "Study"
}

Resumen

En este artículo conceptual se proporciona información general sobre la característica Etiqueta de consulta extendida dentro del servicio DICOM.

Pasos siguientes

Para obtener más información sobre cómo implementar el servicio DICOM, consulte