Uitgebreide querytags

Overzicht

Standaard ondersteunt de DICOM-service het uitvoeren van query's op de DICOM-tags die zijn opgegeven in de conformiteitsverklaring. Door uitgebreide querytags in te schakelen, kan de lijst met tags eenvoudig worden uitgebreid op basis van de behoeften van de toepassing.

Met behulp van de onderstaande API's kunnen gebruikers hun DICOM-studies, -reeksen en -exemplaren indexeren op zowel standaard- als privé-DICOM-tags, zodat ze kunnen worden opgegeven in QIDO-RS-query's.

API's

Versie: v1

Om de ondersteunde tags in een bepaald DICOM-service-exemplaar te beheren, zijn de volgende API-eindpunten toegevoegd.

API Beschrijving
POST .../extendedquerytags Uitgebreide querytags toevoegen
GET .../extendedquerytags Uitgebreide querytags weergeven
GET .../extendedquerytags/{tagPath} Uitgebreide querytag ophalen
VERWIJDEREN .../extendedquerytags/{tagPath} Uitgebreide querytag verwijderen
PATCH .../extendedquerytags/{tagPath} Uitgebreide querytag bijwerken
GET .../extendedquerytags/{tagPath}/errors Uitgebreide querytagfouten weergeven
GET .../operations/{operationId} Bewerking ophalen

Uitgebreide querytags toevoegen

Voegt een of meer uitgebreide querytags toe en start een langlopende bewerking waarmee huidige DICOM-exemplaren opnieuw worden geïndexeerd met de opgegeven tag(s).

POST .../extendedquerytags

Aanvraagheader

Naam Vereist Type Beschrijving
Content-Type True tekenreeks application/json wordt ondersteund

Aanvraagbody

Naam Vereist Type Beschrijving
body Uitgebreide querytag voor toevoegen[]

Beperkingen

De volgende VR-typen worden ondersteund:

VR Beschrijving Overeenkomende enkele waarde Bereikkoppeling Fuzzy Matching
AE Toepassingsentiteit X
AS Tekenreeks leeftijd X
CS Codereeks X
DA Date X X
DS Decimale tekenreeks X
DT Datum/tijd X X
FD Dubbele drijvende komma X
FL Eén drijvendekommage X
IS Tekenreeks geheel getal X
LO Lange tekenreeks X
PN Naam van persoon X X
SH Korte tekenreeks X
SL Lang ondertekend X
SS Kort ondertekend X
TM Tijd X X
Gebruikersinterface Unieke id X
UL Niet-ondertekend lang X
VS Niet-ondertekend kort X

Notitie

Sequentiële tags, die tags zijn onder een tag van het type Reeks items (SQ), worden momenteel niet ondersteund. U kunt maximaal 128 uitgebreide querytags toevoegen.

Antwoorden

Naam Type Beschrijving
202 (geaccepteerd) Bewerkingsreferentie Uitgebreide querytag(s) zijn toegevoegd en er is een langdurige bewerking gestart om bestaande DICOM-exemplaren opnieuw te indexeren
400 (Foute aanvraag) Aanvraagbody bevat ongeldige gegevens
409 (Conflict) Een of meer aangevraagde querytags worden al ondersteund

Uitgebreide querytags weergeven

Een lijst met alle uitgebreide querytags.

GET .../extendedquerytags

Antwoorden

Naam Type Beschrijving
200 (OK) Uitgebreide querytag[] Retourneert uitgebreide querytags

Uitgebreide querytag ophalen

Een uitgebreide querytag ophalen.

GET .../extendedquerytags/{tagPath}

URI-parameters

Naam In Vereist Type Beschrijving
tagPath leertraject True tekenreeks tagPath is het pad voor de tag. Dit kan tag of trefwoord zijn. Patiënt-id wordt bijvoorbeeld vertegenwoordigd door 00100020 of PatientId

Antwoorden

Naam Type Beschrijving
200 (OK) Uitgebreide querytag De uitgebreide querytag met de opgegeven tagPath
400 (Foute aanvraag) Het aangevraagde tagpad is ongeldig
404 (niet gevonden) Uitgebreide querytag met aangevraagd tagPath is niet gevonden

