dicom ファイルのタグにはいろいろな情報が記録されています。
それを読み込みます。
import pydicom
class Dicom:
def getDicomInfo( self, fileN ):
ds = pydicom.read_file( fileN )
studyID = ds[0x0020, 0x0010].value
studyDate = ds[0x0008, 0x0020].value
studyTime = ds[0x0008, 0x0030].value
modality = ds[0x0008, 0x0060].value
try:
studyDscr = ds[0x0008, 0x1030].value
except:
studyDscr = ''
ptName = str(ds[0x0010, 0x0010].value).replace('^', ' ')
karteNo = ds[0x0010, 0x0020].value
sex = ds[0x0010, 0x0040].value
birthday = ds[0x0010, 0x0030].value
age = ds[0x0010, 0x1010].value
institution = ds[0x0008, 0x0080].value
infoArr = [ studyID, studyDate, studyTime, modality, studyDscr, ptName, karteNo, birthday, sex, age, institution ]
return infoArr
if __name__ == "__main__":
dcm = Dicom()
infos = dcm.getDicomInfo( '/var/www/html/sample.dcm' )
print(infos)
結果は、
['6587', '20171201', '084428', 'CT', 'Abdomen', 'HENO MOHENO', '21702284', '19290116', 'F', '088Y', 'SOME HP']
解説
studyDscr については何も書かれていないものがあるので例外処理をしました。
また、氏名は「HENO^^MOHNEO^^」みたいに「^」が付いているのでそれを削除しています。