dump2dcm: converter dump ASCII em arquivo DICOM
SINOPSE
dump2dcm [options] dumpfile-in dcmfile-out
DESCRIÇÃO
O aplicativo dump2dcm converte um arquivo de dump ASCII em um arquivo DICOM. O arquivo de dump tem o mesmo formato da saída do dcmdump. Assim, é possível capturar a saída do dcmdump em um arquivo, modificar alguns atributos e criar um novo arquivo DICOM.
PARÂMETROS
dumpfile-in dump input filename
dcmfile-out DICOM output filename ("-" for 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-meta-info- lê as informações de meta se presentes (padrão)
-f --ignore-meta-info- ignora as informações de meta do arquivo. ordem dos bytes do conteúdo do arquivo:
+rl --read-file-little- lê os dados OW em little endian (padrão)
+rb --read-file-big- lê os dados OW do arquivo em big endian. outras opções de entrada:
+l --line [m]ax-length: integer- comprimento máximo de linha m (padrão: 4096)
opções de processamento
+Ug --generate-new-uids- gera um novo Study/Series/SOP Instance UID
-Uo --dont-overwrite-uids- não sobrescreve os UIDs existentes (padrão)
+Uo --overwrite-uids- sobrescreve os UIDs existentes
opções de saída
+F --write-file- grava no formato de arquivo (padrão)
-F --write-dataset- grava o conjunto de dados sem as informações de meta do arquivo
+Fu --update-meta-info- atualiza determinadas informações de meta do arquivo. sintaxe de transferência de saída:
+t= --write-xfer-same- grava com a mesma TS da entrada (padrão)
+te --write-xfer-little- grava com VR explícita little endian
+tb --write-xfer-big- grava com a TS explicit VR big endian
+ti --write-xfer-implicit- grava com a TS implicit VR little endian
+td --write-xfer-deflated- grava com TS de VR explícita little endian deflate. tratamento de erros:
-E --stop-on-error- não grava se o dump estiver corrompido (padrão)
+E --ignore-errors- tenta gravar mesmo que o dump esteja corrompido. representações de valor posteriores a 1993:
+u --enable-new-vr- habilita o suporte a novos VRs (UN/UT) (padrão)
-u --disable-new-vr- desabilita o suporte a novos VRs, converte para OB. codificação do comprimento de grupo:
+g= --group-length-recalc- recalcula os comprimentos de grupo, se presentes (padrão)
+g --group-length-create- sempre grava com elementos de comprimento de grupo
-g --group-length-remove- sempre grava sem elementos de comprimento de grupo. codificação de comprimento em sequências e itens:
+e --length-explicit- grava com comprimentos explícitos (padrão)
-e --length-undefined- grava com comprimentos indefinidos preenchimento final do conjunto de dados (não com --write-dataset):
-p= --padding-retain- não altera o preenchimento (padrão se --write-dataset não for usado)
-p --padding-off- sem preenchimento (implícito com --write-dataset)
+p --padding-create [f]ile-pad [i]tem-pad: integer- alinha o arquivo em um múltiplo de f bytes e os itens em um múltiplo de i bytes. nível de compressão deflate (somente com --write-xfer-deflated):
+cl --compression-level [l]evel: integer (default: 6)- 0=sem compressão, 1=mais rápido, 9=melhor compressão
NOTAS
Descrição do arquivo de dump
O arquivo de entrada pode ser uma saída do dcmdump (somente no formato recuado padrão). Cada elemento (tag, VR, valor) deve ser escrito em uma única linha, separado por qualquer número de espaços ou tabulações. Um '#' inicia um comentário que termina no final da linha. Linhas vazias são permitidas.
As partes individuais de uma linha seguem a seguinte sintaxe:
Tag: (gggg,eeee)
with gggg and eeee are 4 character hexadecimal values
representing group and element tag. Spaces and tabs can be
anywhere in a tag specification.
VR: Value Representation must be written as 2 characters as in
Part 6 of the DICOM standard. No spaces or tabs are allowed
between the two characters. If the VR can be determined from
the tag, this part of a line is optional.
Value: There are several rules for writing values:
1. US, SS, UL, SL, UV, SV, FD, FL, OD, OF, OL and OV are written
as decimal strings that can be read by scanf().
2. AT is written as '(gggg,eeee)' with additional spaces
stripped off automatically and gggg and eeee being decimal
strings that can be read by scanf().
3. OB and OW values are written as byte or word hexadecimal
values separated by '\' character. Alternatively, OB or OW
values can be read from a separate file by writing the
filename prefixed by a '=' character (e.g. '=largepix.dat').
The contents of the file will be read as is. By default, OW
data is expected to be little endian ordered and will be
swapped if necessary. No checks will be made to ensure that
the amount of data is reasonable in terms of other attributes
such as Rows or Columns.
In case of compressed pixel data, the line should start with
'(7fe0,0010) OB (PixelSequence' in order to distinguish from
uncompressed pixel data.
4. UI is written as '=Name' in data dictionary or as unique
identifier string (see 6.), e.g. '[1.2.840.....]'.
5. Strings without () <> [] spaces, tabs and # can be written
directly.
6. Other strings must be surrounded by '[' and ']'. No bracket
structure is passed. The value ends at the last ']' in the
line. Anything after the ']' is interpreted as comment.
7. '(' and '<' are interpreted special and may not be used when
writing an input file by hand as beginning characters of a
string. Multiple Value are separated by '\'. The lines
need not be sorted into ascending tag order. References in
DICOM Directories are not supported. Semantic errors are
not detected.
Exemplos
As linhas a seguir mostram exemplos válidos da sintaxe descrita acima:
(0008,0020) DA [19921012] # 8, 1 StudyDate
(0008,0016) UI =MRImageStorage # 26, 1 SOPClassUID
(0002,0012) UI [1.2.276.0.7230010.100.1.1]
(0020,0032) DS [0.0\0.0] # 8, 2 ImagePositionPatient
(0028,0009) AT (3004,000c) # 4, 1 FrameIncrementPointer
(0028,0010) US 256 # 4, 1 Rows
(0002,0001) OB 01\00
Limitações
Observe que atualmente o dump2dcm não oferece suporte total a arquivos DICOMDIR. Especificamente, o valor dos diversos elementos de dados de deslocamento (offset) não é atualizado automaticamente por esta ferramenta.
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 dump2dcm tenta 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 integrado ao aplicativo (padrão no 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.
VEJA TAMBÉM
dcmdump(1)
COPYRIGHT
Copyright (C) 1996-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.