Partilhar via


Etiquetas de consulta expandidas

Descrição Geral

Por predefinição, o serviço DICOM suporta a consulta nas etiquetas DICOM especificadas na instrução de conformidade. Ao ativar etiquetas de consulta expandidas, a lista de etiquetas pode ser facilmente expandida com base nas necessidades da aplicação.

Com as APIs listadas abaixo, os utilizadores podem indexar os respetivos estudos, séries e instâncias DICOM em etiquetas DICOM padrão e privadas, de modo a poderem ser especificadas em consultas QIDO-RS.

APIs

Versão: v1

Para ajudar a gerir as etiquetas suportadas numa determinada instância do serviço DICOM, foram adicionados os seguintes pontos finais da API.

API Descrição
POST .../extendedquerytags Adicionar Etiquetas de Consulta Expandida
GET .../extendedquerytags Listar Etiquetas de Consulta Expandida
GET .../extendedquerytags/{tagPath} Obter Etiqueta de Consulta Expandida
DELETE .../extendedquerytags/{tagPath} Eliminar Etiqueta de Consulta Expandida
PATCH .../extendedquerytags/{tagPath} Atualizar Etiqueta de Consulta Expandida
GET .../extendedquerytags/{tagPath}/errors Listar Erros de Etiquetas de Consulta Expandida
GET .../operations/{operationId} Obter Operação

Adicionar etiquetas de consulta expandidas

Adiciona uma ou mais etiquetas de consulta expandidas e inicia uma operação de execução prolongada que reindexa as instâncias DICOM atuais com as etiquetas especificadas.

POST .../extendedquerytags

Cabeçalho do pedido

Name Necessário Tipo Description
Content-Type Verdadeiro string application/json é suportado

Corpo do pedido

Name Necessário Tipo Description
body Etiqueta de Consulta Expandida para Adicionar[]

Limitações

São suportados os seguintes tipos de VR:

VR Description Correspondência de Valor Único Correspondência de Intervalos Correspondência Difusa
AE Entidade da Aplicação X
AS Cadeia etária X
CS Cadeia de Código X
DA Date X X
DS Cadeia Decimal X
DT Data Hora X X
FD Vírgula Flutuante Dupla X
FL Vírgula Flutuante Única X
IS Cadeia de Número Inteiro X
LO Cadeia Longa X
PN Nome da Pessoa X X
SH Cadeia Curta X
SL Com sessão longa X
SS Com Assinatura Curta X
TM Hora X X
IU Identificador Exclusivo X
UL Comprimento Não Assinado X
EUA Abreviado Não Assinado X

Nota

As etiquetas sequenciais, que são etiquetas sob uma etiqueta do tipo Sequência de Itens (SQ), não são atualmente suportadas. Pode adicionar até 128 etiquetas de consulta alargadas.

Respostas

Nome Tipo Description
202 (Aceite) Referência da Operação Foram adicionadas etiquetas de consulta alargadas e foi iniciada uma operação de execução prolongada para reindexar instâncias DICOM existentes
400 (Pedido Incorreto) O corpo do pedido tem dados inválidos
409 (Conflito) Já são suportadas uma ou mais etiquetas de consulta pedidas

Listar etiquetas de consulta expandidas

Listas de todas as etiquetas de consulta expandidas.

GET .../extendedquerytags

Respostas

Nome Tipo Description
200 (OK) Etiqueta de Consulta Expandida[] Devolve etiquetas de consulta expandidas

Obter etiqueta de consulta expandida

Obtenha uma etiqueta de consulta expandida.

GET .../extendedquerytags/{tagPath}

Parâmetros URI

Name Em Necessário Tipo Description
tagPath caminho Verdadeiro string tagPath é o caminho para a etiqueta, que pode ser etiqueta ou palavra-chave. Por exemplo, o ID do Paciente é representado por 00100020 ou PatientId

Respostas

Nome Tipo Description
200 (OK) Etiqueta de Consulta Expandida A etiqueta de consulta expandida com a especificada tagPath
400 (Pedido Incorreto) O caminho da etiqueta pedido é inválido
404 (Não Encontrado) Não foi encontrada uma etiqueta de consulta expandida com o tagPath pedido

Eliminar etiqueta de consulta expandida

Elimine uma etiqueta de consulta expandida.

DELETE .../extendedquerytags/{tagPath}

Parâmetros URI

Name Em Necessário Tipo Description
tagPath caminho Verdadeiro string tagPath é o caminho para a etiqueta, que pode ser etiqueta ou palavra-chave. Por exemplo, o ID do Paciente é representado por 00100020 ou PatientId

Respostas

Nome Tipo Description
204 (Sem Conteúdo) A etiqueta de consulta expandida com o tagPath pedido foi eliminada com êxito.
400 (Pedido Incorreto) O caminho da etiqueta pedido é inválido.
404 (Não Encontrado) Não foi encontrada uma etiqueta de consulta expandida com o tagPath pedido

Atualizar etiqueta de consulta expandida

Atualize uma etiqueta de consulta expandida.

PATCH .../extendedquerytags/{tagPath}

