Erweiterte Abfragetags

Übersicht

Standardmäßig unterstützt der DICOM-Dienst Abfragen der in der Konformitätsanweisung angegebenen DICOM-Tags. Durch das Aktivieren erweiterter Abfragetags kann die Liste der Tags problemlos basierend auf den Anforderungen der Anwendung erweitert werden.

Mithilfe der unten aufgeführten APIs können Benutzer ihre DICOM-Studien, -Reihen und -Instanzen sowohl für standardmäßige als auch für private DICOM-Tags indizieren, sodass sie in QIDO-RS-Abfragen angegeben werden können.

APIs

Version: v1

Um die unterstützten Tags in einem bestimmten DICOM-Dienst instance zu verwalten, wurden die folgenden API-Endpunkte hinzugefügt.

API BESCHREIBUNG
POST .../extendedquerytags Hinzufügen erweiterter Abfragetags
GET .../extendedquerytags Auflisten erweiterter Abfragetags
GET .../extendedquerytags/{tagPath} Abrufen eines erweiterten Abfragetags
DELETE .../extendedquerytags/{tagPath} Löschen des erweiterten Abfragetags
PATCH .../extendedquerytags/{tagPath} Aktualisieren des erweiterten Abfragetags
GET .../extendedquerytags/{tagPath}/errors Auflisten erweiterter Abfragetagfehler
GET .../operations/{operationId} Get-Vorgang

Hinzufügen erweiterter Abfragetags

Fügt ein oder mehrere erweiterte Abfragetags hinzu und startet einen Vorgang mit langer Ausführungsdauer, der aktuelle DICOM-Instanzen mit den angegebenen Tag(n) neu indiziert.

POST .../extendedquerytags

Anforderungsheader

Name Erforderlich type BESCHREIBUNG
Content-Type True Zeichenfolge application/json wird unterstützt

Anforderungstext

Name Erforderlich type BESCHREIBUNG
body Erweitertes Abfragetag zum Hinzufügen[]

Einschränkungen

Die folgenden VR-Typen werden unterstützt:

VR BESCHREIBUNG Einzelwertabgleich Bereichsabgleich Fuzzyabgleich
AE Anwendungsentität X
AS Zeichenfolge für altern X
CS Codezeichenfolge X
DA Date X X
DS Dezimalzeichenfolge X
DT Datum und Uhrzeit X X
FD Gleitkomma-Double X
FL Gleitkomma single (Gleitkomma) X
IS Ganzzahlige Zeichenfolge X
LO Lange Zeichenfolge X
PN Name der Person X X
SH Kurze Zeichenfolge X
SL Signierter Long-Wert X
SS Signiert kurz X
TM Time X X
Benutzeroberfläche Eindeutiger Bezeichner X
UL Unsigned Long X
US Unsigned Short X

Hinweis

Sequenzielle Tags, bei denen es sich um Tags unter einem Tag vom Typ Sequence of Items (SQ) handelt, werden derzeit nicht unterstützt. Sie können bis zu 128 erweiterte Abfragetags hinzufügen.

Antworten

Name type BESCHREIBUNG
202 (Akzeptiert) Vorgangsreferenz Erweiterte Abfragetags wurden hinzugefügt, und es wurde ein Zeitintensiver Vorgang gestartet, um vorhandene DICOM-Instanzen neu zu indizieren.
400 (Ungültige Anforderung) Der Anforderungstext enthält ungültige Daten.
409 (Konflikt) Mindestens ein angefordertes Abfragetag wird bereits unterstützt.

Auflisten erweiterter Abfragetags

Listen aller erweiterten Abfragetags.

GET .../extendedquerytags

Antworten

Name type BESCHREIBUNG
200 (OK) Erweitertes Abfragetag[] Gibt erweiterte Abfragetags zurück.

Abrufen eines erweiterten Abfragetags

Rufen Sie ein erweitertes Abfragetag ab.

GET .../extendedquerytags/{tagPath}

URI-Parameter

