Partilhar via


Declaração de conformidade DICOM v2

Nota

A API versão 2 é a versão mais recente da API. Para obter uma lista de alterações na v2 em comparação com a v1, consulte Alterações na API do serviço DICOM v2

O Medical Imaging Server for DICOM® suporta um subconjunto do DICOMweb Standard. O apoio inclui:

Além disso, essas APIs não padrão são suportadas:

O serviço usa o controle de versão da API REST. A versão da API REST deve ser especificada explicitamente como parte da URL base, como no exemplo a seguir:

https://<service_url>/v<version>/studies

Esta versão da declaração de conformidade corresponde à v2 versão das APIs REST.

Para obter mais informações sobre como especificar a versão ao fazer solicitações, consulte a documentação de controle de versão da API.

Você pode encontrar exemplos de solicitações para transações suportadas na coleção Postman.

Preâmbulo Sanitização

O serviço ignora o preâmbulo de arquivo de 128 bytes e substitui seu conteúdo por caracteres nulos. Esse comportamento garante que nenhum arquivo passado pelo serviço esteja vulnerável à vulnerabilidade mal-intencionada do preâmbulo. No entanto, essa higienização do preâmbulo também significa que os preâmbulos usados para codificar conteúdo de formato duplo, como TIFF, não podem ser usados com o serviço.

Serviço de Estudos

O Serviço de Estudos permite que os usuários armazenem, recuperem e pesquisem Estudos, Séries e Instâncias DICOM. Adicionamos a transação Delete não padrão para habilitar um ciclo de vida completo do recurso.

Loja (STOW-RS)

Essa transação usa o método POST ou PUT para armazenar representações de estudos, séries e instâncias contidas na carga útil da solicitação.

Método Caminho Description
POST .. /estudos Armazenar instâncias.
POST .. /estudos/{estudo} Armazene instâncias para um estudo específico.
PUT .. /estudos Instâncias de Upsert.
PUT .. /estudos/{estudo} Instâncias Upsert para um estudo específico.

O parâmetro study corresponde ao atributo DICOM StudyInstanceUID. Se especificado, qualquer instância que não pertença ao estudo fornecido é rejeitada com um código de 43265 aviso.

O seguinte é o único cabeçalho de resposta Accept suportado:

  • application/dicom+json

Os seguintes Content-Type cabeçalhos são suportados:

  • multipart/related; type="application/dicom"
  • application/dicom

Nota

O servidor não coage nem substitui atributos que entrem em conflito com dados existentes para solicitações POST. Todos os dados são armazenados conforme fornecido. Para solicitações upsert (PUT), os dados existentes são substituídos pelos novos dados recebidos.

Armazenar atributos necessários

Os seguintes elementos DICOM devem estar presentes em todos os arquivos DICOM que tentam ser armazenados:

  • StudyInstanceUID
  • SeriesInstanceUID
  • SOPInstanceUID
  • SOPClassUID
  • PatientID

Nota

Todos os UIDs devem ter entre 1 e 64 caracteres e conter apenas caracteres alfanuméricos ou os seguintes caracteres especiais: ., -. PatientID continua a ser uma tag necessária e pode ter o valor como null na entrada. PatientID é validado com base no seu LO VR tipo.

Cada arquivo armazenado deve ter uma combinação exclusiva de StudyInstanceUID, SeriesInstanceUIDe SopInstanceUID. O código 45070 de aviso é retornado se já existir um arquivo com os mesmos identificadores.

Apenas são aceites sintaxes de transferência com Representações de Valor explícitas.

Nota

Os pedidos estão limitados a 4GB. Nenhum arquivo DICOM ou combinação de arquivos pode exceder esse limite.

Armazenar alterações a partir da v1

Em versões anteriores, uma solicitação da Loja falharia se algum dos atributos necessários ou pesquisáveis falhasse na validação. A partir da V2, a solicitação falhará somente se os atributos necessários falharem na validação.

A validação com falha de atributos não exigidos pela API resulta no armazenamento do arquivo com um aviso. Um aviso é dado sobre cada atributo com falha por instância. Quando uma sequência contém um atributo que falha na validação ou quando há vários problemas com um único atributo, somente o primeiro motivo de falha do atributo é anotado.

Se um atributo for preenchido com nulls, o atributo será indexado quando pesquisável e será armazenado como está nos metadados dicom+json. Nenhum aviso de validação é fornecido.

Armazenar códigos de status de resposta

Código Description
200 (OK) Todas as instâncias de SOP na solicitação foram armazenadas.
202 (Accepted) O servidor de origem armazenou algumas das Instâncias e outras falharam ou retornaram avisos. Informações adicionais sobre esse erro podem ser encontradas no corpo da mensagem de resposta.
204 (No Content) Nenhum conteúdo foi fornecido na solicitação de transação da loja.
400 (Bad Request) O pedido estava mal formatado. Por exemplo, o identificador de instância de estudo fornecido não estava em conformidade com o formato UID esperado.
401 (Unauthorized) O cliente não está autenticado.
406 (Not Acceptable) O cabeçalho especificado Accept não é suportado.
409 (Conflict) Nenhuma das instâncias na solicitação de transação da loja foi armazenada.
415 (Unsupported Media Type) O fornecido Content-Type não é suportado.
424 (Failed Dependency) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
500 (Internal Server Error) O servidor encontrou um erro interno desconhecido. Tente novamente mais tarde.
503 (Service Unavailable) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Paylo de resposta da loja

A carga útil de resposta preenche um conjunto de dados DICOM com os seguintes elementos:

Etiqueta Nome Descrição
(0008, 1190) RetrieveURL A URL de recuperação do estudo se o StudyInstanceUID foi fornecido na solicitação de armazenamento e pelo menos uma instância é armazenada com êxito.
(0008, 1198) FailedSOPSequence A sequência de instâncias que não conseguiram armazenar.
(0008, 1199) ReferencedSOPSequence A sequência de instâncias armazenadas.

Cada conjunto de dados no FailedSOPSequence tem os seguintes elementos (se o arquivo DICOM tentando ser armazenado pode ser lido):

Etiqueta Nome Descrição
(0008, 1150) ReferencedSOPClassUID O identificador exclusivo da classe SOP da instância que falhou ao armazenar.
(0008, 1155) ReferencedSOPInstanceUID O identificador exclusivo da instância SOP da instância que falhou ao armazenar.
(0008, 1197) FailureReason O código de motivo pelo qual esta instância não pôde ser armazenada.
(0008, 1196) WarningReason A WarningReason indica problemas de validação que foram detetados, mas não foram graves o suficiente para falhar na operação de armazenamento.
(0074, 1048) FailedAttributesSequence A sequência disso inclui o motivo de ErrorComment cada atributo com falha.