Parâmetros URI

Name Em Necessário Tipo Description
tagPath caminho Verdadeiro string tagPath é o caminho para a etiqueta, que pode ser etiqueta ou palavra-chave. Por exemplo, o ID do Paciente é representado por 00100020 ou PatientId

Cabeçalho do pedido

Name Necessário Tipo Description
Content-Type Verdadeiro string application/json é suportado.

Corpo do pedido

Name Necessário Tipo Description
body Etiqueta de Consulta Expandida para Atualização

Respostas

Nome Tipo Description
20 (OK) Etiqueta de Consulta Expandida A etiqueta de consulta expandida atualizada
400 (Pedido Incorreto) O caminho ou corpo da etiqueta pedido é inválido
404 (Não Encontrado) A etiqueta de consulta expandida com o tagPath pedido não foi encontrada

Listar erros de etiquetas de consulta expandida

Apresenta uma lista de erros numa etiqueta de consulta expandida.

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

Parâmetros do URI

Name Em Necessário Tipo Description
tagPath caminho Verdadeiro string tagPath é o caminho para a etiqueta, que pode ser etiqueta ou palavra-chave. Por exemplo, o ID do Paciente é representado por 00100020 ou PatientId

Respostas

Nome Tipo Description
200 (OK) Erro de Etiqueta de Consulta Expandida[] Lista de erros de etiquetas de consulta expandidos associados à etiqueta
400 (Pedido Incorreto) O caminho da etiqueta pedido é inválido
404 (Não Encontrado) A etiqueta de consulta expandida com o tagPath pedido não foi encontrada

Obter operação

Obtenha uma operação de execução prolongada.

GET .../operations/{operationId}

Parâmetros do URI

Name Em Necessário Tipo Description
operationId caminho Verdadeiro string O ID da operação

Respostas

Nome Tipo Description
200 (OK) Operação A operação concluída para o ID especificado
202 (Aceite) Operação A operação de execução do ID especificado
404 (Não Encontrado) A operação não foi encontrada

QIDO com etiquetas de consulta expandidas

Estado da etiqueta

O Estado da etiqueta de consulta expandida indica o estado atual. Quando uma etiqueta de consulta expandida é adicionada pela primeira vez, o respetivo estado é definido como Addinge é iniciada uma operação de execução prolongada para reindexar instâncias DICOM existentes. Após a conclusão da operação, o estado da etiqueta é atualizado para Ready. A etiqueta de consulta expandida pode agora ser utilizada no QIDO.

Por exemplo, se a etiqueta Nome do Modelo do Fabricante (0008,1090) for adicionada e, posteriormente Ready , as seguintes consultas puderem ser utilizadas para filtrar instâncias armazenadas pelo Nome do Modelo do Fabricante.

../instances?ManufacturerModelName=Microsoft

Também podem ser utilizadas com etiquetas existentes. Por exemplo:

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

Estado da consulta de etiquetas

QueryStatus indica se qIDO é permitido para a etiqueta. Quando uma operação de reindexação não processa uma ou mais instâncias DICOM para uma etiqueta, o QueryStatus dessa etiqueta é definido como Disabled automaticamente. Pode optar por ignorar os erros de indexação e permitir que as consultas utilizem esta etiqueta ao definir como através da QueryStatusEnabled API Atualizar Etiqueta de Consulta Expandida . Quaisquer pedidos QIDO que referenciem pelo menos uma etiqueta ativada manualmente incluirão o conjunto de etiquetas com erros de indexação no cabeçalho erroneous-dicom-attributesde resposta .

Por exemplo, suponha que a etiqueta PatientAge de consulta expandida teve erros durante a reindexação, mas que foi ativada manualmente. Para a consulta seguinte, poderá ver PatientAge no erroneous-dicom-attributes cabeçalho.

../instances?PatientAge=035Y

Definições

Etiqueta de consulta expandida

Uma etiqueta DICOM que será suportada para QIDO-RS.

Nome Tipo Descrição
Caminho string Caminho da etiqueta, normalmente composto por ID de grupo e ID de elemento. Por exemplo, PatientId (0010 0020) tem caminho 00100020
VR string Representação de valor desta etiqueta
PrivateCreator string Código de identificação do implementador desta etiqueta privada
Level Nível de Etiqueta de Consulta Expandida Nível de etiqueta de consulta expandida
Estado Estado da Etiqueta de Consulta Expandida Estado da etiqueta de consulta expandida
QueryStatus Estado da Consulta de Etiqueta de Consulta Expandida Estado da consulta da etiqueta de consulta expandida
Erros Referência de Erros de Etiquetas de Consulta Expandida Referência a erros de etiquetas de consulta expandidas
Operação Referência da Operação Referência a uma operação de execução prolongada

O exemplo de código 1 é uma etiqueta padrão (0008 0070) no Ready estado.

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

O exemplo de código 2 é uma etiqueta padrão (0010,1010) no Adding estado. Uma operação com o ID 1a5d0306d9624f699929ee1a59ed57a0 está em execução e ocorreram 21 erros até ao momento.

{
    "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"
}

