⚠️ 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/dsr2xml.html).

dsr2xml: Convertir un fichier et un jeu de données DICOM SR en XML

SYNOPSIS

dsr2xml [options] dsrfile-in [xmlfile-out]

DESCRIPTION

dsr2xml est un utilitaire qui convertit le contenu d'un document DICOM Structured Reporting (SR) (format de fichier ou jeu de données brut) en XML (Extensible Markup Language). Le schéma XML dsr2xml.xsd ne suit pas encore de format standard. Toutefois, l'application dsr2xml pourrait être améliorée sur ce point à l'avenir (par exemple en prenant en charge HL7/CDA - Clinical Document Architecture).

Si dsr2xml lit un jeu de données brut (données DICOM sans méta-en-tête de format de fichier), il tente de deviner la syntaxe de transfert en examinant les premiers octets du fichier. Il n'est pas toujours possible de deviner correctement la syntaxe de transfert, et il est préférable de convertir un jeu de données au format de fichier chaque fois que possible (à l'aide de l'utilitaire dcmconv). Il est également possible d'utiliser les options -f et -t[ieb] pour forcer dsr2xml à lire un jeu de données avec une syntaxe de transfert particulière.

PARAMÈTRES

dsrfile-in   DICOM SR input filename to be converted ("-" for stdin)

xmlfile-out  XML output filename (default: stdout)

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 le journal

options d'entrée

+f --read-file
lit le format de fichier ou le jeu de données (par défaut)
+fo --read-file-only
lit uniquement le format de fichier
-f --read-dataset
lit un jeu de données sans informations de méta-fichier syntaxe de transfert d'entrée :
-t= --read-xfer-auto
utilise la reconnaissance de la TS (par défaut)
-td --read-xfer-detect
ignore la TS spécifiée dans l'en-tête du méta-fichier
-te --read-xfer-little
lit avec la TS explicit VR little endian
-tb --read-xfer-big
lit avec la TS explicit VR big endian
-ti --read-xfer-implicit
lit avec la TS implicit VR little endian

options de traitement

-Er --unknown-relationship
accepte un type de relation inconnu ou manquant
-Ev --invalid-item-value
accepte une valeur d'élément de contenu invalide (par exemple violation de la définition du VR ou du VM)
-Ec --ignore-constraints
ignore les contraintes de contenu liées à la relation
-Ee --ignore-item-errors
n'interrompt pas le traitement en cas d'erreur sur un élément de contenu, se contente d'un avertissement (par exemple attributs spécifiques au type de valeur manquants)
-Ei --skip-invalid-items
ignore les éléments de contenu invalides (y compris la sous-arborescence)
-Dv --disable-vr-checker
désactive la vérification de conformité au VR des valeurs de chaîne jeu de caractères spécifique :
+Cr --charset-require
exige la déclaration d'un jeu de caractères étendu (par défaut)
+Ca --charset-assume [c]harset: string
suppose le jeu de caractères c si aucun jeu de caractères étendu n'est déclaré
+Cc --charset-check-all
vérifie tous les éléments de données ayant des valeurs de type chaîne (par défaut : uniquement PN, LO, LT, SH, ST, UC et UT) # cette option n'est utilisée que pour la vérification étendue permettant de déterminer si # l'attribut Specific Character Set (0008,0005) doit être # présent, mais pas pour la conversion en UTF-8 des valeurs # d'éléments non affectés (par exemple les valeurs d'éléments avec un VR de CS)
+U8 --convert-to-utf8
convertit en UTF-8 toutes les valeurs d'éléments concernées par Specific Character Set (0008,0005) # nécessite la prise en charge d'une # bibliothèque de codage de caractères sous-jacente (voir la sortie de --version pour savoir laquelle est disponible)

options de sortie

+Ea --attr-all
encode tout en tant qu'attribut XML (raccourci pour +Ec, +Er, +Ev et +Et)
+Ec --attr-code
encode code value, coding scheme designator et coding scheme version en tant qu'attribut XML
+Er --attr-relationship
encode le type de relation en tant qu'attribut XML
+Ev --attr-value-type
encode le type de valeur en tant qu'attribut XML
+Et --attr-template-id
encode template id en tant qu'attribut XML
+Ee --template-envelope
un élément template encadre les éléments de contenu (nécessite +Wt, implique +Et) structure XML :
+Xs --add-schema-reference
ajoute une référence au schéma XML "dsr2xml.xsd" (incompatible avec +Ea, +Ec, +Er, +Ev, +Et, +Ee, +We)
+Xn --use-xml-namespace
ajoute une déclaration d'espace de noms XML à l'élément racine écriture :
+We --write-empty-tags
écrit tous les tags même si leur valeur est vide
+Wi --write-item-id
écrit toujours l'identifiant d'élément
+Wt --write-template-id
écrit les informations d'identification du template

NOTES

Conformité DICOM

L'utilitaire dsr2xml prend en charge les classes SOP suivantes :

