DiCOM Conformance – příkaz v2
Poznámka:
Rozhraní API verze 2 je nejnovější verze rozhraní API. Seznam změn ve verzi 2 ve srovnání s v1 najdete v tématu Změny rozhraní API služby DICOM v2.
Medical Imaging Server for DICOM® podporuje podmnožinu DICOMweb Standard. Podpora zahrnuje:
Kromě toho se podporují tato nestandardní rozhraní API:
Služba používá správu verzí rozhraní REST API. Jako součást základní adresy URL musí být explicitně zadána verze rozhraní REST API, jak je znázorněno v následujícím příkladu:
https://<service_url>/v<version>/studies
Tato verze příkazu shody odpovídá v2
verzi rozhraní REST API.
Další informace o tom, jak určit verzi při vytváření požadavků, najdete v dokumentaci k správě verzí rozhraní API.
Ukázkové žádosti o podporované transakce najdete v kolekci Postman.
Preambule Sanitizace
Služba ignoruje 128bajtů soubor preambule a nahradí jeho obsah znaky null. Toto chování zajišťuje, aby žádné soubory předávané službou nebyly ohroženy ohrožením zabezpečení zlými úmysly. Tato preambule sanitizace ale také znamená, že preambule používané ke kódování obsahu duálního formátu, jako je TIFF, nelze se službou používat.
Studuje službu
Služba Studies Service umožňuje uživatelům ukládat, načítat a vyhledávat studie DICOM, řady a instance. Přidali jsme nestandardní transakci Delete, která umožňuje celý životní cyklus prostředků.
Store (STOW-RS)
Tato transakce používá metodu POST nebo PUT k ukládání reprezentací studií, řad a instancí obsažených v datové části požadavku.
metoda | Cesta | Popis |
---|---|---|
POST | .. /studie | Ukládat instance. |
POST | .. /studies/{study} | Uložte instance pro konkrétní studii. |
PUT | .. /studie | Instance upsertu |
PUT | .. /studies/{study} | Instance upsertu pro určitou studii. |
Parametr study
odpovídá atributu DICOM StudyInstanceUID. Pokud je zadáno, všechny instance, které nepatří do poskytnuté studie, budou odmítnuty s kódem 43265
upozornění.
Toto je jediná podporovaná hlavička odpovědi Accept
:
application/dicom+json
Podporují se následující Content-Type
hlavičky:
multipart/related; type="application/dicom"
application/dicom
Poznámka:
Server nebude přetěžovat ani nahrazovat atributy, které jsou v konfliktu s existujícími daty pro požadavky POST. Všechna data se ukládají podle potřeby. U žádostí o upsert (PUT) se stávající data nahradí přijatými novými daty.
Ukládání požadovaných atributů
Následující prvky DICOM musí být přítomny v každém souboru DICOM, který se pokouší uložit:
StudyInstanceUID
SeriesInstanceUID
SOPInstanceUID
SOPClassUID
PatientID
Poznámka:
Všechna identifikátory UID musí mít délku 1 až 64 znaků a obsahují pouze alfanumerické znaky nebo následující speciální znaky: .
, -
. PatientID
bude nadále povinnou značkou a může mít ve vstupu hodnotu null. PatientID
je ověřen na základě jeho LO
VR
typu.
Každý uložený soubor musí mít jedinečnou kombinaci StudyInstanceUID
, SeriesInstanceUID
a SopInstanceUID
. Kód 45070
upozornění se vrátí, pokud soubor se stejnými identifikátory již existuje.
Akceptují se pouze syntaxe přenosu s explicitními reprezentacemi hodnot.
Poznámka:
Požadavky jsou omezené na 4 GB. Tento limit nesmí překročit jeden soubor DICOM ani kombinace souborů.
Ukládání změn z v1
Pokud některý z požadovaných nebo prohledávatelných atributů selhal v předchozích verzích, požadavek storu by selhal. Počínaje V2 požadavek selže pouze v případě, že požadované atributy selžou ověření.
Neúspěšné ověření atributů, které rozhraní API nevyžaduje, způsobí uložení souboru s upozorněním. Každému atributu způsobujícím selhání na instanci se zobrazí upozornění. Pokud sekvence obsahuje atribut, který selže při ověřování nebo pokud existuje více problémů s jedním atributem, je zaznamenán pouze první důvod neúspěšného atributu.
Pokud je atribut vycpaný s hodnotou null, atribut se indexuje při hledání a uloží se tak, jak je v metadatech dicom+json. Není k dispozici žádné upozornění na ověření.
Uložení stavových kódů odpovědí
Kód | Popis |
---|---|
200 (OK) |
Všechny instance SOP v požadavku byly uloženy. |
202 (Accepted) |
Původní server uložil některé instance a jiné selhaly nebo vrátily upozornění. Další informace týkající se této chyby můžou být nalezeny v textu zprávy odpovědi. |
204 (No Content) |
V žádosti o transakci úložiště nebyl poskytnut žádný obsah. |
400 (Bad Request) |
Požadavek byl špatně naformátován. Zadaný identifikátor instance studie například neodpovídá očekávanému formátu UID. |
401 (Unauthorized) |
Klient není ověřený. |
406 (Not Acceptable) |
Zadaná Accept hlavička není podporovaná. |
409 (Conflict) |
Žádná z instancí v požadavku na transakci úložiště nebyla uložena. |
415 (Unsupported Media Type) |
Content-Type Poskytnutá služba není podporovaná. |
424 (Failed Dependency) |
Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
500 (Internal Server Error) |
Server zjistil neznámou vnitřní chybu. Zkuste to později. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Uložení datové části odpovědi
Datová část odpovědi naplní datovou sadu DICOM následujícími prvky:
Značka | Název | Popis |
---|---|---|
(0008, 1190) | RetrieveURL |
Adresa URL načtení studie, pokud byla v požadavku na úložiště poskytnuta hodnota StudyInstanceUID a alespoň jedna instance je úspěšně uložena. |
(0008, 1198) | FailedSOPSequence |
Posloupnost instancí, které se nepodařilo uložit. |
(0008, 1199) | ReferencedSOPSequence |
Posloupnost uložených instancí. |
Každá datová sada obsahuje FailedSOPSequence
následující prvky (pokud by se soubor DICOM, který se pokouší uložit, mohl být přečtený):
Značka | Název | Popis |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Jedinečný identifikátor třídy SOP instance, která se nepodařilo uložit. |
(0008, 1155) | ReferencedSOPInstanceUID |
Jedinečný identifikátor instance SOP, která se nepodařilo uložit. |
(0008, 1197) | FailureReason |
Kód důvodu, proč se této instanci nepodařilo uložit. |
(0008, 1196) | WarningReason |
A WarningReason označuje problémy s ověřením, které byly zjištěny, ale nebyly dostatečně závažné, aby operace úložiště selhala. |
(0074, 1048) | FailedAttributesSequence |
Posloupnost ErrorComment , která obsahuje důvod každého neúspěšného atributu. |
Každá datová sada obsahuje ReferencedSOPSequence
následující prvky:
Značka | Název | Popis |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Jedinečný identifikátor třídy SOP uložené instance. |
(0008, 1155) | ReferencedSOPInstanceUID |
Jedinečný identifikátor instance SOP uložené instance. |
(0008, 1190) | RetrieveURL |
Adresa URL pro načtení této instance na serveru DICOM. |
Příklad odpovědi s Accept
hlavičkou application/dicom+json
bez atributu FailedAttributesSequence v 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"]
}
}]
}
}
Příklad odpovědi s Accept
hlavičkou application/dicom+json
s chybou FailedAttributesSequence v 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}]]]]]]"
]
}
}
]
}
}]
}
}
Kódy důvodů selhání úložiště
Kód | Popis |
---|---|
272 |
Transakce úložiště neukládala instanci kvůli obecné chybě při zpracování operace. |
43264 |
Ověření instance DICOM se nezdařilo. |
43265 |
Zadaná instance StudyInstanceUID neodpovídá zadanému StudyInstanceUID v požadavku úložiště. |
45070 |
Instance DICOM se stejným StudyInstanceUID objektem , SeriesInstanceUID a SopInstanceUID již byla uložena. Pokud chcete aktualizovat obsah, nejprve odstraňte tuto instanci. |
45071 |
Instanci DICOM vytváří jiný proces nebo předchozí pokus o vytvoření selhal a proces vyčištění není dokončen. Před dalším pokusem o vytvoření instance nejprve odstraňte. |
Ukládat kódy důvodů upozornění
Kód | Popis |
---|---|
45063 |
Sada dat instance DICOM neodpovídá třídě SOP. Studie Store Transaction (oddíl 10.5) zjistil, že sada dat neodpovídá omezením třídy SOP během ukládání instance. |
1 |
Studie transakce úložiště (oddíl 10.5) zjistily, že sada dat má ověření |
Ukládat kódy chyb
Kód | Popis |
---|---|
100 |
Zadané atributy instance nesplnily ověřovací kritéria. |
Načtení (WADO-RS)
Tato transakce načítání nabízí podporu pro načítání uložených studií, řad, instancí a rámců odkazem.
metoda | Cesta | Popis |
---|---|---|
GET | .. /studies/{study} | Načte všechny instance v rámci studie. |
GET | .. /studies/{study}/metadata | Načte metadata pro všechny instance v rámci studie. |
GET | .. /studies/{study}/series/{series} | Načte všechny instance v rámci řady. |
GET | .. /studies/{study}/series/{series}/metadata | Načte metadata pro všechny instance v rámci řady. |
GET | .. /studies/{study}/series/{series}/instance/{instance} | Načte jednu instanci. |
GET | .. /studies/{study}/series/{series}/instance/{instance}/metadata | Načte metadata pro jednu instanci. |
GET | .. /studies/{study}/series/{series}/instance/{instance}/rendered | Načte instanci vykreslenou do formátu obrázku. |
GET | .. /studies/{study}/series/{series}/instance/{instance}/frames/{frames} | Načte jeden nebo více rámců z jedné instance. Pokud chcete zadat více než jeden rámec, oddělte každý rámec čárkou, který se má vrátit. Například /studies/1/series/2/instance/3/frames/4,5,6 . |
GET | .. /studies/{study}/series/{series}/instance/{instance}/frames/{frame}/rendered | Načte jeden rámec vykreslený do formátu obrázku. |
Načtení instancí ve studii nebo řadě
Následující Accept
hlavičky jsou podporovány pro načítání instancí v rámci studie nebo řady.
multipart/related; type="application/dicom"; transfer-syntax=*
multipart/related; type="application/dicom";
(pokud není zadána syntaxe přenosu, použije se jako výchozí hodnota 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
*/*
(pokud není zadána syntaxe přenosu,*
použije se jako výchozí hodnota a výchozí hodnota mediaType )application/dicom
Načtení instance
Pro načtení konkrétní instance jsou podporovány následující Accept
hlavičky.
application/dicom; transfer-syntax=*
multipart/related; type="application/dicom"; transfer-syntax=*
application/dicom;
(pokud není zadána syntaxe přenosu,1.2.840.10008.1.2.1
použije se jako výchozí)multipart/related; type="application/dicom"
(pokud není zadána syntaxe přenosu,1.2.840.10008.1.2.1
použije se jako výchozí)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
*/*
(pokud není zadána syntaxe přenosu,*
použije se jako výchozí hodnota a výchozí hodnota mediaType )application/dicom
Načtení rámců
Pro načítání rámců se podporují následující Accept
hlavičky.
multipart/related; type="application/octet-stream"; transfer-syntax=*
multipart/related; type="application/octet-stream";
(pokud není zadána syntaxe přenosu,1.2.840.10008.1.2.1
použije se jako výchozí)multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1
multipart/related; type="image/jp2";
(pokud není zadána syntaxe přenosu,1.2.840.10008.1.2.4.90
použije se jako výchozí)multipart/related; type="image/jp2";transfer-syntax=1.2.840.10008.1.2.4.90
application/octet-stream; transfer-syntax=*
pro načtení s jedním snímkem
*/*
(pokud není zadána syntaxe přenosu,*
použije se jako výchozí hodnota a výchozí hodnota mediaType )application/octet-stream
Načtení syntaxe přenosu
Pokud se požadovaná syntaxe přenosu liší od původního souboru, původní soubor se překóduje na požadovanou syntaxi přenosu. Původní soubor musí být jedním z následujících formátů pro úspěšné překódování, jinak může překódování selhat.
- 1.2.840.10008.1.2 (Little Endian Implicit)
- 1.2.840.10008.1.2.1 (Little Endian Explicit)
- 1.2.840.10008.1.2.2 (Explicitní VR Big Endian)
- 1.2.840.10008.1.2.4.50 (Standardní proces JPEG 1)
- 1.2.840.10008.1.2.4.57 (JPEG Lossless)
- 1.2.840.10008.1.2.4.70 (Jpeg Lossless Selection Value 1)
- 1.2.840.10008.1.2.4.90 (JPEG 2000 Pouze bezeztrátové)
- 1.2.840.10008.1.2.4.91 (JPEG 2000)
- 1.2.840.10008.1.2.5 (RLE Bezeztrátové)
Nepodporovaný transfer-syntax
výsledek je 406 Not Acceptable
.
Načtení metadat (pro studium, řadu nebo instanci)
Následující Accept
hlavička je podporovaná pro načítání metadat pro studii, řadu nebo instanci.
application/dicom+json
Načítání metadat nevrací atributy s následujícími reprezentacemi hodnot.
Název VR | Popis |
---|---|
OB | Jiný bajt |
OD | Druhý double |
OF | Jiné plovoucí |
OL | Jiné dlouhé |
OV | Jiný 64bitový velmi dlouhý |
AU | Jiné slovo |
OSN | Neznámý |
Načtená metadata zahrnují znak null, když byl atribut vycpaný s null a uložen tak, jak je.
Načtení ověření mezipaměti metadat (pro studii, řadu nebo instanci)
Ověřování mezipaměti se podporuje pomocí ETag
mechanismu. V odpovědi na požadavek na metadata se jako jedna z hlaviček vrátí značka ETag. Tato značka ETag může být uložena do mezipaměti a přidána jako hlavička If-None-Match
v pozdějších požadavcích na stejná metadata. Pokud existují data, můžou být k dispozici dva typy odpovědí.
- Data se od posledního požadavku nezměnila:
HTTP 304 (Not Modified)
Odpověď se odešle bez textu odpovědi. - Data se od posledního požadavku změnila: Odpověď se odešle s aktualizovanou značkou
HTTP 200 (OK)
ETag. Povinná data se vrátí jako součást těla.
Načtení vykresleného obrázku (například nebo rámce)
Accept
Následující hlavičky jsou podporovány pro načtení vykresleného obrázku instance nebo rámce.
image/jpeg
image/png
V případě, že není zadána žádná Accept
hlavička, služba ve výchozím nastavení vykresluje image/jpeg
.
Služba podporuje pouze vykreslování jednoho rámce. Pokud je vykreslování požadováno pro instanci s více snímky, ve výchozím nastavení se jako obrázek vykreslí pouze první snímek.
Při zadávání konkrétního rámce, který se má vrátit, začíná indexování snímků na 1.
Podporuje quality
se také parametr dotazu. Celočíselná hodnota mezi 1
a 100
včetně (1 je nejhorší kvalita a 100 nejlepší kvalita) může být předána jako hodnota parametru dotazu. Tento parametr se používá pro obrázky vykreslené jako jpeg
a pro žádosti o vykreslení se ignoruje png
. Pokud není zadán parametr výchozí 100
hodnota .
Načtení původní verze
Pomocí operace hromadné aktualizace můžete načíst původní nebo nejnovější verzi studie, řady nebo instance. Nejnovější verze studie, řady nebo instance se ve výchozím nastavení vždy vrátí. Původní verze může být vrácena nastavením hlavičky msdicom-request-original
na true
. Tady je ukázkový požadavek:
GET ../studies/{study}/series/{series}/instances/{instance}
Accept: multipart/related; type="application/dicom"; transfer-syntax=*
msdicom-request-original: true
Content-Type: application/dicom
Načtení stavových kódů odpovědí
Kód | Popis |
---|---|
200 (OK) |
Všechna požadovaná data byla načtena. |
304 (Not Modified) |
Požadovaná data se od posledního požadavku nemění. Obsah se v takovém případě nepřidá do textu odpovědi. Další informace najdete v předchozí části Načtení ověření mezipaměti metadat (pro studii, řadu nebo instanci). |
400 (Bad Request) |
Požadavek byl špatně naformátován. Zadaný identifikátor instance studie například neodpovídá očekávanému formátu UID nebo se nepodporuje požadované kódování syntaxe přenosu. |
401 (Unauthorized) |
Klient není ověřený. |
403 (Forbidden) |
Uživatel nemá oprávnění. |
404 (Not Found) |
Zadaný prostředek DICOM nebyl nalezen nebo pro vykreslený požadavek instance neobsahoval pixelová data. |
406 (Not Acceptable) |
Zadaná Accept hlavička není podporovaná nebo pro vykreslení a transkódování požadavků, o které byl požadovaný soubor příliš velký. |
424 (Failed Dependency) |
Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Hledání (QIDO-RS)
Dotaz založený na ID objektů DICOM (QIDO) umožňuje vyhledávat studie, řady a instance podle atributů.
metoda | Cesta | Popis |
---|---|---|
Hledat studie | ||
GET | .. /studie?... | Hledání studií |
Hledat řady | ||
GET | .. /řada?... | Hledání řad |
GET | .. /studies/{study}/series?... | Hledání řad ve studii |
Hledání instancí | ||
GET | .. /instance?... | Hledání instancí |
GET | .. /studies/{study}/instance?... | Hledání instancí ve studii |
GET | .. /studies/{study}/series/{series}/instance?... | Hledání instancí v řadě |
Hledání se podporuje v následující Accept
hlavičce.
application/dicom+json
Hledání změn z v1
Pokud má rozšířená značka dotazu v rozhraní API v1 a pokračovala pro v2, pokud má značka rozšířeného dotazu nějaké chyby, protože jedna nebo více existujících instancí měla hodnotu značky, která se nedala indexovat, vrátí následné vyhledávací dotazy obsahující rozšířenou značku erroneous-dicom-attributes
dotazu tak, jak je podrobně popsáno v dokumentaci. Značky (označované také jako atributy) s upozorněními ověřování z FUNKCE STOW-RS však nejsou součástí této hlavičky. Pokud výsledkem požadavku úložiště jsou upozornění na ověření pro prohledávatelné atributy v době uložení instance, tyto atributy nemusí být použity k vyhledání uložené instance. Všechny prohledávatelné atributy , které selhaly ověřením, ale můžou vrátit výsledky, pokud jsou hodnoty přepsány instancemi ve stejné studii nebo řadě, které jsou uloženy po neúspěšném ověření, nebo pokud jsou hodnoty již správně uloženy předchozí instancí. Pokud hodnoty atributů nejsou přepsány, nevytvářejí žádné výsledky hledání.
Atribut lze opravit následujícími způsoby.
- Odstraňte uloženou instanci a nahrajte novou instanci se opravenými daty.
- Nahrání nové instance ve stejné studii nebo řadě s opravenými daty
Podporované parametry hledání
Podporují se následující parametry pro každý dotaz:
Klíč | Hodnoty podpory | Povolený počet | Popis |
---|---|---|---|
{attributeID}= |
{value} |
0...N | Hledání shody atributů a hodnot v dotazu |
includefield= |
{attributeID} all |
0...N | Ostatní atributy, které se mají vrátit v odpovědi. Podporují se veřejné i soukromé značky. Po all zadání najdete další informace v odpovědi vyhledávání.Pokud je k dispozici kombinace {attributeID} a all je k dispozici, použije se výchozí hodnota serveru. all |
limit= |
{value} |
0..1 | Celočíselná hodnota, která omezí počet hodnot vrácených v odpovědi. Hodnota může být mezi rozsahem 1 >= x <= 200. Výchozí hodnota 100 |
offset= |
{value} |
0..1 | Přeskočte {value} výsledky.Pokud je posun větší než počet výsledků vyhledávacího dotazu, vrátí se odpověď 204 (bez obsahu). |
fuzzymatching= |
true / false |
0..1 | Pokud se u atributu PatientName použije pravdivá shoda přibližných shod. V rámci hodnoty PatientName se slovo předpony shoduje s libovolnou částí názvu. Pokud je například PatientName "John^Doe", pak "joh", "do", "jo do", "Doe" a "John Doe" všechny shody. Ale "ohn" se neshoduje. |
Prohledávatelné atributy
Podporujeme vyhledávání následujících atributů a typů hledání.
Klíčové slovo atributu | Všechny studie | Všechny řady | Všechny instance | Řada studií | Instance studie | Instance řady 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 |
Poznámka:
Nepodporujeme vyhledávání pomocí prázdného řetězce pro žádné atributy.
Porovnávání hledání
Podporujeme následující odpovídající typy.
Typ hledání | Podporovaný atribut | Příklad |
---|---|---|
Dotaz rozsahu | StudyDate /PatientBirthDate |
{attributeID}={value1}-{value2} . U hodnot data a času podporujeme inkluzivní rozsah značky. Tento rozsah je mapován na attributeID >= {value1} AND attributeID <= {value2} . Pokud {value1} není zadáno, všechny výskyty kalendářních dat a časů před a včetně {value2} se shodují. Podobně platí, že pokud {value2} není zadáno, budou se shodovat všechny výskyty a následná data a časy {value1} . Jedna z těchto hodnot však musí být přítomna. {attributeID}={value1}- a {attributeID}=-{value2} jsou platné, {attributeID}=- ale jsou neplatné. |
Přesná shoda | Všechny podporované atributy | {attributeID}={value1} |
Přibližná shoda | PatientName , ReferringPhysicianName |
Odpovídá libovolné komponentě názvu, která začíná hodnotou. |
Shoda seznamu UID | StudyInstanceUID |
Porovnává studie identifikované hodnotami identifikovanými v seznamu. Podporuje čárku (,) nebo zpětné lomítko (\) jako platný oddělovač. {attributeID}=1.2.3,5.6.7,8.9.0 vrátí podrobnosti spojené se všemi studiemi, pokud existují. |
ID atributu
Značky lze kódovat několika způsoby pro parametr dotazu. Částečně jsme implementovali standard definovaný v PS3.18 6.7.1.1.1. Podporují se následující kódování značky.
Hodnota | Příklad |
---|---|
{group}{element} |
0020000D |
{dicomKeyword} |
StudyInstanceUID |
Příklad vyhledávání instancí dotazu:
../instances?Modality=CT&00280011=512&includefield=00280010&limit=5&offset=0
Odpověď hledání
Odpověď je pole datových sad DICOM. V závislosti na prostředku se ve výchozím nastavení vrátí následující atributy.
Výchozí značky studie
Značka | Název atributu |
---|---|
(0008, 0020) | StudyDate |
(0008, 0050) | AccessionNumber |
(0008, 1030) | StudyDescription |
(0009, 0090) | ReferringPhysicianName |
(0010, 0010) | PatientName |
(0010, 0020) | PatientID |
(0010, 0030) | PatientBirthDate |
(0020, 000D) | StudyInstanceUID |
Výchozí značky řad
Značka | Název atributu |
---|---|
(0008, 0060) | Modality |
(0008, 1090) | ManufacturerModelName |
(0020, 000E) | SeriesInstanceUID |
(0040, 0244) | PerformedProcedureStepStartDate |
Výchozí značky instancí
Značka | Název atributu |
---|---|
(0008, 0018) | SOPInstanceUID |
Pokud includefield=all
jsou tyto atributy zahrnuty spolu s výchozími atributy. Spolu s výchozími atributy obsahuje tento seznam úplný seznam atributů podporovaných na jednotlivých úrovních prostředků.
Další značky studie
Značka | Název atributu |
---|---|
(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 |
Jiné značky řad
Značka | Název atributu |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0011) | Číslo řady |
(0020, 0060) | Lateralita |
(0008, 0021) | SeriesDate |
(0008, 0031) | SeriesTime |
(0008, 103E) | Popis seriesDescription |
(0040, 0245) | PerformedProcedureStepStartTime |
(0040, 0275) | RequestAttributesSequence |
Jiné značky instancí
Značka | Název atributu |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0016) | SOPClassUID |
(0008, 0056) | Dostupnost instance |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0013) | InstanceNumber |
(0028, 0010) | Řádky |
(0028, 0011) | Sloupce |
(0028, 0100) | BitsAllocated |
(0028, 0008) | NumberOfFrames |
Vrátí se následující atributy.
- Všechny odpovídající parametry dotazu a identifikátory UI v adrese URL prostředku
IncludeField
atributy podporované na této úrovni prostředků- Pokud je
All Series
cílový prostředek ,Study
vrátí se také atributy na úrovni. - Pokud je
All Instances
cílový prostředek ,Study
pak aSeries
úrovně atributy jsou také vráceny. - Pokud je
Study's Instances
cílový prostředek ,Series
vrátí se také atributy na úrovni. NumberOfStudyRelatedInstances
Agregovaný atribut je podporován naStudy
úrovniincludeField
.NumberOfSeriesRelatedInstances
Agregovaný atribut je podporován naSeries
úrovniincludeField
.
Kódy odpovědí vyhledávání
Rozhraní API pro dotazy vrátí v odpovědi jeden z následujících stavových kódů.
Kód | Popis |
---|---|
200 (OK) |
Datová část odpovědi obsahuje všechny odpovídající prostředky. |
204 (No Content) |
Hledání se úspěšně dokončilo, ale nevrátil žádné výsledky. |
400 (Bad Request) |
Server nemohl provést dotaz, protože součást dotazu je neplatná. Tělo odpovědi obsahuje podrobnosti o selhání. |
401 (Unauthorized) |
Klient není ověřený. |
403 (Forbidden) |
Uživatel nemá oprávnění. |
414 (URI Too Long) |
Identifikátor URI překročil maximální podporovanou délku 8192 znaků. |
424 (Failed Dependency) |
Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Notes
- Dotazování pomocí příkazu
TimezoneOffsetFromUTC (00080201)
není podporováno. - Rozhraní API pro dotazy nevrací
413 (request entity too large)
. Pokud je požadovaný limit odpovědi dotazu mimo přijatelný rozsah, vrátí se chybný požadavek. Vše, co je požadováno v přijatelném rozsahu, se vyřeší. - Pokud je cílovým prostředkem studie nebo řada, existuje potenciál pro nekonzistentní metadata na úrovni studie nebo řady napříč několika instancemi. Například dvě instance můžou mít jiné
patientName
. V tomto případě nejnovější výhry a můžete hledat jenom nejnovější data. - Stránkované výsledky jsou optimalizované tak, aby se vrátily jako první odpovídající nejnovější instance, což může způsobovat duplicitní záznamy na dalších stránkách, pokud byla přidána novější data odpovídající dotazu.
- Porovnávání nerozlišuje malá a velká písmena a u typů PN VR se nerozlišuje velká a malá písmena.
- Porovnávání nerozlišuje malá a velká písmena a u jiných typů řetězcových virtuálních počítačů se rozlišují malá a velká písmena.
- Pouze první hodnota je indexována z jednoho hodnotného datového prvku, který nesprávně obsahuje více hodnot.
- Použití výchozích atributů nebo omezení počtu požadovaných výsledků maximalizuje výkon.
- Když byl atribut uložen pomocí odsazení null, lze ho vyhledat s odsazením null nebo bez odsazení v kódování identifikátoru URI. Načtené výsledky jsou určené pro atributy uložené s odsazením null i bez odsazení null.
Odstranění
Tato transakce není součástí oficiálního standardu DICOMweb. Používá metodu DELETE k odebrání reprezentací studií, řad a instancí z úložiště.
metoda | Cesta | Popis |
---|---|---|
DELETE | .. /studies/{study} | Odstraňte všechny instance pro konkrétní studii. |
DELETE | .. /studies/{study}/series/{series} | Odstraňte všechny instance pro určitou řadu v rámci studie. |
DELETE | .. /studies/{study}/series/{series}/instance/{instance} | Odstraňte konkrétní instanci v rámci řady. |
Parametry study
, series
a instance
odpovídají atributům StudyInstanceUID
DICOM , SeriesInstanceUID
a SopInstanceUID
v uvedeném pořadí.
Hlavička Accept
, Content-Type
hlavička nebo základní obsah požadavku nejsou nijak omezena.
Poznámka:
Po odstranění transakce nebudou odstraněné instance obnovitelné.
Stavové kódy odpovědí
Kód | Popis |
---|---|
204 (No Content) |
Po odstranění všech instancí SOP. |
400 (Bad Request) |
Požadavek byl špatně naformátován. |
401 (Unauthorized) |
Klient není ověřený. |
403 (Forbidden) |
Uživatel nemá oprávnění. |
404 (Not Found) |
Pokud se v rámci studie nenašla zadaná řada nebo nebyla v rámci řady nalezena zadaná instance. |
424 (Failed Dependency) |
Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Odstranění datové části odpovědi
Tělo odpovědi je prázdné. Stavový kód je jediné užitečné informace, které se vrátí.
Služba pracovního seznamu (UPS-RS)
Služba DICOM podporuje SOPs nabízených a vyžádaných změn služby worklist (UPS-RS). Tato služba poskytuje přístup k jednomu pracovnímu seznamu obsahujícímu pracovní položky, z nichž každá představuje krok sjednocené procedury (UPS).
Proměnná {workitem}
v šabloně identifikátoru URI je zkratka pro UID workitem.
Mezi dostupné koncové body UPS-RS patří:
Verb (Příkaz) | Cesta | Popis |
---|---|---|
POST | {s}/workitems{? AffectedSOPInstanceUID} | Vytvoření pracovní položky |
POST | {s}/workitems/{instance}{?transaction} | Aktualizace pracovní položky |
GET | {s}/workitems{?query*} | Vyhledávání pracovních položek |
GET | {s}/workitems/{instance} | Načtení pracovní položky |
PUT | {s}/workitems/{instance}/state | Změna stavu pracovní položky |
POST | {s}/workitems/{instance}/cancelrequest | Zrušit pracovní položku |
POST | {s}/workitems/{instance}/subscribers/{AETitle}{?deletionlock} | Vytvoření odběru |
POST | {s}/workitems/1.2.840.10008.5.1.4.34.5/ | Pozastavení předplatného |
DELETE | {s}/workitems/{instance}/subscribers/{AETitle} | Odstranění předplatného |
GET | {s}/odběratelé/{AETitle} | Otevření kanálu předplatného |
Vytvoření pracovní položky
Tato transakce používá metodu POST k vytvoření nového Workitem.
metoda | Cesta | Popis |
---|---|---|
POST | .. /workitems | Vytvořte pracovní položku. |
POST | .. /workitems? {workitem} | Vytvoří workitem se zadaným UID. |
Pokud není zadáno v identifikátoru URI, datová sada datové části musí obsahovat v atributu SOPInstanceUID
Workitem.
V Accept
požadavku jsou požadovány hlavičky Content-Type
a obě musí mít hodnotu application/dicom+json
.
V kontextu konkrétní transakce existuje několik požadavků souvisejících s atributy dat DICOM. Atributy můžou být nutné, aby byly přítomny, nemusely být přítomny, musely být prázdné nebo aby nebyly prázdné. Tyto požadavky najdete v této tabulce.
Poznámka:
I když referenční tabulka uvádí, že UID instance SOP by neměl být k dispozici, tyto pokyny jsou specifické pro protokol DIMSE a zpracovávají se jinak v DICOMWebu. Identifikátor UID instance SOP by měl být v datové sadě, pokud není v identifikátoru URI.
Poznámka:
Všechny kódy podmíněných požadavků včetně 1C a 2C jsou považovány za volitelné.
Vytvoření stavových kódů odpovědí
Kód | Popis |
---|---|
201 (Created) |
Cílová pracovní hodnota byla úspěšně vytvořena. |
400 (Bad Request) |
Došlo k problému s žádostí. Datová část požadavku například nesplňuje požadavky. |
401 (Unauthorized) |
Klient není ověřený. |
403 (Forbidden) |
Uživatel nemá oprávnění. |
409 (Conflict) |
Workitem již existuje. |
415 (Unsupported Media Type) |
Content-Type Poskytnutá služba není podporovaná. |
424 (Failed Dependency) |
Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Vytvoření datové části odpovědi
Odpověď na úspěch nemá žádnou datovou část. Hlavičky Location
odpovědi Content-Location
obsahují odkaz na identifikátor URI vytvořené pracovní položky.
Datová část odpovědi na chybu obsahuje zprávu popisující selhání.
Žádost o zrušení
Tato transakce umožňuje uživateli požádat o zrušení nevlastního Workitem.
Existují čtyři platné stavy Workitem:
SCHEDULED
IN PROGRESS
CANCELED
COMPLETED
Tato transakce je úspěšná pouze proti Workitems ve SCHEDULED
stavu. Každý uživatel může nárokovat vlastnictví Workitem nastavením UID transakce a změnou jeho stavu na IN PROGRESS
. Od tého dne může uživatel upravit pouze Workitem zadáním správného UID transakce. Zatímco UPS definuje třídy Watch a Event SOP, které umožňují předávat žádosti o zrušení a další události, tato služba DICOM tyto třídy neimplementuje, a tak žádosti o zrušení na pracovní položky, které IN PROGRESS
vrací selhání. Vlastněný Workitem lze zrušit prostřednictvím transakce Change Workitem State .
metoda | Cesta | Popis |
---|---|---|
POST | .. /workitems/{workitem}/cancelrequest | Žádost o zrušení naplánované pracovní položky |
Záhlaví Content-Type
je povinné a musí mít hodnotu application/dicom+json
.
Datová část požadavku může obsahovat informace o akci definované ve standardu DICOM.
Stavové kódy žádosti o zrušení odpovědi
Kód | Popis |
---|---|
202 (Accepted) |
Požadavek přijal server, ale stav Cílové pracovní položky se ještě nezměnil. |
400 (Bad Request) |
Došlo k potížím se syntaxí požadavku. |
401 (Unauthorized) |
Klient není ověřený. |
403 (Forbidden) |
Uživatel nemá oprávnění. |
404 (Not Found) |
Cílová práce nebyla nalezena. |
409 (Conflict) |
Požadavek je nekonzistentní s aktuálním stavem cílové pracovní položky. Například cílová pracovní položka je ve stavu nebo COMPLETED ve SCHEDULED stavu. |
415 (Unsupported Media Type) |
Content-Type Poskytnutá služba není podporovaná. |
424 (Failed Dependency) |
Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Datová část odpovědi na zrušení požadavku
Odpověď na úspěch nemá žádnou datovou část a datová část odpovědi na selhání obsahuje zprávu popisující selhání.
Pokud je instance Workitem již ve zrušeném stavu, odpověď obsahuje následující hlavičku upozornění HTTP: 299: The UPS is already in the requested state of CANCELED.
Načtení pracovní položky
Tato transakce načte Workitem. Odpovídá operaci UPS DIMSE N-GET.
Přečtěte si: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.5
Pokud pracovní položka existuje na zdrojovém serveru, vrátí se pracovní položka v přijatelném typu média. Vrácený workitem nebude obsahovat atribut UID transakce (0008 1195). To je nezbytné k zachování role atributu jako přístupový zámek.
metoda | Cesta | Popis |
---|---|---|
GET | .. /workitems/{workitem} | Žádost o načtení workitem |
Záhlaví Accept
je povinné a musí mít hodnotu application/dicom+json
.
Načtení stavových kódů odpovědi Workitem
Kód | Popis |
---|---|
200 (OK) | Instance workitem byla úspěšně načtena. |
400 (Chybný požadavek) | Došlo k problému s žádostí. |
401 (Neautorizováno) | Klient není ověřený. |
403 (zakázáno) | Uživatel nemá oprávnění. |
404 (Nenalezena) | Cílová práce nebyla nalezena. |
424 (neúspěšná závislost) | Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
503 (Služba není k dispozici) | Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Načtení datové části odpovědi Workitem
- Odpověď na úspěch má datovou část s jednou částí obsahující požadovanou pracovní položku ve vybraném typu média.
- Vrácený workitem nesmí obsahovat atribut UID transakce (0008, 1195), protože by měl být znám pouze vlastníkovi.
Aktualizace workitem
Tato transakce upravuje atributy existujícího Workitem. Odpovídá operaci UPS DIMSE N-SET.
Přečtěte si: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.6
Chcete-li aktualizovat pracovní položku, která je aktuálně ve SCHEDULED
stavu, Transaction UID
atribut není k dispozici. Pro Workitem ve IN PROGRESS
stavu musí požadavek obsahovat aktuální UID transakce jako parametr dotazu. Pokud je pracovní položka již ve COMPLETED
stavu nebo CANCELED
ve stavu, je 400 (Bad Request)
odpověď .
metoda | Cesta | Popis |
---|---|---|
POST | .. /workitems/{workitem}? {transaction-uid} | Aktualizace transakce Workitem |
Záhlaví Content-Type
je povinné a musí mít hodnotu application/dicom+json
.
Datová část požadavku obsahuje datovou sadu se změnami, které se mají použít na cílovou pracovní část. Při úpravě sekvence musí požadavek obsahovat všechny položky v sekvenci, nejen položky, které se mají upravit. Pokud potřebujete aktualizovat více atributů jako skupinu, aktualizujte je jako více atributů v jednom požadavku, ne jako více požadavků.
V kontextu konkrétní transakce existuje mnoho požadavků souvisejících s atributy dat DICOM. Atributy můžou být nutné, aby byly přítomny, nemusely být přítomny, musely být prázdné nebo aby nebyly prázdné. Tyto požadavky najdete v této tabulce.
Poznámka:
Všechny kódy podmíněných požadavků včetně 1C a 2C jsou považovány za volitelné.
Poznámka:
Požadavek nemůže nastavit hodnotu atributu Krok procedury (0074 1000). Stav kroku procedury se spravuje pomocí transakce Změnit stav nebo požadavek zrušení transakce.
Aktualizace stavových kódů odpovědí na transakci Workitem
Kód | Popis |
---|---|
200 (OK) |
Cílová pracovní hodnota byla aktualizována. |
400 (Bad Request) |
Došlo k problému s žádostí. Příklad: (1) Cílová pracovní hodnota byla ve stavu nebo CANCELED ve COMPLETED stavu. (2) Chybí UID transakce. (3) Id transakce je nesprávné. (4) datová sada nevyhovuje požadavkům. |
401 (Unauthorized) |
Klient není ověřený. |
403 (Forbidden) |
Uživatel nemá oprávnění. |
404 (Not Found) |
Cílová práce nebyla nalezena. |
409 (Conflict) |
Požadavek je nekonzistentní s aktuálním stavem cílové pracovní položky. |
415 (Unsupported Media Type) |
Content-Type Poskytnutá služba není podporovaná. |
424 (Failed Dependency) |
Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Aktualizace datové části odpovědi na transakci Workitem
Server původu podporuje pole hlaviček podle potřeby v tabulce 11.6.3-2.
Odpověď na úspěch nemá žádnou datovou část nebo datovou část obsahující dokument zprávy o stavu.
Datová část odpovědi na selhání může obsahovat zprávu o stavu popisující případné chyby, upozornění nebo jiné užitečné informace.
Změnit stav pracovní položky
Tato transakce se používá ke změně stavu workitem. Odpovídá operaci UPS DIMSE N-ACTION "Změnit stav UPS". Změny stavu se používají k deklaraci vlastnictví, dokončení nebo zrušení workitem.
Přečtěte si: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.7
Pokud pracovní položka existuje na zdrojovém serveru, vrátí se pracovní položka v přijatelném typu média. Vrácený workitem nebude obsahovat atribut UID transakce (0008 1195). To je nezbytné k zachování role atributu jako přístupový zámek, jak je popsáno zde.
metoda | Cesta | Popis |
---|---|---|
PUT | .. /workitems/{workitem}/state | Změnit stav pracovní položky |
Záhlaví Accept
je povinné a musí mít hodnotu application/dicom+json
.
Datová část požadavku obsahuje elementy change UPS State Data Elements. Tyto datové prvky jsou následující.
- UID transakce (0008, 1195). Datová část požadavku zahrnuje UID transakce. Uživatelský agent vytvoří UID transakce při vyžádání přechodu do
IN PROGRESS
stavu pro danou workitem. Uživatelský agent poskytuje UID transakce v následných transakcích s tímto Workitem. - Stav kroku postupu (0074, 1000). Právní hodnoty odpovídají požadovanému přechodu stavu. Jedná se o:
IN PROGRESS
,COMPLETED
neboCANCELED
.
Změna stavových kódů odpovědi workitem
Kód | Popis |
---|---|
200 (OK) |
Instance workitem byla úspěšně načtena. |
400 (Bad Request) |
Požadavek nejde provést z jednoho z následujících důvodů: (1) požadavek není platný vzhledem k aktuálnímu stavu cílové pracovní položky. (2) Chybí UID transakce. (3) Id transakce je nesprávné. |
401 (Unauthorized) |
Klient není ověřený. |
403 (Forbidden) |
Uživatel nemá oprávnění. |
404 (Not Found) |
Cílová práce nebyla nalezena. |
409 (Conflict) |
Požadavek je nekonzistentní s aktuálním stavem cílové pracovní položky. |
424 (Failed Dependency) |
Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Datová část odpovědi na změnu stavu workitem
- Odpovědi zahrnují pole hlaviček zadaná v oddílu 11.7.3.2.
- Odpověď na úspěch nemá žádnou datovou část.
- Datová část odpovědi na selhání může obsahovat zprávu o stavu popisující případné chyby, upozornění nebo jiné užitečné informace.
Hledání pracovních položek
Tato transakce umožňuje vyhledávat Workitems podle atributů.
metoda | Cesta | Popis |
---|---|---|
GET | .. /workitems? | Hledání pracovních položek |
Hledání se podporuje v následující Accept
hlavičce.
application/dicom+json
Podporované parametry hledání
Podporují se následující parametry pro každý dotaz:
Klíč | Hodnoty podpory | Povolený počet | Popis |
---|---|---|---|
{attributeID}= |
{value} |
0...N | Vyhledejte v dotazu párování atributů a hodnot. |
includefield= |
{attributeID} all |
0...N | Ostatní atributy, které se mají vrátit v odpovědi. Zahrnout lze pouze atributy nejvyšší úrovně , nikoli atributy, které jsou součástí sekvencí. Podporují se veřejné i soukromé značky. Je-li all k dispozici. Další informace o tom, které atributy se vrátí pro každý typ dotazu, najdete v části Odpověď vyhledávání. Pokud je k dispozici kombinace {attributeID} a all je k dispozici, server ve výchozím nastavení použije "all". |
limit= |
{value} |
0...1 | Celočíselná hodnota, která omezí počet hodnot vrácených v odpovědi. Hodnota může být mezi rozsahem 1 >= x <= 200 . Výchozí hodnota 100 je . |
offset= |
{value} |
0...1 | Přeskočte počet výsledků: {value}. Pokud je zadaný posun větší než počet výsledků vyhledávacího dotazu, 204 (no content) vrátí se odpověď. |
fuzzymatching= |
true \ false |
0...1 | Pokud se pro všechny atributy s reprezentací hodnoty PN (Person Name) (PN) použije true přibližná shoda. Dělá předponu slova shoda libovolné části názvu uvnitř těchto atributů. Pokud je například PatientName , pak joh , do , jo do Doe a John Doe všechny John^Doe shody. Neshoduje se ale ohn . |
Prohledávatelné atributy
Podporujeme vyhledávání následujících atributů.
Klíčové slovo atributu |
---|
PatientName |
PatientID |
ReferencedRequestSequence.AccessionNumber |
ReferencedRequestSequence.RequestedProcedureID |
ScheduledProcedureStepStartDateTime |
ScheduledStationNameCodeSequence.CodeValue |
ScheduledStationClassCodeSequence.CodeValue |
ScheduledStationGeographicLocationCodeSequence.CodeValue |
ProcedureStepState |
StudyInstanceUID |
Poznámka:
Nepodporujeme vyhledávání pomocí prázdného řetězce pro žádné atributy.
Porovnávání hledání
Podporujeme následující odpovídající typy.
Typ hledání | Podporovaný atribut | Příklad |
---|---|---|
Dotaz rozsahu | ScheduledProcedureStepStartDateTime |
{attributeID}={value1}-{value2} . U hodnot data a času podporujeme inkluzivní rozsah značky. Tento rozsah je mapován na attributeID >= {value1} AND attributeID <= {value2} . Pokud {value1} není zadáno, všechny výskyty kalendářních dat a časů před a včetně {value2} se shodují. Podobně platí, že pokud {value2} není zadáno, budou se shodovat všechny výskyty a následná data a časy {value1} . Jedna z těchto hodnot však musí být přítomna. {attributeID}={value1}- a {attributeID}=-{value2} jsou platné, {attributeID}=- ale nejsou platné. |
Přesná shoda | Všechny podporované atributy | {attributeID}={value1} |
Přibližná shoda | PatientName |
Odpovídá libovolné komponentě názvu, která začíná hodnotou. |
Shoda se zástupnými znaky | PatientID , ReferencedRequestSequence.AccessionNumber , ReferencedRequestSequence.RequestedProcedureID , ProcedureStepState , ScheduledStationNameCodeSequence.CodeValue , ScheduledStationClassCodeSequence.CodeValue , ScheduledStationGeographicLocationCodeSequence.CodeValue |
Podporují se následující zástupné znaky: * - Odpovídá nule nebo více znaků. Například – {attributeID}={val*} odpovídá hodnotě "val", "valid", "value", ale nikoli "evaluate". ? - Odpovídá jednomu znaku. Například – {attributeID}={valu?} odpovídá hodnotě, "valu1", ale ne "valued" nebo "valu" |
Poznámka:
I když nepodporujeme úplné porovnávání sekvencí, podporujeme přesnou shodu u atributů uvedených v posloupnosti.
ID atributu
Značky lze kódovat mnoha způsoby pro parametr dotazu. Částečně jsme implementovali standard definovaný v PS3.18 6.7.1.1.1. Podporují se následující kódování značky.
Hodnota | Příklad |
---|---|
{group}{element} |
00100010 |
{dicomKeyword} |
PatientName |
Příklad dotazu:
../workitems?PatientID=K123&0040A370.00080050=1423JS&includefield=00404005&limit=5&offset=0
Odpověď hledání
Odpověď je pole datových 0...N
sad DICOM s vrácenými následujícími atributy.
- Všechny atributy v DICOM PowerShellu 3.4 Table CC.2.5-3 s návratovým typem klíče 1 nebo 2
- Všechny atributy v DICOM PowerShellu 3.4 Table CC.2.5-3 s typem návratového klíče 1C, pro který jsou splněny podmíněné požadavky
- Všechny ostatní atributy Workitem předané jako parametry shody
- Všechny ostatní atributy Workitem předané jako
includefield
hodnoty parametrů
Kódy odpovědí vyhledávání
Rozhraní API pro dotazy vrátí v odpovědi jeden z následujících stavových kódů:
Kód | Popis |
---|---|
200 (OK) |
Datová část odpovědi obsahuje všechny odpovídající prostředky. |
206 (Partial Content) |
Datová část odpovědi obsahuje pouze některé výsledky hledání a zbytek je možné vyžádat prostřednictvím příslušného požadavku. |
204 (No Content) |
Hledání se úspěšně dokončilo, ale nevrátil žádné výsledky. |
400 (Bad Request) |
Došlo k problému s žádostí. Například neplatná syntaxe parametru dotazu. Tělo odpovědi obsahuje podrobnosti o selhání. |
401 (Unauthorized) |
Klient není ověřený. |
403 (Forbidden) |
Uživatel nemá oprávnění. |
424 (Failed Dependency) |
Služba DICOM nemůže získat přístup k prostředku, na který závisí na dokončení této žádosti. Příkladem je selhání přístupu k připojenému úložišti Data Lake Store nebo trezoru klíčů pro podporu šifrování klíčů spravovaných zákazníkem. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Další poznámky
Rozhraní API pro dotazy nevrací 413 (request entity too large)
. Pokud je požadovaný limit odpovědi dotazu mimo přijatelný rozsah, vrátí se chybný požadavek. Vše, co je požadováno v přijatelném rozsahu, se vyřeší.
- Stránkované výsledky jsou optimalizované tak, aby se vrátily jako první odpovídající nejnovější instance, což může vést k duplicitním záznamům na následujících stránkách, pokud byla přidána novější data odpovídající dotazu.
- Porovnávání je nerozlišující malá a velká písmena a nerozlišují se u typů PN VR.
- Porovnávání je nerozlišující malá a velká písmena a rozlišují se u jiných typů řetězcových virtuálních realit.
- Pokud existuje scénář, ve kterém dojde ke zrušení workitem a dotazování stejného stavu ve stejnou dobu, dotaz s největší pravděpodobností vyloučí aktualizaci Workitem a kód odpovědi je
206 (Partial Content)
.
Poznámka:
DICOM® je registrovaná ochranná známka asociace National Electrical Manufacturers Association pro publikace standardů týkající se digitální komunikace s lékařskými informacemi.