⚠️ Este é um site de tradução não oficial, sem relação com o DCMTK / OFFIS. Para informações oficiais, consulte a página original (https://support.dcmtk.org/docs/dsr2xml.html).

dsr2xml: Converter arquivo e conjunto de dados DICOM SR em XML

SINOPSE

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

DESCRIÇÃO

O aplicativo dsr2xml converte o conteúdo de um documento DICOM Structured Reporting (SR) (formato de arquivo ou conjunto de dados bruto) para XML (Extensible Markup Language). O esquema XML dsr2xml.xsd ainda não segue nenhum formato padrão. No entanto, o aplicativo dsr2xml pode ser aprimorado nesse aspecto no futuro (por exemplo, oferecendo suporte a HL7/CDA - Clinical Document Architecture).

Se o dsr2xml ler um conjunto de dados bruto (dados DICOM sem meta-cabeçalho de formato de arquivo), ele tentará adivinhar a sintaxe de transferência examinando os primeiros bytes do arquivo. Nem sempre é possível adivinhar corretamente a sintaxe de transferência, e é melhor converter um conjunto de dados para um formato de arquivo sempre que possível (usando o utilitário dcmconv). Também é possível usar as opções -f e -t[ieb] para forçar o dsr2xml a ler um conjunto de dados com uma sintaxe de transferência específica.

PARÂMETROS

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

xmlfile-out  XML output filename (default: stdout)

OPÇÕES

opções gerais

-h --help
exibe este texto de ajuda e sai
--version
exibe as informações de versão e sai
--arguments
exibe os argumentos de linha de comando expandidos
-q --quiet
modo silencioso, não exibe avisos nem erros
-v --verbose
modo detalhado, exibe os detalhes do processamento
-d --debug
modo de depuração, exibe informações de depuração
-ll --log-level [l]evel: string constant
(fatal, error, warn, info, debug, trace) usa o nível l para o logger
-lc --log-config [f]ilename: string
usa o arquivo de configuração f para o logger

opções de entrada

+f --read-file
lê o formato de arquivo ou o conjunto de dados (padrão)
+fo --read-file-only
lê somente o formato de arquivo
-f --read-dataset
lê o conjunto de dados sem as informações meta do arquivo. sintaxe de transferência de entrada:
-t= --read-xfer-auto
usa o reconhecimento de TS (padrão)
-td --read-xfer-detect
ignora a TS especificada no cabeçalho meta do arquivo
-te --read-xfer-little
lê com a TS explicit VR little endian
-tb --read-xfer-big
lê com a TS explicit VR big endian
-ti --read-xfer-implicit
lê com a TS implicit VR little endian

opções de processamento

-Er --unknown-relationship
aceita tipo de relacionamento desconhecido ou ausente
-Ev --invalid-item-value
aceita valor de item de conteúdo inválido (por exemplo, violação da definição de VR ou VM)
-Ec --ignore-constraints
ignora as restrições de conteúdo do relacionamento
-Ee --ignore-item-errors
não interrompe em caso de erros de item de conteúdo, apenas avisa (por exemplo, atributos específicos do tipo de valor ausentes)
-Ei --skip-invalid-items
ignora itens de conteúdo inválidos (incluindo a subárvore)
-Dv --disable-vr-checker
desativa a verificação de conformidade dos valores de string com o VR. conjunto de caracteres específico:
+Cr --charset-require
exige a declaração de conjunto de caracteres estendido (padrão)
+Ca --charset-assume [c]harset: string
assume o conjunto de caracteres c se nenhum conjunto de caracteres estendido for declarado
+Cc --charset-check-all
verifica todos os elementos de dados com valores do tipo string (padrão: somente PN, LO, LT, SH, ST, UC e UT) # esta opção é usada apenas para a verificação estendida quanto à necessidade de # presença do atributo Specific Character Set (0008,0005), mas não para a # conversão dos valores de elementos não afetados para UTF-8 (por exemplo, # valores de elementos com um VR de CS)
+U8 --convert-to-utf8
converte para UTF-8 todos os valores de elementos afetados pelo Specific Character Set (0008,0005) # requer suporte de uma # biblioteca de codificação de caracteres subjacente (veja a saída de --version para saber qual está disponível)

opções de saída

+Ea --attr-all
codifica tudo como atributo XML (atalho para +Ec, +Er, +Ev e +Et)
+Ec --attr-code
codifica code value, coding scheme designator e coding scheme version como atributo XML
+Er --attr-relationship
codifica o tipo de relacionamento como atributo XML
+Ev --attr-value-type
codifica o tipo de valor como atributo XML
+Et --attr-template-id
codifica template id como atributo XML
+Ee --template-envelope
elemento template envolve os itens de conteúdo (requer +Wt, implica +Et) estrutura XML:
+Xs --add-schema-reference
adiciona referência ao esquema XML "dsr2xml.xsd" (não combinável com +Ea, +Ec, +Er, +Ev, +Et, +Ee, +We)
+Xn --use-xml-namespace
adiciona declaração de namespace XML ao elemento raiz gravação:
+We --write-empty-tags
grava todas as tags mesmo que o valor esteja vazio
+Wi --write-item-id
sempre grava o identificador de item
+Wt --write-template-id
grava as informações de identificação do template

NOTAS

Conformidade DICOM

O utilitário dsr2xml oferece suporte às seguintes classes SOP:

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 (*)

(*) Esta não é uma classe SOP de armazenamento, mas é usada para Real-Time Communication.

Observe que, atualmente, há suporte apenas para os atributos obrigatórios e alguns atributos opcionais.

Codificação de caracteres

A codificação XML é determinada automaticamente a partir do atributo DICOM (0008,0005) "Specific Character Set", usando o seguinte mapeamento:

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"

Se esse atributo DICOM estiver ausente no arquivo de entrada, embora seja necessário, a opção –charset-assume pode ser usada para especificar manualmente um conjunto de caracteres apropriado (usando um dos termos definidos pelo DICOM). Por razões de compatibilidade com versões anteriores desta ferramenta, os seguintes termos também são aceitos e mapeados automaticamente para os termos DICOM correspondentes: latin-1, latin-2, latin-3, latin-4, latin-5, latin-9, cyrillic, arabic, greek, hebrew.

A opção –convert-to-utf8 pode ser usada para converter o arquivo ou conjunto de dados DICOM para a codificação UTF-8 antes da conversão para o formato XML.

Se nenhum mapeamento estiver definido e a opção –convert-to-utf8 não for usada, os caracteres não ASCII e aqueles abaixo de #32 são armazenados como "&#nnn;", em que "nnn" corresponde ao código numérico do caractere. Isso pode gerar referências de entidade de caractere inválidas (como "" para ESC) e fará com que a maioria dos analisadores XML rejeite o documento.

Tratamento de erros

Tenha cuidado com as opções de processamento –unknown-relationship , –invalid-item-value , –ignore-constraints , –ignore-item-errors e –skip-invalid-items , pois elas desativam determinadas verificações de validação no arquivo DICOM SR de entrada e, portanto, podem resultar em uma saída não compatível com o padrão. No entanto, pode haver motivos para usar uma ou mais dessas opções, por exemplo, para ler e processar um documento SR codificado incorretamente.

Limitações

O esquema XML dsr2xml.xsd não oferece suporte a todas as variações do formato de saída do dsr2xml. No entanto, o formato de saída padrão (mais a opção –use-xml-namespace) deve funcionar.

REGISTRO DE LOG

O nível de detalhamento do log das diversas ferramentas de linha de comando e das bibliotecas subjacentes pode ser especificado pelo usuário. Por padrão, apenas erros e avisos são gravados no fluxo de erro padrão. Ao usar a opção –verbose, mensagens informativas, como detalhes do processamento, também são relatadas. A opção –debug pode ser usada para obter mais detalhes sobre a atividade interna, por exemplo, para fins de depuração. Outros níveis de log podem ser selecionados com a opção –log-level. No modo –quiet, apenas erros fatais são relatados. Nesses casos de erro muito graves, o aplicativo normalmente é encerrado. Para mais detalhes sobre os diferentes níveis de log, consulte a documentação do módulo "oflog".

Caso a saída do log deva ser gravada em arquivo (opcionalmente com rotação de arquivo de log), no syslog (Unix) ou no log de eventos (Windows), pode-se usar a opção –log-config. Esse arquivo de configuração também permite direcionar apenas determinadas mensagens para um fluxo de saída específico e filtrar certas mensagens com base no módulo ou aplicativo em que são geradas. Um arquivo de configuração de exemplo é fornecido em < etcdir>/logger.cfg.

LINHA DE COMANDO

Todas as ferramentas de linha de comando usam a seguinte notação para os parâmetros: colchetes delimitam valores opcionais (0-1), reticências no final indicam que múltiplos valores são permitidos (1-n), e a combinação dos dois significa de 0 a n valores.

As opções de linha de comando se distinguem dos parâmetros por um sinal '+' ou '-' à frente. Normalmente, a ordem e a posição das opções de linha de comando são arbitrárias (ou seja, podem aparecer em qualquer lugar). No entanto, se as opções forem mutuamente exclusivas, é usada a ocorrência mais à direita. Esse comportamento está em conformidade com as regras de avaliação padrão dos shells Unix comuns.

Além disso, um ou mais arquivos de comando podem ser especificados usando um sinal '@' como prefixo do nome do arquivo (por exemplo, @command.txt). Esse argumento de comando é substituído pelo conteúdo do arquivo de texto correspondente (múltiplos espaços em branco são tratados como um único separador, a menos que apareçam entre duas aspas) antes de qualquer avaliação posterior. Observe que um arquivo de comando não pode conter outro arquivo de comando. Essa abordagem simples, mas eficaz, permite agrupar combinações comuns de opções/parâmetros e evita linhas de comando longas e confusas (um exemplo é fornecido no arquivo < datadir>/dumppat.txt).

AMBIENTE

O utilitário dsr2xml tentará carregar os dicionários de dados DICOM especificados na variável de ambiente DCMDICTPATH. Por padrão, ou seja, se a variável de ambiente DCMDICTPATH não estiver definida, o arquivo < datadir>/dicom.dic será carregado, a menos que o dicionário esteja incorporado ao aplicativo (padrão para Windows).

É preferível manter o comportamento padrão e usar a variável de ambiente DCMDICTPATH apenas quando dicionários de dados alternativos forem necessários. A variável de ambiente DCMDICTPATH tem o mesmo formato da variável PATH dos shells Unix, em que dois-pontos (":") separam as entradas. Em sistemas Windows, um ponto e vírgula (";") é usado como separador. O código do dicionário de dados tenta carregar cada arquivo especificado na variável de ambiente DCMDICTPATH. Ocorre um erro se nenhum dicionário de dados puder ser carregado.

Dependendo das opções de linha de comando especificadas, o utilitário dsr2xml tentará carregar tabelas de mapeamento de conjunto de caracteres. Isso ocorre quando o DCMTK foi compilado com a biblioteca oficonv (que é o padrão) e as tabelas de mapeamento não estão incorporadas à biblioteca (padrão quando o DCMTK usa bibliotecas compartilhadas).

Os arquivos de tabela de mapeamento são esperados em < datadir> do DCMTK. A variável de ambiente DCMICONVPATH pode ser usada para especificar um local diferente. Se um local diferente for especificado, essas tabelas de mapeamento também substituem quaisquer tabelas integradas.

ARQUIVOS

< datadir>/dsr2xml.xsd - arquivo de esquema XML

VEJA TAMBÉM

xml2dsr(1), dcmconv(1)

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