Condividi tramite


Istruzione di conformità DICOM v2

Nota

L'API versione 2 è la versione più recente dell'API. Per un elenco delle modifiche nella versione 2 rispetto alla versione 1, vedere Modifiche all'API del servizio DICOM v2

Medical Imaging Server per DICOM® supporta un subset dello standard DICOMweb. Il supporto include:

Inoltre, queste API non standard sono supportate:

Il servizio usa il controllo delle versioni dell'API REST. La versione dell'API REST deve essere specificata in modo esplicito come parte dell'URL di base, come nell'esempio seguente:

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

Questa versione dell'istruzione di conformità corrisponde alla v2 versione delle API REST.

Per altre informazioni su come specificare la versione durante l'esecuzione di richieste, vedere la documentazione sul controllo delle versioni dell'API.

È possibile trovare richieste di esempio per le transazioni supportate nella raccolta Postman.

Purificazione preambolo

Il servizio ignora il preambolo file a 128 byte e ne sostituisce il contenuto con caratteri Null. Questo comportamento garantisce che nessun file passato attraverso il servizio sia vulnerabile alla vulnerabilità del preambolo dannoso. Tuttavia, questo preambolo di purificazione significa anche che i preamboli usati per codificare contenuto in formato doppio, ad esempio TIFF, non possono essere usati con il servizio.

Servizio Studi

Il servizio Studies consente agli utenti di archiviare, recuperare e cercare studi, serie e istanze DICOM. È stata aggiunta la transazione Delete non standard per abilitare un ciclo di vita completo delle risorse.

Store (STOW-RS)

Questa transazione usa il metodo POST o PUT per archiviare rappresentazioni di studi, serie e istanze contenute nel payload della richiesta.

metodo Percorso Descrizione
POST .. /Studi Archiviare le istanze.
POST .. /studies/{study} Archiviare le istanze per uno studio specifico.
PUT .. /Studi Istanze di Upsert.
PUT .. /studies/{study} Istanze di Upsert per uno studio specifico.

Il parametro study corrisponde all'attributo DICOM StudyInstanceUID. Se specificato, qualsiasi istanza che non appartiene allo studio fornito viene rifiutata con un codice di 43265 avviso.

Di seguito è riportata l'unica intestazione di risposta Accept supportata:

  • application/dicom+json

Sono supportate le intestazioni seguenti Content-Type :

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

Nota

Il server non commetterà o sostituirà gli attributi in conflitto con i dati esistenti per le richieste POST. Tutti i dati vengono archiviati come specificato. Per le richieste upsert (PUT), i dati esistenti vengono sostituiti dai nuovi dati ricevuti.

Archiviare gli attributi obbligatori

Gli elementi DICOM seguenti devono essere presenti in ogni file DICOM che tenta di archiviare:

  • StudyInstanceUID
  • SeriesInstanceUID
  • SOPInstanceUID
  • SOPClassUID
  • PatientID

Nota

Tutti gli UID devono avere una lunghezza compresa tra 1 e 64 caratteri e contenere solo caratteri alfa numerici o i caratteri speciali seguenti: ., -. PatientID continua a essere un tag obbligatorio e può avere il valore come Null nell'input. PatientID viene convalidato in base al tipo LO VR .

Ogni file archiviato deve avere una combinazione univoca di StudyInstanceUID, SeriesInstanceUIDe SopInstanceUID. Il codice 45070 di avviso viene restituito se esiste già un file con gli stessi identificatori.

Vengono accettate solo le sintassi di trasferimento con rappresentazioni di valore esplicite.

Nota

Le richieste sono limitate a 4 GB. Nessun singolo file DICOM o combinazione di file potrebbe superare questo limite.

Archiviare le modifiche dalla versione 1

Nelle versioni precedenti una richiesta dello Store ha esito negativo se uno degli attributi richiesti o ricercabili non è riuscito a convalidare. A partire dalla versione 2, la richiesta ha esito negativo solo se gli attributi obbligatori non riescono a convalidare.

La convalida degli attributi non riuscita non richiesta dall'API comporta l'archiviazione del file con un avviso. Viene visualizzato un avviso relativo a ogni attributo con errori per ogni istanza. Quando una sequenza contiene un attributo che non riesce la convalida o quando si verificano più problemi con un singolo attributo, viene annotato solo il primo motivo dell'attributo non riuscito.

Se un attributo viene riempito con valori Null, l'attributo viene indicizzato quando è ricercabile e viene archiviato così com'è nei metadati dicom+json. Non viene fornito alcun avviso di convalida.

Archiviare i codici di stato della risposta

Codice Descrizione
200 (OK) Tutte le istanze SOP nella richiesta sono state archiviate.
202 (Accepted) Il server di origine ha archiviato alcune istanze e altre ha avuto esito negativo o ha restituito avvisi. È possibile trovare informazioni aggiuntive su questo errore nel corpo del messaggio di risposta.
204 (No Content) Nessun contenuto specificato nella richiesta di transazione di archiviazione.
400 (Bad Request) La richiesta non è stata formattata in modo corretto. Ad esempio, l'identificatore dell'istanza di studio fornita non è conforme al formato UID previsto.
401 (Unauthorized) Il client non è autenticato.
406 (Not Acceptable) L'intestazione specificata Accept non è supportata.
409 (Conflict) Nessuna delle istanze nella richiesta di transazione di archiviazione è stata archiviata.
415 (Unsupported Media Type) L'oggetto fornito Content-Type non è supportato.
424 (Failed Dependency) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
500 (Internal Server Error) Il server ha rilevato un errore interno sconosciuto. Riprovare.
503 (Service Unavailable) Il servizio non è disponibile o occupato. Riprovare.

Archiviare il payload della risposta

Il payload della risposta popola un set di dati DICOM con gli elementi seguenti:

Tag Nome Descrizione
(0008, 1190) RetrieveURL URL di recupero dello studio se studyInstanceUID è stato fornito nella richiesta di archiviazione e almeno un'istanza viene archiviata correttamente.
(0008, 1198) FailedSOPSequence Sequenza di istanze che non sono riuscite a archiviare.
(0008, 1199) ReferencedSOPSequence Sequenza di istanze archiviate.

Ogni set di dati in FailedSOPSequence ha gli elementi seguenti (se il file DICOM che tenta di essere archiviato potrebbe essere letto):

