Questo è il comando dcmodify che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre numerose workstation online gratuite come Ubuntu Online, Fedora Online, l'emulatore online di Windows o l'emulatore online di MAC OS
PROGRAMMA:
NOME
dcmodify - Modifica i file DICOM
SINOSSI
dcmodify [opzioni] dcmfile-in...
DESCRIZIONE
dcmodifica è uno strumento che consente di modificare, inserire ed eliminare tag ed elementi in DICOM
file. Sono supportate anche sequenze e tag con una molteplicità di valori > 1. Metaheader
le informazioni e la VR del tag non possono essere modificate direttamente da dcmodifica in questo momento. In
oltre alle modifiche dei tag, dcmodifica rende disponibili alcune opzioni di input - forzatura
dcmodifica per gestire i file di input come specificato dall'utente e le opzioni di output per controllare
il formato di output dei file risultanti.
Nel caso in cui si debbano effettuare più modifiche, dcmodifica fa le modifiche in
nello stesso ordine in cui appaiono sulla riga di comando. Si noti che dcmodifica non
verificare se un dato valore corrisponde alla sua rappresentazione del valore (VR). Di solito, un errore
il messaggio viene stampato ma in genere l'utente dovrebbe prestare attenzione al corretto utilizzo della realtà virtuale.
If dcmodifica non conosce il tag che dovrebbe inserire, quindi il VR del tag è impostato su UN e
il valore fornito sulla riga di comando viene interpretato come una serie di numeri esadecimali
(come sono forniti per VR=OB). Si prega di inserire questi tag nel dizionario per evitare
questo comportamento. Inoltre, specificando il -iun opzione, è possibile forzare dcmodifica lasciare
Valori ONU intatti. Utilizzando l'opzione -u Cosa dcmodifica salvando tutti gli attributi VR=UN come OB.
dcmodifica è in grado di lavorare con i cosiddetti percorsi di tag per accedere ai tag in sequenze. Il
la sintassi (pseudo-formalizzata) è
{sequenza[numero-elemento].}*elemento
dove 'sequenza' è un tag di sequenza come (0008,1111) o un nome di dizionario per un tag. 'elemento-
no' descrive il numero dell'elemento a cui accedere (contando da zero). 'elemento' definisce l'
tag di destinazione su cui lavorare. Un tag può essere specificato direttamente come (0010,0010) o tramite
il nome del dizionario corrispondente 'PatientName'. Il simbolo '*' indica che è possibile ripetere
istruzioni di sequenza per accedere a livelli più profondi nei file DICOM (vedere la sezione ESEMPI). Per
'item-no', anche un carattere jolly '*' può essere utilizzato per selezionare tutti gli elementi circostanti
sequenza (vedere la sezione CARATTERI JOLLY di seguito).
Quando si inseriscono percorsi di tag costituiti da più nodi (ovvero non da un singolo elemento) utilizzando
, il -i opzione, vengono inseriti tutti gli elementi del percorso mancanti (elementi, sequenze, elementi foglia)
automaticamente quando mancante. Questo non funziona per i caratteri jolly degli elementi: quando non c'è un singolo elemento
esiste nella sequenza circostante dcmodifica ovviamente non riesco a decidere quanti elementi dovrebbero
essere generato. Tuttavia, se si specifica un numero di articolo come '5', tutti e 6 gli articoli (contati da
zero) possono essere (e sono) generati automaticamente in modalità di inserimento. Se già 2 elementi sarebbero
esiste, il resto (4) verrebbe inserito.
Si prega di notare che ci sono alcuni problemi riguardanti la modifica dei tag privati (vedere
(sezione TAG PRIVATI) e per modificare gli UID (sezione MODIFICA UID).
PARAMETRI
dcmfile-in Nome/i del file di input DICOM da modificare
VERSIONI
generale Opzioni
-h --aiuto
stampa questo testo di aiuto ed esci
--versione
stampa le informazioni sulla versione ed esci
--argomenti
stampa gli argomenti della riga di comando espansi
-q --silenzioso
modalità silenziosa, non stampa avvisi ed errori
-v --verboso
modalità dettagliata, stampa dei dettagli di elaborazione
-d --debug
modalità di debug, stampa informazioni di debug
-ll --log-level [l]evel: costante di stringa
(fatale, errore, avviso, informazioni, debug, traccia)
usa il livello l per il logger
-lc --log-config [f]nomeile: stringa
usa il file di configurazione f per il logger
ingresso Opzioni
formato del file di input:
+f --file di lettura
leggi il formato del file o il set di dati (predefinito)
+fo --sola-lettura-file
leggi solo il formato file
-f --leggi-dataset
leggere il set di dati senza meta informazioni sul file
+fc --crea-file
crea un formato di file se il file non esiste
sintassi di trasferimento in ingresso:
-t= --read-xfer-auto
usa il riconoscimento TS (predefinito)
-td --read-xfer-detect
ignora TS specificato nella meta intestazione del file
-te --read-xfer-piccolo
leggi con VR little endian TS esplicito
-tb --read-xfer-big
leggere con TS big endian VR esplicito
-ti --read-xfer-implicito
leggere con VR implicita little endian TS
analisi di attributi di lunghezza dispari:
+ao --accetta-lunghezza-dispari
accetta attributi di lunghezza dispari (predefinito)
+ae --assume-uguale-lunghezza
supponiamo che la lunghezza reale sia maggiore di un byte
correzione automatica dei dati:
+dc --abilita-correzione
abilitare la correzione automatica dei dati (impostazione predefinita)
-dc --disabilita-correzione
disabilitare la correzione automatica dei dati
formato bitstream dell'input sgonfio:
+bd --bitstream-sgonfiato
aspetta un bitstream sgonfio (predefinito)
+bz --bitstream-zlib
aspettati un flusso di bit zlib sgonfio
lavorazione Opzioni
file di input di backup:
--backup
eseguire il backup dei file prima di modificarli (predefinito)
-nb --nessun backup
non eseguire il backup dei file (PERICOLOSO)
modalità di inserimento:
-i --insert "[t]ag-path=[v]alue"
inserisci (o sovrascrivi) il percorso nella posizione t con il valore v
-if --insert-from-file "[t]ag-path=[f]ilename"
inserisci (o sovrascrivi) il percorso nella posizione t con il valore dal file f
-nrc --no-reserv-check
non controllare le prenotazioni private
modalità di modifica:
-m --modifica "[t]ag-path=[v]alue"
modifica il tag nella posizione t al valore v
-mf --modify-from-file "[t]ag-path=[f]ilename"
modifica il tag nella posizione t con il valore dal file f
-ma --modify-all "[t]ag=[v]alue"
modifica TUTTI i tag corrispondenti t nel file al valore v
modalità di cancellazione:
-e --erase "[t]ag-path"
cancella tag/elemento nella posizione t
-ea --erase-all "[t]ag"
cancella TUTTI i tag corrispondenti t nel file
-ep --cancella-privato
cancella TUTTI i dati privati dal file
identificatore univoco:
-gst --gen-stud-uid
genera un nuovo UID dell'istanza di studio
-gse --gen-ser-uid
genera un nuovo UID dell'istanza della serie
-gin --gen-inst-uid
genera un nuovo UID dell'istanza SOP
-nmu --no-meta-uid
non aggiornare gli UID dei metaheader se correlati
Gli UID nel set di dati vengono modificati
gestione degli errori:
-ie --ignore-errors
continua con il file, se si verifica un errore di modifica
-imt --ignora-tag-mancanti
considera "tag non trovato" come un successo
quando si modificano o si cancellano file
-iun --ignora-i-valori
non provare a scrivere alcun valore negli elementi
avere una realtà virtuale delle Nazioni Unite
produzione Opzioni
formato del file di output:
+F --scrivi-file
scrivere il formato del file (predefinito)
-F --write-set di dati
scrivi set di dati senza meta informazioni sul file
sintassi di trasferimento dell'output:
+t= --write-xfer-stesso
scrivere con lo stesso TS dell'input (predefinito)
+te --write-xfer-piccolo
scrivi con VR little endian TS esplicito
+tb --write-xfer-grande
scrivi con VR big endian TS esplicito
+ti --write-xfer-implicito
scrivere con VR implicito little endian TS
rappresentazioni di valore post-1993:
+u --abilita-nuovo-vr
abilita il supporto per i nuovi VR (UN/UT) (predefinito)
-u --disable-nuovo-vr
disabilita il supporto per i nuovi VR, converti in OB
codifica della lunghezza del gruppo:
+g= --group-length-ricalc
ricalcolare le lunghezze del gruppo se presente (impostazione predefinita)
+g --gruppo-lunghezza-creare
scrivi sempre con elementi di lunghezza di gruppo
-g --group-length-remove
scrivi sempre senza elementi di lunghezza del gruppo
codifica della lunghezza in sequenze ed elementi:
+le --length-explicit
scrivere con lunghezze esplicite (predefinito)
-le --lunghezza-indefinita
scrivere con lunghezze indefinite
riempimento finale del set di dati (non con --write-dataset):
-p= --padding-retain
non modificare il riempimento (impostazione predefinita in caso contrario --write-dataset)
-p --imbottitura
nessun riempimento (implicito se --write-dataset)
+p --padding-create [f]ile-pad [i]tem-pad: intero
allinea il file su più di f byte e gli elementi su
multiplo di i byte
PRIVATO TAGS
Ci sono alcuni problemi che devi considerare quando lavori con tag privati. Tuttavia,
l'inserimento o la modifica di un tag di prenotazione (gggg,00xx) dovrebbe sempre funzionare.
inserimenti
Se desideri inserire un tag privato (non una prenotazione con gggg,00xx), assicurati che
l'hai elencato nel tuo dizionario (vedi /datadict.txt per i dettagli). Se non lo è
elencato, dcmodifica lo inserirà con VR=UN. Inoltre, in alcuni casi l'inserimento potrebbe anche fallire
per alcuni valori.
Se hai il tuo tag privato nel dizionario, dcmodifica agisce come segue: Quando trova
una prenotazione nel dataset di chiusura del tag, il cui creatore privato corrisponde, l'inserimento è
fatto con il VR trovato nel dizionario e il valore dato sulla riga di comando. Ma se il
il creatore privato non corrisponde o non è impostato nessuno, dcmodifica restituirà un errore. Se un
il tag privato dovrebbe essere inserito indipendentemente dal fatto che non esista una prenotazione, l'opzione
-nrc può essere utilizzato, forzando un inserimento. Tuttavia, il VR è impostato su UN, perché il tag
allora non può essere trovato nel dizionario.
Vedere la descrizione sopra per sapere come vengono gestiti gli inserimenti di valori in elementi con VR sconosciuto.
modifiche
Se modifichi il valore di un tag privato, dcmodifica non controllerà la sua VR rispetto al dizionario. Quindi
fai attenzione a inserire solo valori che corrispondono al VR del tag.
Se desideri modificare il valore di un tag privato e VR, perché hai appena aggiunto questo tag al tuo
dizionario, puoi eliminarlo con dcmodifica e reinserirlo. Quindi dcmodifica usa il tuo
voce del dizionario per determinare la VR corretta (vedere anche la sottosezione inserimenti).
Inoltre, vedere la descrizione sopra su come inserire valori in elementi con VR sconosciuto
gestito.
eliminazioni
Quando si utilizza dcmodifica per eliminare un tag di prenotazione privato, tieni presente che dcmodifica Non sarà
toccare i tag privati che sono sotto questa prenotazione. L'utente è costretto a gestire il
coerenza tra le prenotazioni e i relativi tag privati.
Per l'eliminazione dei tag privati non di prenotazione non ci sono problemi particolari.
MUTEVOLE UIDS
dcmodifica correggerà automaticamente 'Media Storage SOP Class UID' e 'Media Storage SOP
'UID istanza' nel metaheader, se si apportano modifiche ai tag correlati nel dataset
('UID classe SOP' e 'UID istanza SOP') tramite le opzioni della modalità di inserimento o modifica. È possibile
disattivare questo comportamento utilizzando il -nmu opzione.
Se si generano nuovi UID con -gst, -gse or -Gin, questo influenzerà solo l'UID che hai scelto
per generare. Quindi se usi -gst per generare un nuovo 'UID istanza studio', quindi 'Serie
'UID istanza' e 'UID istanza SOP' non saranno interessati! Questo ti dà la possibilità
per generare ciascun valore separatamente. Normalmente, si modificherebbero anche gli UID "sottostanti".
Come svantaggio di questa flessibilità, l'utente deve assicurarsi che quando crea "nuovo"
File DICOM con nuovi UID con dcmodifica, altri UID devono essere aggiornati dall'utente come
necessario.
Quando si sceglie il -Gin opzione, il tag metaheader correlato ('Media Storage SOP Instance
L'UID') viene aggiornato automaticamente. Questo comportamento non può essere disabilitato.
CREARE NUOVA FILE
Opzione --crea-file Cosa dcmodifica creare un file se non esiste già sul disco.
Questo può essere utilizzato per creare file da zero eseguendo operazioni consecutive
inserimenti con opzioni come --inserireQuesto potrebbe rivelarsi particolarmente utile quando si crea
file di query per strumenti come trovare or movescuNel caso in cui non sia disponibile una sintassi specifica per il trasferimento dell'output
è definito, dcmodifica sceglie Little Endian Explicit Uncompressed per l'output. File che
sono appena creati e vengono sempre scritti come formato di file DICOM, ovvero opzione --scrivi-set di dati is
non consentito insieme a --creareIn questo modo, almeno il metaheader è scritto e non
file con lunghezza di byte zero viene creato in un caso in cui non vengono eseguiti inserimenti nel
dcmodifica chiamata.
ELEMENT VALORI DA RISORSE
Per leggere il valore dell'elemento da un file invece di specificarlo nel comando
linea, opzione -mf e -Se può essere utilizzato. Si prega di notare che per gli elementi OW, i dati sono
dovrebbe essere ordinato little endian e verrà scambiato se necessario. La dimensione del file
dovrebbe essere sempre un numero pari di byte, ovvero non viene eseguito alcun riempimento automatico.
CARTE SELVATICHE
dcmodifica consente anche l'uso del carattere jolly '*' per i numeri degli elementi nel percorso
espressioni, ad esempio 'ContentSequence[*].CodeValue' seleziona tutti gli attributi 'Code Value' in
tutti gli elementi della ContentSequence. L'utilizzo di un carattere jolly è possibile per tutte le operazioni di base,
cioè modificando -m, inserendo -i e -e opzioni che lo rendono, insieme all'automatico
creazione di nodi di percorso intermedi uno strumento potente per la costruzione e l'elaborazione
set di dati complessi.
Le opzioni -mamma e -ea per modificare o eliminare tutte le occorrenze di un elemento DICOM basato
sul suo tag non accettano caratteri jolly ma funzionano solo su singoli elementi (ad esempio un singolo
nome del dizionario o chiave del tag).
ESEMPI
-i --inserisci:
dcmodify -i "(0010,0010)=Un nome" file.dcm
Inserisce il tag PatientName in 'file.dcm' al 1° livello.
Se il tag esiste già, -i lo sovrascriverà! Se vuoi
inserisci un elemento con molteplicità di valori > 1 (ad esempio 4)
puoi farlo con: dcmodify -i "(0018,1310)=1\2\3\4"
dcmodify -i "(0008,1111)[0].PatientName=Un altro nome" *.dcm
Inserisce il tag PatientName nel primo elemento della sequenza
(0008,1111). Si noti che l'uso dei caratteri jolly per i file è
possibile. È possibile specificare anche percorsi di tag più lunghi (ad esempio
"(0008,1111)[0].(0008,1111)[1].(0010,0010)=A Third One").
Se una qualsiasi parte del percorso, ad esempio la sequenza o l'elemento "0"
non esiste, viene inserito automaticamente da dcmodify.
dcmodify -i "(0008,1111)[*].PatientName=Un altro nome" *.dcm
Inserisce il tag PatientName in _ogni_ elemento della sequenza
(0008,1111). Si noti che l'uso dei caratteri jolly per i file è
possibile. È possibile specificare anche percorsi di tag più lunghi (ad esempio
"(0008,1111)[*].(0008,1111)[*].(0010,0010)=Un terzo").
-se --inserisci-da-file:
dcmodify -if "PixelData=pixel.raw" file.dcm
Inserisce il contenuto del file 'pixel.raw' nell'elemento PixelData
di 'file.dcm'. Il contenuto del file verrà letto così com'è.
Si prevede che i dati OW siano ordinati little endian e saranno
scambiati se necessario. Non verranno effettuati controlli per garantire che il
la quantità di dati è ragionevole in termini di altri attributi come
Righe o colonne.
-m --modifica:
dcmodify -m "(0010,0010)=Un nome" file.dcm
Cambia il tag (0010,0010) al 1° livello in "Un nome".
Questa opzione consente anche percorsi di tag più lunghi, come dimostrato
sopra per -i. Se l'elemento foglia o qualsiasi intermedio
parte del percorso non esiste, non è inserito così com'è
sarebbe se si utilizzasse l'opzione '-i'.
dcmodify -m "(0010,0010)=Un nome" -imt file.dcm
Cambia il tag (0010,0010) al 1° livello in "Un Nome". A causa del
data l'opzione '-imt', viene restituito successo invece di "tag non trovato",
se l'elemento/voce (o qualsiasi nodo intermedio in un percorso più lungo) lo fa
non esiste.
Si noti che per l'opzione '-m' l'ultimo nodo nel percorso deve essere
un elemento foglia, cioè non una sequenza o un elemento.
-mf --modifica-da-file:
dcmodify -mf "PixelData=pixel.raw" file.dcm
Fa lo stesso di -if nel caso in cui ci fosse già un elemento PixelData
in 'file.dcm'. Altrimenti non viene modificato nulla.
-ma --modifica-tutto:
dcmodify -ma "(0010,0010)=Nuovo nome" file.dcm
Fa lo stesso di -m ma funziona su tutti i tag corrispondenti trovati in
'file.dcm'. Pertanto, cerca l'intero set di dati, incluso
sequenze per il tag (0010,0010) e le cambia in "Nuovo nome"
-e --cancella:
dcmodify -e "(0010,0010)" *.dcm
Cancella il tag (0010,0010) in tutti i file *.dcm al 1° livello.
Questa opzione consente anche percorsi di tag più lunghi, come dimostrato
sopra per -i.
dcmodify -e "(0010,0010)" -imt *.dcm
Cancella il tag (0010,0010) in tutti i file *.dcm al 1° livello. A causa del
data l'opzione '-imt', viene restituito successo invece di "tag non trovato",
se l'elemento/voce (o qualsiasi nodo intermedio in un percorso più lungo) lo fa
non esiste.
-ea --cancella-tutto:
dcmodify -ea "(0010,0010)" *.dcm
Uguale a -e, ma effettua ricerche anche in sequenze ed elementi.
-ep --erase-private:
dcmodify -ep *.dcm
Elimina tutti i tag privati (ovvero i tag con un numero di gruppo dispari) da
tutti i file corrispondenti a *.dcm nella directory corrente.
-gst --gen-stud-uid:
dcmodify -gst file.dcm
Questo genera un nuovo valore per StudyInstanceUID
(0020,000d). Gli altri UID non vengono modificati!
-gse --gen-ser-uid:
dcmodify -gse file.dcm
Questo genera un nuovo valore per SeriesInstanceUID
(0020,000e). Gli altri UID non vengono modificati!
-gin --gen-inst-uid:
dcmodify -gin file.dcm
Questo comando genera un nuovo valore per SOPInstanceUID
(0008,0018). Il corrispondente MediaStorageSOPInstanceUID
(0002,0003) viene regolato automaticamente sul nuovo valore.
Si prega di notare che non è possibile evitare questo metaheader
aggiornare tramite l'opzione -nmu.
-nmu --no-meta-uid:
dcmodify -m "SOPInstanceUID=[UID]" -nmu *.dcm
Ciò modificherà SOPInstanceUID nel dato [UID],
ma -nmu evita che dcmodify regoli il
MediaStorageSOPInstanceUID anche nel metaheader..fi
ERRORE TRATTAMENTO
dcmodifica prova ad eseguire ogni operazione di modifica data sulla riga di comando: se uno restituisce un
errore, gli altri vengono eseguiti comunque. Tuttavia, in caso di errore, la versione modificata
il file non viene salvato, a meno che il --ignore-errori è specificata l'opzione. Se tale opzione è
selezionato, dcmodifica continua inoltre a modificare gli altri file specificati sulla riga di comando;
altrimenti dcmodifica esce dopo il primo file che presentava errori di modifica.
Se l' --ignora-tag-mancanti l'opzione è abilitata, qualsiasi operazione di modifica o cancellazione (ad esempio non
--inserire) che fallisce a causa di un tag inesistente viene considerato come riuscito.
ha senso se qualcuno vuole essere sicuro che tag specifici non siano presenti nel file
o che - se esistono - siano impostati su un valore specifico.
REGISTRAZIONE
Il livello di registrazione dell'output dei vari strumenti della riga di comando e delle librerie sottostanti può
essere specificato dall'utente. Per impostazione predefinita, nello standard vengono scritti solo gli errori e gli avvisi
flusso di errore. Usando l'opzione --verboso anche messaggi informativi come i dettagli di elaborazione
sono segnalati. Opzione - debug può essere utilizzato per ottenere maggiori dettagli sull'attività interna,
ad esempio per scopi di debug. Altri livelli di registrazione possono essere selezionati utilizzando l'opzione --tronco d'albero-
livello. in --silenzioso vengono segnalati solo errori fatali. In tali eventi di errore molto gravi,
l'applicazione di solito termina. Per maggiori dettagli sui diversi livelli di registrazione,
vedere la documentazione del modulo 'oflog'.
Nel caso in cui l'output di registrazione debba essere scritto su file (facoltativamente con la rotazione del file di registro),
a syslog (Unix) o all'opzione registro eventi (Windows) --log-config può essere utilizzato. Questo
il file di configurazione consente anche di indirizzare solo determinati messaggi a un particolare output
stream e per filtrare determinati messaggi in base al modulo o all'applicazione in cui si trovano
sono generati. Un file di configurazione di esempio è fornito in /logger.cfg.
COMANDO LINE
Tutti gli strumenti della riga di comando utilizzano la seguente notazione per i parametri: parentesi quadre racchiudono
valori facoltativi (0-1), tre punti finali indicano che sono consentiti più valori
(1-n), una combinazione di entrambi significa valori da 0 a n.
Le opzioni della riga di comando si distinguono dai parametri da un segno '+' o '-' iniziale,
rispettivamente. Di solito, l'ordine e la posizione delle opzioni della riga di comando sono arbitrari (cioè
può apparire ovunque). Tuttavia, se le opzioni si escludono a vicenda, l'aspetto più a destra
viene utilizzato. Questo comportamento è conforme alle regole di valutazione standard delle comuni shell Unix.
Inoltre, è possibile specificare uno o più file di comando utilizzando un segno '@' come prefisso per
il nome del file (es @comando.txt). Tale argomento di comando è sostituito dal contenuto di
il file di testo corrispondente (più spazi bianchi sono trattati come un singolo separatore a meno che
compaiono tra due virgolette) prima di ogni ulteriore valutazione. Si prega di notare che
un file di comandi non può contenere un altro file di comandi. Questo approccio semplice ma efficace
permette di riassumere combinazioni comuni di opzioni/parametri ed evita lunghe e
righe di comando confuse (un esempio è fornito in file /dumppat.txt).
AMBIENTE
. dcmodifica l'utility tenterà di caricare i dizionari di dati DICOM specificati nel
DCMDICPATH variabile d'ambiente. Per impostazione predefinita, cioè se il DCMDICPATH variabile d'ambiente
non è impostato, il file /dicom.dic verrà caricato a meno che non venga creato il dizionario
nell'applicazione (impostazione predefinita per Windows).
Il comportamento predefinito dovrebbe essere preferito e il DCMDICPATH solo variabile d'ambiente
utilizzato quando sono richiesti dizionari di dati alternativi. Il DCMDICPATH variabile d'ambiente
ha lo stesso formato della shell Unix PERCORSO variabile in quanto i due punti (':') separa
inserimenti. Sui sistemi Windows, viene utilizzato un punto e virgola (';') come separatore. Il dizionario dei dati
il codice tenterà di caricare ogni file specificato nel DCMDICPATH variabile d'ambiente. Esso
è un errore se non è possibile caricare alcun dizionario dati.
COPYRIGHT
Copyright (C) 2003-2014 di OFFIS eV, Escherweg 2, 26121 Oldenburg, Germania.
Utilizzare dcmodify online utilizzando i servizi onworks.net