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
, SeriesInstanceUID
e 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 StudyInstanceUID oggetto , SeriesInstanceUID e 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 vieneapplication/dicom
usato 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 vieneapplication/dicom
usato 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 vieneapplication/octet-stream
usato 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 jpeg
e 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 nelStudy
livelloincludeField
.NumberOfSeriesRelatedInstances
L'attributo aggregato è supportato nelSeries
livelloincludeField
.
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 study
parametri , series
e instance
corrispondono rispettivamente agli attributi StudyInstanceUID
DICOM , SeriesInstanceUID
e 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
,COMPLETED
oCANCELED
.
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 do e 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.