⚠️ Ceci est un site de traduction non officiel, sans lien avec DCMTK / OFFIS. Pour des informations faisant autorité, consultez la page originale (https://support.dcmtk.org/docs/findscu.html).

findscu: SCU d'interrogation DICOM (C-FIND)

SYNOPSIS

findscu [options] peer port [dcmfile-in...]

DESCRIPTION

findscu est une application qui implémente un SCU pour la Query/Retrieve Service Class ainsi que pour la Basic Worklist Management Service Class. findscu ne prend en charge que la fonction d'interrogation au moyen du message C-FIND. Elle envoie des clés d'interrogation à un SCP et en attend les réponses. L'application peut être utilisée pour tester des SCP de la Query/Retrieve Service Class et de la Basic Worklist Management Service Class.

PARAMÈTRES

peer        hostname of DICOM peer

port        tcp/ip port number of peer

dcmfile-in  DICOM query file(s)

OPTIONS

options générales

-h --help
affiche cette aide et quitte
--version
affiche les informations de version et quitte
--arguments
affiche les arguments de ligne de commande développés
-q --quiet
mode silencieux, n'affiche ni avertissements ni erreurs
-v --verbose
mode détaillé, affiche les détails du traitement
-d --debug
mode débogage, affiche les informations de débogage
-ll --log-level [l]evel: string constant
(fatal, error, warn, info, debug, trace) utilise le niveau l pour la journalisation
-lc --log-config [f]ilename: string
utilise le fichier de configuration f pour la journalisation

options réseau

-k --key [k]ey: gggg,eeee="str", path or dictionary name="str"
remplace la clé de correspondance. modèle d'information de la requête :
-W --worklist
utilise le modèle d'information Modality Worklist (par défaut)
-P --patient
utilise le modèle d'information patient root
-S --study
utilise le modèle d'information study root
-O --psonly
utilise le modèle d'information patient/study only. version du protocole IP :
-i4 --ipv4
utilise uniquement IPv4 (par défaut)
-i6 --ipv6
utilise uniquement IPv6
-i0 --ip-auto
utilise une résolution DNS pour déterminer le protocole IP. titres d'entité applicative :
-aet --aetitle [a]etitle: string
définit mon AE Title appelant (par défaut : FINDSCU)
-aec --call [a]etitle: string
définit l'AE Title appelé du pair (par défaut : ANY-SCP). représentations de valeur postérieures à 1993 :
+u --enable-new-vr
active la prise en charge des nouvelles VR (UN/UT) (par défaut)
-u --disable-new-vr
désactive la prise en charge des nouvelles VR, convertit en OB. syntaxes de transfert de transmission proposées :
-x= --propose-uncompr
propose toutes les TS non compressées, VR explicite à ordre d'octets local en premier (par défaut)
-xe --propose-little
propose toutes les TS non compressées, VR explicite little endian en premier
-xb --propose-big
propose toutes les TS non compressées, VR explicite big endian en premier
-xd --propose-deflated
propose la TS deflated explicit VR little endian ainsi que toutes les syntaxes de transfert non compressées
-xi --propose-implicit
propose uniquement la TS implicit VR little endian. niveau de compression deflate (uniquement avec --propose-deflated) :
+cl --compression-level [l]evel: integer (default: 6)
0=non compressé, 1=le plus rapide, 9=meilleure compression. autres options réseau :
-to --timeout [s]econds: integer (default: unlimited)
délai d'expiration pour les demandes de connexion
-ts --socket-timeout [s]econds: integer (default: 60)
délai d'expiration pour le socket réseau (0 pour aucun)
-ta --acse-timeout [s]econds: integer (default: 30)
délai d'expiration pour les messages ACSE
-td --dimse-timeout [s]econds: integer (default: unlimited)
délai d'expiration pour les messages DIMSE
-pdu --max-pdu [n]umber of bytes: integer (4096..131072)
définit la pdu maximale reçue à n octets (par défaut : 16384)
--repeat [n]umber: integer
répète n fois
--abort
interrompt l'association au lieu de la libérer
--cancel [n]umber: integer
annule après n réponses (par défaut : jamais)

options de sécurité de la couche transport (TLS)

-tls --disable-tls
utilise une connexion TCP/IP normale (par défaut)
+tls --enable-tls [p]rivate key file, [c]ertificate file: string
utilise une connexion TLS sécurisée authentifiée
+tla --anonymous-tls
utilise une connexion TLS sécurisée sans certificat. mot de passe de la clé privée (uniquement avec --enable-tls) :
+ps --std-passwd
invite l'utilisateur à saisir le mot de passe sur l'entrée standard (par défaut)
+pw --use-passwd [p]assword: string
utilise le mot de passe indiqué
-pw --null-passwd
utilise une chaîne vide comme mot de passe. format du fichier de clé et de certificat :
-pem --pem-keys
lit les clés et certificats au format de fichier PEM (par défaut)
-der --der-keys
lit les clés et certificats au format de fichier DER. autorité de certification :
+cf --add-cert-file [f]ilename: string
ajoute le fichier de certificat à la liste des certificats
+cd --add-cert-dir [d]irectory: string
ajoute les certificats de d à la liste des certificats
+crl --add-crl-file [f]ilename: string
ajoute un fichier de liste de révocation de certificats (implique --enable-crl-vfy)
+crv --enable-crl-vfy
active la vérification CRL du certificat feuille
+cra --enable-crl-all
active la vérification CRL de la chaîne complète. profil de sécurité :
+ph --list-profiles
liste les profils TLS pris en charge et quitte
+pg --profile-8996
profil TLS BCP 195 RFC 8996 (par défaut)
+pm --profile-8996-mod
profil TLS BCP 195 RFC 8996 modifié # disponible uniquement si la bibliothèque TLS sous-jacente prend en charge # toutes les fonctionnalités TLS requises pour ce profil
+py --profile-bcp195-nd
profil TLS BCP 195 sans rétrogradation (obsolète)
+px --profile-bcp195
profil TLS BCP 195 (obsolète)
+pz --profile-bcp195-ex
profil TLS BCP 195 étendu (obsolète)
+pb --profile-basic
profil de connexion de transport sécurisé TLS de base (obsolète) # disponible uniquement si la bibliothèque TLS sous-jacente prend en charge 3DES
+pa --profile-aes
profil de connexion de transport sécurisé TLS AES (obsolète)
+pn --profile-null
communication non chiffrée authentifiée (obsolète, utilisée auparavant dans IHE ATNA). suite de chiffrement :
+cc --list-ciphers
liste les suites de chiffrement TLS prises en charge et quitte
+cs --cipher [c]iphersuite name: string
ajoute la suite de chiffrement à la liste des suites négociées. indication du nom de serveur :
--no-sni
n'utilise pas SNI (par défaut)
--request-sni [s]erver name: string
demande le nom de serveur s. générateur pseudo-aléatoire :
+rs --seed [f]ilename: string
initialise le générateur aléatoire avec le contenu de f
+ws --write-seed
réécrit la graine modifiée (uniquement avec --seed)
+wf --write-seed-file [f]ilename: string (only with --seed)
écrit la graine modifiée dans le fichier f. authentification du pair :
-rc --require-peer-cert
vérifie le certificat du pair, échoue s'il est absent (par défaut)
-ic --ignore-peer-cert
ne vérifie pas le certificat du pair

options de sortie

-od --output-directory [d]irectory: string (default: ".")
écrit les fichiers de sortie dans le répertoire existant d. correction automatique des données :
+dc --enable-correction
active la correction automatique des données
-dc --disable-correction
désactive la correction automatique des données (par défaut). réponses C-FIND :
+sr --show-responses
affiche toujours les réponses dans le journal
-sr --hide-responses
n'affiche pas les réponses dans le journal
-X --extract
extrait les réponses dans un fichier DICOM (rsp0001.dcm...)
-Xx --extract-xml
extrait les réponses dans un fichier XML (rsp0001.xml...)
-Xs --extract-xml-single [f]ilename: string
extrait toutes les réponses dans le fichier XML f indiqué
-Xlo --limit-output [n]umber: integer
limite à n le nombre de réponses extraites vers un fichier (par défaut : illimité)

NOTES

Chaque fichier indiqué sur la ligne de commande est envoyé au SCP dans le cadre d'une requête C-FIND. Le fichier d'interrogation doit être un jeu de données DICOM valide contenant la partie jeu de données d'un message C-FIND-RQ. Il peut par exemple être créé avec l'utilitaire dump2dcm à partir d'un script comme dans l'exemple suivant :

# query patient names and IDs
(0008,0052) CS [PATIENT]     # QueryRetrieveLevel
(0010,0010) PN []            # PatientName
(0010,0020) LO []            # PatientID

Les attributs individuels de chaque fichier envoyé peuvent être modifiés ou complétés à l'aide de l'option -k. Par exemple, la commande :

findscu -P -k "(0010,0010)=HEWETT*" caesar 5678 patqry.dcm

envoyée au SCP caesar sur le port TCP/IP 5678, donne la valeur "HEWETT*" à tout attribut PatientName présent dans patqry.dcm. Si cet attribut est présent, il est remplacé ; s'il est absent, il est inséré. L'option -k peut être indiquée plusieurs fois. La partie valeur (après le '=') peut être omise, auquel cas l'attribut est envoyé avec une longueur nulle.

Dans les versions antérieures de findscu , les clés de tag étaient indiquées sans les parenthèses entourant le numéro de groupe et d'élément, par exemple "0010,0010" au lieu de "(0010,0010)". Il est recommandé de passer à la nouvelle syntaxe ; l'ancienne syntaxe reste toutefois fonctionnelle.

Par ailleurs, -k accepte aussi des noms de dictionnaire à la place des tags d'élément pour indiquer des éléments DICOM. Par exemple, l'appel findscu ci-dessus s'écrit alors comme ceci :

findscu -P -k PatientName="HEWETT*" caesar 5678 patqry.dcm

Il est également possible de spécifier des séquences, des items et des attributs imbriqués à l'aide de l'option -k. Dans ce cas, une notation spéciale de "chemin" doit être utilisée, par exemple :

findscu -W -k "(0040,0100)[0].Modality=CT" caesar 5678

Cet appel interroge un serveur de liste de travail sur l'hôte caesar pour toute procédure planifiée pour les modalités CT, en spécifiant le tag (0040,0100) "Scheduled Procedure Step Sequence" et un attribut "Modality" dans le premier item de cette séquence avec la valeur "CT". Les détails de cette notation de chemin figurent dans la documentation de dcmodify.

Si aucun fichier n'est indiqué sur la ligne de commande, l'interrogation doit être entièrement spécifiée au moyen d'une ou plusieurs options -k. Si plusieurs fichiers d'interrogation sont fournis, findscu envoie plusieurs requêtes C-FIND au SCP.

Chaque jeu d'identifiants de réponse reçu est affiché dans le journal, sauf si l'option –hide-responses , l'une des variantes –extract ci-dessous, –quiet ou une configuration de journalisation appropriée est utilisée. Dans ces cas, l'affichage dans le journal peut néanmoins être forcé avec l'option –show-responses.

Par ailleurs, les jeux de données de réponse peuvent également être extraits sous forme de fichiers DICOM individuels (avec l'option –extract) ou de fichiers XML (avec l'option –extract-xml). Le format de sortie de ce dernier est décrit par le fichier dcm2xml.dtd (dont l'élément de premier niveau est "data-set"). Pour les fichiers XML, le Specific Character Set est automatiquement associé à un encodage XML approprié. Lorsque ce n'est pas possible, par exemple dans le cas des jeux de caractères ISO 2022, les caractères non-ASCII et ceux inférieurs à #32 sont stockés sous la forme "&#nnn;", où "nnn" désigne le code de caractère numérique. Notez que cela peut produire des références d'entité de caractère non valides (comme "" pour ESC) et amener la plupart des analyseurs XML à rejeter le document.

Autrement, tous les jeux de données de réponse d'une association peuvent être extraits vers un unique fichier XML avec l'option –extract-xml-single. L'élément de premier niveau du document XML est "responses" (avec un attribut "type" valant "C-FIND"). Les jeux de données individuels sont stockés comme décrit ci-dessus. Si la prise en charge de la conversion de jeu de caractères est activée, l'encodage UTF-8 est utilisé, c'est-à-dire que tous les jeux de données sont convertis en encodage UTF-8 (ce qui est vivement recommandé afin d'éviter les problèmes de caractères non-ASCII lorsque différents jeux de caractères sont utilisés).

Conformité DICOM

L'application findscu prend en charge les classes SOP suivantes en tant que SCU :

FINDPatientRootQueryRetrieveInformationModel       1.2.840.10008.5.1.4.1.2.1.1
FINDStudyRootQueryRetrieveInformationModel         1.2.840.10008.5.1.4.1.2.2.1
FINDPatientStudyOnlyQueryRetrieveInformationModel  1.2.840.10008.5.1.4.1.2.3.1
FINDModalityWorklistInformationModel               1.2.840.10008.5.1.4.31

L'application findscu propose des contextes de présentation pour l'une des classes SOP prises en charge mentionnées ci-dessus, selon les options de ligne de commande (-P , -S , -O ou -W). En principe, les syntaxes de transfert suivantes sont prises en charge :

LittleEndianImplicitTransferSyntax                 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax                 1.2.840.10008.1.2.1
DeflatedExplicitVRLittleEndianTransferSyntax       1.2.840.10008.1.2.1.99 (*)
BigEndianExplicitTransferSyntax                    1.2.840.10008.1.2.2

(*) si compilé avec la prise en charge de zlib activée (voir la sortie de –version)

Les syntaxes de transfert réellement proposées, ainsi que leur ordre, peuvent être définies au moyen des options –propose.

L'application findscu ne prend pas en charge la négociation étendue.

JOURNALISATION

Le niveau de détail de la journalisation des différents outils en ligne de commande et des bibliothèques sous-jacentes peut être spécifié par l'utilisateur. Par défaut, seules les erreurs et les avertissements sont écrits dans le flux d'erreur standard. L'option –verbose permet également de signaler des messages d'information tels que les détails du traitement. L'option –debug permet d'obtenir plus de détails sur l'activité interne, par exemple à des fins de débogage. L'option –log-level permet de sélectionner d'autres niveaux de journalisation. En mode –quiet, seules les erreurs fatales sont signalées. Dans de tels cas d'erreur très graves, l'application se termine généralement. Pour plus de détails sur les différents niveaux de journalisation, consultez la documentation du module "oflog".

Si la sortie de la journalisation doit être écrite dans un fichier (éventuellement avec rotation des fichiers journaux), vers syslog (Unix) ou le journal des événements (Windows), l'option –log-config peut être utilisée. Ce fichier de configuration permet également de diriger uniquement certains messages vers un flux de sortie particulier et de filtrer certains messages en fonction du module ou de l'application qui les génère. Un exemple de fichier de configuration est fourni dans < etcdir>/logger.cfg.

LIGNE DE COMMANDE

Tous les outils en ligne de commande utilisent la notation suivante pour les paramètres : les crochets entourent les valeurs facultatives (0-1), trois points de suspension à la fin indiquent que plusieurs valeurs sont autorisées (1-n), et la combinaison des deux signifie de 0 à n valeurs.

Les options de la ligne de commande se distinguent des paramètres par un signe '+' ou '-' en tête. En général, l'ordre et la position des options de la ligne de commande sont arbitraires (c'est-à-dire qu'elles peuvent apparaître n'importe où). Toutefois, si des options s'excluent mutuellement, c'est la dernière occurrence, la plus à droite, qui est utilisée. Ce comportement est conforme aux règles d'évaluation standard des shells Unix courants.

