from SegmentiontoImageData import SegmentiontoImageData from ImagetoRT import * import os import datetime import glob import time from organList import * # "Organ" and "color_table" if __name__ == "__main__": start = time.time() dataset_folders = 'MONAI/' patient_folders = os.listdir(dataset_folders) for patient_folder in patient_folders: print(patient_folder, '='*50) label_path = 'MONAI/' + patient_folder + '/' dcm_file_path = 'DICOM/' + patient_folder + '/' print(dcm_file_path, label_path) spacingDatabase, DICOMInformation = SegmentiontoImageData(dcm_file_path, label_path)() try: RT_filename = glob.glob(dcm_file_path + 'RS*.dcm')[0] except: RT_filename = glob.glob(dcm_file_path + 'RTSTRUCT_*.dcm')[0] print(RT_filename) DICOM_RT = pydicom.dcmread(RT_filename) # DICOM_RT = pydicom.dcmread(dcm_file_path + 'AI_2.16.840.1.113669.2.931128.13525386.20221107152223.918302.dcm') # print(DICOM_RT) AI_DICOM_RT = ImagetoRT(spacingDatabase, DICOMInformation, DICOM_RT, Organ)() # 特殊格式 ISOTIMEFORMAT = '%Y%m%d' date=datetime.date.today().strftime(ISOTIMEFORMAT) AI_DICOM_RT.StructureSetLabel = 'MONAI_Pred' + date AI_DICOM_RT.file_meta.MediaStorageSOPInstanceUID = DICOM_RT.SOPInstanceUID + date #'1.2.246.352.71.4.753219990087.110632.2017032321550020201013.dcm' AI_DICOM_RT.SOPInstanceUID = DICOM_RT.SOPInstanceUID + date # AI_DICOM_RT.file_meta.ImplementationClassUID = '1.3.6.1.4.1.9590.100.1.3.100.9.4' # pydicom.dataset.validate_file_meta(AI_DICOM_RT.file_meta) RT_filename = RT_filename.replace('RS','RS_MONAI') # RT_filename = RT_filename.replace('RTSTRUCT','AI_RTSTRUCT') pydicom.filewriter.dcmwrite(RT_filename, AI_DICOM_RT, write_like_original=True) # AI_DICOM_RT.save_as('python_cust_uid.dcm') end = time.time() print("執行時間:%f 秒\n\n" % (end - start))