Balises de requête étendues

Par défaut, le service DICOM® prend en charge l’interrogation sur les balises DICOM spécifiées dans l’instruction de conformité. Lorsque des balises de requête étendues sont activées, la liste des balises peut facilement être développée en fonction des besoins de l’application.

À l’aide des API répertoriées suivantes, les utilisateurs peuvent indexer leurs études, séries et instances DICOM sur des balises DICOM standard et privées afin qu’elles puissent être spécifiées dans QIDO-RS requêtes.

les API

Version : v1

Pour gérer les balises prises en charge dans une instance de service DICOM donnée, les points de terminaison d’API suivants ont été ajoutés.

API Description
POST .../extendedquerytags Ajouter des balises de requête étendues
GET .../extendedquerytags Répertorier les balises de requête étendues
GET .../extendedquerytags/{tagPath} Obtenir une balise de requête étendue
DELETE .../extendedquerytags/{tagPath} Supprimer une balise de requête étendue
PATCH .../extendedquerytags/{tagPath} Mettre à jour la balise de requête étendue
GET .../extendedquerytags/{tagPath}/errors Répertorier les erreurs d’étiquette de requête étendue
GET .../operations/{operationId} Obtenir l’opération

Ajouter des balises de requête étendues

Ajoute une ou plusieurs balises de requête étendues et démarre une opération de longue durée qui réindexe les instances DICOM actuelles avec les balises spécifiées.

POST .../extendedquerytags

En-tête de requête

Nom Obligatoire Type Description
Type de contenu Vrai ficelle application/json est pris en charge

Corps de la demande

Nom Obligatoire Type Description
body Balise de requête étendue pour l’ajout[]

Limites

Les types VR suivants sont pris en charge :

VR Description Correspondance de valeur unique Correspondance de plage de valeurs Correspondance approximative
AE Entité d’application X
AS Chaîne d’âge X
CS Chaîne de code X
DA Date X X
DT Date/heure X X
FD Double à virgule flottante X
FL Virgule flottante unique X
Système d'information État islamique Chaîne de caractères entiers X
LO Chaîne longue X
PN Nom de la personne X X
SH Chaîne courte X
SL Long signé X
SS Short signé X
TM Heure X X
IU Identificateur unique X
UL Long non signé X
États-Unis Entier court non signé X

Note

Les balises séquentielles, qui sont des balises sous une balise de type Sequence of Items (SQ), ne sont actuellement pas prises en charge. Vous pouvez ajouter jusqu’à 128 balises de requête étendues. Nous n’indexons pas les balises de requête étendues si la valeur est null ou vide.

Responses

Nom Type Description
202 (Accepté) Informations de référence sur l’opération Des balises de requête étendues ont été ajoutées et une opération de longue durée a été lancée pour réindexer des instances DICOM existantes
400 (Requête incorrecte) Le corps de la demande contient des données non valides
409 (Conflit) Une ou plusieurs balises de requête demandées sont déjà prises en charge

Répertorier les balises de requête étendues

Listes de toutes les balises de requête étendues.

GET .../extendedquerytags

Responses

Nom Type Description
200 (OK) Balise de requête étendue[] Retourne des balises de requête étendues

Obtenir une balise de requête étendue

Obtenir une balise de requête étendue.

GET .../extendedquerytags/{tagPath}

Paramètres d’URI

Nom Dans Obligatoire Type Description
tagPath chemin Vrai ficelle tagPath est le chemin d’accès de la balise, qui peut être une balise ou un mot clé. Par exemple, l’ID du patient est représenté par 00100020 ou PatientId

Responses

Nom Type Description
200 (OK) Balise de requête étendue Balise de requête étendue avec l’élément spécifié tagPath
400 (Requête incorrecte) Le chemin d’accès de balise demandé n’est pas valide
404 (Introuvable) La balise de requête étendue avec tagPath demandé est introuvable

Supprimer une balise de requête étendue

Supprimez une balise de requête étendue.

DELETE .../extendedquerytags/{tagPath}

Paramètres d’URI

Nom Dans Obligatoire Type Description
tagPath chemin Vrai ficelle tagPath est le chemin d’accès de la balise, qui peut être une balise ou un mot clé. Par exemple, l’ID du patient est représenté par 00100020 ou PatientId

Responses

Nom Type Description
204 (Pas de contenu) La balise de requête étendue avec tagPath demandé a été supprimée avec succès.
400 (Requête incorrecte) Le chemin d’accès de balise demandé n’est pas valide.
404 (Introuvable) La balise de requête étendue avec tagPath demandé est introuvable

Mettre à jour la balise de requête étendue

Mettez à jour une balise de requête étendue.

PATCH .../extendedquerytags/{tagPath}

Paramètres d’URI

Nom Dans Obligatoire Type Description
tagPath chemin Vrai ficelle tagPath est le chemin d’accès de la balise, qui peut être une balise ou un mot clé. Par exemple, l’ID du patient est représenté par 00100020 ou PatientId

