DiCOM Conformance – příkaz v1
Poznámka:
Rozhraní API verze 2 je nejnovější verze rozhraní API a mělo by se používat místo verze 1. Podrobnosti naleznete v dicom Conformance Statement v2 .
Medical Imaging Server for DICOM® podporuje podmnožinu DICOMweb Standard. Podpora zahrnuje:
Kromě toho se podporují následující 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á v1
verzi rozhraní REST API.
Informace o tom, jak určit verzi při provádění 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 StudyInstanceUID
DICOM . Pokud je zadáno, všechny instance, které nepatří do poskytnuté studie, budou odmítnuty s kódem 43265
upozornění.
Podporuje se následující Accept
hlavička odpovědi:
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
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.
Uložení stavových kódů odpovědí
Kód | Popis |
---|---|
200 (OK) |
Všechny instance SOP v požadavku jsou uloženy. |
202 (Accepted) |
Některé instance v požadavku jsou uložené, ale jiné se nezdařily. |
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ý. |
403 (Forbidden) |
Uživatel nemá oprávnění. |
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á. |
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 StudyInstanceUID byla poskytnuta v požadavku na úložiště 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 |
(0074, 1048) | FailedAttributesSequence |
Posloupnost ErrorComment , která zahrnuje 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 instance, která se nepodařilo uložit |
(0008, 1155) | ReferencedSOPInstanceUID |
Jedinečný identifikátor instance SOP, která se nepodařilo uložit |
(0008, 1190) | RetrieveURL |
Adresa URL pro načtení této instance na serveru DICOM |
Příklad odpovědi s hlavičkou Accept
application/dicom+json
:
{
"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"]
}
}]
}
}
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 je již 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. |
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; Chcete-li zadat více než jeden rámec, použijte čárku k oddělení každého rámce, 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 se podporují 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
*/*
(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í 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 If-None-Match
hlavička v pozdějších požadavcích na stejná metadata. Pokud data existují, můžou být možné 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:
HTTP 200 (OK)
Odpověď se odešle s aktualizovanou značkou ETag. Povinná data se vrátí také 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í vykreslí 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 od 1
dosadí 100
(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 se ve výchozím nastavení nastaví na 100
hodnotu .
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 nezměnila. V tomto případě se obsah 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ý. |
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
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. Je-li all k dispozici. Další informace o tom, které atributy se vrátí pro každý typ dotazu, najdete v odpovědi vyhledávání.Pokud je k dispozici kombinace {attributeID} a all je k dispozici, server použije výchozí hodnotu all . |
limit= |
{value} |
0..1 | Celočíselná hodnota pro omezení počtu hodnot vrácených v odpovědi; Hodnota může být mezi rozsahem 1 >= x <= 200, výchozí hodnota je 100. |
offset= |
{value} |
0..1 | Přeskočit {value} výsledky; 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 je u atributu PatientName použita pravdivá přibližná shoda; 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 |
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, který je namapován na attributeID >= {value1} AND attributeID <= {value2} . Pokud {value1} není zadáno, budou se všechny výskyty kalendářních dat a časů před a zahrnutím {value2} shodovat. 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. |
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 |
Tady je příklad dotazu, který hledá instance:
../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, 0005) | SpecificCharacterSet |
(0008, 0020) | StudyDate |
(0008, 0030) | StudyTime |
(0008, 0050) | AccessionNumber |
(0008, 0056) | InstanceAvailability |
(0008, 0090) | ReferringPhysicianName |
(0008, 0201) | TimezoneOffsetFromUTC |
(0010, 0010) | PatientName |
(0010, 0020) | PatientID |
(0010, 0030) | PatientBirthDate |
(0010, 0040) | PatientSex |
(0020, 0010) | StudyID |
(0020, 000D) | StudyInstanceUID |
Výchozí značky řad
Značka | Název atributu |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0060) | Modality |
(0008, 0201) | TimezoneOffsetFromUTC |
(0008, 103E) | SeriesDescription |
(0020, 000E) | SeriesInstanceUID |
(0040, 0244) | PerformedProcedureStepStartDate |
(0040, 0245) | PerformedProcedureStepStartTime |
(0040, 0275) | RequestAttributesSequence |
Výchozí značky instancí
Značka | Název atributu |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0016) | SOPClassUID |
(0008, 0018) | SOPInstanceUID |
(0008, 0056) | InstanceAvailability |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0013) | InstanceNumber |
(0028, 0010) | Rows |
(0028, 0011) | Columns |
(0028, 0100) | BitsAllocated |
(0028, 0008) | NumberOfFrames |
Pokud includefield=all
jsou spolu s výchozími atributy zahrnuté následující atributy. Společně s výchozími atributy je to úplný seznam atributů podporovaných na jednotlivých úrovních prostředků.
Zvláštní studijní značky
Značka | Název atributu |
---|---|
(0008, 1030) | Study Description |
(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 |
Jiné značky řad
Značka | Název atributu |
---|---|
(0020, 0011) | SeriesNumber |
(0020, 0060) | Laterality |
(0008, 0021) | SeriesDate |
(0008, 0031) | SeriesTime |
Vrátí se následující atributy:
- Všechny parametry dotazu a identifikátory UID 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í. |
503 (Service Unavailable) |
Služba není k dispozici nebo je zaneprázdněná. Zkuste to později. |
Další poznámky
- 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ý název patientName. V tomto případě nejnovější vítězství a můžete hledat pouze nejnovější data.
- Stránkované výsledky jsou optimalizované tak, aby nejprve vrátily odpovídající nejnovější instanci, což může vést k duplicitním záznamům 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, pokud jeden hodnotný datový prvek nesprávně obsahuje více hodnot.
Odstranění
Tato transakce není součástí oficiálního standardu DICOMwe. Používá metodu DELETE k odebrání reprezentací studií, řad a instancí z úložiště.
metoda | Cesta | Popis |
---|---|---|
DELETE | .. /studies/{study} | Odstranění všech instancí pro konkrétní studii |
DELETE | .. /studies/{study}/series/{series} | Odstranění všech instancí pro určitou řadu v rámci studie |
DELETE | .. /studies/{study}/series/{series}/instance/{instance} | Odstranění konkrétní instance 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, hlavička Accept
Content-Type
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) |
Při 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. |
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). Služba Worklist poskytuje přístup k jednomu pracovnímu seznamu obsahujícímu pracovní položky, z nichž každá představuje sjednocený krok 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ření pracovní položky |
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á. |
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í neowned 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 nezmění. |
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á. |
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. |
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á funkce Workitem nebude 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
Pokud chcete aktualizovat pracovní položku, která je aktuálně ve SCHEDULED
stavu, Transaction UID
atribut by neměl být 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 je potřeba aktualizovat více atributů jako skupinu, proveďte aktualizaci 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á práce 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á. |
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 tohoto atributu jako zámku přístupu, 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. Mezi tyto datové prvky patří:
- 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. Jsou:
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. |
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 | Hledání shody atributů a hodnot v dotazu |
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. Po all zadání najdete další informace o tom, které atributy se vrátí pro každý typ dotazu, viz 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 pro omezení počtu 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čit 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 pravda přibližná shoda; Provede se shoda slova předpony 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 všakohn . |
Prohledávatelné atributy
Podporujeme vyhledávání těchto atributů.
Klíčové slovo atributu |
---|
PatientName |
PatientID |
ReferencedRequestSequence.AccessionNumber |
ReferencedRequestSequence.RequestedProcedureID |
ScheduledProcedureStepStartDateTime |
ScheduledStationNameCodeSequence.CodeValue |
ScheduledStationClassCodeSequence.CodeValue |
ScheduledStationGeographicLocationCodeSequence.CodeValue |
ProcedureStepState |
StudyInstanceUID |
Porovnávání hledání
Tyto typy porovnávání podporujeme.
Typ hledání | Podporovaný atribut | Příklad |
---|---|---|
Dotaz rozsahu | ScheduledProcedureStepStartDateTime |
{attributeID}={value1}-{value2} . U hodnot data a času podporujeme inkluzivní rozsah značky. To je namapováno na attributeID >= {value1} AND attributeID <= {value2} . Pokud {value1} není zadáno, budou se všechny výskyty kalendářních dat a časů před a zahrnutím {value2} shodovat. 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 |
Odpovídá libovolné komponentě názvu, která začíná hodnotou. |
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 následujícími vrácenými atributy:
- Všechny atributy v PROSTŘEDÍ DICOM PowerShell 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í. |
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í 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.
- Pokud dojde ke scénáři, kdy dojde ke zrušení workitem a dotazování stejného workitem ve stejnou dobu, dotaz pravděpodobně 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.