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 Adding
en 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 QueryStatus
Enabled
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-attributes
de 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