Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.