Tag Nome Descrizione
(0008, 1150) ReferencedSOPClassUID Identificatore univoco della classe SOP dell'istanza che non è riuscita a archiviare.
(0008, 1155) ReferencedSOPInstanceUID Identificatore univoco dell'istanza SOP dell'istanza che non è stato possibile archiviare.
(0008, 1197) FailureReason Codice motivo per cui questa istanza non è riuscita a archiviare.
(0008, 1196) WarningReason Un WarningReason indica i problemi di convalida rilevati ma che non sono stati sufficientemente gravi da non riuscire l'operazione di archiviazione.
(0074, 1048) FailedAttributesSequence Sequenza di che include il motivo di ErrorComment ogni attributo non riuscito.

Ogni set di dati in ReferencedSOPSequence ha gli elementi seguenti:

Tag Nome Descrizione
(0008, 1150) ReferencedSOPClassUID Identificatore univoco della classe SOP dell'istanza archiviata.
(0008, 1155) ReferencedSOPInstanceUID Identificatore univoco dell'istanza SOP dell'istanza archiviata.
(0008, 1190) RetrieveURL URL di recupero di questa istanza nel server DICOM.

Risposta di esempio con Accept intestazione application/dicom+json senza FailedAttributesSequence in un oggetto 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"]
      }
    }]
  }
}

Risposta di esempio con Accept intestazione application/dicom+json con failedAttributesSequence in un oggetto 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}]]]]]]"
              ]
            }
          }
        ]
      }
    }]
  }
}

Codici di motivo dell'errore di archiviazione

Codice Descrizione
272 La transazione di archiviazione non ha archiviato l'istanza a causa di un errore generale durante l'elaborazione dell'operazione.
43264 L'istanza DICOM non ha superato la convalida.
43265 L'istanza StudyInstanceUID specificata non corrisponde all'oggetto specificato StudyInstanceUID nella richiesta di archiviazione.
45070 Un'istanza DICOM con lo stesso StudyInstanceUIDoggetto , SeriesInstanceUIDe SopInstanceUID è già stata archiviata. Se si desidera aggiornare il contenuto, eliminare prima questa istanza.
45071 Un'istanza DICOM viene creata da un altro processo o il tentativo precedente di creare non è riuscito e il processo di pulizia non è completo. Eliminare prima di tentare di creare di nuovo l'istanza.

Archiviare i codici motivo di avviso

Codice Descrizione
45063 Un set di dati dell'istanza DICOM non corrisponde alla classe SOP. La transazione dell'archivio studi (sezione 10.5) ha osservato che il set di dati non corrisponde ai vincoli della classe SOP durante l'archiviazione dell'istanza.
1 La transazione dell'archivio studi (sezione 10.5) ha osservato che il set di dati ha convalidato

Archivia codici di errore

Codice Descrizione
100 Gli attributi dell'istanza forniti non soddisfano i criteri di convalida.

Recuperare (WADO-RS)

Questa transazione di recupero offre il supporto per il recupero di studi archiviati, serie, istanze e frame per riferimento.

metodo Percorso Descrizione
GET .. /studies/{study} Recupera tutte le istanze all'interno di uno studio.
GET .. /studies/{study}/metadata Recupera i metadati per tutte le istanze all'interno di uno studio
GET .. /studies/{study}/series/{series} Recupera tutte le istanze all'interno di una serie
GET .. /studies/{study}/series/{series}/metadata Recupera i metadati per tutte le istanze all'interno di una serie
GET .. /studies/{study}/series/{series}/instances/{instance} Recupera una singola istanza
GET .. /studies/{study}/series/{series}/instances/{instance}/metadata Recupera i metadati per una singola istanza
GET .. /studies/{study}/series/{series}/instances/{instance}/renderd Recupera un'istanza di cui viene eseguito il rendering in un formato immagine
GET .. /studies/{study}/series/{series}/instances/{instance}/frames/{frames} Recupera uno o più fotogrammi da una singola istanza. Per specificare più fotogrammi, una virgola separa ogni fotogramma da restituire. Ad esempio: /studies/1/series/2/instance/3/frames/4,5,6.
GET .. /studies/{study}/series/{series}/instances/{instance}/frames/{frame}/renderd Recupera un singolo frame di cui viene eseguito il rendering in un formato immagine

Recuperare istanze all'interno di uno studio o di una serie

Le intestazioni seguenti Accept sono supportate per il recupero di istanze all'interno di uno studio o di una serie.

  • multipart/related; type="application/dicom"; transfer-syntax=*
  • multipart/related; type="application/dicom"; Quando non viene specificata la sintassi di trasferimento, viene usata come impostazione predefinita 1.2.840.10008.1.2.1.
  • 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 non viene specificata la sintassi di trasferimento, * viene usata come impostazione predefinita e mediaType viene application/dicomusato per impostazione predefinita .

Recuperare un'istanza

Le intestazioni seguenti Accept sono supportate per il recupero di un'istanza specifica.

  • application/dicom; transfer-syntax=*
  • multipart/related; type="application/dicom"; transfer-syntax=*
  • application/dicom; (quando la sintassi di trasferimento non è specificata, 1.2.840.10008.1.2.1 viene usata come impostazione predefinita)
  • multipart/related; type="application/dicom" (quando la sintassi di trasferimento non è specificata, 1.2.840.10008.1.2.1 viene usata come impostazione predefinita)
  • 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 non viene specificata la sintassi di trasferimento, * viene usata come impostazione predefinita e mediaType viene application/dicomusato per impostazione predefinita .

Recuperare fotogrammi