Referência da operação

Referência a uma operação de execução prolongada.

Nome Tipo Description
ID string ID da operação
Href string URI para a operação

Operação

Representa uma operação de execução prolongada.

Nome Tipo Description
OperationId string O ID da operação
Tipo de Operação Tipo de Operação Tipo da operação de execução prolongada
CreatedTime string Hora em que a operação foi criada
LastUpdatedTime string Hora em que a operação foi atualizada da última vez
Estado Estado da Operação Representa o estado do tempo de execução da operação
PercentComplete Número inteiro Percentagem de trabalho concluído pela operação
Recursos string[] Recolha de localizações de recursos que a operação está a criar ou manipular

O exemplo de código seguinte é uma operação de reindexação em execução.

{
    "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 da operação

Representa um estado de tempo de execução da operação de execução prolongada.

Nome Tipo Description
NotStarted string A operação não foi iniciada
Em Execução string A operação está em execução e ainda não foi concluída
Concluído string A operação foi concluída com êxito
Com falhas string A operação parou prematuramente depois de encontrar um ou mais erros

Erro de etiqueta de consulta expandida

Erro que ocorreu durante uma operação de indexação de etiquetas de consulta expandida.

Nome Tipo Description
StudyInstanceUid string UID da instância de estudo onde ocorreram erros de indexação
SeriesInstanceUid string UID da instância de série onde ocorreram erros de indexação
SopInstanceUid string UID da instância sop onde ocorreram erros de indexação
CreatedTime string Hora em que ocorreu o erro(UTC)
ErrorMessage string Mensagem de erro

O seguinte exemplo de código contém um erro de comprimento de valor inesperado numa instância DICOM. Ocorreu em 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."
}

Referência de erros de etiquetas de consulta expandida

Referência a erros de etiquetas de consulta expandidas.

Nome Tipo Description
de palavras Número inteiro Número total de erros na etiqueta de consulta expandida
Href string URI para erros de etiqueta de consulta alargada

Tipo de operação

O tipo de operação de execução prolongada.

Nome Tipo Description
Reindexar string Uma operação de reindexação que atualiza os índices dos dados adicionados anteriormente com base em novas etiquetas

Estado da etiqueta de consulta expandida

O estado da etiqueta de consulta expandida.

Nome Tipo Description
Adicionar string A etiqueta de consulta expandida foi adicionada e uma operação de execução prolongada está a reindexar instâncias DICOM existentes
Pronto string A etiqueta de consulta expandida está pronta para QIDO-RS
Eliminar string A etiqueta de consulta expandida está a ser eliminada

Nível de etiqueta de consulta expandida

O nível da hierarquia de informações DICOM em que esta etiqueta se aplica.

Nome Tipo Description
Instância string A etiqueta de consulta expandida é relevante ao nível da instância
Série string A etiqueta de consulta expandida é relevante ao nível da série
Estudo string A etiqueta de consulta expandida é relevante ao nível do estudo

Estado da consulta da etiqueta de consulta expandida

O estado da consulta da etiqueta de consulta expandida.

Nome Tipo Description
Desativado string A etiqueta de consulta expandida não está autorizada a ser consultada
Ativado string A etiqueta de consulta expandida tem permissão para ser consultada

Nota

Os erros durante a operação de reindexação desativam o QIDO na etiqueta de consulta expandida. Pode chamar a API atualizar etiqueta de consulta expandida para a ativar.

Etiqueta de consulta expandida para atualização

Representa uma etiqueta de consulta expandida para atualização.

Nome Tipo Description
QueryStatus Estado da Consulta da Etiqueta de Consulta Expandida O estado da consulta da etiqueta de consulta expandida

Etiqueta de consulta expandida para adicionar

Representa uma etiqueta de consulta expandida para adicionar.

Name Necessário Tipo Descrição
Caminho Verdadeiro string Caminho da etiqueta, normalmente composto pelo ID de grupo e ID do elemento que é o PatientId (0010.0020) tem caminho 00100020
VR string Representação de valor desta etiqueta. É opcional para etiqueta padrão e necessária para etiqueta privada
PrivateCreator string Código de identificação do implementador desta etiqueta privada. Definir apenas quando a etiqueta é uma etiqueta privada
Level Verdadeiro Nível de Etiqueta de Consulta Expandida Representa a hierarquia na qual esta etiqueta é relevante. Deve ser de Estudo, Série ou Instância

O exemplo de código 1MicrosoftPC é definir a etiqueta privada (0401.1001) com a representação de SS valor ao nível da instância.

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

O exemplo de código 2 utiliza a etiqueta padrão com a palavra-chave ManufacturerModelName com a LO representação de valor definida ao nível da série.

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

O exemplo de código 3 utiliza a etiqueta padrão (0010 0040) e é definido em estudos. A representação de valor já está definida pela norma DICOM.

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

Resumo

Este artigo conceptual forneceu-lhe uma descrição geral da funcionalidade Etiqueta de Consulta Expandida no serviço DICOM.

Passos seguintes

Para obter mais informações sobre como implementar o serviço DICOM, consulte