Cada conjunto de dados no ReferencedSOPSequence tem os seguintes elementos:

Etiqueta Nome Descrição
(0008, 1150) ReferencedSOPClassUID O identificador exclusivo da classe SOP da instância que foi armazenada.
(0008, 1155) ReferencedSOPInstanceUID O identificador exclusivo da instância SOP da instância que foi armazenada.
(0008, 1190) RetrieveURL A URL de recuperação desta instância no servidor DICOM.

Um exemplo de resposta com Accept cabeçalho application/dicom+json sem um FailedAttributesSequence em um ReferencedSOPSequence:

{
  "00081190":
  {
    "vr":"UR",
    "Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232"]
  },
  "00081198":
  {
    "vr":"SQ",
    "Value":
    [{
      "00081150":
      {
        "vr":"UI","Value":["cd70f89a-05bc-4dab-b6b8-1f3d2fcafeec"]
      },
      "00081155":
      {
        "vr":"UI",
        "Value":["22c35d16-11ce-43fa-8f86-90ceed6cf4e7"]
      },
      "00081197":
      {
        "vr":"US",
        "Value":[43265]
      }
    }]
  },
  "00081199":
  {
    "vr":"SQ",
    "Value":
    [{
      "00081150":
      {
        "vr":"UI",
        "Value":["d246deb5-18c8-4336-a591-aeb6f8596664"]
      },
      "00081155":
      {
        "vr":"UI",
        "Value":["4a858cbb-a71f-4c01-b9b5-85f88b031365"]
      },
      "00081190":
      {
        "vr":"UR",
        "Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232/series/8c4915f5-cc54-4e50-aa1f-9b06f6e58485/instances/4a858cbb-a71f-4c01-b9b5-85f88b031365"]
      }
    }]
  }
}

Um exemplo de resposta com Accept cabeçalho application/dicom+json com um FailedAttributesSequence em um ReferencedSOPSequence:

{
  "00081190":
  {
    "vr":"UR",
    "Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232"]
  },
  "00081199":
  {
    "vr":"SQ",
    "Value":
    [{
      "00081150":
      {
        "vr":"UI",
        "Value":["d246deb5-18c8-4336-a591-aeb6f8596664"]
      },
      "00081155":
      {
        "vr":"UI",
        "Value":["4a858cbb-a71f-4c01-b9b5-85f88b031365"]
      },
      "00081190":
      {
        "vr":"UR",
        "Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232/series/8c4915f5-cc54-4e50-aa1f-9b06f6e58485/instances/4a858cbb-a71f-4c01-b9b5-85f88b031365"]
      },
      "00081196": {
        "vr": "US",
        "Value": [
            1
        ]
      },
      "00741048": {
        "vr": "SQ",
        "Value": [
          {
            "00000902": {
              "vr": "LO",
              "Value": [
                "DICOM100: (0008,0020) - Content \"NotAValidDate\" does not validate VR DA: one of the date values does not match the pattern YYYYMMDD"
              ]
            }
          },
          {
            "00000902": {
              "vr": "LO",
              "Value": [
                "DICOM100: (0008,002a) - Content \"NotAValidDate\" does not validate VR DT: value does not mach pattern YYYY[MM[DD[HH[MM[SS[.F{1-6}]]]]]]"
              ]
            }
          }
        ]
      }
    }]
  }
}

Armazenar códigos de motivo de falha

Código Description
272 A transação da loja não armazenou a instância devido a uma falha geral no processamento da operação.
43264 A instância DICOM falhou na validação.
43265 A instância fornecida não correspondia à especificada StudyInstanceUID StudyInstanceUID na solicitação de armazenamento.
45070 Uma instância DICOM com o mesmo StudyInstanceUID, SeriesInstanceUIDe SopInstanceUID já estava armazenada. Se você quiser atualizar o conteúdo, exclua esta instância primeiro.
45071 Uma instância DICOM está sendo criada por outro processo, ou a tentativa anterior de criar falhou e o processo de limpeza não foi concluído. Exclua a instância primeiro antes de tentar criar novamente.

Armazenar códigos de motivo de aviso

Código Description
45063 Um conjunto de dados de instância DICOM não corresponde à classe SOP. A Transação de Armazenamento de Estudos (Seção 10.5) observou que o Conjunto de Dados não correspondia às restrições da Classe SOP durante o armazenamento da instância.
1 A Transação de Loja de Estudos (Seção 10.5) observou que o Conjunto de Dados tem validação

Armazenar códigos de erro

Código Description
100 Os atributos de instância fornecidos não atenderam aos critérios de validação.

Recuperar (WADO-RS)

Esta transação de recuperação oferece suporte para recuperar estudos, séries, instâncias e quadros armazenados por referência.

Método Caminho Description
GET .. /estudos/{estudo} Recupera todas as instâncias dentro de um estudo.
GET .. /studies/{study}/metadados Recupera os metadados de todas as instâncias de um estudo
GET .. /estudos/{estudo}/série/{série} Recupera todas as instâncias de uma série
GET .. /studies/{study}/series/{series}/metadata Recupera os metadados de todas as instâncias dentro de uma série
GET .. /studies/{study}/series/{series}/instances/{instance} Recupera uma única instância
GET .. /studies/{study}/series/{series}/instances/{instance}/metadados Recupera os metadados de uma única instância
GET .. /studies/{study}/series/{series}/instances/{instance}/renderizado Recupera uma instância renderizada em um formato de imagem
GET .. /studies/{study}/series/{series}/instances/{instance}/frames/{frames} Recupera um ou vários quadros de uma única instância. Para especificar mais de um quadro, uma vírgula separa cada quadro a ser retornado. Por exemplo, /studies/1/series/2/instance/3/frames/4,5,6.
GET .. /studies/{study}/series/{series}/instances/{instance}/frames/{frame}/renderizado Recupera um único quadro renderizado em um formato de imagem

Recuperar instâncias dentro do estudo ou da série

