DICOM Conformance-Anweisung v1
Hinweis
API Version 2 ist die neueste API-Version und sollte anstelle von v1 verwendet werden. Ausführliche Informationen finden Sie in der DICOM-Konformitätserklärung v2 .
Der Medical Imaging Server für DICOM® unterstützt eine Teilmenge des DICOMweb-Standards. Der Support umfasst:
Darüber hinaus werden die folgenden nicht standardmäßigen APIs unterstützt:
Der Dienst verwendet die REST-API-Versionsverwaltung. Die Version der REST-API muss explizit als Teil der Basis-URL angegeben werden, wie im folgenden Beispiel gezeigt:
https://<service_url>/v<version>/studies
Diese Version der Konformitäts-Anweisung entspricht der v1
Version der REST-APIs.
Informationen zum Angeben der Version beim Erstellen von Anforderungen finden Sie in der API-Versionsverwaltungsdokumentation.
Sie finden Beispielanforderungen für unterstützte Transaktionen in der Postman-Sammlung.
Präambelbereinigung
Der Dienst ignoriert die 128-Byte-Dateivorschrift und ersetzt den Inhalt durch NULL-Zeichen. Dieses Verhalten stellt sicher, dass keine Dateien, die über den Dienst übergeben werden, anfällig für die böswillige Präambel-Sicherheitsanfälligkeit sind. Diese Präambelbereinigung bedeutet jedoch auch, dass Präambel, die zum Codieren von Inhalten im dualen Format verwendet werden, z. B. TIFF, nicht mit dem Dienst verwendet werden können.
Studienservice
Der Studiendienst ermöglicht Es Benutzern, DICOM-Studien, Reihen und Instanzen zu speichern, abzurufen und zu suchen. Wir haben die nicht standardmäßige Delete-Transaktion hinzugefügt, um einen vollständigen Ressourcenlebenszyklus zu aktivieren.
Store (STOW-RS)
Diese Transaktion verwendet die POST- oder PUT-Methode, um Darstellungen von Studien, Datenreihen und Instanzen in der Anforderungsnutzlast zu speichern.
Methode | Pfad | Beschreibung |
---|---|---|
POST | .. /Studium | Speichern von Instanzen. |
POST | .. /studies/{study} | Speichern sie Instanzen für eine bestimmte Studie. |
PUT | .. /Studium | Upsert-Instanzen. |
PUT | .. /studies/{study} | Upsert-Instanzen für eine bestimmte Studie. |
Der Parameter study
entspricht dem DICOM-Attribut StudyInstanceUID
. Wenn angegeben, wird jede Instanz, die nicht zur bereitgestellten Studie gehört, mit einem 43265
Warncode abgelehnt.
Der folgende Accept
Header für die Antwort wird unterstützt:
application/dicom+json
Die folgenden Content-Type
Header werden unterstützt:
multipart/related; type="application/dicom"
application/dicom
Hinweis
Der Server erzwingt keine Attribute, die mit vorhandenen Daten für POST-Anforderungen in Konflikt geraten. Alle Daten werden wie bereitgestellt gespeichert. Bei Upsert-Anforderungen (PUT) werden die vorhandenen Daten durch die neuen empfangenen Daten ersetzt.
Erforderliche Attribute speichern
Die folgenden DICOM-Elemente müssen in jeder DICOM-Datei vorhanden sein, die versucht, gespeichert zu werden:
StudyInstanceUID
SeriesInstanceUID
SOPInstanceUID
SOPClassUID
PatientID
Hinweis
Alle UIDs müssen zwischen 1 und 64 Zeichen lang sein und nur alphanumerische Zeichen oder die folgenden Sonderzeichen enthalten: .
, -
. PatientID
wird basierend auf dem LO
VR
Typ überprüft.
Jede gespeicherte Datei muss eine eindeutige Kombination aus StudyInstanceUID
, , SeriesInstanceUID
und SopInstanceUID
. Der Warncode 45070
wird zurückgegeben, wenn bereits eine Datei mit denselben Bezeichnern vorhanden ist.
Es werden nur Syntaxen mit expliziten Wertdarstellungen akzeptiert.
Store-Antwortstatuscodes
Code | Beschreibung |
---|---|
200 (OK) |
Alle SOP-Instanzen in der Anforderung werden gespeichert. |
202 (Accepted) |
Einige Instanzen in der Anforderung werden gespeichert, andere sind jedoch fehlgeschlagen. |
204 (No Content) |
In der Store-Transaktionsanforderung wurden keine Inhalte bereitgestellt. |
400 (Bad Request) |
Die Anforderung wurde schlecht formatiert. Der angegebene Untersuchungsinstanzbezeichner entspricht beispielsweise nicht dem erwarteten UID-Format. |
401 (Unauthorized) |
Der Client ist nicht authentifiziert. |
403 (Forbidden) |
Der Benutzer ist nicht autorisiert. |
406 (Not Acceptable) |
Die angegebene Accept Kopfzeile wird nicht unterstützt. |
409 (Conflict) |
Keine der Instanzen in der Speichertransaktionsanforderung wurde gespeichert. |
415 (Unsupported Media Type) |
Die bereitgestellte Version Content-Type wird nicht unterstützt. |
503 (Service Unavailable) |
Der Dienst ist nicht verfügbar oder ausgelastet. Versuchen Sie es später noch einmal. |
Speicherantwortnutzlast
Die Antwortnutzlast füllt ein DICOM-Dataset mit den folgenden Elementen auf.
Tag | Name | Beschreibung |
---|---|---|
(0008, 1190) | RetrieveURL |
Die Abrufen-URL der Studie, wenn die StudyInstanceUID In der Store-Anforderung bereitgestellt wurde und mindestens eine Instanz erfolgreich gespeichert wird |
(0008, 1198) | FailedSOPSequence |
Die Abfolge von Instanzen, die nicht gespeichert werden konnten |
(0008, 1199) | ReferencedSOPSequence |
Die Abfolge gespeicherter Instanzen |
Jedes Dataset in der FailedSOPSequence
Datei weist die folgenden Elemente auf (wenn die ZU speichernde DICOM-Datei gelesen werden könnte).
Tag | Name | Beschreibung |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Der eindeutige SOP-Klassenbezeichner der Instanz, die nicht gespeichert werden konnte |
(0008, 1155) | ReferencedSOPInstanceUID |
Der eindeutige SOP-Instanzbezeichner der Instanz, die nicht gespeichert werden konnte |
(0008, 1197) | FailureReason |
Der Grundcode, warum diese Instanz nicht gespeichert werden konnte |
(0074, 1048) | FailedAttributesSequence |
Die Sequenz davon ErrorComment enthält den Grund für jedes fehlgeschlagene Attribut. |
Jedes Dataset in der Datei ReferencedSOPSequence
weist die folgenden Elemente auf.
Tag | Name | Beschreibung |
---|---|---|
(0008, 1150) | ReferencedSOPClassUID |
Der eindeutige SOP-Klassenbezeichner der Instanz, die nicht gespeichert werden konnte |
(0008, 1155) | ReferencedSOPInstanceUID |
Der eindeutige SOP-Instanzbezeichner der Instanz, die nicht gespeichert werden konnte |
(0008, 1190) | RetrieveURL |
Die Abrufen-URL dieser Instanz auf dem DICOM-Server |
Beispielantwort mit Accept
Kopfzeile 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"]
}
}]
}
}
Fehlerursachencodes für den Store
Code | Beschreibung |
---|---|
272 |
Die Store-Transaktion hat die Instanz aufgrund eines allgemeinen Fehlers bei der Verarbeitung des Vorgangs nicht gespeichert. |
43264 |
Die DICOM-Instanz hat die Überprüfung fehlgeschlagen. |
43265 |
Die angegebene Instanz StudyInstanceUID entspricht nicht der in der Store-Anforderung angegebenen StudyInstanceUID Instanz. |
45070 |
Eine DICOM-Instanz mit demselben StudyInstanceUID , SeriesInstanceUID und SopInstanceUID wird bereits gespeichert. Wenn Sie den Inhalt aktualisieren möchten, löschen Sie diese Instanz zuerst. |
45071 |
Eine DICOM-Instanz wird von einem anderen Prozess erstellt, oder der vorherige Versuch, einen Fehler zu erstellen, und der Bereinigungsvorgang ist nicht abgeschlossen. Löschen Sie die Instanz zuerst, bevor Sie erneut versuchen, die Instanz zu erstellen. |
Store-Warnungsursachencodes
Code | Beschreibung |
---|---|
45063 |
Ein DICOM-Instanzdatensatz stimmt nicht mit der SOP-Klasse überein. Die Studienspeichertransaktion (Abschnitt 10.5) hat festgestellt, dass das Dataset während des Speichers der Instanz nicht mit den Einschränkungen der SOP-Klasse übereinstimmte. |
Speicherfehlercodes
Code | Beschreibung |
---|---|
100 |
Die bereitgestellten Instanzattribute erfüllten die Überprüfungskriterien nicht. |
Abrufen (WADO-RS)
Diese Retrieve-Transaktion bietet Unterstützung für das Abrufen gespeicherter Studien, Datenreihen, Instanzen und Frames nach Referenz.
Methode | Pfad | Beschreibung |
---|---|---|
GET | .. /studies/{study} | Ruft alle Instanzen innerhalb einer Studie ab. |
GET | .. /studies/{study}/metadata | Ruft die Metadaten für alle Instanzen innerhalb einer Studie ab. |
GET | .. /studies/{study}/series/{series} | Ruft alle Instanzen innerhalb einer Datenreihe ab. |
GET | .. /studies/{study}/series/{series}/metadata | Ruft die Metadaten für alle Instanzen innerhalb einer Datenreihe ab. |
GET | .. /studies/{study}/series/{series}/instances/{instance} | Ruft eine einzelne Instanz ab. |
GET | .. /studies/{study}/series/{series}/instances/{instance}/metadata | Ruft die Metadaten für eine einzelne Instanz ab. |
GET | .. /studies/{study}/series/{series}/instances/{instance}/rendern | Ruft eine Instanz ab, die in einem Bildformat gerendert wird. |
GET | .. /studies/{study}/series/{series}/instances/{instance}/frames/{frames} | Ruft einen oder mehrere Frames aus einer einzelnen Instanz ab; Wenn Sie mehrere Frames angeben möchten, verwenden Sie ein Komma, um die einzelnen Frames zu trennen. Beispiel: /studies/1/series/2/instance/3/frames/4,5,6 . |
GET | .. /studies/{study}/series/{series}/instances/{instance}/frames/{frame}/rendern | Ruft einen einzelnen Frame ab, der in einem Bildformat gerendert wird. |
Abrufen von Instanzen innerhalb einer Studie oder Datenreihe
Die folgenden Accept
Kopfzeilen werden für das Abrufen von Instanzen innerhalb einer Studie oder einer Datenreihe unterstützt.
multipart/related; type="application/dicom"; transfer-syntax=*
multipart/related; type="application/dicom";
(wenn die Transfersyntax nicht angegeben ist, wird 1.2.840.10008.1.2.1 als Standard verwendet)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
*/*
(wenn die Transfersyntax nicht angegeben wird,*
wird als Standard- und mediaType-Standardeinstellung verwendet unterapplication/dicom
)
Abrufen einer Instanz
Die folgenden Accept
Header werden zum Abrufen einer bestimmten Instanz unterstützt:
application/dicom; transfer-syntax=*
multipart/related; type="application/dicom"; transfer-syntax=*
application/dicom;
(wenn die Transfersyntax nicht angegeben ist,1.2.840.10008.1.2.1
wird als Standard verwendet)multipart/related; type="application/dicom"
(wenn die Transfersyntax nicht angegeben ist,1.2.840.10008.1.2.1
wird als Standard verwendet)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
*/*
(wenn die Transfersyntax nicht angegeben wird,*
wird als Standard- und mediaType-Standardeinstellung verwendet unterapplication/dicom
)
Frames abrufen
Die folgenden Accept
Header werden zum Abrufen von Frames unterstützt.
multipart/related; type="application/octet-stream"; transfer-syntax=*
multipart/related; type="application/octet-stream";
(wenn die Transfersyntax nicht angegeben ist,1.2.840.10008.1.2.1
wird als Standard verwendet)multipart/related; type="application/octet-stream"; transfer-syntax=1.2.840.10008.1.2.1
multipart/related; type="image/jp2";
(wenn die Transfersyntax nicht angegeben ist,1.2.840.10008.1.2.4.90
wird als Standard verwendet)multipart/related; type="image/jp2";transfer-syntax=1.2.840.10008.1.2.4.90
*/*
(wenn die Transfersyntax nicht angegeben wird,*
wird als Standard- und mediaType-Standardeinstellung verwendet unterapplication/octet-stream
)
Abrufen der Übertragungssyntax
Wenn sich die angeforderte Übertragungssyntax von der ursprünglichen Datei unterscheidet, wird die ursprüngliche Datei in die angeforderte Übertragungssyntax transcodiert. Die Originaldatei muss eines der folgenden Formate sein, damit die Transcodierung erfolgreich ist, andernfalls schlägt die Transcodierung fehl.
- 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 Baseline Process 1)
- 1.2.840.10008.1.2.4.57 (JPEG Lossless)
- 1.2.840.10008.1.2.4.70 (JPEG Lossless Selection Value 1)
- 1.2.840.10008.1.2.4.90 (JPEG 2000 Lossless Only)
- 1.2.840.10008.1.2.4.91 (JPEG 2000)
- 1.2.840.10008.1.2.5 (RLE Lossless)
Ein nicht unterstütztes transfer-syntax
Ergebnis in 406 Not Acceptable
.
Abrufen von Metadaten (für Studie, Datenreihe oder Instanz)
Der folgende Accept
Header wird zum Abrufen von Metadaten für eine Studie, eine Datenreihe oder eine Instanz unterstützt.
application/dicom+json
Beim Abrufen von Metadaten werden keine Attribute mit den folgenden Wertdarstellungen zurückgegeben.
VR-Name | Beschreibung |
---|---|
OB | Anderes Byte |
OD | Sonstiges Double |
OF | Sonstiges Float-Format |
OL | Andere lang |
OV | Andere 64-Bit-Sehr lange |
OW | Anderes Wort |
UN | Unbekannt |
Abrufen der Metadatencacheüberprüfung (für Studie, Datenreihe oder Instanz)
Die Cacheüberprüfung wird mithilfe des ETag
Mechanismus unterstützt. In der Antwort auf eine Metadatenanforderung wird ETag als einer der Header zurückgegeben. Dieses ETag kann zwischengespeichert und als If-None-Match
Header in den späteren Anforderungen für dieselben Metadaten hinzugefügt werden. Zwei Arten von Antworten sind möglich, wenn die Daten vorhanden sind:
- Die Daten sind seit der letzten Anforderung unverändert: Die
HTTP 304 (Not Modified)
Antwort wird ohne Antworttext gesendet. - Die Daten wurden seit der letzten Anforderung geändert: Die
HTTP 200 (OK)
Antwort wird mit dem aktualisierten ETag gesendet. Erforderliche Daten werden auch als Teil des Textkörpers zurückgegeben.
Abrufen gerenderter Bilder (z. B. Frame)
Die folgenden Accept
Kopfzeilen werden zum Abrufen eines gerenderten Bilds in einer Instanz oder einem Frame unterstützt.
image/jpeg
image/png
In dem Fall, dass keine Accept
Kopfzeile angegeben wird, wird standardmäßig ein image/jpeg
Dienst gerendert.
Der Dienst unterstützt nur das Rendern eines einzelnen Frames. Wenn das Rendern für eine Instanz mit mehreren Frames angefordert wird, wird standardmäßig nur der erste Frame als Bild gerendert.
Wenn Sie einen bestimmten zurückzugebenden Frame angeben, beginnt die Frameindizierung bei 1.
Der quality
Abfrageparameter wird ebenfalls unterstützt. Ein ganzzahliger Wert von 1
bis 100
einschließlich (1 ist schlechteste Qualität und 100 die beste Qualität) wird möglicherweise als Wert für den Abfrageparameter übergeben. Dieser Parameter wird für Bilder verwendet, die als jpeg
gerendert werden, und wird für png
Renderanforderungen ignoriert. Wenn nicht angegeben, wird der Parameter standardmäßig auf 100
.
Abrufen von Antwortstatuscodes
Code | Beschreibung |
---|---|
200 (OK) |
Alle angeforderten Daten wurden abgerufen. |
304 (Not Modified) |
Die angeforderten Daten wurden seit der letzten Anforderung nicht geändert. In diesem Fall wird der Inhalt nicht zum Antworttext hinzugefügt. Weitere Informationen finden Sie im vorherigen Abschnitt Abrufen der Metadatencacheüberprüfung (für Studie, Datenreihe oder Instanz). |
400 (Bad Request) |
Die Anforderung wurde schlecht formatiert. Der angegebene Untersuchungsinstanzbezeichner stimmte beispielsweise nicht mit dem erwarteten UID-Format überein, oder die angeforderte Transfersyntaxcodierung wird nicht unterstützt. |
401 (Unauthorized) |
Der Client ist nicht authentifiziert. |
403 (Forbidden) |
Der Benutzer ist nicht autorisiert. |
404 (Not Found) |
Die angegebene DICOM-Ressource konnte nicht gefunden werden, oder für eine gerenderte Anforderung enthielt die Instanz keine Pixeldaten. |
406 (Not Acceptable) |
Der angegebene Accept Header wird nicht unterstützt, oder für gerenderte und transcodierte Anforderungen war die angeforderte Datei zu groß. |
503 (Service Unavailable) |
Der Dienst ist nicht verfügbar oder ausgelastet. Versuchen Sie es später noch einmal. |
Suche (QIDO-RS)
Mithilfe von Abfragen anhand der ID für DICOM Objects (QIDO) können Sie nach Studien, Datenreihen und Instanzen nach Attributen suchen.
Methode | Pfad | Beschreibung |
---|---|---|
Nach Studien suchen | ||
GET | .. /Studium?... | Suchen nach Studien |
Nach Datenreihen suchen | ||
GET | .. /Reihe?... | Nach Datenreihen suchen |
GET | .. /studies/{study}/series?... | Suchen nach Reihen in einer Studie |
Suchen nach Instanzen | ||
GET | .. /Instanzen?... | Nach Instanzen suchen |
GET | .. /studies/{study}/instances?... | Suchen nach Beispielen in einer Studie |
GET | .. /studies/{study}/series/{series}/instances?... | Suchen nach Instanzen in einer Reihe |
Der folgende Accept
Header wird für die Suche unterstützt:
application/dicom+json
Unterstützte Suchparameter
Die folgenden Parameter für jede Abfrage werden unterstützt.
Schlüssel | Supportwerte | Zulässige Anzahl | Beschreibung |
---|---|---|---|
{attributeID}= |
{value} |
0...N | Suchen nach Attribut-/Wertabgleich in der Abfrage |
includefield= |
{attributeID} all |
0...N | Die anderen Attribute, die in der Antwort zurückgegeben werden sollen; Sowohl öffentliche als auch private Tags werden unterstützt. Wann all wird angegeben. Weitere Informationen dazu, welche Attribute für jeden Abfragetyp zurückgegeben werden, finden Sie in der Suchantwort .Wenn eine Mischung aus {attributeID} und all bereitgestellt wird, verwendet der Server standardmäßig all . |
limit= |
{value} |
0..1 | Ganzzahliger Wert, um die Anzahl der in der Antwort zurückgegebenen Werte zu begrenzen; Der Wert kann zwischen dem Bereich 1 >= x <= 200 liegen, standardmäßig auf 100 festgelegt. |
offset= |
{value} |
0..1 | Ergebnisse überspringen {value} ; Wenn ein Offset größer als die Anzahl der Suchergebnisse ist, wird eine 204 (no content) Antwort zurückgegeben. |
fuzzymatching= |
true / false |
0..1 | Wenn true fuzzy matching auf das PatientName-Attribut angewendet wird; Es führt eine Präfixwort-Übereinstimmung eines beliebigen Namensteils innerhalb des PatientName-Werts durch. Wenn "PatientName" beispielsweise "John^Doe" lautet, dann "joh", "do", "jo do", "Doe" und "John Doe" alle übereinstimmen. "ohn" stimmt jedoch nicht überein. |
Durchsuchbare Attribute
Wir unterstützen die Suche nach den folgenden Attributen und Suchtypen.
Attributschlüsselwort | Alle Studien | Alle Serien | Alle Instanzen | Studienreihe | Instanzen der Studie | Instanzen der Studienreihe |
---|---|---|---|---|---|---|
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 |
Suchabgleich
Wir unterstützen die folgenden übereinstimmenden Typen.
Suchtyp | Unterstütztes Attribut | Beispiel |
---|---|---|
Bereichsabfrage | StudyDate /PatientBirthDate |
{attributeID}={value1}-{value2} . Für Datums-/Uhrzeitwerte unterstützen wir einen inklusiven Bereich auf dem Tag, der zugeordnet attributeID >= {value1} AND attributeID <= {value2} ist. Wenn {value1} nicht angegeben, werden alle Vorkommen von Datums- und Uhrzeitangaben vor und einschließlich {value2} übereinstimmen. Ebenso werden, wenn {value2} nicht angegeben, alle Vorkommen und {value1} nachfolgende Datums-/Uhrzeiten übereinstimmen. Einer dieser Werte muss jedoch vorhanden sein. {attributeID}={value1}- und {attributeID}=-{value2} sind gültig, {attributeID}=- ist jedoch ungültig. |
Genaue Übereinstimmung | Alle unterstützten Attribute | {attributeID}={value1} |
Fuzzy Match | PatientName , ReferringPhysicianName |
Entspricht einer beliebigen Komponente des Namens, die mit dem Wert beginnt. |
Attribut-ID
Tags können auf verschiedene Arten für den Abfrageparameter codiert werden. Wir haben den Standard, wie in PS3.18 6.7.1.1.1.1 definiert, teilweise implementiert. Die folgenden Codierungen für ein Tag werden unterstützt.
Wert | Beispiel |
---|---|
{group}{element} |
0020000D |
{dicomKeyword} |
StudyInstanceUID |
Hier sehen Sie ein Beispiel für die Abfragesuche nach Instanzen:
../instances?Modality=CT&00280011=512&includefield=00280010&limit=5&offset=0
Suchantwort
Die Antwort ist ein Array von DICOM-Datasets. Je nach Ressource werden standardmäßig die folgenden Attribute zurückgegeben.
Standard-Studientags
Tag | Attributname |
---|---|
(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 |
Standardserientags
Tag | Attributname |
---|---|
(0008, 0005) | SpecificCharacterSet |
(0008, 0060) | Modality |
(0008, 0201) | TimezoneOffsetFromUTC |
(0008, 103E) | SeriesDescription |
(0020, 000E) | SeriesInstanceUID |
(0040, 0244) | PerformedProcedureStepStartDate |
(0040, 0245) | PerformedProcedureStepStartTime |
(0040, 0275) | RequestAttributesSequence |
Standardinstanztags
Tag | Attributname |
---|---|
(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 |
Wenn includefield=all
die folgenden Attribute zusammen mit Standardattributen enthalten sind. Zusammen mit den Standardattributen ist dies die vollständige Liste der Attribute, die auf jeder Ressourcenebene unterstützt werden.
Zusätzliche Studientags
Tag | Attributname |
---|---|
(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 |
Andere Reihentags
Tag | Attributname |
---|---|
(0020, 0011) | SeriesNumber |
(0020, 0060) | Laterality |
(0008, 0021) | SeriesDate |
(0008, 0031) | SeriesTime |
Die folgenden Attribute werden zurückgegeben:
- Alle Abfrageparameter und UIDs der Übereinstimmung in der Ressourcen-URL.
IncludeField
Attribute, die auf dieser Ressourcenebene unterstützt werden.- Wenn die Zielressource lautet
All Series
,Study
werden auch Ebenenattribute zurückgegeben. - Wenn die Zielressource lautet
All Instances
,Study
werden auch Attribute derSeries
Ebene zurückgegeben. - Wenn die Zielressource lautet
Study's Instances
,Series
werden auch Ebenenattribute zurückgegeben. NumberOfStudyRelatedInstances
Das aggregierte Attribut wird aufStudy
EbeneincludeField
unterstützt.NumberOfSeriesRelatedInstances
Das aggregierte Attribut wird aufSeries
EbeneincludeField
unterstützt.
Suchantwortcodes
Die Abfrage-API gibt einen der folgenden Statuscodes in der Antwort zurück.
Code | Beschreibung |
---|---|
200 (OK) |
Die Antwortnutzlast enthält alle übereinstimmenden Ressourcen. |
204 (No Content) |
Die Suche wurde erfolgreich abgeschlossen, aber keine Ergebnisse zurückgegeben. |
400 (Bad Request) |
Der Server konnte die Abfrage nicht ausführen, da die Abfragekomponente ungültig war. Der Antworttext enthält Details des Fehlers. |
401 (Unauthorized) |
Der Client ist nicht authentifiziert. |
403 (Forbidden) |
Der Benutzer ist nicht autorisiert. |
503 (Service Unavailable) |
Der Dienst ist nicht verfügbar oder ausgelastet. Versuchen Sie es später noch einmal. |
Sonstige Hinweise
- Abfragen mithilfe der
TimezoneOffsetFromUTC (00080201)
Abfrage werden nicht unterstützt. - Die Abfrage-API gibt nicht zurück
413 (request entity too large)
. Wenn der angeforderte Abfrageantwortgrenzwert außerhalb des zulässigen Bereichs liegt, wird eine ungültige Anforderung zurückgegeben. Alles, was innerhalb des zulässigen Bereichs angefordert wird, wird aufgelöst. - Wenn die Zielressource "Studie/Serie" ist, gibt es ein Potenzial für inkonsistente Metadaten auf Studien-/Reihenebene über mehrere Instanzen hinweg. Beispielsweise könnten zwei Instanzen unterschiedliche PatientName haben. In diesem Fall werden die neuesten Gewinne erzielt, und Sie können nur nach den neuesten Daten suchen.
- Seitenergebnisse sind optimiert, um zuerst die übereinstimmende neueste Instanz zurückzugeben. Dies kann zu doppelten Datensätzen auf nachfolgenden Seiten führen, wenn neuere Daten hinzugefügt wurden, die der Abfrage entsprechen.
- Bei übereinstimmungen wird die Groß-/Kleinschreibung nicht beachtet, und bei PN VR-Typen wird keine Akzente beachtet.
- Bei übereinstimmungen wird die Groß-/Kleinschreibung nicht beachtet, und bei anderen Zeichenfolgen-VR-Typen wird Akzent berücksichtigt.
- Nur der erste Wert wird indiziert, wenn ein einzelnes wertiges Datenelement falsch mehrere Werte aufweist.
Löschen
Diese Transaktion ist nicht Teil des offiziellen DICOMwe Standard. Es verwendet die DELETE-Methode, um Darstellungen von Studien, Reihen und Instanzen aus dem Speicher zu entfernen.
Methode | Pfad | Beschreibung |
---|---|---|
DELETE | .. /studies/{study} | Löschen aller Instanzen für eine bestimmte Studie |
DELETE | .. /studies/{study}/series/{series} | Löschen aller Instanzen für eine bestimmte Datenreihe innerhalb einer Studie |
DELETE | .. /studies/{study}/series/{series}/instances/{instance} | Löschen einer bestimmten Instanz innerhalb einer Datenreihe |
Die Parameter study
, series
, und instance
entsprechen den DICOM-Attributen StudyInstanceUID
, SeriesInstanceUID
, bzw SopInstanceUID
. entsprechen.
Es gibt keine Einschränkungen für den Kopfzeilen Accept
-, Content-Type
Kopf- oder Textkörperinhalt der Anforderung.
Hinweis
Nach einer Löschtransaktion können die gelöschten Instanzen nicht wiederhergestellt werden.
Antwortstatuscodes
Code | Beschreibung |
---|---|
204 (No Content) |
Wenn alle SOP-Instanzen gelöscht werden |
400 (Bad Request) |
Die Anforderung wurde schlecht formatiert. |
401 (Unauthorized) |
Der Client ist nicht authentifiziert |
403 (Forbidden) |
Der Benutzer ist nicht autorisiert. |
404 (Not Found) |
Wenn die angegebene Datenreihe nicht innerhalb einer Studie gefunden wurde oder die angegebene Instanz nicht innerhalb der Datenreihe gefunden wurde |
503 (Service Unavailable) |
Der Dienst ist nicht verfügbar oder ausgelastet. Versuchen Sie es später noch einmal. |
Antwortnutzlast löschen
Der Antworttext ist leer. Der Statuscode ist die einzige nützliche Information, die zurückgegeben wird.
Worklist Service (UPS-RS)
Der DICOM-Dienst unterstützt die Push- und Pull-SOPs des Arbeitslistendiensts (UPS-RS). Der Worklist-Dienst bietet Zugriff auf eine Arbeitsliste, die Workitems enthält, die jeweils einen Unified Procedure Step (UPS) darstellen.
Im Gesamten steht die Variable {workitem}
in einer URI-Vorlage für eine Workitem UID.
Verfügbare UPS-RS-Endpunkte umfassen:
Verb | Pfad | Beschreibung |
---|---|---|
POST | {s}/workitems{? BetroffeneSOPInstanceUID} | Erstellen eines Arbeitselements |
POST | {s}/workitems/{instance}{?transaction} | Ein Arbeitselement aktualisieren |
GET | {s}/workitems{?query*} | Suchen nach Arbeitselementen |
GET | {s}/workitems/{instance} | Abrufen einer Arbeitsaufgabe |
PUT | {s}/workitems/{instance}/state | Ändern des Arbeitsaufgabenstatus |
POST | {s}/workitems/{instance}/cancelrequest | Arbeitsaufgabe abbrechen |
POST | {s}/workitems/{instance}/subscribers/{AETitle}{?deletionlock} | Abonnement erstellen |
POST | {s}/workitems/1.2.840.10008.5.1.4.34.5/ | Abonnement aussetzen |
DELETE | {s}/workitems/{instance}/subscribers/{AETitle} | Löschen eines Abonnements |
GET | {s}/abonnenten/{AETitle} | Öffnen des Abonnementkanals |
Arbeitselement erstellen
Diese Transaktion verwendet die POST-Methode, um ein neues Workitem zu erstellen.
Methode | Pfad | Beschreibung |
---|---|---|
POST | .. /workitems | Erstellen eines Arbeitselements |
POST | .. /workitems? {workitem} | Erstellt ein Workitem mit der angegebenen UID. |
Wenn der URI nicht angegeben ist, muss das Nutzlast-Dataset das Workitem im SOPInstanceUID
Attribut enthalten.
Die Accept
Header und Content-Type
Die Kopfzeilen sind in der Anforderung erforderlich und müssen beide den Wert application/dicom+json
aufweisen.
Es gibt mehrere Anforderungen im Zusammenhang mit DICOM-Datenattributen im Kontext einer bestimmten Transaktion. Attribute müssen möglicherweise vorhanden sein, müssen nicht vorhanden sein, müssen leer sein oder nicht leer sein. Diese Anforderungen finden Sie in dieser Tabelle.
Hinweis
Obwohl die Referenztabelle besagt, dass die SOP-Instanz-UID nicht vorhanden sein sollte, ist diese Anleitung spezifisch für das DIMSE-Protokoll und wird in DICOMWeb anders behandelt. Die SOP-Instanz-UID sollte im Dataset vorhanden sein, wenn nicht im URI.
Hinweis
Alle bedingte Anforderungscodes einschließlich 1C und 2C werden als optional behandelt.
Erstellen von Antwortstatuscodes
Code | Beschreibung |
---|---|
201 (Created) |
Das Zielarbeitselement wurde erfolgreich erstellt. |
400 (Bad Request) |
Es gab ein Problem mit der Anforderung. Die Anforderungsnutzlast erfüllte beispielsweise nicht die Anforderungen. |
401 (Unauthorized) |
Der Client ist nicht authentifiziert. |
403 (Forbidden) |
Der Benutzer ist nicht autorisiert. |
409 (Conflict) |
Das Arbeitselement ist bereits vorhanden. |
415 (Unsupported Media Type) |
Die bereitgestellte Version Content-Type wird nicht unterstützt. |
503 (Service Unavailable) |
Der Dienst ist nicht verfügbar oder ausgelastet. Versuchen Sie es später noch einmal. |
Erstellen der Antwortnutzlast
Eine Erfolgsantwort hat keine Nutzlast. Die Header und Antwortheader enthalten einen URI-Verweis auf das erstellte Workitem.The Location
and Content-Location
response headers contain a URI reference to the created Workitem.
Eine Fehlerantwortnutzlast enthält eine Meldung, die den Fehler beschreibt.
Absage anfordern
Mit dieser Transaktion kann der Benutzer den Abbruch eines nicht zugeordneten Workitem anfordern.
Es gibt vier gültige Workitem-Status.
SCHEDULED
IN PROGRESS
CANCELED
COMPLETED
Diese Transaktion ist nur erfolgreich für Workitems im SCHEDULED
Zustand. Jeder Benutzer kann den Besitz eines Workitem-Objekts geltend machen, indem er seine Transaktions-UID festlegt und seinen Zustand auf IN PROGRESS
ändert. Anschließend kann ein Benutzer das Workitem nur ändern, indem er die richtige Transaktions-UID bereitstellt. Während UPS Überwachungs- und Ereignis-SOP-Klassen definiert, mit denen Abbruchanforderungen und andere Ereignisse weitergeleitet werden können, implementiert dieser DICOM-Dienst diese Klassen nicht und sodass Abbruchanforderungen für Arbeitsaufgaben, die IN PROGRESS
einen Fehler zurückgeben. Ein eigenes Workitem-Objekt kann über die Transaktion "Workitem State ändern" abgebrochen werden.
Methode | Pfad | Beschreibung |
---|---|---|
POST | .. /workitems/{workitem}/cancelrequest | Anfordern des Abbruchs eines geplanten Arbeitselements |
Die Content-Type
Kopfzeile ist erforderlich und muss den Wert application/dicom+json
aufweisen.
Die Anforderungsnutzlast kann Aktionsinformationen enthalten, die im DICOM-Standard definiert sind.
Statuscodes für anforderungsabbruchsantwort
Code | Beschreibung |
---|---|
202 (Accepted) |
Die Anforderung wurde vom Server akzeptiert, der Status "Target Workitem" ist jedoch unverändert. |
400 (Bad Request) |
Es gab ein Problem mit der Syntax der Anforderung. |
401 (Unauthorized) |
Der Client ist nicht authentifiziert. |
403 (Forbidden) |
Der Benutzer ist nicht autorisiert. |
404 (Not Found) |
Das Zielarbeitselement wurde nicht gefunden. |
409 (Conflict) |
Die Anforderung ist mit dem aktuellen Status des Zielarbeitselements inkonsistent. Beispielsweise befindet sich das Zielarbeitselement im SCHEDULED Oder COMPLETED Zustand. |
415 (Unsupported Media Type) |
Die bereitgestellte Version Content-Type wird nicht unterstützt. |
Anforderungsabbruchantwortnutzlast
Eine Erfolgsantwort hat keine Nutzlast, und eine Fehlerantwortnutzlast enthält eine Meldung, die den Fehler beschreibt.
Wenn sich die Workitem-Instanz bereits in einem abgebrochenen Zustand befindet, enthält die Antwort den folgenden HTTP-Warnungsheader: 299: The UPS is already in the requested state of CANCELED.
Arbeitselement abrufen
Diese Transaktion ruft ein Workitem-Objekt ab. Sie entspricht dem UPS DIMSE N-GET-Vorgang.
Referenzieren: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.5
Wenn das Arbeitselement auf dem Ursprungsserver vorhanden ist, wird das Arbeitselement in einem akzeptablen Medientyp zurückgegeben. Das zurückgegebene Workitem-Objekt enthält nicht das Transaktions-UID-Attribut (0008.1195). Dies ist erforderlich, um die Rolle des Attributs als Zugriffssperre beizubehalten.
Methode | Pfad | Beschreibung |
---|---|---|
GET | .. /workitems/{workitem} | Anforderung zum Abrufen eines Workitem-Objekts |
Die Accept
Kopfzeile ist erforderlich und muss den Wert application/dicom+json
aufweisen.
Abrufen von Antwortstatuscodes für Arbeitselemente
Code | Beschreibung |
---|---|
200 (OK) | Die Workitem-Instanz wurde erfolgreich abgerufen. |
400 (Ungültige Anforderung) | Es gab ein Problem mit der Anforderung. |
401 (Nicht autorisiert) | Der Client ist nicht authentifiziert. |
403 (Unzulässig) | Der Benutzer ist nicht autorisiert. |
404 (Nicht gefunden) | Das Zielarbeitselement wurde nicht gefunden. |
Abrufen der Arbeitselementantwortnutzlast
- Eine Erfolgsantwort weist eine einzelne Teilnutzlast auf, die das angeforderte Arbeitselement im ausgewählten Medientyp enthält.
- Das zurückgegebene Workitem-Objekt enthält nicht das Transaktions-UID-Attribut (0008, 1195) des Workitem, da dies nur dem Besitzer bekannt sein sollte.
Workitem aktualisieren
Diese Transaktion ändert Attribute eines vorhandenen Workitem-Objekts. Sie entspricht dem UPS DIMSE N-SET-Vorgang.
Referenzieren: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.6
Zum Aktualisieren eines Workitem-Objekts, das SCHEDULED
sich derzeit im Zustand befindet, sollte das Transaction UID
Attribut nicht vorhanden sein. Für ein Workitem-Objekt im IN PROGRESS
Status muss die Anforderung die aktuelle Transaktions-UID als Abfrageparameter enthalten. Wenn sich das Workitem-Objekt bereits in den Zuständen COMPLETED
befindet CANCELED
, lautet 400 (Bad Request)
die Antwort .
Methode | Pfad | Beschreibung |
---|---|---|
POST | .. /workitems/{workitem}? {transaction-uid} | Workitem-Transaktion aktualisieren |
Die Content-Type
Kopfzeile ist erforderlich und muss den Wert application/dicom+json
aufweisen.
Die Anforderungsnutzlast enthält ein Dataset mit den Änderungen, die auf das Zielarbeitselement angewendet werden sollen. Wenn eine Sequenz geändert wird, muss die Anforderung alle Elemente in der Sequenz enthalten, nicht nur die zu ändernden Elemente. Wenn mehrere Attribute als Gruppe aktualisiert werden müssen, führen Sie die Aktualisierung als mehrere Attribute in einer einzigen Anforderung aus, nicht als mehrere Anforderungen.
Es gibt viele Anforderungen im Zusammenhang mit DICOM-Datenattributen im Kontext einer bestimmten Transaktion. Attribute müssen möglicherweise vorhanden sein, müssen nicht vorhanden sein, müssen leer sein oder nicht leer sein. Diese Anforderungen finden Sie in dieser Tabelle.
Hinweis
Alle bedingte Anforderungscodes einschließlich 1C und 2C werden als optional behandelt.
Hinweis
Die Anforderung kann den Wert des Prozedurschrittstatus-Attributs (0074.1000) nicht festlegen. Der Prozedurschrittstatus wird mithilfe der Transaktion "Status ändern" oder der Anforderungsabbruchtransaktion verwaltet.
Aktualisieren der Statuscodes für die Transaktionsantwort von Workitem
Code | Beschreibung |
---|---|
200 (OK) |
Das Zielarbeitselement wurde aktualisiert. |
400 (Bad Request) |
Es gab ein Problem mit der Anforderung. Beispiel: (1) Das Zielarbeitselement befindet sich im COMPLETED Oder-Zustand CANCELED . (2) Die Transaktions-UID fehlt. (3) Die Transaktions-UID ist falsch. (4) Das Dataset stimmte nicht mit den Anforderungen überein. |
401 (Unauthorized) |
Der Client ist nicht authentifiziert. |
403 (Forbidden) |
Der Benutzer ist nicht autorisiert. |
404 (Not Found) |
Das Zielarbeitselement wurde nicht gefunden. |
409 (Conflict) |
Die Anforderung ist mit dem aktuellen Status des Zielarbeitselements inkonsistent. |
415 (Unsupported Media Type) |
Die bereitgestellte Version Content-Type wird nicht unterstützt. |
Workitem-Transaktionsantwortnutzlast aktualisieren
Der Ursprungsserver unterstützt Kopfzeilenfelder nach Bedarf in Tabelle 11.6.3-2.
Eine Erfolgsantwort hat entweder keine Nutzlast oder eine Nutzlast, die ein Statusberichtsdokument enthält.
Eine Nutzlast der Fehlerantwort kann einen Statusbericht enthalten, der Fehler, Warnungen oder andere nützliche Informationen beschreibt.
Arbeitselementstatus ändern
Diese Transaktion wird verwendet, um den Status eines Workitem-Objekts zu ändern. Es entspricht dem UPS DIMSE N-ACTION-Vorgang "UPS State ändern". Statusänderungen werden verwendet, um den Besitz, den Abschluss oder das Abbrechen eines Workitem-Objekts anzufordern.
Referenzieren: https://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_11.7
Wenn das Arbeitselement auf dem Ursprungsserver vorhanden ist, wird das Arbeitselement in einem akzeptablen Medientyp zurückgegeben. Das zurückgegebene Workitem-Objekt enthält nicht das Transaktions-UID-Attribut (0008,1195). Dies ist erforderlich, um die Rolle dieses Attributs als Zugriffssperre beizubehalten, wie hier beschrieben .
Methode | Pfad | Beschreibung |
---|---|---|
PUT | .. /workitems/{workitem}/state | Arbeitselementstatus ändern |
Die Accept
Kopfzeile ist erforderlich und muss den Wert application/dicom+json
aufweisen.
Die Anforderungsnutzlast enthält die Change UPS State Data Elements. Diese Datenelemente sind:
- Transaktions-UID (0008, 1195). Die Anforderungsnutzlast enthält eine Transaktions-UID. Der Benutzer-Agent erstellt die Transaktions-UID, wenn ein Übergang zum
IN PROGRESS
Status für ein bestimmtes Arbeitselement angefordert wird. Der Benutzer-Agent stellt die Transaktions-UID in nachfolgenden Transaktionen mit diesem Workitem bereit. - Prozedurschrittstatus (0074, 1000). Die rechtlichen Werte entsprechen dem angeforderten Zustandsübergang. Sie sind:
IN PROGRESS
, ,COMPLETED
oderCANCELED
.
Ändern der Antwortstatuscodes des Workitem-Zustands
Code | Beschreibung |
---|---|
200 (OK) |
Die Workitem-Instanz wurde erfolgreich abgerufen. |
400 (Bad Request) |
Die Anforderung kann aus einem der folgenden Gründe nicht ausgeführt werden. (1) Die Anforderung ist aufgrund des aktuellen Status des Zielarbeitselements ungültig. (2) Die Transaktions-UID fehlt. (3) Die Transaktions-UID ist falsch. |
401 (Unauthorized) |
Der Client ist nicht authentifiziert. |
403 (Forbidden) |
Der Benutzer ist nicht autorisiert. |
404 (Not Found) |
Das Zielarbeitselement wurde nicht gefunden. |
409 (Conflict) |
Die Anforderung ist mit dem aktuellen Status des Zielarbeitselements inkonsistent. |
Change Workitem state response payload
- Antworten umfassen die Kopfzeilenfelder, die in Abschnitt 11.7.3.2 angegeben sind.
- Eine Erfolgsantwort hat keine Nutzlast.
- Eine Nutzlast der Fehlerantwort kann einen Statusbericht enthalten, der Fehler, Warnungen oder andere nützliche Informationen beschreibt.
Sucharbeitselemente
Mit dieser Transaktion können Sie nach Attributen nach Workitems suchen.
Methode | Pfad | Beschreibung |
---|---|---|
GET | .. /workitems? | Nach Arbeitselementen suchen |
Die folgende Accept
Kopfzeile wird für die Suche unterstützt.
application/dicom+json
Unterstützte Suchparameter
Die folgenden Parameter für jede Abfrage werden unterstützt.
Schlüssel | Supportwerte | Zulässige Anzahl | Beschreibung |
---|---|---|---|
{attributeID}= |
{value} |
0...N | Suchen nach Attribut-/Wertabgleich in der Abfrage |
includefield= |
{attributeID} all |
0...N | Die anderen Attribute, die in der Antwort zurückgegeben werden sollen; Nur Attribute auf oberster Ebene können eingeschlossen werden – nicht Attribute, die Teil von Sequenzen sind. Sowohl öffentliche als auch private Tags werden unterstützt. Wenn all angegeben, finden Sie unter Search Response weitere Informationen dazu, welche Attribute für jeden Abfragetyp zurückgegeben werden. Wenn eine Mischung aus {attributeID} und all bereitgestellt wird, verwendet der Server standardmäßig "alle". |
limit= |
{value} |
0...1 | Ganzzahliger Wert, um die Anzahl der in der Antwort zurückgegebenen Werte zu begrenzen; Der Wert kann zwischen dem Bereich 1 >= x <= 200 liegen, standardmäßig auf 100 . |
offset= |
{value} |
0...1 | {value}-Ergebnisse überspringen; Wenn ein Offset größer als die Anzahl der Suchergebnisse ist, wird eine 204 (no content) Antwort zurückgegeben. |
fuzzymatching= |
true | false |
0...1 | Wenn "true fuzzy matching" auf attribute mit dem Personennamen (PN) Value Representation (VR) angewendet wird; Es wird eine Präfixwort-Übereinstimmung eines beliebigen Namensteils innerhalb dieser Attribute ausgeführt. Wenn es sich z. B. um John^Doe eine Übereinstimmung handelt, PatientName joh dann , do , jo do und Doe John Doe alle übereinstimmungen. Stimmt jedoch ohn nicht überein. |
Durchsuchbare Attribute
Wir unterstützen die Suche nach diesen Attributen.
Attributschlüsselwort |
---|
PatientName |
PatientID |
ReferencedRequestSequence.AccessionNumber |
ReferencedRequestSequence.RequestedProcedureID |
ScheduledProcedureStepStartDateTime |
ScheduledStationNameCodeSequence.CodeValue |
ScheduledStationClassCodeSequence.CodeValue |
ScheduledStationGeographicLocationCodeSequence.CodeValue |
ProcedureStepState |
StudyInstanceUID |
Suchabgleich
Wir unterstützen diese übereinstimmenden Typen.
Suchtyp | Unterstütztes Attribut | Beispiel |
---|---|---|
Bereichsabfrage | ScheduledProcedureStepStartDateTime |
{attributeID}={value1}-{value2} . Für Datums-/Uhrzeitwerte unterstützen wir einen inklusiven Bereich auf dem Tag. Dies ist zugeordnet attributeID >= {value1} AND attributeID <= {value2} . Wenn {value1} nicht angegeben, werden alle Vorkommen von Datums- und Uhrzeitangaben vor und einschließlich {value2} übereinstimmen. Ebenso werden, wenn {value2} nicht angegeben, alle Vorkommen und {value1} nachfolgende Datums-/Uhrzeiten übereinstimmen. Einer dieser Werte muss jedoch vorhanden sein. {attributeID}={value1}- und {attributeID}=-{value2} sind gültig, {attributeID}=- ist jedoch ungültig. |
Genaue Übereinstimmung | Alle unterstützten Attribute | {attributeID}={value1} |
Fuzzy Match | PatientName |
Entspricht einer beliebigen Komponente des Namens, die mit dem Wert beginnt. |
Hinweis
Obwohl der vollständige Sequenzabgleich nicht unterstützt wird, wird die genaue Übereinstimmung der in einer Sequenz enthaltenen Attribute unterstützt.
Attribut-ID
Tags können auf viele Arten für den Abfrageparameter codiert werden. Wir haben den Standard teilweise wie in PS3.18 6.7.1.1.1.1 definiert implementiert. Die folgenden Codierungen für ein Tag werden unterstützt.
Wert | Beispiel |
---|---|
{group}{element} |
00100010 |
{dicomKeyword} |
PatientName |
Beispielabfrage:
../workitems?PatientID=K123&0040A370.00080050=1423JS&includefield=00404005&limit=5&offset=0
Suchantwort
Die Antwort ist ein Array von 0...N
DICOM-Datasets mit den folgenden zurückgegebenen Attributen:
- Alle Attribute in DICOM PowerShell 3.4 Table CC.2.5-3 mit einem Rückgabeschlüsseltyp von 1 oder 2.
- Alle Attribute in DICOM PowerShell 3.4 Table CC.2.5-3 mit einem Rückgabeschlüsseltyp von 1C, für den die bedingten Anforderungen erfüllt sind.
- Alle anderen Workitem-Attribute werden als Übereinstimmungsparameter übergeben.
- Alle anderen Workitem-Attribute werden als
includefield
Parameterwerte übergeben.
Suchantwortcodes
Die Abfrage-API gibt einen der folgenden Statuscodes in der Antwort zurück.
Code | Beschreibung |
---|---|
200 (OK) |
Die Antwortnutzlast enthält alle übereinstimmenden Ressourcen. |
206 (Partial Content) |
Die Antwortnutzlast enthält nur einige der Suchergebnisse, und der Rest kann über die entsprechende Anforderung angefordert werden. |
204 (No Content) |
Die Suche wurde erfolgreich abgeschlossen, aber keine Ergebnisse zurückgegeben. |
400 (Bad Request) |
Es gab ein Problem mit der Anforderung. Beispiel: Ungültige Abfrageparametersyntax. Der Antworttext enthält Details des Fehlers. |
401 (Unauthorized) |
Der Client ist nicht authentifiziert. |
403 (Forbidden) |
Der Benutzer ist nicht autorisiert. |
503 (Service Unavailable) |
Der Dienst ist nicht verfügbar oder ausgelastet. Versuchen Sie es später noch einmal. |
Weitere Notizen
Die Abfrage-API gibt nicht zurück 413 (request entity too large)
. Wenn der angeforderte Abfrageantwortgrenzwert außerhalb des zulässigen Bereichs liegt, wird eine ungültige Anforderung zurückgegeben. Alles, was innerhalb des zulässigen Bereichs angefordert wird, wird aufgelöst.
- Seitenergebnisse sind so optimiert, dass zuerst übereinstimmungsgleiche Instanzen zurückgegeben werden, was zu doppelten Datensätzen auf nachfolgenden Seiten führen kann, wenn neuere Daten hinzugefügt wurden, die mit der Abfrage übereinstimmen.
- Bei übereinstimmungen wird die Groß-/Kleinschreibung nicht beachtet, und bei PN VR-Typen wird keine Akzente beachtet.
- Bei übereinstimmungen wird die Groß-/Kleinschreibung nicht beachtet, und bei anderen Zeichenfolgen-VR-Typen wird Akzent berücksichtigt.
- Wenn es ein Szenario gibt, in dem das Abbrechen eines Arbeitselements und das Abfragen desselben Arbeitselements gleichzeitig erfolgt, schließt die Abfrage wahrscheinlich das Arbeitselement aus, das aktualisiert wird, und der Antwortcode lautet
206 (Partial Content)
.
Hinweis
DICOM® ist die eingetragene Marke des National Electrical Manufacturers Association für seine Standards-Publikationen über die digitale Kommunikation medizinischer Informationen.