Name Geben Sie in Erforderlich type BESCHREIBUNG
tagPath path True Zeichenfolge tagPath ist der Pfad für das Tag, das entweder Tag oder Schlüsselwort (keyword) sein kann. Beispielsweise wird die Patienten-ID durch 00100020 oder dargestellt. PatientId

Antworten

Name type BESCHREIBUNG
200 (OK) Erweitertes Abfragetag Das erweiterte Abfragetag mit dem angegebenen tagPath
400 (Ungültige Anforderung) Angeforderter Tagpfad ist ungültig.
404 (nicht gefunden) Erweitertes Abfragetag mit angefordertem tagPath wurde nicht gefunden

Löschen eines erweiterten Abfragetags

Löschen Sie ein erweitertes Abfragetag.

DELETE .../extendedquerytags/{tagPath}

URI-Parameter

Name Geben Sie in Erforderlich type BESCHREIBUNG
tagPath path True Zeichenfolge tagPath ist der Pfad für das Tag, das entweder Tag oder Schlüsselwort (keyword) sein kann. Beispielsweise wird die Patienten-ID durch 00100020 oder dargestellt. PatientId

Antworten

Name type BESCHREIBUNG
204 (Kein Inhalt) Das erweiterte Abfragetag mit angefordertem tagPath wurde erfolgreich gelöscht.
400 (Ungültige Anforderung) Der angeforderte Tagpfad ist ungültig.
404 (nicht gefunden) Erweitertes Abfragetag mit angefordertem tagPath wurde nicht gefunden

Aktualisieren des erweiterten Abfragetags

Aktualisieren sie ein erweitertes Abfragetag.

PATCH .../extendedquerytags/{tagPath}

URI-Parameter

Name Geben Sie in Erforderlich type BESCHREIBUNG
tagPath path True Zeichenfolge tagPath ist der Pfad für das Tag, das entweder Tag oder Schlüsselwort (keyword) sein kann. Beispielsweise wird die Patienten-ID durch 00100020 oder dargestellt. PatientId

Anforderungsheader

Name Erforderlich type BESCHREIBUNG
Content-Type True Zeichenfolge application/json wird unterstützt.

Anforderungstext

Name Erforderlich type BESCHREIBUNG
body Erweitertes Abfragetag für Die Aktualisierung

Antworten

Name type BESCHREIBUNG
20 (OK) Erweitertes Abfragetag Das aktualisierte erweiterte Abfragetag
400 (Ungültige Anforderung) Angeforderter Tagpfad oder -text ist ungültig
404 (nicht gefunden) Erweitertes Abfragetag mit angefordertem tagPath wurde nicht gefunden

Auflisten erweiterter Abfragetagfehler

Listet Fehler in einem erweiterten Abfragetag auf.

GET .../extendedquerytags/{tagPath}/errors

URI-Parameter

Name Geben Sie in Erforderlich type BESCHREIBUNG
tagPath path True Zeichenfolge tagPath ist der Pfad für das Tag, das entweder Tag oder Schlüsselwort (keyword) sein kann. Beispielsweise wird die Patienten-ID durch 00100020 oder dargestellt. PatientId

Antworten

Name type BESCHREIBUNG
200 (OK) Fehler beim erweiterten Abfragetag[] Liste erweiterter Abfragetagfehler, die dem Tag zugeordnet sind
400 (Ungültige Anforderung) Angeforderter Tagpfad ist ungültig.
404 (nicht gefunden) Erweitertes Abfragetag mit angefordertem tagPath wurde nicht gefunden

Get-Vorgang

Rufen Sie einen Vorgang mit langer Ausführungsdauer ab.

GET .../operations/{operationId}

URI-Parameter

Name Geben Sie in Erforderlich type BESCHREIBUNG
operationId path True Zeichenfolge Die Vorgangs-ID

Antworten

Name type BESCHREIBUNG
200 (OK) Vorgang Der abgeschlossene Vorgang für die angegebene ID
202 (Akzeptiert) Vorgang Der ausgeführte Vorgang für die angegebene ID
404 (nicht gefunden) Der Vorgang wurde nicht gefunden.