Os cabeçalhos a seguir Accept são suportados para recuperar instâncias dentro de um estudo ou de uma série.

  • multipart/related; type="application/dicom"; transfer-syntax=*
  • multipart/related; type="application/dicom"; (quando a sintaxe de transferência não é especificada, 1.2.840.10008.1.2.1 é usado como padrão)
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.1
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.90
  • */*(quando a sintaxe de transferência não é especificada, * é usada como padrão e mediaType assume como padrão )application/dicom

Recuperar uma instância

Os cabeçalhos a seguir Accept são suportados para recuperar uma instância específica.

  • application/dicom; transfer-syntax=*
  • multipart/related; type="application/dicom"; transfer-syntax=*
  • application/dicom; (quando a sintaxe de transferência não é especificada, 1.2.840.10008.1.2.1 é usada como padrão)
  • multipart/related; type="application/dicom" (quando a sintaxe de transferência não é especificada, 1.2.840.10008.1.2.1 é usada como padrão)
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.1
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.1
  • application/dicom; transfer-syntax=1.2.840.10008.1.2.4.90
  • multipart/related; type="application/dicom"; transfer-syntax=1.2.840.10008.1.2.4.90
  • */*(quando a sintaxe de transferência não é especificada, * é usada como padrão e mediaType assume como padrão )application/dicom

Recuperar quadros

