2013-01-11 39 views
1

我需要提取一些dicom圖像的每個患者的出生日期(DOB)。提出這個問題的原因是,我只會在這些dicom圖像中更改患者的月份和日期,以維護患者的隱私,而不是一年。我知道如何使用dcmtk更改DOB,但由於我不會更改完整日期,並且需要保持年份完好無損,所以我首先需要提取DOB並從中獲取年份,然後以這種方式進行更改將保持與以前一樣的一年。但我不知道什麼是dcmtk命令從dicom映像獲取患者DOB。你知道它是哪個命令嗎?哪個dcmtk命令用於提取患者DOB?

回答

2

您可以使用DCMTK的dcmdump與文件獲取文件信息的輸出:

dcmdump file.dcm 

主要生產:

# Dicom-File-Format 

# Dicom-Meta-Information-Header 
# Used TransferSyntax: Little Endian Explicit 
(0002,0000) UL 202          # 4, 1 FileMetaInformationGroupLength 
(0002,0001) OB 01\00         # 2, 1 FileMetaInformationVersion 
(0002,0002) UI =CTImageStorage       # 26, 1 MediaStorageSOPClassUID 
(0002,0003) UI [1.2.392.200036.9116.2.6.1.48.1211393765.1205425184.928242] # 58, 1 MediaStorageSOPInstanceUID 
(0002,0010) UI =LittleEndianImplicit     # 18, 1 TransferSyntaxUID 
(0002,0012) UI [1.2.804.114118.3]      # 16, 1 ImplementationClassUID 
(0002,0013) SH [eFilm]         # 6, 1 ImplementationVersionName 
(0002,0016) AE (no value available)      # 16, 0 SourceApplicationEntityTitle 

,你可以只grep來獲得正確的標籤:

dcmdump file.dcm | grep "(0010,0030)" 

哪將只輸出一行:

(0010,0030) DA [19330813]        # 8, 1 PatientBirthDate 

我想你可以弄清楚在這裏做什麼......但是你可能想在這一點上把這個輸出管道輸出到sed或awk。

+0

完全正確。我後來想到:p。 –

+1

請注意,dcmdump也可以打印指定標籤(「+ P」或「--search」) – BKewl

1

由於在以前的文章中評論說:

dcmdump.exe +P "0010,0030" file.dcm