QIDO mit erweiterten Abfragetags

Tag-status

Der Status des erweiterten Abfragetags gibt den aktuellen status an. Wenn ein erweitertes Abfragetag zum ersten Mal hinzugefügt wird, wird dessen status auf Addingfestgelegt, und ein Vorgang mit langer Ausführungszeit wird gestartet, um vorhandene DICOM-Instanzen neu zu indizieren. Nach Abschluss des Vorgangs wird das Tag status auf Readyaktualisiert. Das erweiterte Abfragetag kann jetzt in QIDO verwendet werden.

Wenn beispielsweise das Tag Manufacturer Model Name (0008,1090) hinzugefügt wird und in Ready status, können im Folgenden die folgenden Abfragen verwendet werden, um gespeicherte Instanzen nach dem Herstellermodellnamen zu filtern.

../instances?ManufacturerModelName=Microsoft

Sie können auch mit vorhandenen Tags verwendet werden. Beispiel:

../instances?00081090=Microsoft&PatientName=Jo&fuzzyMatching=true

Tagabfrage status

QueryStatus gibt an, ob QIDO für das Tag zulässig ist. Wenn bei einem Neuindizierungsvorgang eine oder mehrere DICOM-Instanzen für ein Tag nicht verarbeitet werden können, wird der QueryStatus dieses Tags automatisch auf Disabled festgelegt. Sie können Indizierungsfehler ignorieren und Abfragen die Verwendung dieses Tags erlauben, indem Sie über die API für erweiterte Abfragetags aktualisieren auf QueryStatusEnabled festlegen. Alle QIDO-Anforderungen, die auf mindestens ein manuell aktiviertes Tag verweisen, enthalten den Satz von Tags mit Indizierungsfehlern im Antwortheader erroneous-dicom-attributes.

Angenommen, das erweiterte Abfragetag PatientAge hat während der Neuindizierung Fehler, aber es wurde manuell aktiviert. Für die folgende Abfrage können Sie im erroneous-dicom-attributes Header sehenPatientAge.

../instances?PatientAge=035Y

Definitionen

Erweitertes Abfragetag

Ein DICOM-Tag, das für QIDO-RS unterstützt wird.

Name type BESCHREIBUNG
`Path` Zeichenfolge Pfad des Tags, normalerweise bestehend aus Gruppen-ID und Element-ID. (0010,0020) weist den PatientId Pfad 00100020
VR Zeichenfolge Wertdarstellung dieses Tags
PrivateCreator Zeichenfolge Identifikationscode des Implementierers dieses privaten Tags
Ebene Erweiterte Abfragetagebene Ebene des erweiterten Abfragetags
Status Status des erweiterten Abfragetags Status des erweiterten Abfragetags
QueryStatus Abfragestatus des erweiterten Abfragetags Abfrage status des erweiterten Abfragetags
Errors Referenz zu Fehlern des erweiterten Abfragetags Verweis auf Erweiterte Abfragetagfehler
Vorgang Vorgangsreferenz Verweis auf einen Vorgang mit langer Ausführungsdauer

Codebeispiel 1 ist ein Standardtag (0008.0070) in Ready status.

{
    "status": "Ready",
    "level": "Instance",
    "queryStatus": "Enabled",
    "path": "00080070",
    "vr": "LO"
}

Codebeispiel 2 ist ein Standardtag (0010,1010) in Adding status. Ein Vorgang mit der ID 1a5d0306d9624f699929ee1a59ed57a0 wird darauf ausgeführt, und bisher sind 21 Fehler aufgetreten.

{
    "status": "Adding",
    "level": "Study",
    "errors": {
        "count": 21,
        "href": "https://localhost:63838/extendedquerytags/00101010/errors"
    },
    "operation": {
        "id": "1a5d0306d9624f699929ee1a59ed57a0",
        "href": "https://localhost:63838/operations/1a5d0306d9624f699929ee1a59ed57a0"
    },
    "queryStatus": "Disabled",
    "path": "00101010",
    "vr": "AS"
}

