Marcas de consulta estendidas

Visão geral

Por padrão, o serviço DICOM dá suporte à consulta nas marcas DICOM especificadas na instrução de conformidade. Ao habilitar marcas de consulta estendidas, a lista de marcas pode ser facilmente expandida com base nas necessidades do aplicativo.

Usando as APIs listadas abaixo, os usuários podem indexar seus estudos, séries e instâncias DICOM em marcas DICOM padrão e privadas, de modo que possam ser especificadas em consultas QIDO-RS.

APIs

Versão: v1

Para ajudar a gerenciar as marcas com suporte em uma determinada instância de serviço DICOM, os seguintes pontos de extremidade de API foram adicionados.

API Descrição
POST .../extendedquerytags Adicionar marcas de consulta estendidas
GET .../extendedquerytags Listar marcas de consulta estendidas
GET .../extendedquerytags/{tagPath} Obter marca de consulta estendida
DELETE .../extendedquerytags/{tagPath} Excluir marca de consulta estendida
PATCH .../extendedquerytags/{tagPath} Atualizar marca de consulta estendida
GET .../extendedquerytags/{tagPath}/errors Listar erros de marca de consulta estendida
GET .../operations/{operationId} Obter Operação

Adicionar marcas de consulta estendidas

Adiciona uma ou mais marcas de consulta estendidas e inicia uma operação de execução longa que reindexa as instâncias atuais do DICOM com as marcas especificadas.

POST .../extendedquerytags

Cabeçalho da solicitação

Nome Obrigatório Type Descrição
Tipo de conteúdo True string application/json é compatível

Corpo da solicitação

Nome Obrigatório Type Descrição
body Marca de consulta estendida para adição[]

Limitações

Há suporte para os seguintes tipos de VR:

VR Descrição Correspondência de valor único Correspondência de intervalo Correspondência difusa
AE Entidade do aplicativo X
AS Cadeia de caracteres etária X
CS Cadeia de caracteres de código X
DA Data X X
DS Cadeia de caracteres decimal X
DT Data/Hora X X
FD Ponto Flutuante Duplo X
FL Ponto Flutuante Único X
IS Cadeia de caracteres de inteiro X
LO Cadeia de caracteres longa X
PN Nome da pessoa X X
SH Cadeia de caracteres curta X
SL Long assinado X
SS Curto assinado X
TM Hora X X
Interface do usuário Identificador exclusivo X
UL Long sem sinal X
EUA Unsigned Short X

Observação

Atualmente, não há suporte para marcas sequenciais, que são marcas sob uma marca do tipo Sequência de Itens (SQ). Você pode adicionar até 128 marcas de consulta estendidas.

Respostas

Nome Type Descrição
202 (Aceito) Referência de operação Marcas de consulta estendidas foram adicionadas e uma operação de execução prolongada foi iniciada para reindexar instâncias existentes do DICOM
400 (Solicitação incorreta) O corpo da solicitação tem dados inválidos
409 (Conflito) Já há suporte para uma ou mais marcas de consulta solicitadas

Listar marcas de consulta estendidas

Listas de todas as marcas de consulta estendidas.

GET .../extendedquerytags

Respostas

Nome Type Descrição
200 (OK) Marca de Consulta Estendida[] Retorna marcas de consulta estendidas

Obter marca de consulta estendida

Obter uma marca de consulta estendida.

GET .../extendedquerytags/{tagPath}

Parâmetros do URI

Nome Em Obrigatório Type Descrição
tagPath caminho True string tagPath é o caminho para a marca, que pode ser marca ou palavra-chave. Por exemplo, a ID do Paciente é representada por 00100020 ou PatientId

Respostas

Nome Type Descrição
200 (OK) Marca de Consulta Estendida A marca de consulta estendida com o especificado tagPath
400 (Solicitação incorreta) O caminho da marca solicitado é inválido
404 (Não Encontrado) A marca de consulta estendida com tagPath solicitada não foi encontrada

Excluir marca de consulta estendida

Exclua uma marca de consulta estendida.

DELETE .../extendedquerytags/{tagPath}

Parâmetros do URI

Nome Em Obrigatório Type Descrição
tagPath caminho True string tagPath é o caminho para a marca, que pode ser marca ou palavra-chave. Por exemplo, a ID do Paciente é representada por 00100020 ou PatientId