En-tête de requête

Nom Obligatoire Type Description
Type de contenu Vrai ficelle application/json est pris en charge.

Corps de la demande

Nom Obligatoire Type Description
body Balise de requête étendue pour la mise à jour

Responses

Nom Type Description
20 (OK) Balise de requête étendue Balise de requête étendue mise à jour
400 (Requête incorrecte) Le chemin d’accès ou le corps de balise demandé n’est pas valide
404 (Introuvable) La balise de requête étendue avec tagPath demandé est introuvable

Répertorier les erreurs de balise de requête étendue

Répertorie les erreurs sur une balise de requête étendue.

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

Paramètres d’URI

Nom Dans Obligatoire Type Description
tagPath chemin Vrai ficelle tagPath est le chemin d’accès de la balise, qui peut être une balise ou un mot clé. Par exemple, l’ID du patient est représenté par 00100020 ou PatientId

Responses

Nom Type Description
200 (OK) Erreur de balise de requête étendue[] Liste des erreurs de balise de requête étendue associées à la balise
400 (Requête incorrecte) Le chemin d’accès de balise demandé n’est pas valide
404 (Introuvable) La balise de requête étendue avec tagPath demandé est introuvable

Opération de récupération

Obtenez une opération longue.

GET .../operations/{operationId}

Paramètres d’URI

Nom Dans Obligatoire Type Description
operationId chemin Vrai ficelle ID d’opération

Responses

Nom Type Description
200 (OK) Operation Opération terminée pour l’ID spécifié
202 (Accepté) Operation Opération en cours d’exécution pour l’ID spécifié
404 (Introuvable) L’opération est introuvable

QIDO avec des balises de requête étendues

État de la balise

L’état de la balise de requête étendue indique l’état actuel. Lorsqu’une balise de requête étendue est ajoutée pour la première fois, son état est défini Addinget une opération de longue durée est lancée pour réindexer les instances DICOM existantes. Une fois l’opération terminée, l’état de la balise est mis à jour vers Ready. La balise de requête étendue peut désormais être utilisée dans QIDO.

Par exemple, si le nom du modèle du fabricant de l’étiquette (0008 1090) est ajouté et dans Ready l’état, à partir de là, les requêtes suivantes peuvent être utilisées pour filtrer les instances stockées par le nom du modèle de fabricant.

../instances?ManufacturerModelName=Microsoft

Ils peuvent également être utilisés avec des balises existantes. Par exemple:

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

État de la requête de balise

QueryStatus indique si QIDO est autorisé pour la balise. Lorsqu’une opération de réindexation ne parvient pas à traiter une ou plusieurs instances DICOM pour une balise, queryStatus de cette balise est définie Disabled automatiquement. Vous pouvez choisir d’ignorer les erreurs d’indexation et d’autoriser les requêtes à utiliser cette balise en définissant la valeur via l’API Mettre à jour la QueryStatusEnabledbalise de requête étendue . Toutes les requêtes QIDO qui référencent au moins une balise activée manuellement incluent l’ensemble de balises avec des erreurs d’indexation dans l’en-tête erroneous-dicom-attributesde réponse.

Par exemple, supposons que la balise PatientAge de requête étendue avait des erreurs lors de la réindexation, mais qu’elle était activée manuellement. Pour la requête suivante, vous pouvez voir PatientAge dans l’en-tête erroneous-dicom-attributes .

../instances?PatientAge=035Y

Définitions

Balise de requête étendue

Balise DICOM qui sera prise en charge pour QIDO-RS.

Nom Type Description
Chemin ficelle Chemin d’accès de balise, normalement composé d’ID de groupe et d’ID d’élément. Par exemple, PatientId (0010 0020) a le chemin d’accès 00100020
VR ficelle Représentation de valeur de cette balise
PrivateCreator ficelle Code d’identification de l’implémenteur de cette balise privée
Niveau Niveau de balise de requête étendue Niveau de balise de requête étendue
État État de l’étiquette de requête étendue État de la balise de requête étendue
ÉtatDeRequête État de la requête de balise de requête étendue État de requête de la balise de requête étendue
Erreurs Informations de référence sur les erreurs de balise de requête étendue Référence aux erreurs de balise de requête étendue
Operation Informations de référence sur l’opération Référence à une opération de longue durée

L’exemple de code 1 est une balise standard (0008 0070) dans l’étatReady.

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

L’exemple de code 2 est une balise standard (0010 1010) dans l’étatAdding. Une opération avec l’ID 1a5d0306d9624f699929ee1a59ed57a0 est en cours d’exécution et 21 erreurs se sont produites jusqu’à présent.

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

Informations de référence sur les opérations

Référence à une opération de longue durée.

Nom Type Description
ID ficelle ID d’opération
Href ficelle URI de l’opération

Operation

Représente une opération longue.

