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

xml2dsr: Convertir un document XML en fichier DICOM SR

SYNOPSIS

xml2dsr [options] xmlfile-in dsrfile-out

DESCRIPTION

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

Un fichier XML approprié peut être créé à l'aide de l'outil dsr2xml (option +Xn recommandée pour ajouter la déclaration d'espace de noms XML à l'élément racine).

PARAMÈTRES

xmlfile-in   XML input filename to be converted ("-" for stdin)

dsrfile-out  DICOM SR output filename ("-" for 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

encoding:

  +Ee  --template-envelope
         template element encloses content items

options de traitement

+Vs --validate-schema
valide le document XML par rapport au schéma (pas avec --template-envelope) # nécessite que libxml soit compilé avec la prise en charge de XML Schema
+Vn --check-namespace
vérifie l'espace de noms XML dans la racine du document identifiants uniques :
+Ug --generate-new-uids
génère de nouveaux UID Study/Series/SOP Instance
-Uo --dont-overwrite-uids
n'écrase pas les UID existants (par défaut)
+Uo --overwrite-uids
écrase les UID existants

options de sortie

+F --write-file
écrit au format fichier (par défaut)
-F --write-dataset
écrit un jeu de données sans informations de méta-fichier syntaxe de transfert de sortie :
+t= --write-xfer-same
écrit avec la même TS que l'entrée (par défaut)
+te --write-xfer-little
écrit avec la TS explicit VR little endian
+tb --write-xfer-big
écrit avec la TS explicit VR big endian
+ti --write-xfer-implicit
écrit avec la TS implicit VR little endian
+td --write-xfer-deflated
écrit avec la TS explicit VR little endian deflate 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 encodage de la longueur de groupe :
+g= --group-length-recalc
recalcule les longueurs de groupe si elles sont présentes (par défaut)
+g --group-length-create
écrit toujours avec les éléments de longueur de groupe
-g --group-length-remove
écrit toujours sans les éléments de longueur de groupe encodage de la longueur dans les séquences et les items :
+e --length-explicit
écrit avec des longueurs explicites (par défaut)
-e --length-undefined
écrit avec des longueurs non définies remplissage de fin de jeu de données (absent avec --write-dataset) :
-p= --padding-retain
ne modifie pas le remplissage (par défaut si --write-dataset n'est pas utilisé)
-p --padding-off
aucun remplissage (implicite avec --write-dataset)
+p --padding-create [f]ile-pad [i]tem-pad: integer
aligne le fichier sur un multiple de f octets et les items sur un multiple de i octets niveau de compression deflate (uniquement avec --write-xfer-deflated) :
+cl --compression-level [l]evel: integer (default: 6)
0=non compressé, 1=le plus rapide, 9=meilleure compression

NOTES

Conformité DICOM

L'utilitaire xml2dsr 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 de caractères DICOM est déterminé automatiquement à partir de l'élément portant le tag "0008,0005" (Specific Character Set), s'il est présent. Les jeux de caractères suivants sont actuellement pris en charge (nécessite que libxml inclue la prise en charge d'iconv, voir la sortie de l'option –version) :

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)

Compression

Si libxml est compilé avec la prise en charge de zlib, le fichier d'entrée (xmlfile-in) peut également être compressé au format ZIP, ce qui permet généralement d'obtenir des fichiers nettement plus petits. Consultez la sortie de l'option –version pour vérifier si la prise en charge de zlib est disponible.

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.

Les différentes versions de libxml semblent avoir des limites différentes pour la longueur maximale d'une valeur d'élément XML. Il convient donc d'éviter les valeurs d'élément très longues. Une limite typique pour libxml version 2.7.3 (et ultérieure) est de 10 Mo pour une seule valeur d'élément.

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 xml2dsr 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é.

FICHIERS

< datadir>/dsr2xml.xsd - fichier de schéma XML

VOIR AUSSI

dsr2xml(1)

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