Uitgebreide querytag verwijderen

Verwijder een uitgebreide querytag.

DELETE .../extendedquerytags/{tagPath}

URI-parameters

Naam In Vereist Type Beschrijving
tagPath leertraject True tekenreeks tagPath is het pad voor de tag. Dit kan tag of trefwoord zijn. Patiënt-id wordt bijvoorbeeld vertegenwoordigd door 00100020 of PatientId

Antwoorden

Naam Type Beschrijving
204 (geen inhoud) Uitgebreide querytag met aangevraagd tagPath is verwijderd.
400 (Foute aanvraag) Het aangevraagde tagpad is ongeldig.
404 (niet gevonden) Uitgebreide querytag met aangevraagd tagPath is niet gevonden

Uitgebreide querytag bijwerken

Een uitgebreide querytag bijwerken.

PATCH .../extendedquerytags/{tagPath}

URI-parameters

Naam In Vereist Type Beschrijving
tagPath leertraject True tekenreeks tagPath is het pad voor de tag. Dit kan tag of trefwoord zijn. Patiënt-id wordt bijvoorbeeld vertegenwoordigd door 00100020 of PatientId

Aanvraagheader

Naam Vereist Type Beschrijving
Content-Type True tekenreeks application/json wordt ondersteund.

Aanvraagbody

Naam Vereist Type Beschrijving
body Uitgebreide querytag voor bijwerken

Antwoorden

Naam Type Beschrijving
20 (OK) Uitgebreide querytag De bijgewerkte uitgebreide querytag
400 (Foute aanvraag) Het aangevraagde tagpad of de hoofdtekst is ongeldig
404 (niet gevonden) Uitgebreide querytag met aangevraagd tagPath is niet gevonden

Uitgebreide querytagfouten weergeven

Bevat fouten in een uitgebreide querytag.

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

URI-parameters

Naam In Vereist Type Beschrijving
tagPath leertraject True tekenreeks tagPath is het pad voor de tag. Dit kan tag of trefwoord zijn. Patiënt-id wordt bijvoorbeeld vertegenwoordigd door 00100020 of PatientId

Antwoorden

Naam Type Beschrijving
200 (OK) Fout met uitgebreide querytag[] Lijst met uitgebreide querytagfouten die zijn gekoppeld aan de tag
400 (Foute aanvraag) Het aangevraagde tagpad is ongeldig
404 (niet gevonden) Uitgebreide querytag met aangevraagd tagPath is niet gevonden

Bewerking ophalen

Een langdurige bewerking uitvoeren.

GET .../operations/{operationId}

URI-parameters

Naam In Vereist Type Beschrijving
operationId leertraject True tekenreeks De bewerkings-id

Antwoorden

Naam Type Beschrijving
200 (OK) Bewerking De voltooide bewerking voor de opgegeven id
202 (geaccepteerd) Bewerking De actieve bewerking voor de opgegeven id
404 (niet gevonden) De bewerking is niet gevonden

QIDO met uitgebreide querytags

Tagstatus

De status van uitgebreide querytag geeft de huidige status aan. Wanneer een uitgebreide querytag voor het eerst wordt toegevoegd, wordt de status ervan ingesteld op Addingen wordt een langlopende bewerking gestart om bestaande DICOM-exemplaren opnieuw te indexeren. Nadat de bewerking is voltooid, wordt de tagstatus bijgewerkt naar Ready. De uitgebreide querytag kan nu worden gebruikt in QIDO.

Als bijvoorbeeld de tag Manufacturer Model Name (0008,1090) wordt toegevoegd en de status heeft Ready , kunnen de volgende query's worden gebruikt om opgeslagen exemplaren te filteren op de naam van het fabrikantmodel.

../instances?ManufacturerModelName=Microsoft

Ze kunnen ook worden gebruikt met bestaande tags. Bijvoorbeeld:

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

Status van tagquery

