DICOM-överensstämmelseuttryck v1
Kommentar
API version 2 är den senaste API-versionen och bör användas i stället för v1. Mer information finns i DICOM Conformance Statement v2 .
Medical Imaging Server för DICOM® stöder en delmängd av DICOMweb Standard. Supporten omfattar:
Dessutom stöds följande 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 v1
av REST-API:erna.
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 Accept
rubrik för svaret 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
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.
Lagra svarsstatuskoder
Kod | beskrivning |
---|---|
200 (OK) |
Alla SOP-instanser i begäran lagras. |
202 (Accepted) |
Vissa instanser i begäran lagras men andra misslyckades. |
204 (No Content) |
Inget innehåll angavs i lagringstransaktionsbegäran. |
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. |
401 (Unauthorized) |
Klienten autentiseras inte. |
403 (Forbidden) |
Användaren har inte behörighet. |
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. |
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 den StudyInstanceUID angavs i lagringsbegäran och minst en instans har lagrats |
(0008, 1198) | FailedSOPSequence |
Sekvensen med instanser som inte kunde lagra |
(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 lagra |
(0008, 1155) | ReferencedSOPInstanceUID |
Sop-instansens unika identifierare för den instans som inte kunde lagra |
(0008, 1197) | FailureReason |
Orsakskoden till varför den här instansen inte kunde lagra |
(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 inte kunde lagra |
(0008, 1155) | ReferencedSOPInstanceUID |
Sop-instansens unika identifierare för den instans som inte kunde lagra |
(0008, 1190) | RetrieveURL |
Hämta URL:en för den här instansen på DICOM-servern |
Ett exempelsvar med Accept
rubriken application/dicom+json
:
{
"00081190":
{
"vr":"UR",
"Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232"]
},
"00081198":
{
"vr":"SQ",
"Value":
[{
"00081150":
{
"vr":"UI","Value":["cd70f89a-05bc-4dab-b6b8-1f3d2fcafeec"]
},
"00081155":
{
"vr":"UI",
"Value":["22c35d16-11ce-43fa-8f86-90ceed6cf4e7"]
},
"00081197":
{
"vr":"US",
"Value":[43265]
}
}]
},
"00081199":
{
"vr":"SQ",
"Value":
[{
"00081150":
{
"vr":"UI",
"Value":["d246deb5-18c8-4336-a591-aeb6f8596664"]
},
"00081155":
{
"vr":"UI",
"Value":["4a858cbb-a71f-4c01-b9b5-85f88b031365"]
},
"00081190":
{
"vr":"UR",
"Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232/series/8c4915f5-cc54-4e50-aa1f-9b06f6e58485/instances/4a858cbb-a71f-4c01-b9b5-85f88b031365"]
}
}]
}
}
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 är redan lagrad. 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. |
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 efter 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 använder du ett kommatecken för att separera 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
*/*
(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ä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 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 också 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 har angetts 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 från 1
till 100
inkluderande (1 är av sämsta kvalitet och 100 är 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 den inte anges är parametern standardvärdet 100
.
Hämta svarsstatuskoder
Kod | beskrivning |
---|---|
200 (OK) |
Alla begärda data hämtades. |
304 (Not Modified) |
De begärda data har inte ändrats sedan den senaste begäran. I det här fallet läggs inte innehållet till i svarstexten. 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 en 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. |
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ö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. 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 all använder servern som standard . |
limit= |
{value} |
0..1 | Heltalsvärde för att begränsa antalet värden som returneras i svaret. Värdet kan vara mellan intervallet 1 >= x <= 200, standardvärdet är 100. |
offset= |
{value} |
0..1 | Hoppa över {value} resultat; Om en förskjutning ä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å 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 |
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, som är mappad 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 alla komponenter i namnet som börjar med värdet. |
Attribut-ID
Taggar kan kodas på flera sätt för frågeparametern. Vi har delvis implementerat 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 |
Här är ett exempel på en frå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, 0005) | SpecificCharacterSet |
(0008, 0020) | StudyDate |
(0008, 0030) | StudyTime |
(0008, 0050) | AccessionNumber |
(0008, 0056) | InstanceAvailability |
(0008, 0090) | ReferringPhysicianName |
(0008, 0201) | TimezoneOffsetFromUTC |
(0010, 0010) | PatientName |
(0010, 0020) | PatientID |
(0010, 0030) | PatientBirthDate |
(0010, 0040) | PatientSex |
(0020, 0010) | StudyID |
(0020, 000D) | StudyInstanceUID |
Standardserietaggar
Tagg | Attributnamn |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0060) | Modality |
(0008, 0201) | TimezoneOffsetFromUTC |
(0008, 103E) | SeriesDescription |
(0020, 000E) | SeriesInstanceUID |
(0040, 0244) | PerformedProcedureStepStartDate |
(0040, 0245) | PerformedProcedureStepStartTime |
(0040, 0275) | RequestAttributesSequence |
Standardinstanstaggar
Tagg | Attributnamn |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0016) | SOPClassUID |
(0008, 0018) | SOPInstanceUID |
(0008, 0056) | InstanceAvailability |
(0008, 0201) | TimezoneOffsetFromUTC |
(0020, 0013) | InstanceNumber |
(0028, 0010) | Rows |
(0028, 0011) | Columns |
(0028, 0100) | BitsAllocated |
(0028, 0008) | NumberOfFrames |
Om includefield=all
ingår följande attribut tillsammans med standardattribut. Tillsammans med standardattributen är detta den fullständiga listan över attribut som stöds på varje resursnivå.
Extra studietaggar
Tagg | Attributnamn |
---|---|
(0008, 1030) | Study Description |
(0008, 0063) | AnatomicRegionsInStudyCodeSequence |
(0008, 1032) | ProcedureCodeSequence |
(0008, 1060) | NameOfPhysiciansReadingStudy |
(0008, 1080) | AdmittingDiagnosesDescription |
(0008, 1110) | ReferencedStudySequence |
(0010, 1010) | PatientAge |
(0010, 1020) | PatientSize |
(0010, 1030) | PatientWeight |
(0010, 2180) | Occupation |
(0010, 21B0) | AdditionalPatientHistory |
Taggar för andra serier
Tagg | Attributnamn |
---|---|
(0020, 0011) | SeriesNumber |
(0020, 0060) | Laterality |
(0008, 0021) | SeriesDate |
(0008, 0031) | SeriesTime |
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. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Andra noteringar
- 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 matchade senaste instansen först. Detta 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 om ett enda värdedataelement felaktigt har flera värden.
Delete
Den här transaktionen är inte en del av den officiella DICOMwe 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 |
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). Tjänsten Worklist 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-instansen bör 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. |
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 är oförändrat. |
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. |
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. |
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 innehåller inte 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
Om du vill 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 flera attribut måste uppdateras som en grupp gör du uppdateringen 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) Målarbetsplatsen 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. |
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 det här 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:
- 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. De ä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. |
Ä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åga |
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 finns mer information om vilka attribut som returneras för varje frågetyp 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 vara mellan intervallet 1 >= x <= 200 , som standard är 100 . |
offset= |
{value} |
0...1 | Hoppa över {value} resultat; Om en förskjutning ä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); En prefixordmatchning för valfri namndel i dessa attribut utförs. Om till exempel PatientName är John^Doe , sedan joh , do , jo do och Doe John Doe alla matchar. Matchar dock ohn inte. |
Sökbara attribut
Vi stöder sökning på dessa attribut.
Nyckelord för attribut |
---|
PatientName |
PatientID |
ReferencedRequestSequence.AccessionNumber |
ReferencedRequestSequence.RequestedProcedureID |
ScheduledProcedureStepStartDateTime |
ScheduledStationNameCodeSequence.CodeValue |
ScheduledStationClassCodeSequence.CodeValue |
ScheduledStationGeographicLocationCodeSequence.CodeValue |
ProcedureStepState |
StudyInstanceUID |
Sökmatchning
Vi stöder dessa 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. Detta 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 |
Matchar valfri komponent i namnet som börjar med värdet |
Kommentar
Även om vi inte stöder fullständig sekvensmatchning 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 som returneras:
- 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. |
503 (Service Unavailable) |
Tjänsten är inte tillgänglig eller upptagen. Försök igen senare. |
Andra anteckningar
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 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.
- Om det finns ett scenario där avbryta en Workitem och fråga samma Workitem sker samtidigt, utesluter frågan sannolikt 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.