Nom Type Description
OperationId ficelle ID d’opération
Type d'opération Type d’opération Type de l’opération longue durée
CreatedTime ficelle Heure de création de l’opération
LastUpdatedTime ficelle Heure de la dernière mise à jour de l’opération
État État de fonctionnement Représente l’état de l’exécution de l’opération
PercentComplete Nombre entier Pourcentage de travail effectué par l’opération
Ressources corde[] Collection d’emplacements de ressources que l’opération crée ou manipule

L’exemple de code suivant est une opération de réindexation en cours d’exécution.

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

État de l’opération

Représente un état d’exécution de l’opération longue.

Nom Type Description
NotStarted ficelle L’opération n’est pas démarrée
Course à pied ficelle L’opération est en cours d’exécution et n’a pas encore terminé
Terminé ficelle L’opération s’est terminée avec succès
Échec ficelle L’opération s’est arrêtée prématurément après avoir rencontré une ou plusieurs erreurs

Erreur de balise de requête étendue

Erreur qui s’est produite lors d’une opération d’indexation de balise de requête étendue.

Nom Type Description
StudyInstanceUid ficelle Étude de l’interface utilisateur de l’instance où des erreurs d’indexation se sont produites
SeriesInstanceUid ficelle UID de l’instance de série où des erreurs d’indexation se sont produites
SopInstanceUid ficelle IUD de l’instance Sop où des erreurs d’indexation se sont produites
CreatedTime ficelle Heure à laquelle l’erreur s’est produite (UTC)
Message d'erreur ficelle Message d'erreur

L’exemple de code suivant contient une erreur de longueur de valeur inattendue sur une instance DICOM. Elle s’est produite à 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."
}

Informations de référence sur les erreurs de balise de requête étendue

Référence aux erreurs de balise de requête étendues.

Nom Type Description
Nombre Nombre entier Nombre total d’erreurs sur la balise de requête étendue
Href ficelle URI vers des erreurs de balise de requête étendues

Type d'opération

Type d’une opération longue.

Nom Type Description
Réindexation ficelle Opération de réindexation qui met à jour les index pour les données précédemment ajoutées en fonction de nouvelles balises

État de la balise de requête étendue

État de la balise de requête étendue.

Nom Type Description
Ajouter ficelle La balise de requête étendue a été ajoutée et une opération de longue durée consiste à réindexer les instances DICOM existantes.
Prêt ficelle La balise de requête étendue est prête pour QIDO-RS
Suppression ficelle La balise de requête étendue est supprimée

Niveau de balise de requête étendue

Niveau de la hiérarchie d’informations DICOM où cette balise s’applique.

Nom Type Description
Instance ficelle La balise de requête étendue est pertinente au niveau de l’instance
Séries ficelle La balise de requête étendue est pertinente au niveau de la série
Étude ficelle La balise de requête étendue est pertinente au niveau de l’étude

État de la requête de balise de requête étendue

État de la requête de la balise de requête étendue.

Nom Type Description
Désactivé ficelle La balise de requête étendue n’est pas autorisée à être interrogée
Activé ficelle La balise de requête étendue est autorisée à être interrogée

Note

Les erreurs pendant l’opération de réindexation désactivent QIDO sur la balise de requête étendue. Vous pouvez appeler l’API Mettre à jour la balise de requête étendue pour l’activer.

Balise de requête étendue pour la mise à jour

Représente une balise de requête étendue pour la mise à jour.

Nom Type Description
ÉtatDeRequête État de la requête de balise de requête étendue État de la requête de la balise de requête étendue

Balise de requête étendue pour l’ajout

Représente une balise de requête étendue pour l’ajout.

Nom Obligatoire Type Description
Chemin Vrai ficelle Chemin d’accès de balise, normalement composé de l’ID de groupe et de l’ID d’élément qui est le PatientId (0010 0020) a le chemin d’accès 00100020
VR ficelle Représentation de valeur de cette balise. Il est facultatif pour la balise standard et requis pour la balise privée
PrivateCreator ficelle Code d’identification de l’implémenteur de cette balise privée. Définir uniquement lorsque la balise est une balise privée
Niveau Vrai Niveau de balise de requête étendue Représente la hiérarchie à laquelle cette balise est pertinente. Doit être l’une des études, séries ou instances

L’exemple de code 1MicrosoftPC définit la balise privée (0401 1001) avec la SS représentation de valeur au niveau de l’instance.

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

L’exemple de code 2 utilise la balise standard avec un mot clé ManufacturerModelName avec la LO représentation de valeur définie au niveau de la série.

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

L’exemple de code 3 utilise la balise standard (0010 0040) et est défini sur des études. La représentation de valeur est déjà définie par la norme DICOM.

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

Résumé

Cet article conceptuel vous a fourni une vue d’ensemble de la fonctionnalité Balise de requête étendue dans le service DICOM.

Étapes suivantes

Déployer le service DICOM sur Azure

Utiliser des API DICOMweb avec le service DICOM

Note

DICOM® est une marque déposée de la National Electrical Manufacturers Association pour ses publications de standards relatifs aux communications numériques des informations médicales.