Dela via


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, SeriesInstanceUIDoch 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, SeriesInstanceUIDoch 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ärdet application/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 angetts 1.2.840.10008.1.2.1 används som standard)
  • multipart/related; type="application/dicom" (när överföringssyntax inte har angetts 1.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ärdet application/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 angetts 1.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 angetts 1.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ärdet application/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 jpegoch 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 allanvä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=allingå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 SeriesStudy returneras även nivåattribut.
  • Om målresursen är All Instancesreturneras Study Series även nivåattribut.
  • Om målresursen är Study's InstancesSeries 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, seriesoch instance motsvarar DICOM-attributen StudyInstanceUID, SeriesInstanceUIDrespektive 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, COMPLETEDeller CANCELED.

Ä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 dooch 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 Scheduled​Procedure​Step​Start​Date​Time {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:

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.