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

dsr2html: Renderizar arquivo e conjunto de dados DICOM SR em HTML/XHTML

SINOPSE

dsr2html [options] dsrfile-in [htmlfile-out]

DESCRIÇÃO

O aplicativo dsr2html renderiza o conteúdo de um documento DICOM de relatório estruturado (SR) (formato de arquivo ou conjunto de dados bruto) para HTML (Hyper Text Markup Language) versão 3.2 ou 4.01, bem como para XHTML (Extensible Hyper Text Markup Language) versão 1.1.

Se o dsr2html 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 é preferível converter um conjunto de dados para um formato de arquivo sempre que possível (usando o aplicativo dcmconv). Também é possível usar as opções -f e -t[ieb] para forçar o dsr2html a ler um conjunto de dados com uma sintaxe de transferência específica.

PARÂMETROS

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

htmlfile-out  HTML/XHTML 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

-Ip --processing-details
exibe o item de conteúdo em processamento no momento. tratamento de erros:
-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 (incl. 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
--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

+H3 --html-3.2
usa somente os recursos compatíveis com HTML versão 3.2
+H4 --html-4.0
permite todos os recursos do HTML versão 4.01 (padrão)
+X1 --xhtml-1.1
está em conformidade com a especificação XHTML versão 1.1
+Hd --add-document-type
adiciona referência à definição de tipo de documento SGML. folha de estilo em cascata (CSS), não compatível com HTML 3.2:
+Sr --css-reference URL: string
adiciona ao documento uma referência ao CSS especificado
+Sf --css-file [f]ilename: string
incorpora ao documento o conteúdo do CSS especificado. renderização geral:
+Ri --expand-inline
expande em linha os itens de conteúdo curtos (padrão)
-Ri --never-expand-inline
nunca expande os itens de conteúdo em linha
+Ra --always-expand-inline
sempre expande os itens de conteúdo em linha
+Rd --render-full-data
renderiza todos os dados dos itens de conteúdo
+Rt --section-title-inline
renderiza os títulos de seção em linha, e não separadamente
+Rh --hyperlink-url-prefix [p]refix: string
usa o prefixo de URL p para hiperlinks para objetos compostos (padrão: http://localhost/dicom.cgi). renderização do documento:
+Dt --document-type-title
usa o tipo de documento como título do documento (padrão)
+Dp --patient-info-title
usa as informações do paciente como título do documento
-Dh --no-document-header
não renderiza as informações gerais do documento. renderização do código:
+Ci --render-inline-codes
renderiza os códigos em blocos de texto contínuos
+Cn --concept-name-codes
renderiza o código dos nomes de conceito
+Cu --numeric-unit-codes
renderiza o código das unidades de medida numéricas
+Cv --code-value-unit
usa o valor do código como unidade de medida (padrão)
+Cm --code-meaning-unit
usa o significado do código como unidade de medida
+Cc --render-all-codes
renderiza todos os códigos (implica +Ci, +Cn e +Cu)
+Ct --code-details-tooltip
renderiza os detalhes do código como uma dica de contexto (implica +Cc)

NOTAS

Conformidade DICOM

O aplicativo dsr2html 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.

Codificação de caracteres

A codificação HTML/XHTML é determinada automaticamente a partir do atributo DICOM (0008,0005) "Specific Character Set", de acordo com o seguinte mapeamento:

ASCII         (ISO_IR 6)                       =>  (none)
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 renderização no formato HTML/XHTML.

Segurança

Observe que o uso de uma das opções –css-reference , –css-file ou –hyperlink-url-prefix pode gerar problemas de segurança, pois um invasor poderia utilizá-las indevidamente para injetar conteúdo perigoso na saída HTML/XHTML. Os valores passados a essas opções não são verificados, nem a URL e o prefixo, nem o conteúdo do arquivo CSS especificado.

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 aplicativo dsr2html 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 aplicativo dsr2html tentará carregar tabelas de mapeamento de conjunto de caracteres. Isso ocorre quando o DCMTK foi compilado com a biblioteca oficonv (o 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>/report.css - Arquivo de exemplo de folha de estilo em cascata para HTML
< datadir>/reportx.css - Arquivo de exemplo de folha de estilo em cascata para XHTML

VEJA TAMBÉM

dcmconv(1)

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