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