Le intestazioni seguenti Accept sono supportate per il recupero dei fotogrammi.

  • multipart/related; type="application/octet-stream"; transfer-syntax=*
  • multipart/related; type="application/octet-stream"; (quando la sintassi di trasferimento non è specificata, 1.2.840.10008.1.2.1 viene usata come impostazione predefinita)
  • multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1
  • multipart/related; type="image/jp2"; (quando la sintassi di trasferimento non è specificata, 1.2.840.10008.1.2.4.90 viene usata come impostazione predefinita)
  • multipart/related; type="image/jp2";transfer-syntax=1.2.840.10008.1.2.4.90
  • application/octet-stream; transfer-syntax=* per il recupero di fotogrammi singoli
  • */* Quando non viene specificata la sintassi di trasferimento, * viene usata come impostazione predefinita e mediaType viene application/octet-streamusato per impostazione predefinita .

Recuperare la sintassi di trasferimento

Quando la sintassi di trasferimento richiesta è diversa dal file originale, il file originale viene transcodificato per la sintassi di trasferimento richiesta. Il file originale deve essere uno dei formati seguenti per la transcodifica, altrimenti la transcodifica potrebbe non riuscire.

  • 1.2.840.10008.1.2 (implicito Little Endian)
  • 1.2.840.10008.1.2.1 (Little Endian Explicit)
  • 1.2.840.10008.1.2.2 (Explicit VR Big Endian)
  • 1.2.840.10008.1.2.4.50 (processo di base JPEG 1)
  • 1.2.840.10008.1.2.4.57 (JPEG senza perdita)
  • 1.2.840.10008.1.2.4.70 (valore di selezione senza perdita JPEG 1)
  • 1.2.840.10008.1.2.4.90 (solo JPEG 2000 senza perdita)
  • 1.2.840.10008.1.2.4.91 (JPEG 2000)
  • 1.2.840.10008.1.2.5 (senza perdita RLE)

Un risultato non supportato transfer-syntax in 406 Not Acceptable.

Recuperare i metadati (per studio, serie o istanza)

L'intestazione seguente Accept è supportata per il recupero di metadati per uno studio, una serie o un'istanza.

  • application/dicom+json

Il recupero dei metadati non restituisce attributi con le rappresentazioni di valore seguenti.

Nome VR Descrizione
OB Altro byte
OD Altro doppio
OF Altro float
OL Altro long
OV Altri 64 bit molto lunghi
OW Altre parole
UN Sconosciuto

I metadati recuperati includono il carattere Null quando l'attributo è stato riempito con valori Null e archiviato così come è.

Recuperare la convalida della cache dei metadati (per studio, serie o istanza)

La convalida della cache è supportata tramite il ETag meccanismo . Nella risposta a una richiesta di metadati, ETag viene restituito come una delle intestazioni. Questo ETag può essere memorizzato nella cache e aggiunto come If-None-Match intestazione nelle richieste successive per gli stessi metadati. Se i dati esistono, sono possibili due tipi di risposte.

  • I dati sono invariati dall'ultima richiesta: la HTTP 304 (Not Modified) risposta viene inviata senza corpo della risposta.
  • Dati modificati dall'ultima richiesta: la HTTP 200 (OK) risposta viene inviata con ETag aggiornato. I dati obbligatori vengono restituiti come parte del corpo.

Recuperare un'immagine di cui è stato eseguito il rendering (ad esempio o frame)

Le intestazioni seguenti Accept sono supportate per il recupero di un'immagine sottoposta a rendering di un'istanza o di un frame.

  • image/jpeg
  • image/png

Nel caso in cui non venga specificata alcuna Accept intestazione, il servizio esegue il rendering di un oggetto image/jpeg per impostazione predefinita.

Il servizio supporta solo il rendering di un singolo frame. Se il rendering viene richiesto per un'istanza con più fotogrammi, per impostazione predefinita viene eseguito il rendering solo del primo fotogramma come immagine.

Quando si specifica un frame specifico da restituire, l'indicizzazione dei fotogrammi inizia da 1.

Il quality parametro di query è supportato anche. Un valore intero compreso tra 1 e 100 inclusivo (1 è di qualità peggiore e 100 è la migliore qualità) può essere passato come valore per il parametro di query. Questo parametro viene usato per le immagini di cui viene eseguito il rendering come jpege viene ignorato per png le richieste di rendering. Se il parametro non è specificato per impostazione predefinita su 100.

Recuperare la versione originale

L'uso dell'operazione di aggiornamento bulk consente di recuperare la versione originale o più recente di uno studio, di una serie o di un'istanza. La versione più recente di uno studio, una serie o un'istanza viene sempre restituita per impostazione predefinita. La versione originale potrebbe essere restituita impostando l'intestazione msdicom-request-original su true. Ecco una richiesta di esempio:

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

Recuperare i codici di stato della risposta

Codice Descrizione
200 (OK) Tutti i dati richiesti sono stati recuperati.
304 (Not Modified) I dati richiesti sono invariati rispetto all'ultima richiesta. Il contenuto non viene aggiunto al corpo della risposta in questo caso. Per altre informazioni, vedere la sezione precedente Recuperare la convalida della cache dei metadati (per studio, serie o istanza).
400 (Bad Request) La richiesta non è stata formattata in modo corretto. Ad esempio, l'identificatore dell'istanza di studio fornita non è conforme al formato UID previsto o la codifica della sintassi di trasferimento richiesta non è supportata.
401 (Unauthorized) Il client non è autenticato.
403 (Forbidden) L'utente non è autorizzato.
404 (Not Found) Impossibile trovare la risorsa DICOM specificata o per la richiesta sottoposta a rendering l'istanza non contiene dati pixel.
406 (Not Acceptable) L'intestazione specificata Accept non è supportata o per il rendering e le transazioni richiedono che il file richiesto sia troppo grande.
424 (Failed Dependency) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
503 (Service Unavailable) Il servizio non è disponibile o occupato. Riprovare.

Ricerca (QIDO-RS)

La query basata sull'ID per oggetti DICOM (QIDO) consente di cercare studi, serie e istanze in base agli attributi.

metodo Percorso Descrizione
Cerca studi
GET .. /Studi?... Ricerca di studi
Cercare serie
GET .. /serie?... Cercare serie
GET .. /studies/{study}/series?... Cercare serie in uno studio
Cercare istanze
GET .. /Istanze?... Cercare istanze
GET .. /studies/{study}/instances?... Cercare istanze in uno studio
GET .. /studies/{study}/series/{series}/instances?... Cercare istanze in una serie

L'intestazione seguente Accept è supportata per la ricerca.

  • application/dicom+json

Cercare le modifiche dalla versione 1

Nell'API v1 e continua per la versione 2, se un tag di query estesa presenta errori perché una o più istanze esistenti hanno un valore di tag che non è stato possibile indicizzare, le query di ricerca successive contenenti il tag di query estesa vengono restituite erroneous-dicom-attributes come descritto in dettaglio nella documentazione. Tuttavia, i tag (noti anche come attributi) con avvisi di convalida di STOW-RS non sono inclusi in questa intestazione. Se una richiesta di archivio genera avvisi di convalida per gli attributi ricercabili al momento dell'archiviazione dell'istanza, tali attributi potrebbero non essere usati per cercare l'istanza archiviata. Tuttavia, tutti gli attributi ricercabili che non hanno superato la convalida possono restituire risultati se i valori vengono sovrascritti dalle istanze dello stesso studio o serie archiviate dopo l'operazione non riuscita oppure se i valori sono già archiviati correttamente da un'istanza precedente. Se i valori degli attributi non vengono sovrascritti, non producono risultati di ricerca.

Un attributo può essere corretto nei modi seguenti.

  • Eliminare l'istanza archiviata e caricare una nuova istanza con i dati corretti
  • Caricare una nuova istanza nella stessa serie/studio con dati corretti

Parametri di ricerca supportati

Sono supportati i parametri seguenti per ogni query:

Chiave Valori di supporto Conteggio consentito Descrizione
{attributeID}= {value} 0...N Cercare la corrispondenza tra attributi e valori nella query
includefield= {attributeID}
all
0...N Gli altri attributi da restituire nella risposta. Sono supportati sia tag pubblici che privati.
Quando all viene specificato, fare riferimento a Cerca risposta per altre informazioni.
Se viene specificata una combinazione di {attributeID} e all , per impostazione predefinita il server usa all
limit= {value} 0..1 Valore intero per limitare il numero di valori restituiti nella risposta.
Il valore può essere compreso tra l'intervallo 1 >= x <= 200. Il valore predefinito è 100
offset= {value} 0..1 Ignorare {value} i risultati.
Se viene fornito un offset maggiore del numero di risultati della query di ricerca, viene restituita una risposta 204 (nessun contenuto).
fuzzymatching= true / false 0..1 Se la corrispondenza fuzzy true viene applicata all'attributo PatientName. Esegue una corrispondenza di parola con prefisso di qualsiasi parte del nome all'interno del valore PatientName. Ad esempio, se PatientName è "John^Doe", "joh", "do", "jo do", "Doe" e "John Doe" corrispondono tutti. Tuttavia, "ohn" non corrisponde.

Attributi ricercabili

È supportata la ricerca negli attributi e nei tipi di ricerca seguenti.

Parola chiave Attribute Tutti gli studi Tutte le serie Tutte le istanze Serie di studi Istanze dello studio Istanze della serie di studi
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

Non è supportata la ricerca usando una stringa vuota per gli attributi.

Ricerca corrispondente

Sono supportati i tipi di corrispondenza seguenti.

Tipo di ricerca Attributo supportato Esempio
Query di intervallo StudyDate/PatientBirthDate {attributeID}={value1}-{value2}. Per i valori di data/ora, è supportato un intervallo inclusivo nel tag . Questo intervallo è mappato a attributeID >= {value1} AND attributeID <= {value2}. Se {value1} non viene specificato, tutte le occorrenze di date/ore precedenti e incluse {value2} vengono confrontate. Analogamente, se {value2} non viene specificato, vengono confrontate tutte le occorrenze di {value1} e le date/ore successive. Tuttavia, uno di questi valori deve essere presente. {attributeID}={value1}- e {attributeID}=-{value2} sono validi, tuttavia, {attributeID}=- non è valido.
Corrispondenza esatta Tutti gli attributi supportati {attributeID}={value1}
Corrispondenza fuzzy PatientName, ReferringPhysicianName Corrisponde a qualsiasi componente del nome che inizia con il valore
Corrispondenza elenco UID StudyInstanceUID Corrisponde agli studi identificati dai valori forniti nell'elenco. Supporta la virgola (,) o una barra rovesciata (\) come separatore valido. {attributeID}=1.2.3,5.6.7,8.9.0 restituirà i dettagli associati a tutti gli studi, dato che esistono.

ID attributo

I tag possono essere codificati in diversi modi per il parametro di query. Lo standard è stato parzialmente implementato come definito in PS3.18 6.7.1.1.1. Sono supportate le codifiche seguenti per un tag.

Valore Esempio
{group}{element} 0020000D
{dicomKeyword} StudyInstanceUID

Query di esempio per la ricerca di istanze:

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

Risposta di ricerca

La risposta è una matrice di set di dati DICOM. A seconda della risorsa, per impostazione predefinita vengono restituiti gli attributi seguenti.

Tag di studio predefiniti

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

Tag serie predefiniti

Tag Nome attributo
(0008, 0060) Modality
(0008, 1090) ManufacturerModelName
(0020, 000E) SeriesInstanceUID
(0040, 0244) PerformedProcedureStepStartDate

Tag di istanza predefiniti

Tag Nome attributo
(0008, 0018) SOPInstanceUID

Se includefield=all, questi attributi vengono inclusi insieme agli attributi predefiniti. Insieme agli attributi predefiniti, questo elenco contiene un elenco completo degli attributi supportati a ogni livello di risorsa.

Altri tag di studio

Tag Nome attributo
(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

Altri tag serie

Tag Nome attributo
(0008, 0005) SpecificCharacterSet
(0008, 0201) TimezoneOffsetFromUTC
(0020, 0011) SeriesNumber
(0020, 0060) Lateralità
(0008, 0021) SeriesDate
(0008, 0031) SeriesTime
(0008, 103E) SeriesDescription
(0040, 0245) PerformedProcedureStepStartTime
(0040, 0275) RequestAttributesSequence

Altri tag di istanza

Tag Nome attributo
(0008, 0005) SpecificCharacterSet
(0008, 0016) SOPClassUID
(0008, 0056) InstanceAvailability
(0008, 0201) TimezoneOffsetFromUTC
(0020, 0013) InstanceNumber
(0028, 0010) Righe
(0028, 0011) Colonne
(0028, 0100) BitsAllocated
(0028, 0008) NumberOfFrames

Vengono restituiti gli attributi seguenti.

  • Tutti i parametri di query e gli UID corrispondenti nell'URL della risorsa
  • IncludeField attributi supportati a livello di risorsa
  • Se la risorsa di destinazione è All Series, Study vengono restituiti anche gli attributi di livello.
  • Se la risorsa di destinazione è All Instances, Study vengono restituiti anche gli attributi di livello.Series
  • Se la risorsa di destinazione è Study's Instances, Series vengono restituiti anche gli attributi di livello.
  • NumberOfStudyRelatedInstances L'attributo aggregato è supportato nel Study livello includeField.
  • NumberOfSeriesRelatedInstances L'attributo aggregato è supportato nel Series livello includeField.

Codici di risposta di ricerca

L'API di query restituisce uno dei codici di stato seguenti nella risposta.

Codice Descrizione
200 (OK) Il payload della risposta contiene tutte le risorse corrispondenti.
204 (No Content) La ricerca è stata completata correttamente ma non ha restituito risultati.
400 (Bad Request) Il server non è riuscito a eseguire la query perché il componente di query non è valido. Il corpo della risposta contiene i dettagli dell'errore.
401 (Unauthorized) Il client non è autenticato.
403 (Forbidden) L'utente non è autorizzato.
414 (URI Too Long) L'URI ha superato la lunghezza massima supportata di 8192 caratteri.
424 (Failed Dependency) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
503 (Service Unavailable) Il servizio non è disponibile o occupato. Riprovare.

Note

  • L'esecuzione di query con non TimezoneOffsetFromUTC (00080201) è supportata.
  • L'API di query non restituisce 413 (request entity too large). Se il limite di risposta della query richiesto non rientra nell'intervallo accettabile, viene restituita una richiesta non valida. Qualsiasi elemento richiesto all'interno dell'intervallo accettabile viene risolto.
  • Quando la risorsa di destinazione è Study/Series, esiste un potenziale per i metadati a livello di studio/serie incoerenti tra più istanze. Ad esempio, due istanze potrebbero avere un valore diverso patientName. In questo caso, la più recente vince ed è possibile eseguire ricerche solo sui dati più recenti.
  • I risultati di paging sono ottimizzati per restituire prima di tutto l'istanza più recente corrispondente, generando record duplicati nelle pagine successive se sono stati aggiunti dati più recenti corrispondenti alla query.
  • La corrispondenza non fa distinzione tra maiuscole e minuscole e non fa distinzione tra caratteri accentati per i tipi VR PN.
  • La corrispondenza non fa distinzione tra maiuscole e minuscole e fa distinzione tra caratteri accentati per altri tipi vr stringa.
  • Solo il primo valore viene indicizzato di un singolo elemento dati con valori che contiene erroneamente più valori.
  • L'uso degli attributi predefiniti o la limitazione del numero di risultati richiesti ottimizza le prestazioni.
  • Quando un attributo è stato archiviato usando spaziatura interna Null, può essere cercato con o senza la spaziatura interna Null nella codifica URI. I risultati recuperati sono per gli attributi archiviati sia con che senza spaziatura interna Null.

Elimina

Questa transazione non fa parte dello standard DICOMweb ufficiale. Usa il metodo DELETE per rimuovere le rappresentazioni di Studi, Serie e Istanze dall'archivio.

metodo Percorso Descrizione
DELETE .. /studies/{study} Eliminare tutte le istanze per uno studio specifico.
DELETE .. /studies/{study}/series/{series} Eliminare tutte le istanze per una serie specifica all'interno di uno studio.
DELETE .. /studies/{study}/series/{series}/instances/{instance} Eliminare un'istanza specifica all'interno di una serie.

I studyparametri , seriese instance corrispondono rispettivamente agli attributi StudyInstanceUIDDICOM , SeriesInstanceUIDe SopInstanceUID .

Non esistono restrizioni relative all'intestazione, Content-Type all'intestazione o al contenuto del corpo della Accept richiesta.

Nota

Dopo una transazione di eliminazione, le istanze eliminate non saranno recuperabili.

Codici di stato della risposta

Codice Descrizione
204 (No Content) Quando vengono eliminate tutte le istanze SOP.
400 (Bad Request) La richiesta non è stata formattata in modo corretto.
401 (Unauthorized) Il client non è autenticato.
403 (Forbidden) L'utente non è autorizzato.
404 (Not Found) Quando la serie specificata non è stata trovata all'interno di uno studio o l'istanza specificata non è stata trovata all'interno della serie.
424 (Failed Dependency) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
503 (Service Unavailable) Il servizio non è disponibile o occupato. Riprovare.

Eliminare il payload della risposta

Il corpo della risposta è vuoto. Il codice di stato è l'unica informazione utile restituita.

Servizio Worklist (UPS-RS)

Il servizio DICOM supporta SOP push e pull di Worklist Service (UPS-RS). Questo servizio fornisce l'accesso a un elenco di lavoro contenente elementi di lavoro, ognuno dei quali rappresenta un passaggio di procedura unificata (UPS).

In tutto, la variabile {workitem} in un modello URI è l'acronimo di workitem UID.

Gli endpoint UPS-RS disponibili includono:

Verbo Percorso Descrizione
POST {s}/workitems{? AffectedSOPInstanceUID} Creare un elemento di lavoro
POST {s}/workitems/{instance}{?transaction} Aggiornare un elemento di lavoro
GET {s}/workitems{?query*} Cercare elementi di lavoro
GET {s}/workitems/{instance} Recuperare un elemento di lavoro
PUT {s}/workitems/{instance}/state Modificare lo stato dell'elemento di lavoro
POST {s}/workitems/{instance}/cancelrequest Annullare l'elemento di lavoro
POST {s}/workitems/{instance}/subscribers/{AETitle}{?deletionlock} Creazione di una sottoscrizione
POST {s}/workitems/1.2.840.10008.5.1.4.34.5/ Sospendere la sottoscrizione
DELETE {s}/workitems/{instance}/subscribers/{AETitle} Eliminare una sottoscrizione
GET {s}/subscribers/{AETitle} Aprire il canale di sottoscrizione

Creare l'elemento di lavoro

Questa transazione usa il metodo POST per creare un nuovo elemento Workitem.

metodo Percorso Descrizione
POST .. /workitems Creare un elemento di lavoro.
POST .. /workitems? {workitem} Crea un elemento di lavoro con l'UID specificato.

Se non specificato nell'URI, il set di dati del payload deve contenere l'elemento Workitem nell'attributo SOPInstanceUID .

Le Accept intestazioni e Content-Type sono necessarie nella richiesta e devono avere entrambi il valore application/dicom+json.

Esistono diversi requisiti correlati agli attributi di dati DICOM nel contesto di una transazione specifica. È possibile che gli attributi siano presenti, che non siano presenti, che devono essere vuoti o che non siano vuoti. Questi requisiti sono disponibili in questa tabella.

Nota

Anche se la tabella di riferimento indica che l'UID dell'istanza SOP non deve essere presente, queste indicazioni sono specifiche del protocollo DIMSE e vengono gestite in modo diverso in DICOMWeb. L'UID dell'istanza SOP deve essere presente nel set di dati, se non nell'URI.

Nota

Tutti i codici dei requisiti condizionali inclusi 1C e 2C vengono considerati facoltativi.

Creare codici di stato della risposta

Codice Descrizione
201 (Created) L'elemento di lavoro di destinazione è stato creato correttamente.
400 (Bad Request) Si è verificato un problema con la richiesta. Ad esempio, il payload della richiesta non soddisfa i requisiti.
401 (Unauthorized) Il client non è autenticato.
403 (Forbidden) L'utente non è autorizzato.
409 (Conflict) L'elemento di lavoro esiste già.
415 (Unsupported Media Type) L'oggetto fornito Content-Type non è supportato.
424 (Failed Dependency) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
503 (Service Unavailable) Il servizio non è disponibile o occupato. Riprovare.

Creare il payload della risposta

Una risposta di esito positivo non ha payload. Le Location intestazioni di risposta e Content-Location contengono un riferimento URI all'elemento workitem creato.

Un payload di risposta di errore contiene un messaggio che descrive l'errore.

Richiedere l'annullamento

Questa transazione consente all'utente di richiedere l'annullamento di un elemento di lavoro non di proprietà.

Esistono quattro stati di Workitem validi:

  • SCHEDULED
  • IN PROGRESS
  • CANCELED
  • COMPLETED

Questa transazione ha esito positivo solo su Elementi di lavoro nello SCHEDULED stato . Qualsiasi utente può richiedere la proprietà di un elemento di lavoro impostando il relativo UID transazione e modificandone lo stato su IN PROGRESS. Da allora, un utente può modificare solo l'elemento di lavoro specificando l'UID transazione corretto. Mentre UPS definisce le classi SOP watch ed event che consentono l'inoltro di richieste di annullamento e altri eventi, questo servizio DICOM non implementa queste classi e quindi le richieste di annullamento sugli elementi di lavoro che restituiscono IN PROGRESS un errore. Un elemento di lavoro di proprietà può essere annullato tramite la transazione Change Workitem State .

metodo Percorso Descrizione
POST .. /workitems/{workitem}/cancelrequest Richiedere l'annullamento di un elemento di lavoro pianificato

L'intestazione Content-Type è obbligatoria e deve avere il valore application/dicom+json.

Il payload della richiesta può includere informazioni sull'azione definite nello standard DICOM.

Codici di stato della risposta di annullamento della richiesta

Codice Descrizione
202 (Accepted) La richiesta è stata accettata dal server, ma lo stato dell'elemento di lavoro di destinazione non è ancora stato modificato.
400 (Bad Request) Si è verificato un problema con la sintassi della richiesta.
401 (Unauthorized) Il client non è autenticato.
403 (Forbidden) L'utente non è autorizzato.
404 (Not Found) L'elemento di lavoro di destinazione non è stato trovato.
409 (Conflict) La richiesta non è coerente con lo stato corrente dell'elemento di lavoro di destinazione. Ad esempio, l'elemento di lavoro di destinazione è nello SCHEDULED stato o COMPLETED .
415 (Unsupported Media Type) L'oggetto fornito Content-Type non è supportato.
424 (Failed Dependency) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
503 (Service Unavailable) Il servizio non è disponibile o occupato. Riprovare.

Payload della risposta di annullamento della richiesta

Una risposta di esito positivo non ha payload e un payload di risposta di errore contiene un messaggio che descrive l'errore. Se l'istanza dell'elemento di lavoro è già in uno stato annullato, la risposta include l'intestazione di avviso HTTP seguente: 299: The UPS is already in the requested state of CANCELED.

Recuperare l'elemento di lavoro

Questa transazione recupera un elemento Workitem. Corrisponde all'operazione UPS DIMSE N-GET.

Fare riferimento a: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.5

Se l'elemento di lavoro esiste nel server di origine, l'elemento di lavoro viene restituito in un tipo di supporto accettabile. L'elemento di lavoro restituito non conterrà l'attributo Transaction UID (0008,1195). Ciò è necessario per mantenere il ruolo dell'attributo come blocco di accesso.

metodo Percorso Descrizione
GET .. /workitems/{workitem} Richiesta di recupero di un elemento di lavoro

L'intestazione Accept è obbligatoria e deve avere il valore application/dicom+json.

Recuperare i codici di stato della risposta di Workitem

Codice Descrizione
200 (OK) L'istanza dell'elemento di lavoro è stata recuperata correttamente.
400 (Richiesta non valida) Si è verificato un problema con la richiesta.
401 (Non autorizzato) Il client non è autenticato.
403 (accesso negato) L'utente non è autorizzato.
404 (non trovato) L'elemento di lavoro di destinazione non è stato trovato.
424 (dipendenza non riuscita) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
503 (Servizio non disponibile) Il servizio non è disponibile o occupato. Riprovare.

Recuperare il payload della risposta dell'elemento di lavoro

  • Una risposta di esito positivo ha un payload in una singola parte contenente l'elemento di lavoro richiesto nel tipo di supporto selezionato.
  • L'elemento Workitem restituito non deve contenere l'attributo Transaction UID (0008, 1195) dell'elemento Workitem, perché deve essere noto solo al proprietario.

Aggiornare l'elemento di lavoro

Questa transazione modifica gli attributi di un elemento di lavoro esistente. Corrisponde all'operazione UPS DIMSE N-SET.

Fare riferimento a: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.6

Per aggiornare un elemento di lavoro attualmente nello SCHEDULED stato, l'attributo Transaction UID non deve essere presente. Per un elemento di lavoro nello IN PROGRESS stato, la richiesta deve includere l'UID transazione corrente come parametro di query. Se l'elemento di lavoro è già presente negli COMPLETED stati o CANCELED , la risposta è 400 (Bad Request).

metodo Percorso Descrizione
POST .. /workitems/{workitem}? {transaction-uid} Aggiornare la transazione dell'elemento di lavoro

L'intestazione Content-Type è obbligatoria e deve avere il valore application/dicom+json.

Il payload della richiesta contiene un set di dati con le modifiche da applicare all'elemento di lavoro di destinazione. Quando viene modificata una sequenza, la richiesta deve includere tutti gli elementi nella sequenza, non solo gli elementi da modificare. Quando è necessario aggiornare più attributi come gruppo, aggiornarli come più attributi in una singola richiesta, non come più richieste.

Esistono molti requisiti correlati agli attributi di dati DICOM nel contesto di una transazione specifica. È possibile che gli attributi siano presenti, che non siano presenti, che devono essere vuoti o che non siano vuoti. Questi requisiti sono disponibili in questa tabella.

Nota

Tutti i codici dei requisiti condizionali inclusi 1C e 2C vengono considerati facoltativi.

Nota

La richiesta non può impostare il valore dell'attributo Procedure Step State (0074.1000). Lo stato del passaggio della procedura viene gestito tramite la transazione Change State o la transazione Request Cancellation.

Aggiornare i codici di stato della risposta delle transazioni Workitem

Codice Descrizione
200 (OK) L'elemento di lavoro di destinazione è stato aggiornato.
400 (Bad Request) Si è verificato un problema con la richiesta. Ad esempio: (1) l'elemento di lavoro di destinazione era nello COMPLETED stato o CANCELED . (2) L'UID della transazione non è presente. (3) L'UID della transazione non è corretto. (4) il set di dati non è conforme ai requisiti.
401 (Unauthorized) Il client non è autenticato.
403 (Forbidden) L'utente non è autorizzato.
404 (Not Found) L'elemento di lavoro di destinazione non è stato trovato.
409 (Conflict) La richiesta non è coerente con lo stato corrente dell'elemento di lavoro di destinazione.
415 (Unsupported Media Type) L'oggetto fornito Content-Type non è supportato.
424 (Failed Dependency) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
503 (Service Unavailable) Il servizio non è disponibile o occupato. Riprovare.

Aggiornare il payload della risposta della transazione Workitem

Il server di origine supporta i campi di intestazione come richiesto nella tabella 11.6.3-2.

Una risposta di esito positivo non ha payload o un payload contenente un documento report sullo stato.

Un payload di risposta agli errori può contenere un report sullo stato che descrive eventuali errori, avvisi o altre informazioni utili.

Modificare lo stato dell'elemento di lavoro

Questa transazione viene utilizzata per modificare lo stato di un elemento di lavoro. Corrisponde all'operazione UPS DIMSE N-ACTION "Change UPS State". Le modifiche di stato vengono usate per richiedere la proprietà, il completamento o l'annullamento di un elemento di lavoro.

Fare riferimento a: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.7

Se l'elemento di lavoro esiste nel server di origine, l'elemento di lavoro viene restituito in un tipo di supporto accettabile. L'elemento workitem restituito non conterrà l'attributo Transaction UID (0008,1195). Questa operazione è necessaria per mantenere il ruolo dell'attributo come blocco di accesso, come descritto qui.

metodo Percorso Descrizione
PUT .. /workitems/{workitem}/state Modificare lo stato dell'elemento di lavoro

L'intestazione Accept è obbligatoria e deve avere il valore application/dicom+json.

Il payload della richiesta contiene gli elementi Change UPS State Data. Questi elementi di dati sono i seguenti.

  • UID transazione (0008, 1195). Il payload della richiesta include un UID della transazione. L'agente utente crea l'UID della transazione quando si richiede una transizione allo IN PROGRESS stato per un determinato elemento di lavoro. L'agente utente fornisce l'UID della transazione nelle transazioni successive con tale elemento di lavoro.
  • Stato passaggio routine (0074, 1000). I valori legali corrispondono alla transizione di stato richiesta. Si tratta di: IN PROGRESS, COMPLETEDo CANCELED.

Modificare i codici di stato della risposta dello stato dell'elemento di lavoro

Codice Descrizione
200 (OK) L'istanza dell'elemento di lavoro è stata recuperata correttamente.
400 (Bad Request) La richiesta non può essere eseguita per uno dei motivi seguenti: (1) la richiesta non è valida in base allo stato corrente dell'elemento di lavoro di destinazione. (2) L'UID della transazione non è presente. (3) L'UID della transazione non è corretto
401 (Unauthorized) Il client non è autenticato.
403 (Forbidden) L'utente non è autorizzato.
404 (Not Found) L'elemento di lavoro di destinazione non è stato trovato.
409 (Conflict) La richiesta non è coerente con lo stato corrente dell'elemento di lavoro di destinazione.
424 (Failed Dependency) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
503 (Service Unavailable) Il servizio non è disponibile o occupato. Riprovare.

Modificare il payload della risposta allo stato dell'elemento di lavoro

  • Le risposte includono i campi di intestazione specificati nella sezione 11.7.3.2.
  • Una risposta di esito positivo non ha payload.
  • Un payload di risposta agli errori può contenere un report sullo stato che descrive eventuali errori, avvisi o altre informazioni utili.

Cerca elementi di lavoro

Questa transazione consente di cercare Elementi di lavoro in base agli attributi.

metodo Percorso Descrizione
GET .. /workitems? Cercare Elementi di lavoro

L'intestazione seguente Accept è supportata per la ricerca.

  • application/dicom+json

Parametri di ricerca supportati

Sono supportati i parametri seguenti per ogni query:

Chiave Valori di supporto Conteggio consentito Descrizione
{attributeID}= {value} 0...N Cercare la corrispondenza tra attributi e valori nella query.
includefield= {attributeID}
all
0...N Gli altri attributi da restituire nella risposta. È possibile includere solo gli attributi di primo livello, non gli attributi che fanno parte delle sequenze. Sono supportati sia tag pubblici che privati. Quando all viene specificato. Per altre informazioni sugli attributi restituiti per ogni tipo di query, vedere Search Response .See Search Response for more information about which attributes are returned for each query type. Se viene specificata una combinazione di {attributeID} e all , per impostazione predefinita il server usa 'all'.
limit= {value} 0...1 Valore intero per limitare il numero di valori restituiti nella risposta. Il valore può essere compreso tra l'intervallo 1 >= x <= 200. Il valore predefinito è 100.
offset= {value} 0...1 Ignorare i risultati di {value}. Se viene fornito un offset maggiore del numero di risultati della query di ricerca, viene restituita una 204 (no content) risposta.
fuzzymatching= true \ false 0...1 Se la corrispondenza fuzzy true viene applicata a qualsiasi attributo con la rappresentazione vr (Person Name) Value Representation (PN). Esegue una corrispondenza di parola con prefisso di qualsiasi parte del nome all'interno di questi attributi. Ad esempio, se PatientName è John^Doe, joh, do, jo doe Doe John Doe tutte corrispondono. Tuttavia ohn , non corrisponde.
Attributi ricercabili

È supportata la ricerca negli attributi seguenti.

Parola chiave Attribute
PatientName
PatientID
ReferencedRequestSequence.AccessionNumber
ReferencedRequestSequence.RequestedProcedureID
ScheduledProcedureStepStartDateTime
ScheduledStationNameCodeSequence.CodeValue
ScheduledStationClassCodeSequence.CodeValue
ScheduledStationGeographicLocationCodeSequence.CodeValue
ProcedureStepState
StudyInstanceUID

Nota

Non è supportata la ricerca usando una stringa vuota per gli attributi.

Ricerca corrispondente

Sono supportati i tipi di corrispondenza seguenti.

Tipo di ricerca Attributo supportato Esempio
Query di intervallo ScheduledProcedureStepStartDateTime {attributeID}={value1}-{value2}. Per i valori di data/ora, è supportato un intervallo inclusivo nel tag . Questo intervallo è mappato a attributeID >= {value1} AND attributeID <= {value2}. Se {value1} non viene specificato, tutte le occorrenze di date/ore precedenti e incluse {value2} vengono confrontate. Analogamente, se {value2} non viene specificato, vengono confrontate tutte le occorrenze di {value1} e le date/ore successive. Tuttavia, uno di questi valori deve essere presente. {attributeID}={value1}- e {attributeID}=-{value2} sono validi, tuttavia, {attributeID}=- non è valido.
Corrispondenza esatta Tutti gli attributi supportati {attributeID}={value1}
Corrispondenza fuzzy PatientName Corrisponde a qualsiasi componente del nome che inizia con il valore .
Corrispondenza con caratteri jolly PatientID,
ReferencedRequestSequence.AccessionNumber,
ReferencedRequestSequence.RequestedProcedureID,
ProcedureStepState,
ScheduledStationNameCodeSequence.CodeValue,
ScheduledStationClassCodeSequence.CodeValue,
ScheduledStationGeographicLocationCodeSequence.CodeValue
Sono supportati i caratteri jolly seguenti:
* - Corrisponde a zero o più caratteri. Ad esempio, {attributeID}={val*} corrisponde a "val", "valid", "value" ma non "evaluate".
? - Trova la corrispondenza con un singolo carattere. Ad esempio, {attributeID}={valu?} corrisponde a "value", "valu1" ma non a "valued" o "valu"

Nota

Anche se non è supportata la corrispondenza completa della sequenza, è supportata la corrispondenza esatta sugli attributi elencati in una sequenza.

ID attributo

I tag possono essere codificati in molti modi per il parametro di query. Lo standard è stato parzialmente implementato come definito in PS3.18 6.7.1.1.1. Sono supportate le codifiche seguenti per un tag.

Valore Esempio
{group}{element} 00100010
{dicomKeyword} PatientName

Query di esempio:

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

Risposta di ricerca

La risposta è una matrice di set di 0...N dati DICOM con gli attributi seguenti restituiti.

  • Tutti gli attributi in DICOM PowerShell 3.4 Table CC.2.5-3 con un tipo di chiave restituito 1 o 2
  • Tutti gli attributi in DICOM PowerShell 3.4 Table CC.2.5-3 con un tipo di chiave restituito 1C per cui vengono soddisfatti i requisiti condizionali
  • Tutti gli altri attributi workitem passati come parametri di corrispondenza
  • Tutti gli altri attributi workitem passati come includefield valori di parametro

Codici di risposta di ricerca

L'API di query restituisce uno dei codici di stato seguenti nella risposta:

Codice Descrizione
200 (OK) Il payload della risposta contiene tutte le risorse corrispondenti.
206 (Partial Content) Il payload della risposta contiene solo alcuni dei risultati della ricerca e il resto può essere richiesto tramite la richiesta appropriata.
204 (No Content) La ricerca è stata completata correttamente ma non ha restituito risultati.
400 (Bad Request) Si è verificato un problema con la richiesta. Ad esempio, sintassi del parametro di query non valida. Il corpo della risposta contiene i dettagli dell'errore.
401 (Unauthorized) Il client non è autenticato.
403 (Forbidden) L'utente non è autorizzato.
424 (Failed Dependency) Il servizio DICOM non può accedere a una risorsa da cui dipende per completare questa richiesta. Un esempio non riesce ad accedere all'archivio Data Lake connesso o all'insieme di credenziali delle chiavi per supportare la crittografia della chiave gestita dal cliente.
503 (Service Unavailable) Il servizio non è disponibile o occupato. Riprovare.

Note aggiuntive

L'API di query non restituisce 413 (request entity too large). Se il limite di risposta della query richiesto non rientra nell'intervallo accettabile, viene restituita una richiesta non valida. Qualsiasi elemento richiesto all'interno dell'intervallo accettabile viene risolto.

  • I risultati di paging sono ottimizzati per restituire prima l'istanza più recente corrispondente, che potrebbe comportare record duplicati nelle pagine successive se sono stati aggiunti dati più recenti corrispondenti alla query.
  • La corrispondenza non fa distinzione tra maiuscole e minuscole e non fa distinzione tra caratteri accentati per i tipi VR PN.
  • La corrispondenza non fa distinzione tra maiuscole e minuscole e fa distinzione tra caratteri accentati e non accentati per altri tipi vr stringa.
  • Se si verifica uno scenario in cui l'annullamento di un elemento di lavoro e l'esecuzione di query uguali si verificano contemporaneamente, la query esclude probabilmente l'elemento di lavoro che viene aggiornato e il codice di risposta è 206 (Partial Content).

Nota

DICOM® è il marchio registrato della National Electrical Manufacturers Association per le sue pubblicazioni Standard relative alle comunicazioni digitali delle informazioni mediche.