Vorgangsreferenz

Verweis auf einen Vorgang mit langer Ausführungsdauer.

Name type BESCHREIBUNG
id Zeichenfolge Vorgangs-ID
Href Zeichenfolge URI für den Vorgang

Vorgang

Stellt einen Vorgang mit langer Ausführungsdauer dar.

Name type BESCHREIBUNG
OperationId Zeichenfolge Die Vorgangs-ID
OperationType Operation Type Typ des vorgangs mit langer Ausführungsdauer
CreatedTime Zeichenfolge Zeitpunkt, zu dem der Vorgang erstellt wurde
LastUpdatedTime Zeichenfolge Zeitpunkt der letzten Aktualisierung des Vorgangs
Status Vorgangsstatus Stellt die Laufzeit status des Vorgangs dar.
PercentComplete Integer Prozentsatz der durch den Vorgang abgeschlossenen Arbeiten
Ressourcen string[] Sammlung von Ressourcenstandorten, die der Vorgang erstellt oder bearbeitet

Das folgende Codebeispiel ist ein ausgeführter Neuindizierungsvorgang.

{
    "resources": [
        "https://localhost:63838/extendedquerytags/00101010"
    ],
    "operationId": "a99a8b51-78d4-4fd9-b004-b6c0bcaccf1d",
    "type": "Reindex",
    "createdTime": "2021-10-06T16:40:02.5247083Z",
    "lastUpdatedTime": "2021-10-06T16:40:04.5152934Z",
    "status": "Running",
    "percentComplete": 10
}

Vorgangsstatus

Stellt eine Laufzeit status des Vorgangs mit langer Ausführung dar.

Name type BESCHREIBUNG
NotStarted Zeichenfolge Der Vorgang wurde nicht gestartet.
Wird ausgeführt Zeichenfolge Der Vorgang wird ausgeführt und ist noch nicht abgeschlossen.
Abgeschlossen Zeichenfolge Der Vorgang wurde erfolgreich abgeschlossen.
Fehler Zeichenfolge Der Vorgang wurde vorzeitig beendet, nachdem ein oder mehrere Fehler aufgetreten sind.

Fehler beim erweiterten Abfragetag

Ein Fehler, der während eines Indizierungsvorgangs für erweiterte Abfragetags aufgetreten ist.

Name type BESCHREIBUNG
StudyInstanceUid Zeichenfolge Studie instance UID, bei denen Indizierungsfehler aufgetreten sind
SeriesInstanceUid Zeichenfolge Serie instance UID, bei der Indizierungsfehler aufgetreten sind
SopInstanceUid Zeichenfolge Sop instance UID, bei dem Indizierungsfehler aufgetreten sind
CreatedTime Zeichenfolge Zeitpunkt des Auftretens eines Fehlers (UTC)
ErrorMessage Zeichenfolge Fehlermeldung

Das folgende Codebeispiel enthält einen unerwarteten Wertlängenfehler für eine DICOM-instance. Es ist am 2021-10-06T16:41:44.4783136 aufgetreten.

{
    "studyInstanceUid": "2.25.253658084841524753870559471415339023884",
    "seriesInstanceUid": "2.25.309809095970466602239093351963447277833",
    "sopInstanceUid": "2.25.225286918605419873651833906117051809629",
    "createdTime": "2021-10-06T16:41:44.4783136",
    "errorMessage": "Value length is not expected."
}

Referenz zu Erweiterten Abfragetagfehlern

Verweis auf Fehler mit erweiterten Abfragetags.

Name type BESCHREIBUNG
Anzahl Integer Gesamtanzahl der Fehler für das erweiterte Abfragetag
Href Zeichenfolge URI zu erweiterten Abfragetagfehlern

Vorgangsart

Der Typ eines Vorgangs mit langer Ausführungsdauer.