Os cabeçalhos a seguir Accept são suportados para recuperar quadros.

  • multipart/related; type="application/octet-stream"; transfer-syntax=*
  • multipart/related; type="application/octet-stream"; (quando a sintaxe de transferência não é especificada, 1.2.840.10008.1.2.1 é usada como padrão)
  • multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1
  • multipart/related; type="image/jp2"; (quando a sintaxe de transferência não é especificada, 1.2.840.10008.1.2.4.90 é usada como padrão)
  • multipart/related; type="image/jp2";transfer-syntax=1.2.840.10008.1.2.4.90
  • application/octet-stream; transfer-syntax=* para recuperação de quadro único
  • */*(quando a sintaxe de transferência não é especificada, * é usada como padrão e mediaType assume como padrão )application/octet-stream

Recuperar sintaxe de transferência

Quando a sintaxe de transferência solicitada é diferente do arquivo original, o arquivo original é transcodificado para a sintaxe de transferência solicitada. O arquivo original precisa ser um dos seguintes formatos para que a transcodificação seja bem-sucedida, caso contrário, a transcodificação pode falhar.

  • 1.2.840.10008.1.2 (Pequeno Endian Implícito)
  • 1.2.840.10008.1.2.1 (Pequeno Endian Explícito)
  • 1.2.840.10008.1.2.2 (VR Explícito Big Endian)
  • 1.2.840.10008.1.2.4.50 (Processo de linha de base JPEG 1)
  • 1.2.840.10008.1.2.4.57 (JPEG sem perdas)
  • 1.2.840.10008.1.2.4.70 (JPEG Valor de seleção sem perdas 1)
  • 1.2.840.10008.1.2.4.90 (apenas JPEG 2000 sem perdas)
  • 1.2.840.10008.1.2.4.91 (JPEG 2000)
  • 1.2.840.10008.1.2.5 (RLE sem perdas)

Um resultado sem suporte transfer-syntax em 406 Not Acceptable.

Recuperar metadados (para estudo, série ou instância)

O cabeçalho a seguir Accept é suportado para recuperar metadados de um estudo, uma série ou uma instância.

  • application/dicom+json

A recuperação de metadados não retorna atributos com as seguintes representações de valor.

Nome VR Description
OB Outro Byte
OD Outro Duplo
OF Outros flutuadores
OL Outros Longos
O Outros 64-Bit Muito Longo
OW Outra palavra
ONU Desconhecido

Os metadados recuperados incluem o caractere nulo quando o atributo foi preenchido com nulos e armazenado como está.

Recuperar validação de cache de metadados (para estudo, série ou instância)

A validação de cache é suportada usando o ETag mecanismo. Na resposta a uma solicitação de metadados, ETag é retornado como um dos cabeçalhos. Esse ETag pode ser armazenado em cache e adicionado como um If-None-Match cabeçalho nas solicitações posteriores para os mesmos metadados. Dois tipos de respostas são possíveis se os dados existirem.

  • Os dados permanecem inalterados desde o último pedido: a HTTP 304 (Not Modified) resposta é enviada sem corpo de resposta.
  • Dados alterados desde o último pedido: a HTTP 200 (OK) resposta é enviada com ETag atualizado. Os dados necessários são devolvidos como parte do corpo.

Recuperar imagem renderizada (por exemplo ou quadro)

Os cabeçalhos a seguir Accept são suportados para recuperar uma imagem renderizada, uma ocorrência ou um quadro.

  • image/jpeg
  • image/png

No caso de nenhum Accept cabeçalho ser especificado, o serviço renderiza um image/jpeg por padrão.

O serviço suporta apenas a renderização de um único quadro. Se a renderização for solicitada para uma instância com vários quadros, por padrão, apenas o primeiro quadro será renderizado como uma imagem.

Ao especificar um quadro específico para retornar, a indexação de quadros começa em 1.

O quality parâmetro query também é suportado. Um valor inteiro entre 1 e 100 inclusive (1 sendo a pior qualidade e 100 sendo a melhor qualidade) pode ser passado como o valor para o parâmetro de consulta. Esse parâmetro é usado para imagens renderizadas como jpeg, e é ignorado para png solicitações de renderização. Se não for especificado, o parâmetro assume 100como padrão .

Recuperar versão original

O uso da operação de atualização em massa permite recuperar a versão original ou mais recente de um estudo, série ou instância. A versão mais recente de um estudo, série ou instância é sempre retornada por padrão. A versão original pode ser retornada definindo o msdicom-request-original cabeçalho como true. Segue-se um pedido de exemplo:

GET ../studies/{study}/series/{series}/instances/{instance}
Accept: multipart/related; type="application/dicom"; transfer-syntax=*
msdicom-request-original: true
Content-Type: application/dicom

Recuperar códigos de status de resposta

Código Description
200 (OK) Todos os dados solicitados foram recuperados.
304 (Not Modified) Os dados solicitados permanecem inalterados desde o último pedido. Nesse caso, o conteúdo não é adicionado ao corpo da resposta. Para obter mais informações, consulte a seção anterior Recuperar validação de cache de metadados (para estudo, série ou instância).
400 (Bad Request) O pedido estava mal formatado. Por exemplo, o identificador de instância de estudo fornecido não estava em conformidade com o formato UID esperado ou a codificação de sintaxe de transferência solicitada não é suportada.
401 (Unauthorized) O cliente não está autenticado.
403 (Forbidden) O usuário não está autorizado.
404 (Not Found) O recurso DICOM especificado não pôde ser encontrado ou, para solicitação renderizada, a instância não continha dados de pixel.
406 (Not Acceptable) O cabeçalho especificado Accept não é suportado ou, para solicitações renderizadas e transcodificadas, o arquivo solicitado era muito grande.
424 (Failed Dependency) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
503 (Service Unavailable) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Pesquisa (QIDO-RS)

A consulta baseada em ID for DICOM Objects (QIDO) permite pesquisar estudos, séries e instâncias por atributos.

Método Caminho Description
Pesquisa de Estudos
GET .. /estudos?... Pesquisa de estudos
Procurar Séries
GET .. /série?... Pesquisa de séries
GET .. /estudos/{estudo}/série?... Pesquisa de séries num estudo
Pesquisar instâncias
GET .. /instâncias?... Pesquisar instâncias
GET .. /studies/{study}/instances?... Pesquisar instâncias em um estudo
GET .. /studies/{study}/series/{series}/instances?... Pesquisar instâncias em uma série

O cabeçalho a seguir Accept é suportado para pesquisa.

  • application/dicom+json

Alterações de pesquisa a partir da v1

Na API v1 e continuada para v2, se uma tag de consulta estendida tiver algum erro porque uma ou mais das instâncias existentes tinham um valor de tag que não pôde ser indexado, as consultas de pesquisa subsequentes contendo a tag de consulta estendida retornarão erroneous-dicom-attributes conforme detalhado na documentação. No entanto, as tags (também conhecidas como atributos) com avisos de validação do STOW-RS não são incluídas neste cabeçalho. Se uma solicitação de armazenamento resultar em avisos de validação para atributos pesquisáveis no momento em que a instância foi armazenada, esses atributos não poderão ser usados para pesquisar a instância armazenada. No entanto, quaisquer atributos pesquisáveis que falharam na validação podem retornar resultados se os valores forem substituídos por instâncias no mesmo estudo ou série que são armazenadas após a falha ou se os valores já estiverem armazenados corretamente por uma instância anterior. Se os valores de atributo não forem substituídos, eles não produzirão nenhum resultado de pesquisa.

Um atributo pode ser corrigido das seguintes maneiras.

  • Exclua a instância armazenada e carregue uma nova instância com os dados corrigidos
  • Carregar uma nova instância no mesmo estudo/série com dados corrigidos

Parâmetros de pesquisa suportados

Os seguintes parâmetros para cada consulta são suportados:

Chave Valores de Suporte Contagem permitida Description
{attributeID}= {value} 0...N Pesquisar correspondência atributo/valor na consulta
includefield= {attributeID}
all
0...N Os outros atributos a serem retornados na resposta. Ambas as tags públicas e privadas são suportadas.
Quando all for fornecido, consulte Resposta da pesquisa para obter mais informações.
Se for fornecida uma mistura de {attributeID} e all , o servidor assume como padrão o uso all
limit= {value} 0..1 Valor inteiro para limitar o número de valores retornados na resposta.
O valor pode estar entre o intervalo 1 >= x <= 200. Padrão para 100
offset= {value} 0..1 Ignorar {value} resultados.
Se um deslocamento for fornecido maior do que o número de resultados da consulta de pesquisa, uma resposta 204 (sem conteúdo) será retornada.
fuzzymatching= true / false 0..1 Se a correspondência difusa verdadeira for aplicada ao atributo PatientName. Ele faz uma correspondência de palavra de prefixo de qualquer parte do nome dentro do valor PatientName. Por exemplo, se PatientName for "John^Doe", então "joh", "do", "jo do", "Doe" e "John Doe" correspondem. No entanto, "ohn" não corresponde.

Atributos pesquisáveis

Suportamos a pesquisa dos seguintes atributos e tipos de pesquisa.

Palavra-chave de atributo Todos os estudos Todas as Séries Todas as instâncias Série de Estudos Instâncias do estudo Instâncias da Série de Estudos
StudyInstanceUID X X X
PatientName X X X
PatientID X X X
PatientBirthDate X X X
AccessionNumber X X X
ReferringPhysicianName X X X
StudyDate X X X
StudyDescription X X X
ModalitiesInStudy X X X
SeriesInstanceUID X X X X
Modality X X X X
PerformedProcedureStepStartDate X X X X
ManufacturerModelName X X X X
SOPInstanceUID X X X

Nota

Não suportamos a pesquisa usando string vazia para quaisquer atributos.

Correspondência de pesquisa

Suportamos os seguintes tipos de correspondência.

Tipo de pesquisa Atributo suportado Exemplo
Consulta de intervalo StudyDate/PatientBirthDate {attributeID}={value1}-{value2}. Para valores de data/hora, suportamos um intervalo inclusivo na etiqueta. Este intervalo é mapeado para attributeID >= {value1} AND attributeID <= {value2}. Se {value1} não for especificado, todas as ocorrências de datas/horas anteriores e inclusive {value2} serão correspondidas. Da mesma forma, se {value2} não for especificado, todas as ocorrências e {value1} datas/horas subsequentes serão correspondidas. No entanto, um destes valores tem de estar presente. {attributeID}={value1}- e {attributeID}=-{value2} são válidos, no entanto, {attributeID}=- é inválido.
Correspondência exata Todos os atributos suportados {attributeID}={value1}
Jogo difuso PatientName, ReferringPhysicianName Corresponde a qualquer componente do nome que começa com o valor
Correspondência de lista UID StudyInstanceUID Corresponde aos estudos identificados pelos valores fornecidos na lista. Suporta vírgula (,) ou barra invertida (\) como um separador válido. {attributeID}=1.2.3,5.6.7,8.9.0 devolverá detalhes associados a todos os estudos, uma vez que existem.

ID do atributo

As tags podem ser codificadas de várias maneiras para o parâmetro query. Implementamos parcialmente o padrão conforme definido no PS3.18 6.7.1.1.1. As seguintes codificações para uma tag são suportadas.

valor Exemplo
{group}{element} 0020000D
{dicomKeyword} StudyInstanceUID

Exemplo de pesquisa de consulta para instâncias:

../instances?Modality=CT&00280011=512&includefield=00280010&limit=5&offset=0

Resposta da pesquisa

A resposta é uma matriz de conjuntos de dados DICOM. Dependendo do recurso, por padrão , os seguintes atributos são retornados.

Tags de estudo padrão

Etiqueta Nome do Atributo
(0008, 0020) StudyDate
(0008, 0050) AccessionNumber
(0008, 1030) StudyDescription
(0009, 0090) ReferringPhysicianName
(0010, 0010) PatientName
(0010, 0020) PatientID
(0010, 0030) PatientBirthDate
(0020, 000D) StudyInstanceUID

Tags de série padrão

Etiqueta Nome do Atributo
(0008, 0060) Modality
(0008, 1090) ManufacturerModelName
(0020, 000E) SeriesInstanceUID
(0040, 0244) PerformedProcedureStepStartDate

Tags de instância padrão

Etiqueta Nome do Atributo
(0008, 0018) SOPInstanceUID

Se includefield=all, esses atributos são incluídos junto com os atributos padrão. Junto com os atributos padrão, essa lista contém uma lista completa de atributos suportados em cada nível de recurso.

Outras tags Estudo

Etiqueta Nome do Atributo
(0008, 0005) SpecificCharacterSet
(0008, 0030) StudyTime
(0008, 0056) InstanceAvailability
(0008, 0201) TimezoneOffsetFromUTC
(0008, 0063) AnatomicRegionsInStudyCodeSequence
(0008, 1032) ProcedureCodeSequence
(0008, 1060) NameOfPhysiciansReadingStudy
(0008, 1080) AdmittingDiagnosesDescription
(0008, 1110) ReferencedStudySequence
(0010, 1010) PatientAge
(0010, 1020) PatientSize
(0010, 1030) PatientWeight
(0010, 2180) Occupation
(0010, 21B0) AdditionalPatientHistory
(0010, 0040) PatientSex
(0020, 0010) StudyID

Outras tags da série

Etiqueta Nome do Atributo
(0008, 0005) SpecificCharacterSet
(0008, 0201) Fuso horárioOffsetFromUTC
(0020, 0011) Número da série
(0020, 0060) Lateralidade
(0008, 0021) SérieData
(0008, 0031) SeriesTime
(0008, 103E) SérieDescrição
(0040, 0245) PerformedProcedureStepStartTime
(0040, 0275) RequestAttributesSequence

Outras tags de instância

Etiqueta Nome do Atributo
(0008, 0005) SpecificCharacterSet
(0008, 0016) SOPClassUID
(0008, 0056) InstanceAvailability
(0008, 0201) Fuso horárioOffsetFromUTC
(0020, 0013) Número da instância
(0028, 0010) Linhas
(0028, 0011) Colunas
(0028, 0100) BitsAlocados
(0028, 0008) NumberOfFrames

Os seguintes atributos são retornados.

  • Todos os parâmetros de consulta de correspondência e UIDs na URL do recurso
  • IncludeField atributos suportados nesse nível de recurso
  • Se o recurso de destino for All Series, os Study atributos de nível também serão retornados.
  • Se o recurso de destino for All Instances, então Study e Series os atributos de nível também serão retornados.
  • Se o recurso de destino for Study's Instances, os Series atributos de nível também serão retornados.
  • NumberOfStudyRelatedInstances atributo agregado é suportado no Study nível includeField.
  • NumberOfSeriesRelatedInstances atributo agregado é suportado no Series nível includeField.

Pesquisar códigos de resposta

A API de consulta retorna um dos seguintes códigos de status na resposta.

Código Description
200 (OK) A carga útil de resposta contém todos os recursos correspondentes.
204 (No Content) A pesquisa foi concluída com êxito, mas não retornou resultados.
400 (Bad Request) O servidor não pôde executar a consulta porque o componente de consulta era inválido. O corpo da resposta contém detalhes da falha.
401 (Unauthorized) O cliente não está autenticado.
403 (Forbidden) O usuário não está autorizado.
414 (URI Too Long) O URI excedeu o comprimento máximo suportado de 8192 caracteres.
424 (Failed Dependency) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
503 (Service Unavailable) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Notas

  • Não há suporte para consultas usando o TimezoneOffsetFromUTC (00080201) .
  • A API de consulta não retorna 413 (request entity too large). Se o limite de resposta de consulta solicitado estiver fora do intervalo aceitável, uma solicitação incorreta será retornada. Qualquer coisa solicitada dentro do intervalo aceitável é resolvida.
  • Quando o recurso de destino é Estudo/Série, há um potencial para metadados inconsistentes em nível de estudo/série em várias instâncias. Por exemplo, duas instâncias podem ter diferentes patientName. Neste caso, o último ganha e você pode pesquisar apenas sobre os dados mais recentes.
  • Os resultados paginados são otimizados para retornar primeiro a instância mais recente correspondente, possivelmente resultando em registros duplicados nas páginas subsequentes se dados mais recentes correspondentes à consulta tiverem sido adicionados.
  • A correspondência não diferencia maiúsculas de minúsculas nem acentua para tipos PN VR.
  • A correspondência não diferencia maiúsculas de minúsculas e é sensível ao acento para outros tipos de VR de cadeia de caracteres.
  • Somente o primeiro valor é indexado de um único elemento de dados valorizado que incorretamente tem vários valores.
  • Usar os atributos padrão ou limitar o número de resultados solicitados maximiza o desempenho.
  • Quando um atributo foi armazenado usando preenchimento nulo, ele pode ser pesquisado com ou sem o preenchimento nulo na codificação uri. Os resultados recuperados são para atributos armazenados com e sem preenchimento nulo.

Delete

Esta transação não faz parte do padrão oficial DICOMweb. Ele usa o método DELETE para remover representações de Studies, Series e Instances do armazenamento.

Método Caminho Description
DELETE .. /estudos/{estudo} Exclua todas as instâncias de um estudo específico.
DELETE .. /estudos/{estudo}/série/{série} Exclua todas as instâncias de uma série específica dentro de um estudo.
DELETE .. /studies/{study}/series/{series}/instances/{instance} Exclua uma instância específica dentro de uma série.

Parâmetros study, seriese instance correspondem aos atributos StudyInstanceUIDDICOM , SeriesInstanceUID, e SopInstanceUID respectivamente.

Não há restrições quanto ao cabeçalho, Content-Type cabeçalho ou conteúdo do Accept corpo da solicitação.

Nota

Após uma transação Excluir, as instâncias excluídas não serão recuperáveis.

Códigos de status de resposta

Código Description
204 (No Content) Quando todas as instâncias SOP são excluídas.
400 (Bad Request) O pedido estava mal formatado.
401 (Unauthorized) O cliente não está autenticado.
403 (Forbidden) O usuário não está autorizado.
404 (Not Found) Quando a série especificada não foi encontrada dentro de um estudo ou a instância especificada não foi encontrada dentro da série.
424 (Failed Dependency) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
503 (Service Unavailable) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Excluir carga útil de resposta

O corpo da resposta está vazio. O código de status é a única informação útil retornada.

Serviço de Lista de Trabalho (UPS-RS)

O serviço DICOM suporta os POPs Push e Pull do Worklist Service (UPS-RS). Este serviço fornece acesso a uma Lista de Trabalho contendo Itens de Trabalho, cada um dos quais representa uma Etapa de Procedimento Unificado (UPS).

Por toda parte, a variável {workitem} em um modelo de URI significa um UID de item de trabalho.

Os terminais UPS-RS disponíveis incluem:

Verbo Caminho Description
POST {s}/workitems{? AfetadoSOPInstanceUID} Criar um item de trabalho
POST {s}/workitems/{instance}{?transaction} Atualizar um item de trabalho
GET {s}/workitems{?query*} Procurar itens de trabalho
GET {s}/workitems/{instância} Recuperar um item de trabalho
PUT {s}/workitems/{instance}/state Alterar o estado do item de trabalho
POST {s}/workitems/{instance}/cancelrequest Cancelar item de trabalho
POST {s}/workitems/{instance}/subscribers/{AETitle}{?deletionlock} Criar subscrição
POST {s}/workitems/1.2.840.10008.5.1.4.34.5/ Suspender subscrição
DELETE {s}/workitems/{instance}/subscribers/{AETitle} Eliminar subscrição
GET {s}/assinantes/{AETitle} Abrir canal de subscrição

Criar item de trabalho

Essa transação usa o método POST para criar um novo Workitem.

Método Caminho Description
POST .. /itens de trabalho Crie um Workitem.
POST .. /itens de trabalho? {item de trabalho} Cria um Workitem com o UID especificado.

Se não especificado no URI, o conjunto de dados de carga útil deve conter o Workitem no SOPInstanceUID atributo.

Os Accept cabeçalhos e Content-Type são necessários na solicitação e ambos devem ter o valor application/dicom+json.

Existem vários requisitos relacionados aos atributos de dados DICOM no contexto de uma transação específica. Os atributos podem ser obrigados a estar presentes, não estar presentes, estar vazios ou não estar vazios. Esses requisitos podem ser encontrados nesta tabela.

Nota

Embora a tabela de referência diga que o UID da instância SOP não deve estar presente, essa orientação é específica para o protocolo DIMSE e é tratada de forma diferente no DICOMWeb. O UID da instância SOP deve estar presente no conjunto de dados, se não no URI.

Nota

Todos os códigos de requisitos condicionais, incluindo 1C e 2C, são tratados como opcionais.

Criar códigos de status de resposta

Código Description
201 (Created) O Workitem de destino foi criado com êxito.
400 (Bad Request) Houve um problema com o pedido. Por exemplo, a carga útil da solicitação não satisfez os requisitos.
401 (Unauthorized) O cliente não está autenticado.
403 (Forbidden) O usuário não está autorizado.
409 (Conflict) O Workitem já existe.
415 (Unsupported Media Type) O fornecido Content-Type não é suportado.
424 (Failed Dependency) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
503 (Service Unavailable) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Criar carga útil de resposta

Uma resposta bem-sucedida não tem carga útil. Os Location cabeçalhos e Content-Location de resposta contêm uma referência de URI para o Workitem criado.

Uma carga útil de resposta a falhas contém uma mensagem descrevendo a falha.

Solicitar cancelamento

Esta transação permite que o usuário solicite o cancelamento de um Workitem não proprietário.

Há quatro estados de Workitem válidos:

  • SCHEDULED
  • IN PROGRESS
  • CANCELED
  • COMPLETED

Essa transação só é bem-sucedida em relação a SCHEDULED Workitems no estado. Qualquer usuário pode reivindicar a propriedade de um Workitem definindo seu UID de transação e alterando seu estado para IN PROGRESS. A partir de então, um usuário só pode modificar o Workitem fornecendo o UID de transação correto. Enquanto a UPS define classes SOP de observação e evento que permitem que solicitações de cancelamento e outros eventos sejam encaminhados, este serviço DICOM não implementa essas classes e, portanto, solicitações de cancelamento em itens de trabalho que retornam IN PROGRESS uma falha. Um Workitem de propriedade pode ser cancelado por meio da transação Change Workitem State .

Método Caminho Description
POST .. /workitems/{workitem}/cancelrequest Solicitar o cancelamento de um item de trabalho agendado

O Content-Type cabeçalho é obrigatório e deve ter o valor application/dicom+json.

A carga útil da solicitação pode incluir informações de ação, conforme definido no padrão DICOM.

Solicitar códigos de status de resposta de cancelamento

Código Description
202 (Accepted) A solicitação foi aceita pelo servidor, mas o estado do Item de Trabalho de Destino ainda não foi alterado.
400 (Bad Request) Houve um problema com a sintaxe do pedido.
401 (Unauthorized) O cliente não está autenticado.
403 (Forbidden) O usuário não está autorizado.
404 (Not Found) O item de trabalho de destino não foi encontrado.
409 (Conflict) A solicitação é inconsistente com o estado atual do item de trabalho de destino. Por exemplo, o item de trabalho de destino está no SCHEDULED estado ou COMPLETED .
415 (Unsupported Media Type) O fornecido Content-Type não é suportado.
424 (Failed Dependency) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
503 (Service Unavailable) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Solicitar carga útil de resposta de cancelamento

Uma resposta de sucesso não tem carga útil e uma carga útil de resposta de falha contém uma mensagem descrevendo a falha. Se a instância de item de trabalho já estiver em um estado cancelado, a resposta incluirá o seguinte cabeçalho de aviso HTTP: 299: The UPS is already in the requested state of CANCELED.

Recuperar item de trabalho

Esta transação recupera um Workitem. Corresponde à operação UPS DIMSE N-GET.

Referir-se a: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.5

Se o Workitem existir no servidor de origem, o Workitem será retornado em um Tipo de Mídia Aceitável. O Workitem retornado não conterá o atributo Transaction UID (0008,1195). Isso é necessário para preservar a função do Atributo como um bloqueio de acesso.

Método Caminho Description
GET .. /workitems/{workitem} Solicitação para recuperar um item de trabalho

O Accept cabeçalho é obrigatório e deve ter o valor application/dicom+json.

Recuperar códigos de status de resposta de item de trabalho

Código Description
200 (OK) A instância do item de trabalho foi recuperada com êxito.
400 (Pedido Incorreto) Houve um problema com o pedido.
401 (Não Autorizado) O cliente não está autenticado.
403 (Proibido) O usuário não está autorizado.
404 (Não encontrado) O item de trabalho de destino não foi encontrado.
424 (Falha na dependência) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
503 (Serviço indisponível) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Recuperar carga útil de resposta de item de trabalho

  • Uma resposta bem-sucedida tem uma carga útil de peça única contendo o Workitem solicitado no Tipo de Mídia Selecionado.
  • O Workitem devolvido não deve conter o atributo Transaction UID (0008, 1195) do Workitem, uma vez que isso só deve ser conhecido pelo Proprietário.

Atualizar item de trabalho

Esta transação modifica atributos de um Workitem existente. Corresponde à operação UPS DIMSE N-SET.

Referir-se a: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.6

Para atualizar um Workitem atualmente no SCHEDULED estado, o Transaction UID atributo não deve estar presente. Para um Workitem no IN PROGRESS estado, a solicitação deve incluir o UID de transação atual como um parâmetro de consulta. Se o Workitem já estiver nos COMPLETED estados ou CANCELED , a resposta será 400 (Bad Request).

Método Caminho Description
POST .. /workitems/{workitem}? {transação-uid} Atualizar transação de item de trabalho

O Content-Type cabeçalho é obrigatório e deve ter o valor application/dicom+json.

A carga útil da solicitação contém um conjunto de dados com as alterações a serem aplicadas ao Workitem de destino. Quando uma sequência é modificada, a solicitação deve incluir todos os Itens na sequência, não apenas os Itens a serem modificados. Quando você precisar atualizar vários atributos como um grupo, atualize-os como vários atributos em uma única solicitação, não como várias solicitações.

Há muitos requisitos relacionados aos atributos de dados DICOM no contexto de uma transação específica. Os atributos podem ser obrigados a estar presentes, não estar presentes, estar vazios ou não estar vazios. Esses requisitos podem ser encontrados nesta tabela.

Nota

Todos os códigos de requisitos condicionais, incluindo 1C e 2C, são tratados como opcionais.

Nota

A solicitação não pode definir o valor do atributo Estado da Etapa do Procedimento (0074,1000). O Estado da Etapa do Procedimento é gerenciado usando a transação Alterar Estado ou a transação Solicitar Cancelamento.

Atualizar códigos de status de resposta de transação de item de trabalho

Código Description
200 (OK) O item de trabalho de destino foi atualizado.
400 (Bad Request) Houve um problema com o pedido. Por exemplo: (1) o item de trabalho de destino estava no COMPLETED estado ou CANCELED . (2) o UID da transação está ausente. (3) o UID da transação está incorreto. (4) o conjunto de dados não estava em conformidade com os requisitos.
401 (Unauthorized) O cliente não está autenticado.
403 (Forbidden) O usuário não está autorizado.
404 (Not Found) O item de trabalho de destino não foi encontrado.
409 (Conflict) A solicitação é inconsistente com o estado atual do item de trabalho de destino.
415 (Unsupported Media Type) O fornecido Content-Type não é suportado.
424 (Failed Dependency) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
503 (Service Unavailable) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Atualizar carga útil de resposta de transação de item de trabalho

O servidor de origem suporta campos de cabeçalho conforme exigido na Tabela 11.6.3-2.

Uma resposta bem-sucedida não tem carga útil ou uma carga útil que contém um documento de Relatório de Status.

Uma carga útil de resposta a falhas pode conter um Relatório de Status descrevendo quaisquer falhas, avisos ou outras informações úteis.

Alterar o estado do item de trabalho

Esta transação é usada para alterar o estado de um Workitem. Corresponde à operação UPS DIMSE N-ACTION "Change UPS State". As alterações de estado são usadas para reivindicar a propriedade, concluir ou cancelar um Workitem.

Referir-se a: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.7

Se o Workitem existir no servidor de origem, o Workitem será retornado em um Tipo de Mídia Aceitável. O Workitem retornado não conterá o atributo Transaction UID (0008,1195). Isso é necessário para preservar a função do Atributo como um bloqueio de acesso, conforme descrito aqui.

Método Caminho Description
PUT .. /workitems/{workitem}/estado Alterar estado do item de trabalho

O Accept cabeçalho é obrigatório e deve ter o valor application/dicom+json.

A carga útil do pedido contém os Elementos de Dados de Estado de Alteração UPS. Esses elementos de dados são os seguintes.

  • Transação UID (0008, 1195). A carga útil da solicitação inclui um UID de transação. O agente de usuário cria o UID de transação ao solicitar uma transição para o IN PROGRESS estado de um determinado Workitem. O agente de usuário fornece esse UID de transação em transações subsequentes com esse Workitem.
  • Estado da etapa do procedimento (0074, 1000). Os valores legais correspondem à transição de estado solicitada. São eles: IN PROGRESS, COMPLETED, ou CANCELED.

Alterar códigos de status de resposta do estado do item de trabalho

Código Description
200 (OK) A instância do item de trabalho foi recuperada com êxito.
400 (Bad Request) A solicitação não pode ser executada por um dos seguintes motivos: (1) a solicitação não é válida dado o estado atual do item de trabalho de destino. (2) o UID da transação está ausente. (3) o UID da transação está incorreto
401 (Unauthorized) O cliente não está autenticado.
403 (Forbidden) O usuário não está autorizado.
404 (Not Found) O item de trabalho de destino não foi encontrado.
409 (Conflict) A solicitação é inconsistente com o estado atual do item de trabalho de destino.
424 (Failed Dependency) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
503 (Service Unavailable) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Alterar a carga útil de resposta do estado do item de trabalho

  • As respostas incluem os campos de cabeçalho especificados no ponto 11.7.3.2.
  • Uma resposta bem-sucedida não tem carga útil.
  • Uma carga útil de resposta a falhas pode conter um Relatório de Status descrevendo quaisquer falhas, avisos ou outras informações úteis.

Pesquisar itens de trabalho

Essa transação permite que você pesquise Workitems por atributos.

Método Caminho Description
GET .. /itens de trabalho? Pesquisar itens de trabalho

O cabeçalho a seguir Accept é suportado para pesquisa.

  • application/dicom+json

Parâmetros de pesquisa suportados

Os seguintes parâmetros para cada consulta são suportados:

Chave Valores de Suporte Contagem permitida Description
{attributeID}= {value} 0...N Pesquise a correspondência atributo/valor na consulta.
includefield= {attributeID}
all
0...N Os outros atributos a serem retornados na resposta. Apenas atributos de nível superior podem ser incluídos - não atributos que fazem parte de sequências. Ambas as tags públicas e privadas são suportadas. Quando all é fornecido. Consulte Resposta de pesquisa para obter mais informações sobre quais atributos são retornados para cada tipo de consulta. Se for fornecida uma mistura de {attributeID} e all , o servidor assume como padrão o uso de 'todos'.
limit= {value} 0...1 Valor inteiro para limitar o número de valores retornados na resposta. O valor pode estar entre o intervalo 1 >= x <= 200. Padrão para 100.
offset= {value} 0...1 Ignorar resultados {value}. Se um deslocamento for fornecido maior do que o número de resultados da consulta de pesquisa, uma 204 (no content) resposta será retornada.
fuzzymatching= true \ false 0...1 Se a correspondência difusa verdadeira for aplicada a quaisquer atributos com a Representação de Valor (VR) do Nome da Pessoa (PN). Ele faz uma correspondência de palavras de prefixo de qualquer parte do nome dentro desses atributos. Por exemplo, se PatientName é John^Doe, então joh, do, jo doDoe , e John Doe todos correspondem. ohn No entanto, não corresponde.
Atributos pesquisáveis

Suportamos a pesquisa nos seguintes atributos.

Palavra-chave de atributo
PatientName
PatientID
ReferencedRequestSequence.AccessionNumber
ReferencedRequestSequence.RequestedProcedureID
ScheduledProcedureStepStartDateTime
ScheduledStationNameCodeSequence.CodeValue
ScheduledStationClassCodeSequence.CodeValue
ScheduledStationGeographicLocationCodeSequence.CodeValue
ProcedureStepState
StudyInstanceUID

Nota

Não suportamos a pesquisa usando string vazia para quaisquer atributos.

Correspondência de pesquisa

Suportamos os seguintes tipos de correspondência.

Tipo de pesquisa Atributo suportado Exemplo
Consulta de intervalo ScheduledProcedureStepStartDateTime {attributeID}={value1}-{value2}. Para valores de data/hora, suportamos um intervalo inclusivo na etiqueta. Este intervalo é mapeado para attributeID >= {value1} AND attributeID <= {value2}. Se {value1} não for especificado, todas as ocorrências de datas/horas anteriores e incluídas {value2} serão correspondidas. Da mesma forma, se {value2} não for especificado, todas as ocorrências e {value1} datas/horas subsequentes serão correspondidas. No entanto, um desses valores deve estar presente. {attributeID}={value1}- e {attributeID}=-{value2} são válidos, no entanto, {attributeID}=- não são válidos.
Correspondência exata Todos os atributos suportados {attributeID}={value1}
Jogo difuso PatientName Corresponde a qualquer componente do nome que começa com o valor.
Correspondência WildCard PatientID,
ReferencedRequestSequence.AccessionNumber,
ReferencedRequestSequence.RequestedProcedureID,
ProcedureStepState,
ScheduledStationNameCodeSequence.CodeValue,
ScheduledStationClassCodeSequence.CodeValue,
ScheduledStationGeographicLocationCodeSequence.CodeValue
Os seguintes caracteres curinga são suportados:
* - Corresponde a zero ou mais caracteres. Por exemplo - {attributeID}={val*} corresponde a "val", "válido", "valor", mas não a "avaliar".
? - Corresponde a um único personagem. Por exemplo - {attributeID}={valu?} corresponde a "value", "valu1", mas não a "valued" ou "valu"

Nota

Embora não ofereçamos suporte à correspondência de sequência completa, oferecemos suporte à correspondência exata nos atributos listados contidos em uma sequência.

ID do atributo

As tags podem ser codificadas de várias maneiras para o parâmetro query. Implementamos parcialmente o padrão conforme definido no PS3.18 6.7.1.1.1. As seguintes codificações para uma tag são suportadas.

valor Exemplo
{group}{element} 00100010
{dicomKeyword} PatientName

Consulta de exemplo:

../workitems?PatientID=K123&0040A370.00080050=1423JS&includefield=00404005&limit=5&offset=0

Resposta da pesquisa

A resposta é uma matriz de conjuntos de 0...N dados DICOM com os seguintes atributos retornados.

  • Todos os atributos no DICOM PowerShell 3.4 Tabela CC.2.5-3 com um tipo de chave de retorno de 1 ou 2
  • Todos os atributos no DICOM PowerShell 3.4 Tabela CC.2.5-3 com um tipo de chave de retorno de 1C para o qual os requisitos condicionais são atendidos
  • Todos os outros atributos Workitem passados como parâmetros de correspondência
  • Todos os outros atributos Workitem passados como includefield valores de parâmetro

Códigos de resposta de pesquisa

A API de consulta retorna um dos seguintes códigos de status na resposta:

Código Description
200 (OK) A carga útil de resposta contém todo o recurso correspondente.
206 (Partial Content) A carga útil de resposta contém apenas alguns dos resultados da pesquisa, e o restante pode ser solicitado através da solicitação apropriada.
204 (No Content) A pesquisa foi concluída com êxito, mas não retornou resultados.
400 (Bad Request) Houve um problema com o pedido. Por exemplo, sintaxe de parâmetro de consulta inválida. O corpo da resposta contém detalhes da falha.
401 (Unauthorized) O cliente não está autenticado.
403 (Forbidden) O usuário não está autorizado.
424 (Failed Dependency) O serviço DICOM não pode acessar um recurso do qual depende para concluir essa solicitação. Um exemplo é a falha no acesso ao armazenamento Data Lake conectado ou ao cofre de chaves para oferecer suporte à criptografia de chaves gerenciada pelo cliente.
503 (Service Unavailable) O serviço está indisponível ou ocupado. Tente novamente mais tarde.

Notas adicionais

A API de consulta não retorna 413 (request entity too large). Se o limite de resposta de consulta solicitado estiver fora do intervalo aceitável, uma solicitação incorreta será retornada. Qualquer coisa solicitada dentro do intervalo aceitável é resolvida.

  • Os resultados paginados são otimizados para retornar primeiro a instância mais recente correspondente, o que pode resultar em registros duplicados nas páginas subsequentes se dados mais recentes correspondentes à consulta forem adicionados.
  • A correspondência não diferencia maiúsculas de minúsculas e acentos para tipos PN VR.
  • A correspondência não diferencia maiúsculas de minúsculas e acentua para outros tipos de VR de cadeia de caracteres.
  • Se houver um cenário em que cancelar um Workitem e consultar o mesmo acontece ao mesmo tempo, então a consulta provavelmente exclui o Workitem que está sendo atualizado e o código de resposta é 206 (Partial Content).

Nota

DICOM® é a marca registrada da National Electrical Manufacturers Association para suas publicações de padrões relacionados a comunicações digitais de informações médicas.