QueryStatus geeft aan of QIDO is toegestaan voor de tag. Wanneer een bewerking voor opnieuw indexeren een of meer DICOM-exemplaren voor een tag niet kan verwerken, wordt QueryStatus van die tag automatisch ingesteld op Disabled . U kunt ervoor kiezen om indexeringsfouten te negeren en toe te staan dat query's deze tag gebruiken door de QueryStatus in te Enabled stellen op via de API Uitgebreide querytag bijwerken. QIDO-aanvragen die verwijzen naar ten minste één handmatig ingeschakelde tag, bevatten de set tags met indexeringsfouten in de antwoordheader erroneous-dicom-attributes.

Stel dat er fouten zijn opgetreden bij het opnieuw indexeren van de uitgebreide querytag PatientAge , maar dat deze handmatig is ingeschakeld. Voor de volgende query ziet PatientAge u in de erroneous-dicom-attributes header.

../instances?PatientAge=035Y

Definities

Uitgebreide querytag

Een DICOM-tag die wordt ondersteund voor QIDO-RS.

Naam Type Beschrijving
Pad tekenreeks Pad van tag, normaal gesproken samengesteld uit groeps-id en element-id. Bijvoorbeeld PatientId (0010.0020) heeft een pad 00100020
VR tekenreeks Waardeweergave van deze tag
PrivateCreator tekenreeks Identificatiecode van de implementeerfunctie van deze persoonlijke tag
Niveau Uitgebreid querytagniveau Niveau van uitgebreide querytag
Status Status van uitgebreide querytag Status van de uitgebreide querytag
QueryStatus Querystatus van uitgebreide querytag Querystatus van uitgebreide querytag
Fouten Naslaginformatie over uitgebreide querytagfouten Verwijzing naar uitgebreide querytagfouten
Bewerking Bewerkingsreferentie Verwijzing naar een langdurige bewerking

Codevoorbeeld 1 is een standaardtag (0008.0070) met Ready de status.

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

Codevoorbeeld 2 is een standaardtag (0010,1010) met Adding de status. Er wordt een bewerking met id 1a5d0306d9624f699929ee1a59ed57a0 uitgevoerd en er zijn tot nu toe 21 fouten opgetreden.

{
    "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"
}

Bewerkingsreferentie

Verwijzing naar een langdurige bewerking.

Naam Type Beschrijving
Id tekenreeks bewerkings-id
Href tekenreeks URI naar de bewerking

Bewerking

Vertegenwoordigt een langdurige bewerking.

Naam Type Beschrijving
OperationId tekenreeks De bewerkings-id
OperationType Type bewerking Type van de langdurige bewerking
CreatedTime tekenreeks Tijdstip waarop de bewerking is gemaakt
LastUpdatedTime tekenreeks Tijdstip waarop de bewerking de laatste keer is bijgewerkt
Status Bewerkingsstatus Geeft de uitvoeringsstatus van de bewerking aan
Percentage voltooid Geheel getal Percentage werk dat is voltooid door de bewerking
Resources Tekenreeks[] Verzameling van resourceslocaties die door de bewerking worden gemaakt of bewerkt

Het volgende codevoorbeeld is een actieve herindexbewerking.

{
    "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
}

Bewerkingsstatus

Vertegenwoordigt de uitvoeringsstatus van een langdurige bewerking.

Naam Type Beschrijving
Niet gestart tekenreeks De bewerking is niet gestart
Wordt uitgevoerd tekenreeks De bewerking wordt uitgevoerd en is nog niet voltooid
Voltooid tekenreeks De bewerking is voltooid
Mislukt tekenreeks De bewerking is voortijdig gestopt nadat een of meer fouten zijn opgetreden

Fout met uitgebreide querytag

Een fout die is opgetreden tijdens een uitgebreide indexeringsbewerking voor querytags.

Naam Type Beschrijving
StudyInstanceUid tekenreeks UID van het onderzoekexemplaar waar indexeringsfouten zijn opgetreden
SeriesInstanceUid tekenreeks UID van het reeksexemplaar waarin indexeringsfouten zijn opgetreden
SopInstanceUid tekenreeks UID van Sop-exemplaar waarin indexeringsfouten zijn opgetreden
CreatedTime tekenreeks Tijdstip waarop de fout is opgetreden (UTC)
ErrorMessage tekenreeks Foutbericht

