Instrukcja zgodności z diCOM v1
Uwaga
Interfejs API w wersji 2 jest najnowszą wersją interfejsu API i powinien być używany zamiast wersji 1. Aby uzyskać szczegółowe informacje, zobacz instrukcję zgodności DICOM w wersji 2 .
Serwer Medical Imaging Server dla DICOM® obsługuje podzbiór DICOMweb Standard. Pomoc techniczna obejmuje:
Ponadto obsługiwane są następujące niestandardowe interfejsy API:
- Zestawienie zmian
- Tagi zapytania rozszerzonego
- Aktualizacja zbiorcza
- Importowanie zbiorcze
- Eksportowanie
Usługa korzysta z przechowywania wersji interfejsu API REST. Wersja interfejsu API REST musi być jawnie określona jako część podstawowego adresu URL, jak w poniższym przykładzie:
https://<service_url>/v<version>/studies
Ta wersja instrukcji zgodności odpowiada v1
wersji interfejsów API REST.
Aby uzyskać informacje na temat sposobu określania wersji podczas tworzenia żądań, zobacz dokumentację obsługi wersji interfejsu API.
Przykładowe żądania obsługiwanych transakcji można znaleźć w kolekcji Postman.
Sanityzacja preambuły
Usługa ignoruje 128-bajtową preambułę pliku i zastępuje jego zawartość znakami null. Takie zachowanie gwarantuje, że żadne pliki przekazywane przez usługę nie są narażone na złośliwą lukę w zabezpieczeniach. Jednak ta preambuła oczyszczania oznacza również, że preambuły używane do kodowania zawartości w formacie podwójnym, takiej jak TIFF, nie mogą być używane z usługą.
Usługa studiów
Usługa Studiów umożliwia użytkownikom przechowywanie, pobieranie i wyszukiwanie badań DICOM, serii i wystąpień. Dodaliśmy niestandardową transakcję Usuń, aby umożliwić pełny cykl życia zasobów.
Store (STOW-RS)
Ta transakcja używa metody POST lub PUT do przechowywania reprezentacji badań, serii i wystąpień zawartych w ładunku żądania.
Metoda | Ścieżka | opis |
---|---|---|
KSIĘGUJ | .. /studia | Przechowywanie wystąpień. |
POST | .. /studies/{study} | Przechowywanie wystąpień dla określonego badania. |
ODŁÓŻ | .. /studia | Wystąpienia upsert. |
ODŁÓŻ | .. /studies/{study} | Wystąpienia upsert do określonego badania. |
Parametr study
odpowiada atrybutowi StudyInstanceUID
DICOM . Jeśli zostanie określony, każde wystąpienie, które nie należy do dostarczonego badania, zostanie odrzucone z kodem ostrzegawczym 43265
.
Obsługiwany jest następujący Accept
nagłówek odpowiedzi:
application/dicom+json
Obsługiwane są następujące Content-Type
nagłówki:
multipart/related; type="application/dicom"
application/dicom
Uwaga
Serwer nie będzie zmuszać ani zastępować atrybutów, które powodują konflikt z istniejącymi danymi dla żądań POST. Wszystkie dane są przechowywane zgodnie z podanymi danymi. W przypadku żądań upsert (PUT) istniejące dane są zastępowane przez odebrane nowe dane.
Przechowywanie wymaganych atrybutów
Następujące elementy DICOM muszą być obecne w każdym pliku DICOM, który próbuje być przechowywany:
StudyInstanceUID
SeriesInstanceUID
SOPInstanceUID
SOPClassUID
PatientID
Uwaga
Wszystkie identyfikatory UID muszą mieć długość od 1 do 64 znaków i zawierać tylko znaki alfanumeryczne lub następujące znaki specjalne: .
, -
. PatientID
jest weryfikowany na podstawie jego LO
VR
typu.
Każdy przechowywany plik musi mieć unikatową kombinację , StudyInstanceUID
SeriesInstanceUID
i SopInstanceUID
. Kod 45070
ostrzegawczy jest zwracany, jeśli plik o tych samych identyfikatorach już istnieje.
Akceptowane są tylko składnie transferu z jawnymi reprezentacjami wartości.
Przechowywanie kodów stanu odpowiedzi
Kod | opis |
---|---|
200 (OK) |
Wszystkie wystąpienia SOP w żądaniu są przechowywane. |
202 (Accepted) |
Niektóre wystąpienia w żądaniu są przechowywane, ale inne nie powiodły się. |
204 (No Content) |
W żądaniu transakcji sklepu nie podano zawartości. |
400 (Bad Request) |
Żądanie zostało źle sformatowane. Na przykład podany identyfikator wystąpienia badania nie był zgodny z oczekiwanym formatem UID. |
401 (Unauthorized) |
Klient nie jest uwierzytelniony. |
403 (Forbidden) |
Użytkownik nie jest autoryzowany. |
406 (Not Acceptable) |
Określony Accept nagłówek nie jest obsługiwany. |
409 (Conflict) |
Żadne wystąpienia w żądaniu transakcji sklepu nie były przechowywane. |
415 (Unsupported Media Type) |
Podany Content-Type element nie jest obsługiwany. |
503 (Service Unavailable) |
Usługa jest niedostępna lub zajęta. Spróbuj ponownie później. |
Przechowywanie ładunku odpowiedzi
Ładunek odpowiedzi wypełnia zestaw danych DICOM następującymi elementami.
Tag | Nazwa/nazwisko | opis |
---|---|---|
(0008, 1190) | RetrieveURL |
Adres URL pobierania badania, jeśli StudyInstanceUID element został podany w żądaniu magazynu i co najmniej jedno wystąpienie zostało pomyślnie zapisane |
(0008, 1198) | FailedSOPSequence |
Sekwencja wystąpień, których nie można przechowywać |
(0008, 1199) | ReferencedSOPSequence |
Sekwencja przechowywanych wystąpień |
Każdy zestaw danych w pliku FailedSOPSequence
zawiera następujące elementy (jeśli można odczytać plik DICOM, który próbuje zostać zapisany).
Tag | Nazwa/nazwisko | opis |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Unikatowy identyfikator klasy SOP wystąpienia, którego nie można przechowywać |
(0008, 1155) | ReferencedSOPInstanceUID |
Unikatowy identyfikator wystąpienia SOP wystąpienia, którego nie można przechowywać |
(0008, 1197) | FailureReason |
Kod przyczyny, dla którego nie można zapisać tego wystąpienia |
(0074, 1048) | FailedAttributesSequence |
Sekwencja zawiera przyczynę ErrorComment każdego atrybutu, który zakończył się niepowodzeniem |
Każdy zestaw danych w obiekcie ReferencedSOPSequence
ma następujące elementy.
Tag | Nazwa/nazwisko | opis |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Unikatowy identyfikator klasy SOP wystąpienia, którego nie można przechowywać |
(0008, 1155) | ReferencedSOPInstanceUID |
Unikatowy identyfikator wystąpienia SOP wystąpienia, którego nie można przechowywać |
(0008, 1190) | RetrieveURL |
Adres URL pobierania tego wystąpienia na serwerze DICOM |
Przykładowa odpowiedź z nagłówkiem Accept
application/dicom+json
:
{
"00081190":
{
"vr":"UR",
"Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232"]
},
"00081198":
{
"vr":"SQ",
"Value":
[{
"00081150":
{
"vr":"UI","Value":["cd70f89a-05bc-4dab-b6b8-1f3d2fcafeec"]
},
"00081155":
{
"vr":"UI",
"Value":["22c35d16-11ce-43fa-8f86-90ceed6cf4e7"]
},
"00081197":
{
"vr":"US",
"Value":[43265]
}
}]
},
"00081199":
{
"vr":"SQ",
"Value":
[{
"00081150":
{
"vr":"UI",
"Value":["d246deb5-18c8-4336-a591-aeb6f8596664"]
},
"00081155":
{
"vr":"UI",
"Value":["4a858cbb-a71f-4c01-b9b5-85f88b031365"]
},
"00081190":
{
"vr":"UR",
"Value":["http://localhost/studies/d09e8215-e1e1-4c7a-8496-b4f6641ed232/series/8c4915f5-cc54-4e50-aa1f-9b06f6e58485/instances/4a858cbb-a71f-4c01-b9b5-85f88b031365"]
}
}]
}
}
Kody przyczyn niepowodzenia magazynu
Kod | opis |
---|---|
272 |
Transakcja magazynu nie przechowywała wystąpienia z powodu ogólnej awarii przetwarzania operacji. |
43264 |
Walidacja wystąpienia DICOM nie powiodła się. |
43265 |
Podane wystąpienie StudyInstanceUID nie pasuje do określonego StudyInstanceUID w żądaniu magazynu. |
45070 |
Wystąpienie DICOM z tym samym StudyInstanceUID elementem , SeriesInstanceUID i SopInstanceUID jest już przechowywane. Jeśli chcesz zaktualizować zawartość, najpierw usuń to wystąpienie. |
45071 |
Wystąpienie DICOM jest tworzone przez inny proces lub poprzednia próba utworzenia nie powiodła się, a proces oczyszczania nie został ukończony. Najpierw usuń wystąpienie przed podjęciem próby utworzenia ponownie. |
Kody przyczyn ostrzeżenia magazynu
Kod | opis |
---|---|
45063 |
Zestaw danych wystąpienia DICOM nie jest zgodny z klasą SOP. Transakcja magazynu badań (sekcja 10.5) zauważyła, że zestaw danych nie pasuje do ograniczeń klasy SOP podczas przechowywania wystąpienia. |
Kody błędów magazynu
Kod | opis |
---|---|
100 |
Podane atrybuty wystąpienia nie spełniają kryteriów weryfikacji. |
Pobieranie (WADO-RS)
Ta funkcja pobierania transakcji oferuje obsługę pobierania przechowywanych badań, serii, wystąpień i ramek według odwołania.
Metoda | Ścieżka | opis |
---|---|---|
GET | .. /studies/{study} | Pobiera wszystkie wystąpienia w badaniu |
GET | .. /studies/{study}/metadata | Pobiera metadane dla wszystkich wystąpień w badaniu |
GET | .. /studies/{study}/series/{series} | Pobiera wszystkie wystąpienia w ramach serii |
GET | .. /studies/{study}/series/{series}/metadata | Pobiera metadane dla wszystkich wystąpień w serii |
GET | .. /studies/{study}/series/{series}/instances/{instance} | Pobiera pojedyncze wystąpienie |
GET | .. /studies/{study}/series/{series}/instances/{instance}/metadata | Pobiera metadane dla pojedynczego wystąpienia |
GET | .. /studies/{study}/series/{series}/instances/{instance}/rendered | Pobiera wystąpienie renderowane w formacie obrazu |
GET | .. /studies/{study}/series/{series}/instances/{instance}/frame/{frame} | Pobiera jedną lub wiele ramek z jednego wystąpienia; Aby określić więcej niż jedną ramkę, użyj przecinka, aby oddzielić każdą ramkę do zwrócenia. Na przykład /studies/1/series/2/instance/3/frames/4,5,6 . |
GET | .. /studies/{study}/series/{series}/instances/{instance}/frame/{frame}/rendered | Pobiera pojedynczą ramkę renderowaną w formacie obrazu |
Pobieranie wystąpień w ramach badania lub serii
Następujące Accept
nagłówki są obsługiwane w przypadku pobierania wystąpień w ramach badania lub serii.
multipart/related; type="application/dicom"; transfer-syntax=*
multipart/related; type="application/dicom";
(jeśli składnia transferu nie jest określona, 1.2.840.10008.1.2.1 jest używana jako domyślna)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
*/*
(gdy składnia transferu nie jest określona,*
jest używana jako wartość domyślna, a wartość domyślna mediaType toapplication/dicom
)
Pobieranie wystąpienia
Następujące Accept
nagłówki są obsługiwane do pobierania określonego wystąpienia:
application/dicom; transfer-syntax=*
multipart/related; type="application/dicom"; transfer-syntax=*
application/dicom;
(gdy składnia transferu nie jest określona,1.2.840.10008.1.2.1
jest używana jako domyślna)multipart/related; type="application/dicom"
(gdy składnia transferu nie jest określona,1.2.840.10008.1.2.1
jest używana jako domyślna)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
*/*
(gdy składnia transferu nie jest określona,*
jest używana jako wartość domyślna, a wartość domyślna mediaType toapplication/dicom
)
Pobieranie ramek
Następujące Accept
nagłówki są obsługiwane w przypadku pobierania ramek.
multipart/related; type="application/octet-stream"; transfer-syntax=*
multipart/related; type="application/octet-stream";
(gdy składnia transferu nie jest określona,1.2.840.10008.1.2.1
jest używana jako domyślna)multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1
multipart/related; type="image/jp2";
(gdy składnia transferu nie jest określona,1.2.840.10008.1.2.4.90
jest używana jako domyślna)multipart/related; type="image/jp2";transfer-syntax=1.2.840.10008.1.2.4.90
*/*
(gdy składnia transferu nie jest określona,*
jest używana jako wartość domyślna, a wartość domyślna mediaType toapplication/octet-stream
)
Pobieranie składni transferu
Gdy żądana składnia transferu różni się od oryginalnego pliku, oryginalny plik jest transkodowany do żądanej składni transferu. Oryginalny plik musi być jednym z następujących formatów, aby transkodowanie powiodło się. W przeciwnym razie transkodowanie może zakończyć się niepowodzeniem.
- 1.2.840.10008.1.2 (Little Endian Implicit)
- 1.2.840.10008.1.2.1 (Mały endian jawny)
- 1.2.840.10008.1.2.2 (Jawne VR Big Endian)
- 1.2.840.10008.1.2.4.50 (Proces bazowy JPEG 1)
- 1.2.840.10008.1.2.4.57 (JPEG Lossless)
- 1.2.840.10008.1.2.4.70 (Wartość zaznaczenia bezstratności JPEG 1)
- 1.2.840.10008.1.2.4.90 (tylko bezstratny JPEG 2000)
- 1.2.840.10008.1.2.4.91 (JPEG 2000)
- 1.2.840.10008.1.2.5 (Bezstratne RLE)
Nieobsługiwane transfer-syntax
wyniki w pliku 406 Not Acceptable
.
Pobieranie metadanych (na potrzeby badania, serii lub wystąpienia)
Poniższy Accept
nagłówek jest obsługiwany do pobierania metadanych dla badania, serii lub wystąpienia.
application/dicom+json
Pobieranie metadanych nie zwraca atrybutów z następującymi reprezentacjami wartości.
Nazwa VR | opis |
---|---|
OB | Inny bajt |
OD | Inne podwójne |
OF | Inny zmiennoprzecinkowy |
OL | Inne długie |
OV | Inne 64-bitowe bardzo długie |
OW | Inny wyraz |
ONZ | Nieznane |
Pobieranie weryfikacji pamięci podręcznej metadanych (na potrzeby badania, serii lub wystąpienia)
Walidacja pamięci podręcznej jest obsługiwana ETag
przy użyciu mechanizmu. W odpowiedzi na żądanie metadanych element ETag jest zwracany jako jeden z nagłówków. Ten element ETag można buforować i dodawać jako If-None-Match
nagłówek w kolejnych żądaniach dotyczących tych samych metadanych. Jeśli istnieją dane, możliwe są dwa typy odpowiedzi:
- Dane pozostają niezmienione od ostatniego żądania:
HTTP 304 (Not Modified)
odpowiedź jest wysyłana bez treści odpowiedzi. - Dane zmieniły się od ostatniego żądania:
HTTP 200 (OK)
odpowiedź jest wysyłana przy użyciu zaktualizowanego elementu ETag. Wymagane dane są również zwracane w ramach treści.
Pobieranie renderowanego obrazu (na przykład lub ramki)
Następujące Accept
nagłówki są obsługiwane w przypadku pobierania renderowanego obrazu wystąpienia lub ramki.
image/jpeg
image/png
W przypadku, gdy nie Accept
określono żadnego nagłówka, usługa domyślnie renderuje image/jpeg
wartość .
Usługa obsługuje tylko renderowanie pojedynczej ramki. Jeśli renderowanie jest żądane dla wystąpienia z wieloma ramkami, domyślnie tylko pierwsza ramka jest renderowana jako obraz.
Podczas określania konkretnej ramki do zwrócenia indeksowanie ramek rozpoczyna się od 1.
Parametr quality
zapytania jest również obsługiwany. Wartość całkowita z 1
do 100
włącznie (1 jest najgorszą jakością, a 100 jest najlepszą jakością) może zostać przekazana jako wartość parametru zapytania. Ten parametr jest używany dla obrazów renderowanych jako jpeg
, i jest ignorowany dla png
żądań renderowania. Jeśli nie zostanie określony, parametr domyślnie ma wartość 100
.
Pobieranie kodów stanu odpowiedzi
Kod | opis |
---|---|
200 (OK) |
Pobrano wszystkie żądane dane. |
304 (Not Modified) |
Żądane dane nie zostały zmodyfikowane od ostatniego żądania. W takim przypadku zawartość nie jest dodawana do treści odpowiedzi. Aby uzyskać więcej informacji, zobacz poprzednią sekcję Pobieranie weryfikacji pamięci podręcznej metadanych (na potrzeby badania, serii lub wystąpienia). |
400 (Bad Request) |
Żądanie zostało źle sformatowane. Na przykład podany identyfikator wystąpienia badania nie jest zgodny z oczekiwanym formatem UID lub żądane kodowanie składni transferu nie jest obsługiwane. |
401 (Unauthorized) |
Klient nie jest uwierzytelniony. |
403 (Forbidden) |
Użytkownik nie jest autoryzowany. |
404 (Not Found) |
Nie można odnaleźć określonego zasobu DICOM lub dla renderowanego żądania wystąpienie nie zawiera danych pikseli. |
406 (Not Acceptable) |
Określony Accept nagłówek nie jest obsługiwany lub w przypadku renderowanych i transkodowanych żądań plik był za duży. |
503 (Service Unavailable) |
Usługa jest niedostępna lub zajęta. Spróbuj ponownie później. |
Wyszukiwanie (QIDO-RS)
Zapytanie oparte na identyfikatorze obiektów DICOM (QIDO) umożliwia wyszukiwanie analiz, serii i wystąpień według atrybutów.
Metoda | Ścieżka | opis |
---|---|---|
Wyszukiwanie badań | ||
GET | .. /studia?... | Wyszukiwanie badań |
Wyszukiwanie serii | ||
GET | .. /seria?... | Wyszukiwanie serii |
GET | .. /studies/{study}/series?... | Wyszukiwanie serii w badaniu |
Wyszukiwanie wystąpień | ||
GET | .. /Wystąpień?... | Wyszukiwanie wystąpień |
GET | .. /studies/{study}/instances?... | Wyszukiwanie wystąpień w badaniu |
GET | .. /studies/{study}/series/{series}/instances?... | Wyszukiwanie wystąpień w serii |
Accept
Następujący nagłówek jest obsługiwany do wyszukiwania:
application/dicom+json
Obsługiwane parametry wyszukiwania
Obsługiwane są następujące parametry dla każdego zapytania.
Klucz | Wartości pomocy technicznej | Dozwolona liczba | opis |
---|---|---|---|
{attributeID}= |
{value} |
0...N | Wyszukiwanie dopasowania atrybutu/wartości w zapytaniu |
includefield= |
{attributeID} all |
0...N | Pozostałe atrybuty, które mają być zwracane w odpowiedzi; Obsługiwane są zarówno tagi publiczne, jak i prywatne. Po all podaniu. Aby uzyskać więcej informacji na temat atrybutów zwracanych dla każdego typu zapytania, zobacz Odpowiedź na wyszukiwanie.Jeśli podano kombinację parametrów {attributeID} i all , serwer domyślnie używa elementu all . |
limit= |
{value} |
0..1 | Wartość całkowita, aby ograniczyć liczbę wartości zwracanych w odpowiedzi; Wartość może należeć do zakresu 1 >= x <= 200, domyślnie 100. |
offset= |
{value} |
0..1 | Pomiń {value} wyniki; Jeśli zostanie podane przesunięcie większe niż liczba wyników zapytania wyszukiwania, zostanie zwrócona 204 (no content) odpowiedź. |
fuzzymatching= |
true / false |
0..1 | Jeśli dopasowanie rozmyte true jest stosowane do atrybutu PatientName; Wykonuje dopasowanie słowa prefiksu do dowolnej części nazwy wewnątrz wartości PatientName. Na przykład jeśli parametr PatientName to "John^Doe", to "joh", "do", "jo do", "Doe" i "John Doe" są zgodne. Jednak "ohn" nie pasuje. |
Atrybuty z możliwością wyszukiwania
Obsługujemy wyszukiwanie następujących atrybutów i typów wyszukiwania.
Słowo kluczowe atrybutu | Wszystkie badania | Wszystkie serie | Wszystkie wystąpienia | Seria badań | Wystąpienia badania | Wystąpienia serii badań |
---|---|---|---|---|---|---|
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 |
Dopasowywanie wyszukiwania
Obsługujemy następujące pasujące typy.
Typ wyszukiwania | Obsługiwany atrybut | Przykład |
---|---|---|
Kwerenda zakresu | StudyDate /PatientBirthDate |
{attributeID}={value1}-{value2} . W przypadku wartości daty/godziny obsługujemy zakres inkluzywny dla tagu, który jest mapowany na attributeID >= {value1} AND attributeID <= {value2} . Jeśli {value1} nie zostanie określony, wszystkie wystąpienia dat/godzin przed i włącznie {value2} są zgodne. Podobnie, jeśli {value2} nie zostanie określony, wszystkie wystąpienia {value1} i kolejne daty/godziny są zgodne. Jednak jedna z tych wartości musi być obecna. {attributeID}={value1}- i {attributeID}=-{value2} są prawidłowe, jednak {attributeID}=- jest nieprawidłowe. |
Dokładne dopasowanie | Wszystkie obsługiwane atrybuty | {attributeID}={value1} |
Rozmyte dopasowanie | PatientName , ReferringPhysicianName |
Pasuje do dowolnego składnika nazwy rozpoczynającej się od wartości. |
Identyfikator atrybutu
Tagi można kodować na kilka sposobów dla parametru zapytania. Częściowo zaimplementowaliśmy standard zdefiniowany w programie PS3.18 6.7.1.1.1. Obsługiwane są następujące kodowanie tagu.
Wartość | Przykład |
---|---|
{group}{element} |
0020000D |
{dicomKeyword} |
StudyInstanceUID |
Oto przykładowe zapytanie wyszukujące wystąpienia:
../instances?Modality=CT&00280011=512&includefield=00280010&limit=5&offset=0
Odpowiedź na wyszukiwanie
Odpowiedź to tablica zestawów danych DICOM. W zależności od zasobu zwracane są domyślnie następujące atrybuty.
Domyślne tagi badania
Tag | Nazwa atrybutu |
---|---|
(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 |
Domyślne tagi serii
Tag | Nazwa atrybutu |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0060) | Modality |
(0008, 0201) | TimezoneOffsetFromUTC |
(0008, 103E) | SeriesDescription |
(0020, 000E) | SeriesInstanceUID |
(0040, 0244) | PerformedProcedureStepStartDate |
(0040, 0245) | PerformedProcedureStepStartTime |
(0040, 0275) | RequestAttributesSequence |
Domyślne tagi wystąpienia
Tag | Nazwa atrybutu |
---|---|
(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 |
Jeśli includefield=all
parametr zawiera następujące atrybuty wraz z atrybutami domyślnymi. Wraz z atrybutami domyślnymi jest to pełna lista atrybutów obsługiwanych na każdym poziomie zasobów.
Dodatkowe tagi badania
Tag | Nazwa atrybutu |
---|---|
(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 |
Inne tagi serii
Tag | Nazwa atrybutu |
---|---|
(0020, 0011) | SeriesNumber |
(0020, 0060) | Laterality |
(0008, 0021) | SeriesDate |
(0008, 0031) | SeriesTime |
Zwracane są następujące atrybuty:
- Wszystkie zgodne parametry zapytania i identyfikatory UID w adresie URL zasobu.
IncludeField
atrybuty obsługiwane na tym poziomie zasobów.- Jeśli zasób docelowy to
All Series
,Study
zwracane są również atrybuty poziomu. - Jeśli zasób docelowy to
All Instances
,Series
Study
zwracane są również atrybuty poziomów. - Jeśli zasób docelowy to
Study's Instances
,Series
zwracane są również atrybuty poziomu. NumberOfStudyRelatedInstances
atrybut zagregowany jest obsługiwany naStudy
poziomieincludeField
.NumberOfSeriesRelatedInstances
atrybut zagregowany jest obsługiwany naSeries
poziomieincludeField
.
Kody odpowiedzi wyszukiwania
Interfejs API zapytań zwraca jeden z następujących kodów stanu w odpowiedzi.
Kod | opis |
---|---|
200 (OK) |
Ładunek odpowiedzi zawiera wszystkie pasujące zasoby. |
204 (No Content) |
Wyszukiwanie zostało ukończone pomyślnie, ale nie zwróciło żadnych wyników. |
400 (Bad Request) |
Serwer nie mógł wykonać zapytania, ponieważ składnik kwerendy był nieprawidłowy. Treść odpowiedzi zawiera szczegóły błędu. |
401 (Unauthorized) |
Klient nie jest uwierzytelniony. |
403 (Forbidden) |
Użytkownik nie jest autoryzowany. |
503 (Service Unavailable) |
Usługa jest niedostępna lub zajęta. Spróbuj ponownie później. |
Inne notatki
- Wykonywanie zapytań przy użyciu elementu
TimezoneOffsetFromUTC (00080201)
nie jest obsługiwane. - Interfejs API zapytania nie zwraca wartości
413 (request entity too large)
. Jeśli żądany limit odpowiedzi zapytania znajduje się poza dopuszczalnym zakresem, zwracane jest nieprawidłowe żądanie. Wszystkie żądane elementy w dopuszczalnym zakresie są rozwiązywane. - Jeśli zasób docelowy to Badanie/seria, istnieje możliwość niespójnych metadanych na poziomie badania/serii w wielu wystąpieniach. Na przykład dwa wystąpienia mogą mieć różne nazwa_pacjenta. W takim przypadku najnowsze zwycięstwa i można wyszukiwać tylko na najnowszych danych.
- Wyniki stronicowane są zoptymalizowane pod kątem uprzedniego zwrócenia dopasowanego najnowszego wystąpienia, co może spowodować zduplikowanie rekordów na kolejnych stronach, jeśli dodano nowsze dane pasujące do zapytania.
- Dopasowywanie nie uwzględnia wielkości liter, a nie akcentu dla typów PN VR.
- Dopasowanie nie uwzględnia wielkości liter i jest wrażliwe na akcent dla innych typów VR ciągów.
- Tylko pierwsza wartość jest indeksowana, jeśli pojedynczy wartość elementu danych niepoprawnie ma wiele wartości.
Delete
Ta transakcja nie jest częścią oficjalnego DICOMwe Standard. Używa metody DELETE do usuwania reprezentacji studiów, serii i wystąpień ze sklepu.
Metoda | Ścieżka | opis |
---|---|---|
DELETE | .. /studies/{study} | Usuwanie wszystkich wystąpień dla określonego badania |
DELETE | .. /studies/{study}/series/{series} | Usuwanie wszystkich wystąpień dla określonej serii w ramach badania |
DELETE | .. /studies/{study}/series/{series}/instances/{instance} | Usuwanie określonego wystąpienia w serii |
Parametry , i odpowiadają odpowiednio atrybutom study
StudyInstanceUID
DICOM , SeriesInstanceUID
i SopInstanceUID
.instance
series
Nie ma żadnych ograniczeń dotyczących nagłówka, Content-Type
nagłówka Accept
lub treści żądania.
Uwaga
Po transakcji Delete usunięte wystąpienia nie będą możliwe do odzyskania.
Kody stanu odpowiedzi
Kod | opis |
---|---|
204 (No Content) |
Po usunięciu wszystkich wystąpień SOP |
400 (Bad Request) |
Żądanie zostało źle sformatowane |
401 (Unauthorized) |
Klient nie jest uwierzytelniony |
403 (Forbidden) |
Użytkownik nie jest autoryzowany |
404 (Not Found) |
Kiedy określona seria nie została znaleziona w badaniu lub określone wystąpienie nie zostało znalezione w serii |
503 (Service Unavailable) |
Usługa jest niedostępna lub zajęta. Spróbuj ponownie później. |
Usuwanie ładunku odpowiedzi
Treść odpowiedzi jest pusta. Kod stanu to jedyne przydatne informacje zwrócone.
Usługa listy roboczej (UPS-RS)
Usługa DICOM obsługuje sops wypychania i ściągania usługi Worklist Service (UPS-RS). Usługa Lista prac zapewnia dostęp do jednej listy roboczej zawierającej elementy Workitems, z których każdy reprezentuje krok ujednoliconej procedury (UPS).
W całej zmiennej {workitem}
w szablonie identyfikatora URI oznacza identyfikator UID elementu Workitem.
Dostępne punkty końcowe UPS-RS obejmują:
Czasownik | Ścieżka | opis |
---|---|---|
KSIĘGUJ | {s}/workitems{? Identyfikator AffectedSOPInstanceUID} | Utwórz element roboczy |
POST | {s}/workitems/{instance}{?transaction} | Aktualizuj element roboczy |
GET | {s}/workitems{?query*} | Wyszukiwanie elementów roboczych |
GET | {s}/workitems/{instance} | Pobieranie elementu roboczego |
ODŁÓŻ | {s}/workitems/{instance}/state | Zmienianie stanu elementu roboczego |
POST | {s}/workitems/{instance}/cancelrequest | Anulowanie elementu roboczego |
POST | {s}/workitems/{instance}/subskrybenci/{AETitle}{?deletionlock} | Tworzenie subskrypcji |
POST | {s}/workitems/1.2.840.10008.5.1.4.34.5/ | Wstrzymywanie subskrypcji |
DELETE | {s}/workitems/{instance}/subskrybenci/{AETitle} | Usuwanie subskrypcji |
GET | {s}/subskrybenci/{AETitle} | Otwieranie kanału subskrypcji |
Tworzenie elementu roboczego
Ta transakcja używa metody POST do utworzenia nowego elementu Workitem.
Metoda | Ścieżka | opis |
---|---|---|
KSIĘGUJ | .. /workitems | Tworzenie elementu roboczego |
POST | .. /workitems? {workitem} | Tworzy element Workitem z określonym identyfikatorem UID. |
Jeśli nie zostanie określony w identyfikatorze URI, zestaw danych ładunku musi zawierać element Workitem w atrybucie SOPInstanceUID
.
Nagłówki Accept
i Content-Type
są wymagane w żądaniu i muszą mieć wartość application/dicom+json
.
Istnieje kilka wymagań związanych z atrybutami danych DICOM w kontekście określonej transakcji. Atrybuty mogą być wymagane do obecności, wymagane, aby nie być obecne, wymagane do pustego lub wymagane, aby nie być puste. Te wymagania można znaleźć w tej tabeli.
Uwaga
Chociaż tabela referencyjna mówi, że identyfikator UID wystąpienia SOP nie powinien być obecny, te wskazówki są specyficzne dla protokołu DIMSE i są obsługiwane inaczej w DICOMWeb. Identyfikator UID wystąpienia SOP powinien być obecny w zestawie danych, jeśli nie w identyfikatorze URI.
Uwaga
Wszystkie kody wymagań warunkowych, w tym 1C i 2C, są traktowane jako opcjonalne.
Tworzenie kodów stanu odpowiedzi
Kod | opis |
---|---|
201 (Created) |
Docelowy element Workitem został pomyślnie utworzony. |
400 (Bad Request) |
Wystąpił problem z żądaniem. Na przykład ładunek żądania nie spełnia wymagań. |
401 (Unauthorized) |
Klient nie jest uwierzytelniony. |
403 (Forbidden) |
Użytkownik nie jest autoryzowany. |
409 (Conflict) |
Element Workitem już istnieje. |
415 (Unsupported Media Type) |
Podany Content-Type element nie jest obsługiwany. |
503 (Service Unavailable) |
Usługa jest niedostępna lub zajęta. Spróbuj ponownie później. |
Tworzenie ładunku odpowiedzi
Odpowiedź z informacją o powodzeniu nie ma ładunku. Nagłówki Location
i Content-Location
odpowiedzi zawierają odwołanie URI do utworzonego elementu Workitem.
Ładunek odpowiedzi na błąd zawiera komunikat opisujący błąd.
Żądanie anulowania
Ta transakcja umożliwia użytkownikowi żądanie anulowania nieownego elementu Workitem.
Istnieją cztery prawidłowe stany Workitem.
SCHEDULED
IN PROGRESS
CANCELED
COMPLETED
Ta transakcja kończy się powodzeniem tylko względem elementów Workitems w SCHEDULED
stanie. Każdy użytkownik może przejąć własność elementu Workitem, ustawiając jego identyfikator UID transakcji i zmieniając jego stan na IN PROGRESS
. Od tego momentu użytkownik może modyfikować tylko element Workitem, podając prawidłowy identyfikator UID transakcji. Podczas gdy ups definiuje klasy SOP watch i event SOP, które zezwalają na przesyłanie żądań anulowania i innych zdarzeń, ta usługa DICOM nie implementuje tych klas, a więc żądania anulowania dla elementów roboczych, które zwracają IN PROGRESS
błąd. Posiadany element Workitem można anulować za pośrednictwem transakcji Change Workitem State .
Metoda | Ścieżka | opis |
---|---|---|
KSIĘGUJ | .. /workitems/{workitem}/cancelrequest | Żądanie anulowania zaplanowanego elementu workitem |
Nagłówek Content-Type
jest wymagany i musi mieć wartość application/dicom+json
.
Ładunek żądania może zawierać informacje o akcji zgodnie z definicją w standardzie DICOM.
Kody stanu odpowiedzi anulowania żądania
Kod | opis |
---|---|
202 (Accepted) |
Żądanie zostało zaakceptowane przez serwer, ale stan Target Workitem jest niezmieniony. |
400 (Bad Request) |
Wystąpił problem ze składnią żądania. |
401 (Unauthorized) |
Klient nie jest uwierzytelniony. |
403 (Forbidden) |
Użytkownik nie jest autoryzowany. |
404 (Not Found) |
Nie można odnaleźć elementu workitem docelowego. |
409 (Conflict) |
Żądanie jest niespójne z bieżącym stanem elementu docelowego workitem. Na przykład element Docelowy element roboczy jest w SCHEDULED stanie lub COMPLETED . |
415 (Unsupported Media Type) |
Podany Content-Type element nie jest obsługiwany. |
Ładunek odpowiedzi na żądanie anulowania
Odpowiedź z informacją o powodzeniu nie ma ładunku, a ładunek odpowiedzi na błąd zawiera komunikat opisujący błąd.
Jeśli wystąpienie elementu roboczego jest już w stanie anulowanym, odpowiedź zawiera następujący nagłówek ostrzeżenia HTTP: 299: The UPS is already in the requested state of CANCELED.
Pobieranie elementu roboczego
Ta transakcja pobiera element Workitem. Odpowiada operacji UPS DIMSE N-GET.
Zapoznaj się z tematem: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.5
Jeśli element Workitem istnieje na serwerze pochodzenia, element Workitem jest zwracany w akceptowalnym typie nośnika. Zwrócony element Workitem nie będzie zawierać atrybutu UID transakcji (0008 1195). Jest to konieczne, aby zachować rolę atrybutu jako blokadę dostępu.
Metoda | Ścieżka | opis |
---|---|---|
GET | .. /workitems/{workitem} | Żądanie pobrania elementu roboczego |
Nagłówek Accept
jest wymagany i musi mieć wartość application/dicom+json
.
Pobieranie kodów stanu odpowiedzi elementu workitem
Kod | opis |
---|---|
200 (OK) | Wystąpienie elementu Workitem zostało pomyślnie pobrane. |
400 (Nieprawidłowe żądanie) | Wystąpił problem z żądaniem. |
401 (Brak autoryzacji) | Klient nie jest uwierzytelniony. |
403 (Zabronione) | Użytkownik nie jest autoryzowany. |
404 (nie znaleziono) | Nie można odnaleźć elementu workitem docelowego. |
Pobieranie ładunku odpowiedzi workitem
- Odpowiedź powodzenia zawiera pojedynczy ładunek części zawierający żądany element Workitem w wybranym typie multimediów.
- Zwrócony element Workitem nie będzie zawierać atrybutu UID transakcji (0008, 1195) elementu Workitem, ponieważ powinno to być znane tylko właścicielowi.
Aktualizowanie elementu roboczego
Ta transakcja modyfikuje atrybuty istniejącego elementu Workitem. Odpowiada operacji UPS DIMSE N-SET.
Zapoznaj się z tematem: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.6
Aby zaktualizować element Workitem aktualnie w SCHEDULED
stanie, Transaction UID
atrybut nie powinien być obecny. W przypadku elementu workitem w IN PROGRESS
stanie żądanie musi zawierać bieżący identyfikator UID transakcji jako parametr zapytania. Jeśli element Workitem znajduje się już w stanach COMPLETED
lub CANCELED
, odpowiedź to 400 (Bad Request)
.
Metoda | Ścieżka | opis |
---|---|---|
KSIĘGUJ | .. /workitems/{workitem}? {transaction-uid} | Aktualizowanie transakcji workitem |
Nagłówek Content-Type
jest wymagany i musi mieć wartość application/dicom+json
.
Ładunek żądania zawiera zestaw danych ze zmianami, które mają zostać zastosowane do docelowego elementu Workitem. Po zmodyfikowaniu sekwencji żądanie musi zawierać wszystkie elementy w sekwencji, a nie tylko elementy do modyfikacji. Jeśli należy zaktualizować wiele atrybutów jako grupę, wykonaj aktualizację jako wiele atrybutów w jednym żądaniu, a nie jako wiele żądań.
Istnieje wiele wymagań związanych z atrybutami danych DICOM w kontekście określonej transakcji. Atrybuty mogą być wymagane do obecności, wymagane, aby nie być obecne, wymagane do pustego lub wymagane, aby nie być puste. Te wymagania można znaleźć w tej tabeli.
Uwaga
Wszystkie kody wymagań warunkowych, w tym 1C i 2C, są traktowane jako opcjonalne.
Uwaga
Żądanie nie może ustawić wartości atrybutu Stan kroku procedury (0074 1000). Stan kroku procedury jest zarządzany przy użyciu transakcji Zmień stan lub transakcji anulowania żądania.
Aktualizowanie kodów stanu odpowiedzi transakcji workitem
Kod | opis |
---|---|
200 (OK) |
Docelowy element roboczy został zaktualizowany. |
400 (Bad Request) |
Wystąpił problem z żądaniem. Na przykład: (1) Docelowy element roboczy był w COMPLETED stanie lub CANCELED . (2) Brak identyfikatora UID transakcji. (3) Identyfikator UID transakcji jest niepoprawny. (4) Zestaw danych nie był zgodny z wymaganiami. |
401 (Unauthorized) |
Klient nie jest uwierzytelniony. |
403 (Forbidden) |
Użytkownik nie jest autoryzowany. |
404 (Not Found) |
Nie można odnaleźć elementu workitem docelowego. |
409 (Conflict) |
Żądanie jest niespójne z bieżącym stanem elementu docelowego workitem. |
415 (Unsupported Media Type) |
Podany Content-Type element nie jest obsługiwany. |
Aktualizowanie ładunku odpowiedzi transakcji workitem
Serwer pochodzenia obsługuje pola nagłówków zgodnie z wymaganiami w tabeli 11.6.3-2.
Odpowiedź z informacją o powodzeniu nie zawiera ładunku lub ładunku zawierającego dokument Raport o stanie.
Ładunek odpowiedzi na błąd może zawierać raport o stanie opisujący wszelkie błędy, ostrzeżenia lub inne przydatne informacje.
Zmienianie stanu elementu roboczego
Ta transakcja służy do zmiany stanu elementu workitem. Odpowiada operacji UPS DIMSE N-ACTION "Zmień stan UPS". Zmiany stanu są używane do przejmowania własności, ukończenia lub anulowania elementu workitem.
Zapoznaj się z tematem: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.7
Jeśli element Workitem istnieje na serwerze pochodzenia, element Workitem jest zwracany w akceptowalnym typie nośnika. Zwrócony element Workitem nie będzie zawierać atrybutu UID transakcji (0008 1195). Jest to konieczne, aby zachować rolę tego atrybutu jako blokadę dostępu zgodnie z opisem w tym miejscu.
Metoda | Ścieżka | opis |
---|---|---|
ODŁÓŻ | .. /workitems/{workitem}/state | Zmienianie stanu elementu roboczego |
Nagłówek Accept
jest wymagany i musi mieć wartość application/dicom+json
.
Ładunek żądania zawiera elementy danych stanu zmiany UPS. Te elementy danych to:
- Identyfikator UID transakcji (0008, 1195). Ładunek żądania zawiera identyfikator UID transakcji. Agent użytkownika tworzy identyfikator UID transakcji podczas żądania przejścia do
IN PROGRESS
stanu dla danego elementu Workitem. Agent użytkownika udostępnia identyfikator UID transakcji w kolejnych transakcjach z tym elementem Workitem. - Stan kroku procedury (0074, 1000). Wartości prawne odpowiadają żądanemu przejściu stanu. Są to:
IN PROGRESS
, lubCOMPLETED
CANCELED
.
Zmienianie kodów stanu odpowiedzi stanu elementu roboczego
Kod | opis |
---|---|
200 (OK) |
Wystąpienie elementu Workitem zostało pomyślnie pobrane. |
400 (Bad Request) |
Nie można wykonać żądania z jednego z następujących powodów. (1) Żądanie nie jest prawidłowe, biorąc pod uwagę bieżący stan elementu roboczego docelowego. (2) Brak identyfikatora UID transakcji. (3) Identyfikator UID transakcji jest niepoprawny |
401 (Unauthorized) |
Klient nie jest uwierzytelniony. |
403 (Forbidden) |
Użytkownik nie jest autoryzowany. |
404 (Not Found) |
Nie można odnaleźć elementu workitem docelowego. |
409 (Conflict) |
Żądanie jest niespójne z bieżącym stanem elementu docelowego workitem. |
Zmiana ładunku odpowiedzi stanu workitem
- Odpowiedzi obejmują pola nagłówka określone w sekcji 11.7.3.2.
- Odpowiedź z informacją o powodzeniu nie ma ładunku.
- Ładunek odpowiedzi na błąd może zawierać raport o stanie opisujący wszelkie błędy, ostrzeżenia lub inne przydatne informacje.
Wyszukaj elementy robocze
Ta transakcja umożliwia wyszukiwanie elementów roboczych według atrybutów.
Metoda | Ścieżka | opis |
---|---|---|
GET | .. /workitems? | Wyszukiwanie elementów roboczych |
Poniższy Accept
nagłówek jest obsługiwany do wyszukiwania.
application/dicom+json
Obsługiwane parametry wyszukiwania
Obsługiwane są następujące parametry dla każdego zapytania.
Klucz | Wartości pomocy technicznej | Dozwolona liczba | opis |
---|---|---|---|
{attributeID}= |
{value} |
0...N | Wyszukiwanie dopasowania atrybutu/wartości w zapytaniu |
includefield= |
{attributeID} all |
0...N | Pozostałe atrybuty, które mają być zwracane w odpowiedzi; Można uwzględnić tylko atrybuty najwyższego poziomu — a nie atrybuty, które są częścią sekwencji. Obsługiwane są zarówno tagi publiczne, jak i prywatne. Po all podaniu zobacz Search Response (Odpowiedź wyszukiwania ), aby uzyskać więcej informacji o tym, które atrybuty są zwracane dla każdego typu zapytania. Jeśli podano kombinację elementów {attributeID} i all , serwer domyślnie używa wartości "all". |
limit= |
{value} |
0...1 | Wartość całkowita, aby ograniczyć liczbę wartości zwracanych w odpowiedzi; Wartość może należeć do zakresu 1 >= x <= 200 , domyślnie na 100 wartość . |
offset= |
{value} |
0...1 | Pomiń {value} wyniki; Jeśli zostanie podane przesunięcie większe niż liczba wyników zapytania wyszukiwania, zostanie zwrócona 204 (no content) odpowiedź. |
fuzzymatching= |
true | false |
0...1 | Jeśli dopasowanie rozmyte jest stosowane do dowolnych atrybutów z reprezentacją wartości Person Name (PN) (VR); Wykonywane jest dopasowanie słowa prefiksu dowolnej części nazwy wewnątrz tych atrybutów. Jeśli na przykład PatientName to , to joh , , do jo do , Doe i John Doe John^Doe wszystkie pasują. Jednak ohn nie jest zgodny. |
Atrybuty z możliwością wyszukiwania
Obsługujemy wyszukiwanie tych atrybutów.
Słowo kluczowe atrybutu |
---|
PatientName |
PatientID |
ReferencedRequestSequence.AccessionNumber |
ReferencedRequestSequence.RequestedProcedureID |
ScheduledProcedureStepStartDateTime |
ScheduledStationNameCodeSequence.CodeValue |
ScheduledStationClassCodeSequence.CodeValue |
ScheduledStationGeographicLocationCodeSequence.CodeValue |
ProcedureStepState |
StudyInstanceUID |
Dopasowywanie wyszukiwania
Obsługujemy te pasujące typy.
Typ wyszukiwania | Obsługiwany atrybut | Przykład |
---|---|---|
Kwerenda zakresu | ScheduledProcedureStepStartDateTime |
{attributeID}={value1}-{value2} . W przypadku wartości daty/godziny obsługujemy zakres inkluzywny tagu. Jest to mapowane na attributeID >= {value1} AND attributeID <= {value2} . Jeśli {value1} nie zostanie określony, wszystkie wystąpienia dat/godzin przed i włącznie {value2} są zgodne. Podobnie, jeśli {value2} nie zostanie określony, wszystkie wystąpienia {value1} i kolejne daty/godziny są zgodne. Jednak jedna z tych wartości musi być obecna. {attributeID}={value1}- i {attributeID}=-{value2} są prawidłowe, jednak {attributeID}=- jest nieprawidłowe. |
Dokładne dopasowanie | Wszystkie obsługiwane atrybuty | {attributeID}={value1} |
Rozmyte dopasowanie | PatientName |
Pasuje do dowolnego składnika nazwy rozpoczynającej się od wartości |
Uwaga
Chociaż nie obsługujemy dopasowywania pełnej sekwencji, obsługujemy dokładne dopasowanie atrybutów wymienionych w sekwencji.
Identyfikator atrybutu
Tagi można kodować na wiele sposobów dla parametru zapytania. Częściowo zaimplementowaliśmy standard zdefiniowany w programie PS3.18 6.7.1.1.1. Obsługiwane są następujące kodowanie tagu.
Wartość | Przykład |
---|---|
{group}{element} |
00100010 |
{dicomKeyword} |
PatientName |
Przykładowe zapytanie:
../workitems?PatientID=K123&0040A370.00080050=1423JS&includefield=00404005&limit=5&offset=0
Odpowiedź na wyszukiwanie
Odpowiedź to tablica 0...N
zestawów danych DICOM z zwracanymi następującymi atrybutami:
- Wszystkie atrybuty w tabeli DICOM PowerShell 3.4 CC.2.5-3 z zwracanym typem klucza 1 lub 2.
- Wszystkie atrybuty w tabeli DICOM PowerShell 3.4 CC.2.5-3 z zwracanym typem klucza 1C, dla którego spełnione są wymagania warunkowe.
- Wszystkie inne atrybuty elementu Workitem zostały przekazane jako parametry dopasowania.
- Wszystkie inne atrybuty elementu Workitem przekazane jako
includefield
wartości parametrów.
Kody odpowiedzi wyszukiwania
Interfejs API zapytań zwraca jeden z następujących kodów stanu w odpowiedzi.
Kod | opis |
---|---|
200 (OK) |
Ładunek odpowiedzi zawiera cały pasujący zasób. |
206 (Partial Content) |
Ładunek odpowiedzi zawiera tylko niektóre wyniki wyszukiwania, a reszta może być żądana za pośrednictwem odpowiedniego żądania. |
204 (No Content) |
Wyszukiwanie zostało ukończone pomyślnie, ale nie zwróciło żadnych wyników. |
400 (Bad Request) |
Wystąpił problem z żądaniem. Na przykład nieprawidłowa składnia parametru zapytania. Treść odpowiedzi zawiera szczegóły błędu. |
401 (Unauthorized) |
Klient nie jest uwierzytelniony. |
403 (Forbidden) |
Użytkownik nie jest autoryzowany. |
503 (Service Unavailable) |
Usługa jest niedostępna lub zajęta. Spróbuj ponownie później. |
Inne notatki
Interfejs API zapytania nie zwraca wartości 413 (request entity too large)
. Jeśli żądany limit odpowiedzi zapytania znajduje się poza dopuszczalnym zakresem, zwracane jest nieprawidłowe żądanie. Wszystkie żądane elementy w dopuszczalnym zakresie są rozwiązywane.
- Wyniki stronicowane są zoptymalizowane pod kątem pierwszego zwracania dopasowanego najnowszego wystąpienia, co może spowodować zduplikowanie rekordów na kolejnych stronach, jeśli dodano nowsze dane pasujące do zapytania.
- Dopasowywanie nie uwzględnia wielkości liter, a nie akcentu dla typów PN VR.
- Dopasowanie nie uwzględnia wielkości liter i jest wrażliwe na akcent dla innych typów VR ciągów.
- Jeśli istnieje scenariusz polegający na tym, że anulowanie elementu Workitem i wykonywanie zapytań względem tego samego elementu Workitem odbywa się w tym samym czasie, zapytanie prawdopodobnie wyklucza element Workitem, który jest aktualizowany, a kod odpowiedzi to
206 (Partial Content)
.
Uwaga
DICOM® jest zastrzeżonym znakiem towarowym National Electrical Manufacturers Association for its Standards publikacji odnoszących się do cyfrowej komunikacji informacji medycznych.