Sdílet prostřednictvím


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, SeriesInstanceUIDa 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 StudyInstanceUIDobjektem , SeriesInstanceUIDa 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 jpega pro žádosti o vykreslení se ignoruje png . Pokud není zadán parametr výchozí 100hodnota .

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=alljsou 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 Seriescílový prostředek , Study vrátí se také atributy na úrovni.
  • Pokud je All Instancescílový prostředek , Study pak a Series úrovně atributy jsou také vráceny.
  • Pokud je Study's Instancescílový prostředek , Series vrátí se také atributy na úrovni.
  • NumberOfStudyRelatedInstances Agregovaný atribut je podporován na Study úrovni includeField.
  • NumberOfSeriesRelatedInstances Agregovaný atribut je podporován na Series úrovni includeField.

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, seriesa instance odpovídají atributům StudyInstanceUIDDICOM , SeriesInstanceUIDa 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, COMPLETEDnebo CANCELED.

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 100je .
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 doDoe a John Doe všechny John^Doeshody. 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.