De plus, un ou plusieurs fichiers de commandes peuvent être spécifiés en utilisant un signe '@' comme préfixe du nom de fichier (par exemple @command.txt). Un tel argument de commande est remplacé par le contenu du fichier texte correspondant (les espaces multiples sont traités comme un séparateur unique, sauf s'ils apparaissent entre deux guillemets) avant toute évaluation ultérieure. Notez qu'un fichier de commandes ne peut pas contenir un autre fichier de commandes. Cette approche simple mais efficace permet de regrouper des combinaisons courantes d'options/paramètres et évite des lignes de commande longues et peu lisibles (un exemple est fourni dans le fichier < datadir>/dumppat.txt).

ENVIRONNEMENT

L'utilitaire findscu tente de charger les dictionnaires de données DICOM spécifiés dans la variable d'environnement DCMDICTPATH. Par défaut, c'est-à-dire si la variable d'environnement DCMDICTPATH n'est pas définie, le fichier < datadir>/dicom.dic est chargé, sauf si le dictionnaire est intégré à l'application (par défaut sous Windows).

Il est préférable de conserver le comportement par défaut et de n'utiliser la variable d'environnement DCMDICTPATH que lorsque des dictionnaires de données alternatifs sont nécessaires. La variable d'environnement DCMDICTPATH a le même format que la variable PATH des shells Unix, en ce sens que les deux-points (":") séparent les entrées. Sur les systèmes Windows, le point-virgule (";") est utilisé comme séparateur. Le code du dictionnaire de données tente de charger chaque fichier spécifié dans la variable d'environnement DCMDICTPATH. C'est une erreur si aucun dictionnaire de données ne peut être chargé.

Selon les options de ligne de commande spécifiées, l'utilitaire findscu tente de charger des tables de correspondance de jeux de caractères. Cela se produit lorsque DCMTK a été compilé avec la bibliothèque oficonv (ce qui est le cas par défaut) et que les tables de correspondance ne sont pas intégrées à la bibliothèque (par défaut lorsque DCMTK utilise des bibliothèques partagées).

Les fichiers de tables de correspondance sont attendus dans le < datadir> de DCMTK. La variable d'environnement DCMICONVPATH peut être utilisée pour indiquer un autre emplacement. Si un autre emplacement est indiqué, ces tables de correspondance remplacent également toutes les tables intégrées.

FICHIERS

< datadir>/dcm2xml.dtd - fichier de définition de type de document (DTD)

VOIR AUSSI

movescu(1), dump2dcm(1), dcmodify(1)

Copyright (C) 1994-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.