Het volgende codevoorbeeld bevat een onverwachte waardelengtefout op een DICOM-exemplaar. Dit gebeurde op 2021-10-06T16:41:44.4783136.

{
    "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."
}

Naslaginformatie over fouten in uitgebreide querytags

Verwijzing naar uitgebreide querytagfouten.

Naam Type Beschrijving
Count Geheel getal Totaal aantal fouten in de uitgebreide querytag
Href tekenreeks URI naar uitgebreide querytagfouten

Het type bewerking

Het type langlopende bewerking.

Naam Type Beschrijving
Opnieuw indexeren tekenreeks Een herindexeringsbewerking waarmee de indexen voor eerder toegevoegde gegevens worden bijgewerkt op basis van nieuwe tags

Status van uitgebreide querytag

De status van uitgebreide querytag.

Naam Type Beschrijving
Toevoegen tekenreeks De uitgebreide querytag is toegevoegd en een langdurige bewerking is het opnieuw indexeren van bestaande DICOM-exemplaren
Gereed tekenreeks De uitgebreide querytag is gereed voor QIDO-RS
Verwijderen tekenreeks De uitgebreide querytag wordt verwijderd

Uitgebreid querytagniveau

Het niveau van de DICOM-informatiehiërarchie waar deze tag van toepassing is.

Naam Type Beschrijving
Exemplaar tekenreeks De uitgebreide querytag is relevant op exemplaarniveau
Reeks tekenreeks De uitgebreide querytag is relevant op reeksniveau
Studie tekenreeks De uitgebreide querytag is relevant op studieniveau

Querystatus van uitgebreide querytag

De querystatus van uitgebreide querytag.

Naam Type Beschrijving
Uitgeschakeld tekenreeks Er mag geen query worden uitgevoerd op de uitgebreide querytag
Ingeschakeld tekenreeks Er mag een query worden uitgevoerd op de uitgebreide querytag

Notitie

Fouten tijdens de herindexeringsbewerking schakelt QIDO uit op de uitgebreide querytag. U kunt de API Uitgebreide querytag bijwerken aanroepen om deze in te schakelen.

Uitgebreide querytag voor bijwerken

Vertegenwoordigt uitgebreide querytag voor het bijwerken.

Naam Type Beschrijving
QueryStatus Querystatus van uitgebreide querytag De querystatus van uitgebreide querytag

Uitgebreide querytag voor toevoegen

Staat voor uitgebreide querytag voor toevoegen.

Naam Vereist Type Beschrijving
Pad True tekenreeks Pad van tag, normaal gesproken samengesteld uit de groeps-id en element-id die de PatientId (0010.0020) heeft pad 00100020
VR tekenreeks Waardeweergave van deze tag. Dit is optioneel voor standaardtag en vereist voor persoonlijke tag
PrivateCreator tekenreeks Identificatiecode van de implementeerfunctie van deze persoonlijke tag. Alleen ingesteld wanneer de tag een persoonlijke tag is
Niveau Waar Uitgebreid querytagniveau Vertegenwoordigt de hiërarchie waarvoor deze tag relevant is. Moet een studie, reeks of exemplaar zijn

Codevoorbeeld 1MicrosoftPC is het definiëren van de persoonlijke tag (0401.1001) met de SS waardeweergave op het exemplaarniveau.

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

Codevoorbeeld 2 gebruikt de standaardtag met het trefwoord ManufacturerModelName met de LO waardeweergave die is gedefinieerd op reeksniveau.

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

Codevoorbeeld 3 gebruikt de standaardtag (0010.0040) en is gedefinieerd voor studies. De waardeweergave is al gedefinieerd door de DICOM-standaard.

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

Samenvatting

In dit conceptuele artikel hebt u een overzicht gegeven van de functie Extended Query Tag in de DICOM-service.

Volgende stappen

Zie voor meer informatie over het implementeren van de DICOM-service