echoscu: SCU de vérification DICOM (C-ECHO)
SYNOPSIS
echoscu [options] peer port
DESCRIPTION
echoscu est une application qui implémente un Service Class User (SCU) pour la Verification SOP Class. Elle envoie un message DICOM C-ECHO à un Service Class Provider (SCP) et attend une réponse. Cette application permet de vérifier la connectivité DICOM de base.
PARAMÈTRES
peer hostname of DICOM peer
port tcp/ip port number of peer
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
-i4 --ipv4- utilise uniquement IPv4 (par défaut)
-i6 --ipv6- utilise uniquement IPv6
-i0 --ip-auto- détermine le protocole IP par résolution DNS titres d'entité d'application :
-aet --aetitle [a]etitle: string- définit mon calling AE title (par défaut : ECHOSCU)
-aec --call [a]etitle: string- définit le called AE title du pair (par défaut : ANY-SCP) débogage de la négociation d'association :
-pts --propose-ts [n]umber: integer (1..53)- propose n syntaxes de transfert
-ppc --propose-pc [n]umber: integer (1..128)- propose n presentation contexts 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
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 comme fichier PEM (par défaut)
-der --der-keys- lit les clés et certificats comme 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- affiche la liste des 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é # only available if underlying TLS library supports # all TLS features required for this profile
+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- Basic TLS Secure Transport Connection Profile (obsolète) # only available if underlying TLS library supports 3DES
+pa --profile-aes- AES TLS Secure Transport Connection Profile (obsolète)
+pn --profile-null- communication authentifiée non chiffrée (obsolète, utilisée auparavant dans IHE ATNA) suite de chiffrement :
+cc --list-ciphers- affiche la liste des 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 vérification hors ligne du certificat :
+vc --verify-cert [f]ilename: string- vérifie le certificat par rapport aux paramètres de l'AC # Load a client certificate and check whether it would be accepted # when received during a TLS handshake. Print result and exit.
+rc --is-root-cert [f]ilename: string- vérifie si le certificat est une AC racine autosignée # Load a client certificate and check whether it is a valid, # self-signed root CA certificate. Print result and exit.
NOTES
Conformité DICOM
echoscu prend en charge les SOP Classes suivantes en tant que SCU :
VerificationSOPClass 1.2.840.10008.1.1
Par défaut, echoscu ne propose que cette syntaxe de transfert :
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
Si l'option –propose-ts est utilisée, les syntaxes de transfert suivantes seront également proposées, en fonction de la valeur numérique "n" passée à cette option :
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
JPEGProcess3_5TransferSyntax 1.2.840.10008.1.2.4.52
JPEGProcess6_8TransferSyntax 1.2.840.10008.1.2.4.53
JPEGProcess7_9TransferSyntax 1.2.840.10008.1.2.4.54
JPEGProcess10_12TransferSyntax 1.2.840.10008.1.2.4.55
JPEGProcess11_13TransferSyntax 1.2.840.10008.1.2.4.56
JPEGProcess14TransferSyntax 1.2.840.10008.1.2.4.57
JPEGProcess15TransferSyntax 1.2.840.10008.1.2.4.58
JPEGProcess16_18TransferSyntax 1.2.840.10008.1.2.4.59
JPEGProcess17_19TransferSyntax 1.2.840.10008.1.2.4.60
JPEGProcess20_22TransferSyntax 1.2.840.10008.1.2.4.61
JPEGProcess21_23TransferSyntax 1.2.840.10008.1.2.4.62
JPEGProcess24_26TransferSyntax 1.2.840.10008.1.2.4.63
JPEGProcess25_27TransferSyntax 1.2.840.10008.1.2.4.64
JPEGProcess28TransferSyntax 1.2.840.10008.1.2.4.65
JPEGProcess29TransferSyntax 1.2.840.10008.1.2.4.66
JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
RLELosslessTransferSyntax 1.2.840.10008.1.2.5
DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99
JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
JPEG2000LosslessOnlyTransferSyntax 1.2.840.10008.1.2.4.90
JPEG2000TransferSyntax 1.2.840.10008.1.2.4.91
JPEG2000Part2MulticomponentImageComp.LosslessOnlyT. 1.2.840.10008.1.2.4.92
JPEG2000Part2MulticomponentImageComp.TransferSyntax 1.2.804.10008.1.2.4.93
MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100
MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101
MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102
MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103
MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104
MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105
MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106
HEVCMainProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.107
HEVCMain10ProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.108
FragmentableMPEG2MainProfileMainLevelTransferSyntax 1.2.840.10008.1.2.4.100.1
FragmentableMPEG2MainProfileHighLevelTransferSyntax 1.2.840.10008.1.2.4.101.1
FragmentableMPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102.1
FragmentableMPEG4BDcompatibleHighProfileLevel4_1Tr. 1.2.840.10008.1.2.4.103.1
FragmentableMPEG4HighProfileLevel4_2_For2DVideoTr.S 1.2.840.10008.1.2.4.104.1
FragmentableMPEG4HighProfileLevel4_2_For3DVideoTr.S 1.2.840.10008.1.2.4.105.1
FragmentableMPEG4StereoHighProfileLevel4_2TransferS 1.2.840.10008.1.2.4.106.1
HighThroughputJPEG2000ImageCompressionLossless.Tr.S 1.2.840.10008.1.2.4.201
HighThroughputJPEG2000RPCLImageCompressionLoss.Tr.S 1.2.840.10008.1.2.4.202
HighThroughputJPEG2000ImageCompressionTransferSynt. 1.2.840.10008.1.2.4.203
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).
CODES DE SORTIE
echoscu utilise les codes de sortie suivants à la fin de son exécution. Cela permet à l'utilisateur de déterminer la raison pour laquelle l'application s'est terminée.
général
EXITCODE_NO_ERROR 0
EXITCODE_COMMANDLINE_SYNTAX_ERROR 1
erreurs de fichier d'entrée
EXITCODE_CANNOT_READ_INPUT_FILE 20 (*)
EXITCODE_INVALID_INPUT_FILE 22
erreurs de fichier de sortie
EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 (*)
erreurs réseau
EXITCODE_CANNOT_INITIALIZE_NETWORK 60 (*)
EXITCODE_ASSOCIATION_ABORTED 70
() En pratique, ces codes ne sont actuellement pas utilisés par echoscu*, mais servent de réserve pour le groupe de codes de sortie correspondant.
ENVIRONNEMENT
echoscu tente de charger les dictionnaires de données DICOM indiqué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é.
COPYRIGHT
Copyright (C) 1994-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.