DICOM-överensstämmelseuttryck v2
Kommentar
API version 2 är den senaste API-versionen. En lista över ändringar i v2 jämfört med v1 finns i DICOM-tjänstens API v2-ändringar
Medical Imaging Server för DICOM® stöder en delmängd av DICOMweb Standard. Supporten omfattar:
Dessutom stöds dessa icke-standard-API:er:
Tjänsten använder REST API-versionshantering. Versionen av REST-API:et måste uttryckligen anges som en del av bas-URL:en, som i följande exempel:
https://<service_url>/v<version>/studies
Den här versionen av överensstämmelse-instruktionen motsvarar versionen v2
av REST-API:erna.
Mer information om hur du anger versionen när du gör begäranden finns i dokumentationen om API-versionshantering.
Du hittar exempelbegäranden för transaktioner som stöds i Postman-samlingen.
Sanitering i ingress
Tjänsten ignorerar ingressen 128 byte och ersätter innehållet med null-tecken. Det här beteendet säkerställer att inga filer som skickas via tjänsten är sårbara för den skadliga ingressen. Den här ingressen innebär dock också att ingresser som används för att koda innehåll med dubbla format, till exempel TIFF, inte kan användas med tjänsten.
Studietjänst
Med studiestjänsten kan användare lagra, hämta och söka efter DICOM-studier, serier och instanser. Vi lade till den icke-standardtransaktionen Ta bort för att aktivera en fullständig resurslivscykel.
Arkiv (STOW-RS)
Den här transaktionen använder POST- eller PUT-metoden för att lagra representationer av studier, serier och instanser som finns i nyttolasten för begäran.
Metod | Sökväg | beskrivning |
---|---|---|
POST | .. /studier | Lagra instanser. |
POST | .. /studies/{study} | Lagra instanser för en specifik studie. |
PUT | .. /studier | Upsert-instanser. |
PUT | .. /studies/{study} | Upsert-instanser för en specifik studie. |
Parametern study
motsvarar DICOM-attributet StudyInstanceUID. Om det anges avvisas alla instanser som inte tillhör den angivna studien med en 43265
varningskod.
Följande är det enda svarshuvudet Accept
som stöds:
application/dicom+json
Följande Content-Type
rubriker stöds:
multipart/related; type="application/dicom"
application/dicom
Kommentar
Servern kommer inte att tvinga eller ersätta attribut som är i konflikt med befintliga data för POST-begäranden. Alla data lagras enligt angivet. För UPSERT-begäranden (PUT) ersätts befintliga data med de nya mottagna data.
Lagra obligatoriska attribut
Följande DICOM-element måste finnas i varje DICOM-fil som försöker lagras:
StudyInstanceUID
SeriesInstanceUID
SOPInstanceUID
SOPClassUID
PatientID
Kommentar
Alla användargränssnitt måste vara mellan 1 och 64 tecken långa och endast innehålla alfanumeriska tecken eller följande specialtecken: .
, -
. PatientID
fortsätter att vara en obligatorisk tagg och kan ha värdet som null i indata. PatientID
verifieras baserat på dess LO
VR
typ.
Varje fil som lagras måste ha en unik kombination av StudyInstanceUID
, SeriesInstanceUID
och SopInstanceUID
. Varningskoden 45070
returneras om det redan finns en fil med samma identifierare.
Endast överföringssyntaxer med explicita värderepresentationer accepteras.
Kommentar
Begäranden är begränsade till 4 GB. Ingen enskild DICOM-fil eller kombination av filer kan överskrida den här gränsen.
Lagra ändringar från v1
I tidigare versioner skulle en Store-begäran misslyckas om något av de obligatoriska eller sökbara attributen misslyckades med valideringen. Från och med V2 misslyckas begäran endast om nödvändiga attribut misslyckas.
Misslyckad validering av attribut som inte krävs av API:et resulterar i att filen lagras med en varning. En varning ges om varje felattribut per instans. När en sekvens innehåller ett attribut som inte kan valideras, eller om det finns flera problem med ett enda attribut, noteras endast den första orsaken till att attributet misslyckas.
Om ett attribut är fyllt med null-värden indexeras attributet när det är sökbart och lagras som i dicom+json-metadata. Ingen verifieringsvarning har angetts.
Lagra svarsstatuskoder
Kod | beskrivning |
---|---|
200 (OK) |
Alla SOP-instanser i begäran har lagrats. |
202 (Accepted) |
Ursprungsservern lagrade några av instanserna och andra misslyckades eller returnerade varningar. Ytterligare information om det här felet kan hittas i svarsmeddelandetexten. |
204 (No Content) |
Inget innehåll angavs i lagringstransaktionsbegäran. |
400 (Bad Request) |
Begäran var felaktigt formaterad. Den angivna identifieraren för studieinstansen uppfyllde till exempel inte det förväntade UID-formatet. |
401 (Unauthorized) |
Klienten autentiseras inte. |
406 (Not Acceptable) |
Det angivna Accept huvudet stöds inte. |
409 (Conflict) |
Ingen av instanserna i lagringstransaktionsbegäran har lagrats. |
415 (Unsupported Media Type) |
Den angivna Content-Type stöds inte. |
424 (Failed Dependency) |
DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
500 (Internal Server Error) |
Servern påträffade ett okänt internt fel. Försök igen senare. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Nyttolast för butikssvar
Svarsnyttolasten fyller i en DICOM-datauppsättning med följande element:
Tagg | Name | beskrivning |
---|---|---|
(0008, 1190) | RetrieveURL |
Hämta URL:en för studien om StudyInstanceUID angavs i lagringsbegäran och minst en instans har lagrats. |
(0008, 1198) | FailedSOPSequence |
Sekvensen med instanser som inte kunde lagras. |
(0008, 1199) | ReferencedSOPSequence |
Sekvensen med lagrade instanser. |
Varje datauppsättning i FailedSOPSequence
har följande element (om DICOM-filen som försöker lagras kan läsas):
Tagg | Name | beskrivning |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Sop-klassens unika identifierare för den instans som inte kunde lagras. |
(0008, 1155) | ReferencedSOPInstanceUID |
Sop-instansens unika identifierare för den instans som inte kunde lagras. |
(0008, 1197) | FailureReason |
Orsakskoden till varför den här instansen inte kunde lagras. |
(0008, 1196) | WarningReason |
A WarningReason anger valideringsproblem som har identifierats men som inte var tillräckligt allvarliga för att butiksåtgärden skulle misslyckas. |
(0074, 1048) | FailedAttributesSequence |
Sekvensen av ErrorComment detta inkluderar orsaken till varje misslyckat attribut. |
Varje datauppsättning i ReferencedSOPSequence
har följande element:
Tagg | Name | beskrivning |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Sop-klassens unika identifierare för den instans som lagrades. |
(0008, 1155) | ReferencedSOPInstanceUID |
Sop-instansens unika identifierare för den lagrade instansen. |
(0008, 1190) | RetrieveURL |
Hämta URL:en för den här instansen på DICOM-servern. |
Ett exempelsvar med Accept
huvudet application/dicom+json
utan failedAttributesSequence i en 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"]
}
}]
}
}
Ett exempelsvar med Accept
huvudet application/dicom+json
med en FailedAttributesSequence i en 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}]]]]]]"
]
}
}
]
}
}]
}
}
Orsakskoder för butiksfel
Kod | beskrivning |
---|---|
272 |
Butikstransaktionen lagrade inte instansen på grund av ett allmänt fel vid bearbetningen av åtgärden. |
43264 |
DICOM-instansen misslyckades med valideringen. |
43265 |
Den angivna instansen StudyInstanceUID matchade inte den angivna StudyInstanceUID i lagringsbegäran. |
45070 |
En DICOM-instans med samma StudyInstanceUID , SeriesInstanceUID och SopInstanceUID har redan lagrats. Om du vill uppdatera innehållet tar du först bort den här instansen. |
45071 |
En DICOM-instans skapas av en annan process, eller så misslyckades föregående försök att skapa och rensningsprocessen är inte klar. Ta bort instansen först innan du försöker skapa igen. |
Lagra varningsorsakskoder
Kod | beskrivning |
---|---|
45063 |
En DICOM-instansdatauppsättning matchar inte SOP-klassen. Studielagringstransaktionen (avsnitt 10.5) observerade att datauppsättningen inte matchade begränsningarna för SOP-klassen under lagringen av instansen. |
1 |
Studies Store-transaktionen (avsnitt 10.5) observerade att datauppsättningen har validering |
Lagra felkoder
Kod | beskrivning |
---|---|
100 |
De angivna instansattributen uppfyllde inte valideringsvillkoren. |
Hämta (WADO-RS)
Den här Hämta transaktionen har stöd för att hämta lagrade studier, serier, instanser och ramar med referens.
Metod | Sökväg | beskrivning |
---|---|---|
GET | .. /studies/{study} | Hämtar alla instanser i en studie. |
GET | .. /studies/{study}/metadata | Hämtar metadata för alla instanser i en studie |
GET | .. /studies/{study}/series/{series} | Hämtar alla instanser i en serie |
GET | .. /studies/{study}/series/{series}/metadata | Hämtar metadata för alla instanser i en serie |
GET | .. /studies/{study}/series/{series}/instances/{instance} | Hämtar en enskild instans |
GET | .. /studies/{study}/series/{series}/instances/{instance}/metadata | Hämtar metadata för en enskild instans |
GET | .. /studies/{study}/series/{series}/instances/{instance}/renderad | Hämtar en instans som återges i ett bildformat |
GET | .. /studies/{study}/series/{series}/instances/{instance}/frames/{frames} | Hämtar en eller flera bildrutor från en enda instans. Om du vill ange mer än en ram avgränsar ett kommatecken varje bildruta som ska returneras. Exempel: /studies/1/series/2/instance/3/frames/4,5,6 |
GET | .. /studies/{study}/series/{series}/instances/{instance}/frames/{frame}/renderad | Hämtar en enskild ram som återges i ett bildformat |
Hämta instanser inom studie eller serie
Följande Accept
rubriker stöds för att hämta instanser i en studie eller en serie.
multipart/related; type="application/dicom"; transfer-syntax=*
multipart/related; type="application/dicom";
(när transfer-syntax inte har angetts används 1.2.840.10008.1.2.1 som standard)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
*/*
(när överföringssyntax inte har angetts*
används som standard och mediaType standardvärdetapplication/dicom
)
Hämta en instans
Följande Accept
rubriker stöds för att hämta en specifik instans.
application/dicom; transfer-syntax=*
multipart/related; type="application/dicom"; transfer-syntax=*
application/dicom;
(när överföringssyntax inte har angetts1.2.840.10008.1.2.1
används som standard)multipart/related; type="application/dicom"
(när överföringssyntax inte har angetts1.2.840.10008.1.2.1
används som standard)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
*/*
(när överföringssyntax inte har angetts*
används som standard och mediaType standardvärdetapplication/dicom
)
Hämta bildrutor
Följande Accept
rubriker stöds för att hämta ramar.
multipart/related; type="application/octet-stream"; transfer-syntax=*
multipart/related; type="application/octet-stream";
(när överföringssyntax inte har angetts1.2.840.10008.1.2.1
används som standard)multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1
multipart/related; type="image/jp2";
(när överföringssyntax inte har angetts1.2.840.10008.1.2.4.90
används som standard)multipart/related; type="image/jp2";transfer-syntax=1.2.840.10008.1.2.4.90
application/octet-stream; transfer-syntax=*
för hämtning av en bildruta
*/*
(när överföringssyntax inte har angetts*
används som standard och mediaType standardvärdetapplication/octet-stream
)
Hämta överföringssyntax
När den begärda överföringssyntaxen skiljer sig från den ursprungliga filen omkodas den ursprungliga filen till den begärda överföringssyntaxen. Den ursprungliga filen måste vara ett av följande format för att omkodningen ska lyckas, annars kan omkodningen misslyckas.
- 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 (Explicit VR Big Endian)
- 1.2.840.10008.1.2.4.50 (JPEG-baslinjeprocess 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 (endast JPEG 2000 Lossless)
- 1.2.840.10008.1.2.4.91 (JPEG 2000)
- 1.2.840.10008.1.2.5 (RLE Lossless)
Ett resultat som transfer-syntax
inte stöds resulterar i 406 Not Acceptable
.
Hämta metadata (för studier, serier eller instanser)
Följande Accept
rubrik stöds för att hämta metadata för en studie, en serie eller en instans.
application/dicom+json
När metadata hämtas returneras inte attribut med följande värderepresentationer.
VR-namn | beskrivning |
---|---|
OB | Annan byte |
OD | Annan dubbel |
AV | Annan flyttal |
OL | Övrigt långt |
OV | Andra 64-bitars mycket långa |
ACK | Annat ord |
FN | Okänt |
Hämtade metadata innehåller null-tecknet när attributet var vadderat med null och lagras som det är.
Hämta validering av metadatacache (för studier, serier eller instanser)
Cacheverifiering stöds med hjälp av mekanismen ETag
. I svaret på en metadatabegäran returneras ETag som en av rubrikerna. Denna ETag kan cachelagras och läggas till som en If-None-Match
rubrik i senare begäranden om samma metadata. Två typer av svar är möjliga om data finns.
- Data är oförändrade sedan den senaste begäran: svaret
HTTP 304 (Not Modified)
skickas utan svarstext. - Data har ändrats sedan den senaste begäran: svaret
HTTP 200 (OK)
skickas med uppdaterad ETag. Nödvändiga data returneras som en del av brödtexten.
Hämta renderad bild (till exempel eller ram)
Följande Accept
rubriker stöds för att hämta en renderad bild en instans eller en ram.
image/jpeg
image/png
Om inget Accept
huvud anges renderas image/jpeg
tjänsten som standard.
Tjänsten stöder endast återgivning av en enda ram. Om återgivning begärs för en instans med flera bildrutor återges som standard endast den första ramen som en bild.
När du anger en viss ram som ska returneras börjar ramindexeringen vid 1.
Frågeparametern quality
stöds också. Ett heltalsvärde mellan 1
och 100
inkluderande (1 är sämsta kvalitet och 100 som bästa kvalitet) kan skickas som värde för frågeparametern. Den här parametern används för bilder som återges som jpeg
och ignoreras för png
återgivningsbegäranden. Om parametern inte anges är standardvärdet 100
.
Hämta den ursprungliga versionen
Med massuppdateringsåtgärden kan du hämta antingen den ursprungliga eller senaste versionen av en studie, serie eller instans. Den senaste versionen av en studie, serie eller instans returneras alltid som standard. Den ursprungliga versionen kan returneras genom att ange msdicom-request-original
rubriken till true
. Här är en exempelförfrågan:
GET ../studies/{study}/series/{series}/instances/{instance}
Accept: multipart/related; type="application/dicom"; transfer-syntax=*
msdicom-request-original: true
Content-Type: application/dicom
Hämta svarsstatuskoder
Kod | beskrivning |
---|---|
200 (OK) |
Alla begärda data hämtades. |
304 (Not Modified) |
Begärda data är oförändrade sedan den senaste begäran. Innehållet läggs inte till i svarstexten i sådana fall. Mer information finns i föregående avsnitt Hämta validering av metadatacache (för studie, serie eller instans). |
400 (Bad Request) |
Begäran var felaktigt formaterad. Den angivna identifieraren för studieinstansen överensstämmer till exempel inte med det förväntade UID-formatet, eller så stöds inte den begärda överföringssyntaxkodningen. |
401 (Unauthorized) |
Klienten autentiseras inte. |
403 (Forbidden) |
Användaren har inte behörighet. |
404 (Not Found) |
Det gick inte att hitta den angivna DICOM-resursen, eller för renderad begäran innehöll instansen inte pixeldata. |
406 (Not Acceptable) |
Det angivna Accept huvudet stöds inte eller för renderade och omkodningsbegäranden som filen begärde var för stor. |
424 (Failed Dependency) |
DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Sök (QIDO-RS)
Med frågor baserade på ID för DICOM-objekt (QIDO) kan du söka efter studier, serier och instanser efter attribut.
Metod | Sökväg | beskrivning |
---|---|---|
Sök efter studier | ||
GET | .. /studier?... | Sök efter studier |
Sök efter serie | ||
GET | .. /serie?... | Sök efter serier |
GET | .. /studies/{study}/series?... | Söka efter serier i en studie |
Sök efter instanser | ||
GET | .. /Instanser?... | Sök efter instanser |
GET | .. /studies/{study}/instances?... | Sök efter instanser i en studie |
GET | .. /studies/{study}/series/{series}/instances?... | Sök efter instanser i en serie |
Följande Accept
rubrik stöds för sökning.
application/dicom+json
Sök ändringar från v1
I v1-API:et och fortsatte för v2, om en utökad frågetagg har några fel eftersom en eller flera av de befintliga instanserna hade ett taggvärde som inte kunde indexeras, returnerar erroneous-dicom-attributes
efterföljande sökfrågor som innehåller den utökade frågetaggen enligt beskrivningen i dokumentationen. Taggar (även kallade attribut) med valideringsvarningar från STOW-RS ingår dock inte i den här rubriken. Om en lagringsbegäran resulterar i valideringsvarningar för sökbara attribut när instansen lagrades, kanske dessa attribut inte används för att söka efter den lagrade instansen. Alla sökbara attribut som misslyckades med valideringen kan dock returnera resultat om värdena skrivs över av instanser i samma studie eller serie som lagras efter den misslyckade, eller om värdena redan lagras korrekt av en tidigare instans. Om attributvärdena inte skrivs över genererar de inga sökresultat.
Ett attribut kan korrigeras på följande sätt.
- Ta bort den lagrade instansen och ladda upp en ny instans med rättade data
- Ladda upp en ny instans i samma studie/serie med korrigerade data
Sökparametrar som stöds
Följande parametrar för varje fråga stöds:
Nyckel | Stödvärden | Antal tillåtna | beskrivning |
---|---|---|---|
{attributeID}= |
{value} |
0...N | Sök efter attribut/värdematchning i fråga |
includefield= |
{attributeID} all |
0...N | De andra attributen som ska returneras i svaret. Både offentliga och privata taggar stöds. När all anges kan du läsa Söksvar för mer information.Om en blandning av {attributeID} och all tillhandahålls använder servern som standard all |
limit= |
{value} |
0..1 | Heltalsvärde för att begränsa antalet värden som returneras i svaret. Värdet kan ligga mellan intervallet 1 >= x <= 200. Standardvärdet är 100 |
offset= |
{value} |
0..1 | Hoppa över {value} resultat.Om en förskjutning anges som är större än antalet sökresultat returneras ett svar på 204 (inget innehåll). |
fuzzymatching= |
true / false |
0..1 | Om sann fuzzy-matchning tillämpas på attributet PatientName. Det gör en prefix ordmatchning av någon namndel i PatientName-värdet. Om PatientName till exempel är "John^Doe" matchar "joh", "do", "jo do", "Doe" och "John Doe". Men "ohn" matchar inte. |
Sökbara attribut
Vi stöder sökning efter följande attribut och söktyper.
Nyckelord för attribut | Alla studier | Alla serier | Alla instanser | Studiens serie | Studiens instanser | Studieserieinstanser |
---|---|---|---|---|---|---|
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 |
Kommentar
Vi stöder inte sökning med hjälp av en tom sträng för några attribut.
Sökmatchning
Vi stöder följande matchningstyper.
Söktyp | Attribut som stöds | Exempel |
---|---|---|
Intervallfråga | StudyDate /PatientBirthDate |
{attributeID}={value1}-{value2} . För datum-/tidsvärden stöder vi ett inkluderande intervall på taggen. Det här intervallet mappas till attributeID >= {value1} AND attributeID <= {value2} . Om {value1} inte anges matchas alla förekomster av datum/tider före och inklusive {value2} . På samma sätt, om {value2} inte anges, matchas alla förekomster av {value1} och efterföljande datum/tider. Ett av dessa värden måste dock finnas. {attributeID}={value1}- och {attributeID}=-{value2} är giltiga är dock {attributeID}=- ogiltiga. |
Exakt matchning | Alla attribut som stöds | {attributeID}={value1} |
Fuzzy Match | PatientName , ReferringPhysicianName |
Matchar valfri komponent i namnet som börjar med värdet |
UID-listmatchning | StudyInstanceUID |
Matchar studier som identifieras med de värden som anges i listan. Stöder kommatecken (,) eller ett omvänt snedstreck (\) som en giltig avgränsare. {attributeID}=1.2.3,5.6.7,8.9.0 kommer att returnera information som är associerad med alla studier, med tanke på att de finns. |
Attribut-ID
Taggar kan kodas på flera sätt för frågeparametern. Vi implementerade delvis standarden enligt definitionen i PS3.18 6.7.1.1.1. Följande kodningar för en tagg stöds.
Värde | Exempel |
---|---|
{group}{element} |
0020000D |
{dicomKeyword} |
StudyInstanceUID |
Exempelfråga som söker efter instanser:
../instances?Modality=CT&00280011=512&includefield=00280010&limit=5&offset=0
Söksvar
Svaret är en matris med DICOM-datamängder. Beroende på resursen returneras som standard följande attribut.
Standardtaggar för studie
Tagg | Attributnamn |
---|---|
(0008, 0020) | StudyDate |
(0008, 0050) | AccessionNumber |
(0008, 1030) | StudyDescription |
(0009, 0090) | ReferringPhysicianName |
(0010, 0010) | PatientName |
(0010, 0020) | PatientID |
(0010, 0030) | PatientBirthDate |
(0020, 000D) | StudyInstanceUID |
Standardserietaggar
Tagg | Attributnamn |
---|---|
(0008, 0060) | Modality |
(0008, 1090) | ManufacturerModelName |
(0020, 000E) | SeriesInstanceUID |
(0040, 0244) | PerformedProcedureStepStartDate |
Standardinstanstaggar
Tagg | Attributnamn |
---|---|
(0008, 0018) | SOPInstanceUID |
Om includefield=all
ingår dessa attribut tillsammans med standardattribut. Tillsammans med standardattributen innehåller den här listan en fullständig lista över attribut som stöds på varje resursnivå.
Andra studietaggar
Tagg | Attributnamn |
---|---|
(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 |
Taggar för andra serier
Tagg | Attributnamn |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0011) | SeriesNumber |
(0020, 0060) | Lateralitet |
(0008, 0021) | SeriesDate |
(0008, 0031) | SeriesTime |
(0008, 103E) | SeriesDescription |
(0040, 0245) | PerformedProcedureStepStartTime |
(0040, 0275) | RequestAttributesSequence |
Andra instanstaggar
Tagg | Attributnamn |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0016) | SOPClassUID |
(0008, 0056) | InstanceAvailability |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0013) | InstanceNumber |
(0028, 0010) | Rader |
(0028, 0011) | Kolumner |
(0028, 0100) | BitsAllocated |
(0028, 0008) | NumberOfFrames |
Följande attribut returneras.
- Alla matchningsfrågeparametrar och användargränssnitt i resurs-URL:en
IncludeField
attribut som stöds på den resursnivån- Om målresursen är
All Series
Study
returneras även nivåattribut. - Om målresursen är
All Instances
returnerasStudy
Series
även nivåattribut. - Om målresursen är
Study's Instances
Series
returneras även nivåattribut. NumberOfStudyRelatedInstances
aggregerat attribut stöds påStudy
nivåincludeField
.NumberOfSeriesRelatedInstances
aggregerat attribut stöds påSeries
nivåincludeField
.
Söksvarskoder
Fråge-API:et returnerar någon av följande statuskoder i svaret.
Kod | beskrivning |
---|---|
200 (OK) |
Svarsnyttolasten innehåller alla matchande resurser. |
204 (No Content) |
Sökningen slutfördes men returnerade inga resultat. |
400 (Bad Request) |
Servern kunde inte utföra frågan eftersom frågekomponenten var ogiltig. Svarstexten innehåller information om felet. |
401 (Unauthorized) |
Klienten autentiseras inte. |
403 (Forbidden) |
Användaren har inte behörighet. |
414 (URI Too Long) |
URI överskred maximal längd på 8 192 tecken. |
424 (Failed Dependency) |
DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Kommentar
- Det går inte att köra frågor med hjälp av
TimezoneOffsetFromUTC (00080201)
. - Fråge-API:et returnerar
413 (request entity too large)
inte . Om den begärda frågesvarsgränsen ligger utanför det godkända intervallet returneras en felaktig begäran. Allt som begärs inom det godkända intervallet löses. - När målresursen är Study/Series finns det en potential för inkonsekventa metadata på studie-/serienivå över flera instanser. Två instanser kan till exempel ha olika
patientName
. I det här fallet vinner de senaste och du kan bara söka efter de senaste data. - Sidsidiga resultat är optimerade för att returnera den senaste instansen först, vilket kan resultera i dubbletter av poster på efterföljande sidor om nyare data som matchar frågan har lagts till.
- Matchning är inte skiftlägeskänsligt och inte dekorkänsligt för PN VR-typer.
- Matchning är inte skiftlägeskänsligt och är dekorkänsligt för andra vr-strängtyper.
- Endast det första värdet indexeras av ett enda värdedataelement som felaktigt har flera värden.
- Om du använder standardattributen eller begränsar antalet begärda resultat maximeras prestandan.
- När ett attribut har lagrats med null-utfyllnad kan det sökas efter med eller utan null-utfyllnad i URI-kodning. Resultat som hämtas är för attribut som lagras både med och utan null-utfyllnad.
Delete
Den här transaktionen är inte en del av den officiella DICOMweb Standard. Metoden DELETE används för att ta bort representationer av studier, serier och instanser från arkivet.
Metod | Sökväg | beskrivning |
---|---|---|
DELETE | .. /studies/{study} | Ta bort alla instanser för en specifik studie. |
DELETE | .. /studies/{study}/series/{series} | Ta bort alla instanser för en specifik serie i en studie. |
DELETE | .. /studies/{study}/series/{series}/instances/{instance} | Ta bort en specifik instans i en serie. |
Parametrarna study
, series
och instance
motsvarar DICOM-attributen StudyInstanceUID
, SeriesInstanceUID
respektive SopInstanceUID
.
Det finns inga begränsningar för begärans Accept
sidhuvud, Content-Type
rubrik eller brödtextinnehåll.
Kommentar
Efter en borttagningstransaktion kan de borttagna instanserna inte återställas.
Svarsstatuskoder
Kod | beskrivning |
---|---|
204 (No Content) |
När alla SOP-instanser tas bort. |
400 (Bad Request) |
Begäran var felaktigt formaterad. |
401 (Unauthorized) |
Klienten autentiseras inte. |
403 (Forbidden) |
Användaren har inte behörighet. |
404 (Not Found) |
När den angivna serien inte hittades i en studie eller om den angivna instansen inte hittades i serien. |
424 (Failed Dependency) |
DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Ta bort svarsnyttolast
Svarstexten är tom. Statuskoden är den enda användbara informationen som returneras.
Worklist Service (UPS-RS)
DICOM-tjänsten stöder push- och pull-ip-adresser för Worklist Service (UPS-RS). Den här tjänsten ger åtkomst till en arbetslista som innehåller Workitems, som var och en representerar ett UPS (Unified Procedure Step).
Hela variabeln {workitem}
i en URI-mall står för ett Workitem UID.
Tillgängliga UPS-RS-slutpunkter är:
Verb | Sökväg | beskrivning |
---|---|---|
POST | {s}/workitems{? AffectedSOPInstanceUID} | Skapa ett arbetsobjekt |
POST | {s}/workitems/{instance}{?transaction} | Uppdatera ett arbetsobjekt |
GET | {s}/workitems{?query*} | Söka efter arbetsobjekt |
GET | {s}/workitems/{instance} | Hämta ett arbetsobjekt |
PUT | {s}/workitems/{instance}/state | Ändra arbetsobjektets tillstånd |
POST | {s}/workitems/{instance}/cancelrequest | Avbryt arbetsobjekt |
POST | {s}/workitems/{instance}/subscribers/{AETitle}{?deletionlock} | Skapa en prenumeration |
POST | {s}/workitems/1.2.840.10008.5.1.4.34.5/ | Pausa prenumeration |
DELETE | {s}/workitems/{instance}/subscribers/{AETitle} | Ta bort prenumeration |
GET | {s}/subscribers/{AETitle} | Öppna prenumerationskanal |
Skapa Workitem
Den här transaktionen använder POST-metoden för att skapa en ny Workitem.
Metod | Sökväg | beskrivning |
---|---|---|
POST | .. /workitems | Skapa en Workitem. |
POST | .. /workitems? {workitem} | Skapar en Workitem med angivet UID. |
Om den inte anges i URI:n måste nyttolastdatauppsättningen innehålla Workitem i SOPInstanceUID
attributet.
Huvudena Accept
och Content-Type
krävs i begäran och måste båda ha värdet application/dicom+json
.
Det finns flera krav som rör DICOM-dataattribut i kontexten för en specifik transaktion. Attribut kan krävas för att finnas, måste inte finnas, måste vara tomma eller måste inte vara tomma. Dessa krav finns i den här tabellen.
Kommentar
Även om referenstabellen säger att SOP-instansens UID inte ska finnas, är den här vägledningen specifik för DIMSE-protokollet och hanteras på olika sätt i DICOMWeb. UID för SOP-instans ska finnas i datauppsättningen om det inte finns i URI:n.
Kommentar
Alla villkorsstyrda kravkoder inklusive 1C och 2C behandlas som valfria.
Skapa svarsstatuskoder
Kod | beskrivning |
---|---|
201 (Created) |
Workitem-målet har skapats. |
400 (Bad Request) |
Det uppstod ett problem med begäran. Till exempel uppfyllde inte nyttolasten för begäran kraven. |
401 (Unauthorized) |
Klienten autentiseras inte. |
403 (Forbidden) |
Användaren har inte behörighet. |
409 (Conflict) |
Workitem finns redan. |
415 (Unsupported Media Type) |
Den angivna Content-Type stöds inte. |
424 (Failed Dependency) |
DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Skapa svarsnyttolast
Ett lyckat svar har ingen nyttolast. Svarshuvudena Location
och Content-Location
innehåller en URI-referens till den skapade Workitem.
En nyttolast för felsvar innehåller ett meddelande som beskriver felet.
Annullering av begäran
Den här transaktionen gör det möjligt för användaren att begära annullering av en icke-ägd Workitem.
Det finns fyra giltiga Workitem-tillstånd:
SCHEDULED
IN PROGRESS
CANCELED
COMPLETED
Den här transaktionen lyckas bara mot Workitems i tillståndet SCHEDULED
. Alla användare kan göra anspråk på ägarskap för en Workitem genom att ange dess transaktions-UID och ändra dess tillstånd till IN PROGRESS
. Från och med då kan en användare bara ändra Workitem genom att ange rätt transaktions-UID. Medan UPS definierar klasser för klock- och händelse-SOP som tillåter att begäranden om annullering och andra händelser vidarebefordras, implementerar dicom-tjänsten inte de här klasserna, vilket innebär att annulleringsbegäranden på arbetsytor som returnerar IN PROGRESS
ett fel. En ägd Workitem kan avbrytas via transaktionen Ändra workitem-tillstånd .
Metod | Sökväg | beskrivning |
---|---|---|
POST | .. /workitems/{workitem}/cancelrequest | Begär annullering av en schemalagd Workitem |
Huvudet Content-Type
krävs och måste ha värdet application/dicom+json
.
Nyttolasten för begäran kan innehålla åtgärdsinformation enligt definitionen i DICOM-standarden.
Statuskoder för begäran om annulleringssvar
Kod | beskrivning |
---|---|
202 (Accepted) |
Begäran accepterades av servern, men target workitem-tillståndet har inte ändrats ännu. |
400 (Bad Request) |
Det uppstod ett problem med syntaxen för begäran. |
401 (Unauthorized) |
Klienten autentiseras inte. |
403 (Forbidden) |
Användaren har inte behörighet. |
404 (Not Found) |
Target Workitem hittades inte. |
409 (Conflict) |
Begäran är inkonsekvent med det aktuella tillståndet för Target Workitem. Till exempel är Target Workitem i SCHEDULED tillståndet eller COMPLETED . |
415 (Unsupported Media Type) |
Den angivna Content-Type stöds inte. |
424 (Failed Dependency) |
DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Nyttolast för begäran om annulleringssvar
Ett lyckat svar har ingen nyttolast och en nyttolast för felsvar innehåller ett meddelande som beskriver felet.
Om Workitem-instansen redan är i ett avbrutet tillstånd innehåller svaret följande HTTP-varningsrubrik: 299: The UPS is already in the requested state of CANCELED.
Hämta Workitem
Den här transaktionen hämtar en Workitem. Den motsvarar ÅTGÄRDEN UPS DIMSE N-GET.
Åberopa: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.5
Om Workitem finns på ursprungsservern returneras Workitem i en acceptabel medietyp. Den returnerade Workitem innehåller inte attributet Transaction UID (0008,1195). Detta är nödvändigt för att bevara attributets roll som ett åtkomstlås.
Metod | Sökväg | beskrivning |
---|---|---|
GET | .. /workitems/{workitem} | Begäran om att hämta en Workitem |
Huvudet Accept
krävs och måste ha värdet application/dicom+json
.
Hämta Workitem-svarsstatuskoder
Kod | beskrivning |
---|---|
200 (OK) | Workitem-instansen har hämtats. |
400 (felaktig begäran) | Det uppstod ett problem med begäran. |
401 (behörighet saknas) | Klienten autentiseras inte. |
403 (Förbjudet) | Användaren har inte behörighet. |
404 (hittades inte) | Target Workitem hittades inte. |
424 (misslyckat beroende) | DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
503 (tjänsten är inte tillgänglig) | Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Hämta nyttolasten för Workitem-svar
- Ett lyckat svar har en nyttolast i en enda del som innehåller den begärda Workitem i den valda medietypen.
- Den returnerade Workitem får inte innehålla attributet Transaction UID (0008, 1195) för Workitem, eftersom detta endast bör vara känt för ägaren.
Uppdatera Workitem
Den här transaktionen ändrar attribut för en befintlig Workitem. Den motsvarar åtgärden UPS DIMSE N-SET.
Åberopa: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.6
För att uppdatera en Workitem för närvarande i SCHEDULED
tillståndet Transaction UID
ska attributet inte finnas. För en Workitem i IN PROGRESS
tillståndet måste begäran innehålla aktuellt transaktions-UID som en frågeparameter. Om Workitem redan är i tillstånden COMPLETED
eller CANCELED
är 400 (Bad Request)
svaret .
Metod | Sökväg | beskrivning |
---|---|---|
POST | .. /workitems/{workitem}? {transaction-uid} | Uppdatera Workitem-transaktion |
Huvudet Content-Type
krävs och måste ha värdet application/dicom+json
.
Nyttolasten för begäran innehåller en datauppsättning med de ändringar som ska tillämpas på målarbetsplatsen. När en sekvens ändras måste begäran innehålla alla objekt i sekvensen, inte bara de objekt som ska ändras. När du behöver uppdatera flera attribut som en grupp uppdaterar du dem som flera attribut i en enda begäran, inte som flera begäranden.
Det finns många krav som rör DICOM-dataattribut i kontexten för en specifik transaktion. Attribut kan krävas för att finnas, måste inte finnas, måste vara tomma eller måste inte vara tomma. Dessa krav finns i den här tabellen.
Kommentar
Alla villkorsstyrda kravkoder inklusive 1C och 2C behandlas som valfria.
Kommentar
Begäran kan inte ange värdet för attributet Procedure Step State (0074,1000). Procedure Step State hanteras med hjälp av transaktionen Ändra tillstånd eller transaktionen Förfrågningsavbokning.
Uppdatera statuskoder för Workitem-transaktionssvar
Kod | beskrivning |
---|---|
200 (OK) |
Target Workitem uppdaterades. |
400 (Bad Request) |
Det uppstod ett problem med begäran. Till exempel: (1) Target Workitem var i COMPLETED tillståndet eller CANCELED . (2) Transaktions-UID saknas. (3) Transaktions-UID är felaktigt. (4) Datamängden uppfyllde inte kraven. |
401 (Unauthorized) |
Klienten autentiseras inte. |
403 (Forbidden) |
Användaren har inte behörighet. |
404 (Not Found) |
Target Workitem hittades inte. |
409 (Conflict) |
Begäran är inkonsekvent med det aktuella tillståndet för Target Workitem. |
415 (Unsupported Media Type) |
Den angivna Content-Type stöds inte. |
424 (Failed Dependency) |
DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Uppdatera nyttolasten för Workitem-transaktionssvar
Ursprungsservern stöder rubrikfält som krävs i tabell 11.6.3-2.
Ett lyckat svar har antingen ingen nyttolast eller en nyttolast som innehåller ett statusrapportdokument.
En nyttolast för felsvar kan innehålla en statusrapport som beskriver eventuella fel, varningar eller annan användbar information.
Ändra Workitem-tillstånd
Den här transaktionen används för att ändra tillståndet för en Workitem. Den motsvarar UPS DIMSE N-ACTION-åtgärden "Change UPS State". Tillståndsändringar används för att göra anspråk på ägarskap, slutföra eller avbryta en Workitem.
Åberopa: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.7
Om Workitem finns på ursprungsservern returneras Workitem i en acceptabel medietyp. Den returnerade Workitem innehåller inte attributet Transaction UID (0008,1195). Detta är nödvändigt för att bevara attributets roll som ett åtkomstlås enligt beskrivningen här.
Metod | Sökväg | beskrivning |
---|---|---|
PUT | .. /workitems/{workitem}/state | Ändra workitem-tillstånd |
Huvudet Accept
krävs och måste ha värdet application/dicom+json
.
Nyttolasten för begäran innehåller dataelementen Ändra UPS-tillstånd. Dessa dataelement är följande.
- Transaktions-UID (0008, 1195). Nyttolasten för begäran innehåller ett transaktions-UID. Användaragenten skapar transaktions-UID när du begär en övergång till
IN PROGRESS
tillståndet för en viss Workitem. Användaragenten tillhandahåller transaktions-UID i efterföljande transaktioner med den Workitem. - Stegtillstånd för procedur (0074, 1000). De juridiska värdena motsvarar den begärda tillståndsövergången. Dessa är:
IN PROGRESS
,COMPLETED
ellerCANCELED
.
Ändra statuskoder för Workitem-tillståndssvar
Kod | beskrivning |
---|---|
200 (OK) |
Workitem-instansen har hämtats. |
400 (Bad Request) |
Begäran kan inte utföras av någon av följande orsaker: (1) begäran är inte giltig med tanke på målarbetsplatsens aktuella tillstånd. (2) Transaktions-UID saknas. (3) Transaktions-UID är felaktigt |
401 (Unauthorized) |
Klienten autentiseras inte. |
403 (Forbidden) |
Användaren har inte behörighet. |
404 (Not Found) |
Target Workitem hittades inte. |
409 (Conflict) |
Begäran är inkonsekvent med det aktuella tillståndet för Target Workitem. |
424 (Failed Dependency) |
DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Ändra nyttolasten för Workitem-tillståndssvar
- Svaren omfattar huvudfälten som anges i avsnitt 11.7.3.2.
- Ett lyckat svar har ingen nyttolast.
- En nyttolast för felsvar kan innehålla en statusrapport som beskriver eventuella fel, varningar eller annan användbar information.
Sök workitems
Med den här transaktionen kan du söka efter Workitems efter attribut.
Metod | Sökväg | beskrivning |
---|---|---|
GET | .. /workitems? | Sök efter Workitems |
Följande Accept
rubrik stöds för sökning.
application/dicom+json
Sökparametrar som stöds
Följande parametrar för varje fråga stöds:
Nyckel | Stödvärden | Antal tillåtna | beskrivning |
---|---|---|---|
{attributeID}= |
{value} |
0...N | Sök efter attribut/värdematchning i frågan. |
includefield= |
{attributeID} all |
0...N | De andra attributen som ska returneras i svaret. Endast attribut på toppnivå kan inkluderas – inte attribut som ingår i sekvenser. Både offentliga och privata taggar stöds. När all anges. Mer information om vilka attribut som returneras för varje frågetyp finns i Söksvar . Om en blandning av {attributeID} och all tillhandahålls använder servern som standard "alla". |
limit= |
{value} |
0...1 | Heltalsvärde för att begränsa antalet värden som returneras i svaret. Värdet kan ligga mellan intervallet 1 >= x <= 200 . Standardvärdet är 100 . |
offset= |
{value} |
0...1 | Hoppa över {value}-resultat. Om en förskjutning anges som är större än antalet sökresultat returneras ett 204 (no content) svar. |
fuzzymatching= |
true \ false |
0...1 | Om sann fuzzy-matchning tillämpas på attribut med personnamnsrepresentationen (PN) (VR). Det gör en prefix ordmatchning av någon namndel i dessa attribut. Om till exempel PatientName är John^Doe , sedan joh , do , jo do och Doe John Doe alla matchar. Men ohn matchar inte. |
Sökbara attribut
Vi stöder sökning på följande attribut.
Nyckelord för attribut |
---|
PatientName |
PatientID |
ReferencedRequestSequence.AccessionNumber |
ReferencedRequestSequence.RequestedProcedureID |
ScheduledProcedureStepStartDateTime |
ScheduledStationNameCodeSequence.CodeValue |
ScheduledStationClassCodeSequence.CodeValue |
ScheduledStationGeographicLocationCodeSequence.CodeValue |
ProcedureStepState |
StudyInstanceUID |
Kommentar
Vi stöder inte sökning med hjälp av en tom sträng för några attribut.
Sökmatchning
Vi stöder följande matchningstyper.
Söktyp | Attribut som stöds | Exempel |
---|---|---|
Intervallfråga | ScheduledProcedureStepStartDateTime |
{attributeID}={value1}-{value2} . För datum-/tidsvärden stöder vi ett inkluderande intervall på taggen. Det här intervallet mappas till attributeID >= {value1} AND attributeID <= {value2} . Om {value1} inte anges matchas alla förekomster av datum/tider före och inklusive {value2} . På samma sätt, om {value2} inte anges, matchas alla förekomster av {value1} och efterföljande datum/tider. Ett av dessa värden måste dock finnas. {attributeID}={value1}- och {attributeID}=-{value2} är giltiga är dock {attributeID}=- inte giltiga. |
Exakt matchning | Alla attribut som stöds | {attributeID}={value1} |
Fuzzy Match | PatientName |
Matchar alla komponenter i namnet som börjar med värdet. |
Jokerteckenmatchning | PatientID , ReferencedRequestSequence.AccessionNumber , ReferencedRequestSequence.RequestedProcedureID , ProcedureStepState , ScheduledStationNameCodeSequence.CodeValue , ScheduledStationClassCodeSequence.CodeValue , ScheduledStationGeographicLocationCodeSequence.CodeValue |
Följande jokertecken stöds: * – Matchar noll eller fler tecken. Till exempel – {attributeID}={val*} matchar "val", "valid", "value" men inte "evaluate". ? - Matchar ett enda tecken. Till exempel – {attributeID}={valu?} matchar "value", "valu1" men inte "valued" eller "valu" |
Kommentar
Även om vi inte stöder fullsekvensmatchning stöder vi exakt matchning på de attribut som anges i en sekvens.
Attribut-ID
Taggar kan kodas på många sätt för frågeparametern. Vi implementerade delvis standarden enligt definitionen i PS3.18 6.7.1.1.1. Följande kodningar för en tagg stöds.
Värde | Exempel |
---|---|
{group}{element} |
00100010 |
{dicomKeyword} |
PatientName |
Exempelfråga:
../workitems?PatientID=K123&0040A370.00080050=1423JS&includefield=00404005&limit=5&offset=0
Söksvar
Svaret är en matris med 0...N
DICOM-datauppsättningar med följande attribut returnerade.
- Alla attribut i DICOM PowerShell 3.4 Table CC.2.5-3 med returnyckeltypen 1 eller 2
- Alla attribut i DICOM PowerShell 3.4 Table CC.2.5-3 med returnyckeltypen 1C som villkorskraven uppfylls för
- Alla andra Workitem-attribut som skickas som matchningsparametrar
- Alla andra Workitem-attribut som skickas som
includefield
parametervärden
Söksvarskoder
Fråge-API:et returnerar någon av följande statuskoder i svaret:
Kod | beskrivning |
---|---|
200 (OK) |
Svarsnyttolasten innehåller all matchande resurs. |
206 (Partial Content) |
Svarsnyttolasten innehåller bara några av sökresultaten och resten kan begäras via lämplig begäran. |
204 (No Content) |
Sökningen slutfördes men returnerade inga resultat. |
400 (Bad Request) |
Det uppstod ett problem med begäran. Till exempel ogiltig frågeparametersyntax. Svarstexten innehåller information om felet. |
401 (Unauthorized) |
Klienten autentiseras inte. |
403 (Forbidden) |
Användaren har inte behörighet. |
424 (Failed Dependency) |
DICOM-tjänsten kan inte komma åt en resurs som den är beroende av för att slutföra den här begäran. Ett exempel är att det inte går att komma åt det anslutna Data Lake-arkivet eller nyckelvalvet för att stödja kundhanterad nyckelkryptering. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Ytterligare kommentarer
Fråge-API:et returnerar 413 (request entity too large)
inte . Om den begärda frågesvarsgränsen ligger utanför det godkända intervallet returneras en felaktig begäran. Allt som begärs inom det godkända intervallet löses.
- Sidsidiga resultat är optimerade för att returnera den senaste instansen först, vilket kan resultera i dubbletter av poster på efterföljande sidor om nyare data som matchar frågan har lagts till.
- Matchning är skiftlägesokänsligt och dekorkänsligt för PN VR-typer.
- Matchning är skiftlägesokänsligt och dekorkänsligt för andra VR-strängtyper.
- Om det finns ett scenario där du avbryter en Workitem och frågar samma sak samtidigt, utesluter frågan troligen Workitem som uppdateras och svarskoden är
206 (Partial Content)
.
Kommentar
DICOM® är ett registrerat varumärke som tillhör National Electrical Manufacturers Association för dess standarder publikationer som rör digital kommunikation av medicinsk information.