Respostas

Nome Type Descrição
204 (Sem Conteúdo) A marca de consulta estendida com tagPath solicitada foi excluída com êxito.
400 (Solicitação incorreta) O caminho da marca solicitado é inválido.
404 (Não Encontrado) A marca de consulta estendida com tagPath solicitada não foi encontrada

Atualizar marca de consulta estendida

Atualize uma marca de consulta estendida.

PATCH .../extendedquerytags/{tagPath}

Parâmetros do URI

Nome Em Obrigatório Type Descrição
tagPath caminho True string tagPath é o caminho para a marca, que pode ser marca ou palavra-chave. Por exemplo, a ID do Paciente é representada por 00100020 ou PatientId

Cabeçalho da solicitação

Nome Obrigatório Type Descrição
Tipo de conteúdo True string application/json é compatível.

Corpo da solicitação

Nome Obrigatório Type Descrição
body Marca de consulta estendida para atualização

Respostas

Nome Type Descrição
20 (OK) Marca de Consulta Estendida A marca de consulta estendida atualizada
400 (Solicitação incorreta) O caminho ou corpo da marca solicitado é inválido
404 (Não Encontrado) A marca de consulta estendida com tagPath solicitada não foi encontrada

Listar erros de marca de consulta estendida

Lista erros em uma marca de consulta estendida.

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

Parâmetros do URI

Nome Em Obrigatório Type Descrição
tagPath caminho True string tagPath é o caminho para a marca, que pode ser marca ou palavra-chave. Por exemplo, a ID do Paciente é representada por 00100020 ou PatientId

Respostas

Nome Type Descrição
200 (OK) Erro de marca de consulta estendida[] Lista de erros de marca de consulta estendida associados à marca
400 (Solicitação incorreta) O caminho da marca solicitado é inválido
404 (Não Encontrado) A marca de consulta estendida com tagPath solicitada não foi encontrada

Operação Get

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

GET .../operations/{operationId}

Parâmetros do URI

Nome Em Obrigatório Type Descrição
operationId caminho True string A ID da operação

Respostas

Nome Type Descrição
200 (OK) Operação A operação concluída para a ID especificada
202 (Aceito) Operação A operação em execução para a ID especificada
404 (Não Encontrado) A operação não foi encontrada

QIDO com marcas de consulta estendidas

Marca status

O Status da marca de consulta estendida indica o status atual. Quando uma marca de consulta estendida é adicionada pela primeira vez, sua status é definida Addingcomo e uma operação de execução longa é iniciada para reindexar instâncias de DICOM existentes. Depois que a operação for concluída, a marca status será atualizada para Ready. A marca de consulta estendida agora pode ser usada no QIDO.

Por exemplo, se a marca Nome do Modelo do Fabricante (0008.1090) for adicionada e, em Ready status, as consultas a seguir poderão ser usadas para filtrar instâncias armazenadas pelo Nome do Modelo do Fabricante.

../instances?ManufacturerModelName=Microsoft

Eles também podem ser usados com marcas existentes. Por exemplo:

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

Marcar status de consulta

QueryStatus indica se a QIDO é permitida para a marca. Quando uma operação de reindexação falha ao processar uma ou mais instâncias DICOM para uma marca, o QueryStatus dessa marca é definido Disabled como automaticamente. Você pode optar por ignorar erros de indexação e permitir que as consultas usem essa marca definindo como QueryStatusEnabled por meio da API Atualizar Marca de Consulta Estendida . Todas as solicitações QIDO que referenciam pelo menos uma marca habilitada manualmente incluirão o conjunto de marcas com erros de indexação no cabeçalho erroneous-dicom-attributesde resposta .

Por exemplo, suponha que a marca PatientAge de consulta estendida tenha tido erros durante a reindexação, mas ela foi habilitada manualmente. Para a consulta a seguir, você poderá ver PatientAge no erroneous-dicom-attributes cabeçalho .

../instances?PatientAge=035Y

Definições

Marca de consulta estendida

Uma marca DICOM que terá suporte para QIDO-RS.