Name type BESCHREIBUNG
Neuindizieren Zeichenfolge Ein Neuindizierungsvorgang, bei dem die Indizes für zuvor hinzugefügte Daten basierend auf neuen Tags aktualisiert werden.

Erweiterte abfragetag-status

Die status des erweiterten Abfragetags.

Name type BESCHREIBUNG
Wird hinzugefügt Zeichenfolge Das erweiterte Abfragetag wurde hinzugefügt, und ein Vorgang mit langer Ausführungszeit indiziert vorhandene DICOM-Instanzen neu.
Bereit Zeichenfolge Das erweiterte Abfragetag ist bereit für QIDO-RS
Wird gelöscht Zeichenfolge Das erweiterte Abfragetag wird gelöscht.

Erweiterte Abfragetagebene

Die Ebene der DICOM-Informationshierarchie, auf die dieses Tag angewendet wird.

Name type BESCHREIBUNG
Instanz Zeichenfolge Das erweiterte Abfragetag ist auf instance Ebene relevant.
Reihen Zeichenfolge Das erweiterte Abfragetag ist auf Reihenebene relevant.
Studie Zeichenfolge Das erweiterte Abfragetag ist auf Studienebene relevant.

Erweiterte Abfragetagabfrage status

Die Abfrage status des erweiterten Abfragetags.

Name type BESCHREIBUNG
Disabled Zeichenfolge Das erweiterte Abfragetag darf nicht abgefragt werden.
Aktiviert Zeichenfolge Das erweiterte Abfragetag darf abgefragt werden.

Hinweis

Fehler beim Neuindizierungsvorgang deaktivieren QIDO für das erweiterte Abfragetag. Sie können die API für erweiterte Abfragetags aktualisieren aufrufen, um sie zu aktivieren.

Erweitertes Abfragetag für die Aktualisierung

Stellt ein erweitertes Abfragetag für die Aktualisierung dar.

Name type BESCHREIBUNG
QueryStatus Abfragestatus des erweiterten Abfragetags Abfrage-status des erweiterten Abfragetags

Erweitertes Abfragetag zum Hinzufügen

Stellt ein erweitertes Abfragetag zum Hinzufügen dar.

Name Erforderlich type BESCHREIBUNG
Pfad True Zeichenfolge Pfad des Tags, der normalerweise aus der Gruppen-ID und element-ID besteht, die die PatientId (0010,0020) ist, weist Pfad 00100020
VR Zeichenfolge Wertdarstellung dieses Tags. Es ist optional für Standardtags und für privates Tag erforderlich.
PrivateCreator Zeichenfolge Identifikationscode des Implementierers dieses privaten Tags. Nur festgelegt, wenn das Tag ein privates Tag ist
Ebene True Erweiterte Abfragetagebene Stellt die Hierarchie dar, in der dieses Tag relevant ist. Sollte eine Studie, Serie oder Instanz sein

Codebeispiel 1MicrosoftPC definiert das private Tag (0401,1001) mit der SS Wertdarstellung auf instance-Ebene.

{
    "Path": "04011001",
    "VR": "SS",
    "PrivateCreator": "MicrosoftPC",
    "Level": "Instance"
}

Codebeispiel 2 verwendet das Standardtag mit Schlüsselwort (keyword) ManufacturerModelName mit der LO Aufreihenebene definierten Wertdarstellung.

{
    "Path": "ManufacturerModelName",
    "VR": "LO",
    "Level": "Series"
}

Codebeispiel 3 verwendet das Standardtag (0010,0040) und wird für Studien definiert. Die Wertdarstellung ist bereits durch den DICOM-Standard definiert.

{
    "Path": "00100040",
    "Level": "Study"
}

Zusammenfassung

In diesem konzeptionellen Artikel erhalten Sie eine Übersicht über das Feature "Erweiterte Abfragetags" innerhalb des DICOM-Diensts.

Nächste Schritte

Weitere Informationen zum Bereitstellen des DICOM-Diensts finden Sie unter