SpectaclePrescriptionReportStorage           1.2.840.10008.5.1.4.1.1.78.6
MacularGridThicknessAndVolumeReportStorage   1.2.840.10008.5.1.4.1.1.79.1
BasicTextSRStorage                           1.2.840.10008.5.1.4.1.1.88.11
EnhancedSRStorage                            1.2.840.10008.5.1.4.1.1.88.22
ComprehensiveSRStorage                       1.2.840.10008.5.1.4.1.1.88.33
Comprehensive3DSRStorage                     1.2.840.10008.5.1.4.1.1.88.34
ProcedureLogStorage                          1.2.840.10008.5.1.4.1.1.88.40
MammographyCADSRStorage                      1.2.840.10008.5.1.4.1.1.88.50
KeyObjectSelectionDocumentStorage            1.2.840.10008.5.1.4.1.1.88.59
ChestCADSRStorage                            1.2.840.10008.5.1.4.1.1.88.65
XRayRadiationDoseSRStorage                   1.2.840.10008.5.1.4.1.1.88.67
RadiopharmaceuticalRadiationDoseSRStorage    1.2.840.10008.5.1.4.1.1.88.68
ColonCADSRStorage                            1.2.840.10008.5.1.4.1.1.88.69
ImplantationPlanSRStorage                    1.2.840.10008.5.1.4.1.1.88.70
AcquisitionContextSRStorage                  1.2.840.10008.5.1.4.1.1.88.71
SimplifiedAdultEchoSRStorage                 1.2.840.10008.5.1.4.1.1.88.72
PatientRadiationDoseSRStorage                1.2.840.10008.5.1.4.1.1.88.73
PlannedImagingAgentAdministrationSRStorage   1.2.840.10008.5.1.4.1.1.88.74
PerformedImagingAgentAdministrationSRStorage 1.2.840.10008.5.1.4.1.1.88.75
WaveformAnnotationSRStorage                  1.2.840.10008.5.1.4.1.1.88.77

RenditionSelectionDocumentRealTimeCommunication 1.2.840.10008.10.4 (*)

(*) Il ne s'agit pas d'une classe SOP de stockage, mais elle est utilisée pour la Real-Time Communication.

Notez qu'à ce jour, seuls les attributs obligatoires et certains attributs optionnels sont pris en charge.

Encodage des caractères

L'encodage XML est déterminé automatiquement à partir de l'attribut DICOM (0008,0005) "Specific Character Set", selon la correspondance suivante :

ASCII         (ISO_IR 6)                       =>  "UTF-8"
UTF-8         "ISO_IR 192"                     =>  "UTF-8"
ISO Latin 1   "ISO_IR 100"                     =>  "ISO-8859-1"
ISO Latin 2   "ISO_IR 101"                     =>  "ISO-8859-2"
ISO Latin 3   "ISO_IR 109"                     =>  "ISO-8859-3"
ISO Latin 4   "ISO_IR 110"                     =>  "ISO-8859-4"
ISO Latin 5   "ISO_IR 148"                     =>  "ISO-8859-9"
ISO Latin 9   "ISO_IR 203"                     =>  "ISO-8859-15"
Cyrillic      "ISO_IR 144"                     =>  "ISO-8859-5"
Arabic        "ISO_IR 127"                     =>  "ISO-8859-6"
Greek         "ISO_IR 126"                     =>  "ISO-8859-7"
Hebrew        "ISO_IR 138"                     =>  "ISO-8859-8"
Thai          "ISO_IR 166"                     =>  "TIS-620"
Japanese      "ISO 2022 IR 13\ISO 2022 IR 87"  =>  "ISO-2022-JP"
Korean        "ISO 2022 IR 6\ISO 2022 IR 149"  =>  "ISO-2022-KR"
Chinese       "ISO 2022 IR 6\ISO 2022 IR 58"   =>  "ISO-2022-CN"
Chinese       "GB18030"                        =>  "GB18030"
Chinese       "GBK"                            =>  "GBK"

Si cet attribut DICOM est absent du fichier d'entrée alors qu'il est nécessaire, l'option –charset-assume peut être utilisée pour spécifier manuellement un jeu de caractères approprié (en utilisant l'un des termes définis par DICOM). Pour des raisons de rétrocompatibilité avec les versions antérieures de cet outil, les termes suivants sont également pris en charge et automatiquement associés aux termes DICOM correspondants : latin-1, latin-2, latin-3, latin-4, latin-5, latin-9, cyrillic, arabic, greek, hebrew.

L'option –convert-to-utf8 peut être utilisée pour convertir le fichier ou le jeu de données DICOM en encodage UTF-8 avant la conversion au format XML.

Si aucune correspondance n'est définie et que l'option –convert-to-utf8 n'est pas utilisée, les caractères non-ASCII et ceux en dessous de #32 sont stockés sous la forme "&#nnn;", où "nnn" correspond au code numérique du caractère. Cela peut produire des références d'entité de caractère invalides (telles que "" pour ESC) et amènera la plupart des analyseurs XML à rejeter le document.

Gestion des erreurs

Faites attention avec les options de traitement –unknown-relationship , –invalid-item-value , –ignore-constraints , –ignore-item-errors et –skip-invalid-items , car elles désactivent certaines vérifications de validation sur le fichier DICOM SR d'entrée et, par conséquent, peuvent produire une sortie non conforme à la norme. Il peut néanmoins y avoir des raisons d'utiliser une ou plusieurs de ces options, par exemple pour lire et traiter un document SR incorrectement encodé.

Limitations

Le schéma XML dsr2xml.xsd ne prend pas en charge toutes les variantes du format de sortie de dsr2xml. Toutefois, le format de sortie par défaut (ainsi que l'option –use-xml-namespace) devrait fonctionner.

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 dsr2xml tentera 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 sera chargé, à moins que le dictionnaire ne soit 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 dsr2xml tentera 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>/dsr2xml.xsd - fichier de schéma XML

VOIR AUSSI

xml2dsr(1), dcmconv(1)

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