Nome Type Descrição
Caminho string Caminho da marca, normalmente composto por ID do grupo e ID do elemento. Por exemplo, PatientId (0010.0020) tem caminho 00100020
VR string Representação de valor dessa marca
PrivateCreator string Código de identificação do implementador dessa marca privada
Nível Nível de marca de consulta estendida Nível de marca de consulta estendida
Status Status da Marca de Consulta Estendida Status da marca de consulta estendida
QueryStatus Status da consulta de marca de consulta estendida Consultar status de marca de consulta estendida
Errors Referência de erros de marca de consulta estendida Referência a erros de marca de consulta estendida
Operação Referência de operação Referência a uma operação de execução prolongada

O exemplo de código 1 é uma marca padrão (0008.0070) em Ready status.

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

O exemplo de código 2 é uma marca padrão (0010.1010) em Adding status. Uma operação com ID 1a5d0306d9624f699929ee1a59ed57a0 está em execução e 21 erros ocorreram até agora.

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

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

Nome Type Descrição
ID string ID da operação
Href string Uri para a operação

Operação

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

Nome Type Descrição
OperationId string A ID da operação
OperationType Tipo de operação Tipo da operação de execução longa
CreatedTime string Hora em que a operação foi criada
LastUpdatedTime string Hora em que a operação foi atualizada da última vez
Status Status da Operação Representa status de tempo de execução da operação
PercentComplete Inteiro Percentual de trabalho que foi concluído pela operação
Recursos string[] Coleção de locais de recursos que a operação está criando ou manipulando

O exemplo de código a seguir é 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
}

Status da operação

Representa um tempo de execução status de operação de execução prolongada.

Nome Type Descrição
NotStarted string A operação não foi iniciada
Executando 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 falha string A operação parou prematuramente após encontrar um ou mais erros

Erro de marca de consulta estendida

Um erro que ocorreu durante uma operação de indexação de marca de consulta estendida.

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

O exemplo de código a seguir contém um erro de comprimento de valor inesperado em uma instância do 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 marca de consulta estendida

Referência a erros de marca de consulta estendida.

Nome Type Descrição
Contagem Inteiro Número total de erros na marca de consulta estendida
Href string URI para erros de marca de consulta estendida

Tipo de operação

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

Nome Type Descrição
Reindexar string Uma operação reindexação que atualiza os índices para dados adicionados anteriormente com base em novas marcas

Marca de consulta estendida status

O status da marca de consulta estendida.

Nome Type Descrição
Adicionando string A marca de consulta estendida foi adicionada e uma operação de execução longa está reindexando instâncias existentes do DICOM
Ready string A marca de consulta estendida está pronta para QIDO-RS
Excluir string A marca de consulta estendida está sendo excluída

Nível de marca de consulta estendida

O nível da hierarquia de informações do DICOM em que essa marca se aplica.

Nome Type Descrição
Instância string A marca de consulta estendida é relevante no nível da instância
Série string A marca de consulta estendida é relevante no nível da série
Estudo string A marca de consulta estendida é relevante no nível de estudo

Consulta de marca de consulta estendida status

A consulta status da marca de consulta estendida.

Nome Type Descrição
Desabilitado string A marca de consulta estendida não tem permissão para ser consultada
habilitado string A marca de consulta estendida tem permissão para ser consultada

Observação

Erros durante a operação reindexação desabilita o QIDO na marca de consulta estendida. Você pode chamar a API Atualizar Marca de Consulta Estendida para habilitá-la.

Marca de consulta estendida para atualização

Representa a marca de consulta estendida para atualização.

Nome Type Descrição
QueryStatus Status da consulta de marca de consulta estendida A status de consulta estendida

Marca de consulta estendida para adição

Representa a marca de consulta estendida para adição.

Nome Obrigatório Type Descrição
Caminho True string Caminho da marca, normalmente composto pela ID do grupo e ID do elemento que é o PatientId (0010.0020) tem caminho 00100020
VR string Representação de valor dessa marca. Ele é opcional para a marca padrão e é necessário para a marca privada
PrivateCreator string Código de identificação do implementador dessa marca privada. Definido somente quando a marca é uma marca privada
Nível True Nível de marca de consulta estendida Representa a hierarquia na qual essa marca é relevante. Deve ser um dos estudos, séries ou instâncias

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

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

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

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

O exemplo de código 3 usa a marca padrão (0010.0040) e é definido em estudos. A representação de valor já está definida pelo padrão DICOM.

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

Resumo

Este artigo conceitual forneceu uma visão geral do recurso Marca de Consulta Estendida no serviço DICOM.

Próximas etapas

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