def generateCustomDicomFiles(self, studySeriesSopUIDsTuple, customFieldsDictionary, sourceDcmFile, destFolder): dcmReader = DicomReader(sourceDcmFile) patientName = customFieldsDictionary['PATIENT_NAME'] patientID = customFieldsDictionary['PATIENT_ID'] accessionNumber = customFieldsDictionary['ACCESSION_NUMBER'] for uids in studySeriesSopUIDsTuple: studyUID = uids[0] seriesUID = uids[1] sopUID = uids[2] destFile = destFolder + '/' + sopUID + '.' + patientID + '.dcm' substitutionList = [] substitutionList.append(['PatientsName', patientName]) substitutionList.append(['PatientID', patientID]) substitutionList.append(['AccessionNumber', accessionNumber]) substitutionList.append(['StudyInstanceUID', studyUID]) substitutionList.append(['SeriesInstanceUID', seriesUID]) substitutionList.append(['SOPInstanceUID', sopUID]) substitutionList.append(['MediaStorageSOPInstanceUID', sopUID]) # file meta success = dcmReader.saveAs(destFile, substitutionList) return success
def _findKosFile(self, retreivedFilesDirectory): for file in os.listdir(retreivedFilesDirectory): filePath = retreivedFilesDirectory + '/' + file; if(DicomReader().isValidDcmFile(filePath)): kosDcm = DicomReader(filePath); if kosDcm.containsKosSequence(): return kosDcm; return None;
def _findNonKosDicomFiles(self, retreivedFilesDirectory): dcms = []; for file in os.listdir(retreivedFilesDirectory): filePath = retreivedFilesDirectory + '/' + file; if(DicomReader().isValidDcmFile(filePath)): dcm = DicomReader(filePath); if not dcm.containsKosSequence(): dcms.append(dcm); return dcms;
def generateCustomDicomFiles(self, studySeriesSopUIDsTuple, customFieldsDictionary, sourceDcmFile, destFolder): dcmReader = DicomReader(sourceDcmFile); patientName = customFieldsDictionary['PATIENT_NAME']; patientID = customFieldsDictionary['PATIENT_ID']; accessionNumber = customFieldsDictionary['ACCESSION_NUMBER']; for uids in studySeriesSopUIDsTuple: studyUID = uids[0]; seriesUID = uids[1]; sopUID = uids[2]; destFile = destFolder + '/' + sopUID + '.' + patientID + '.dcm'; substitutionList = []; substitutionList.append(['PatientsName', patientName]); substitutionList.append(['PatientID', patientID]); substitutionList.append(['AccessionNumber', accessionNumber]); substitutionList.append(['StudyInstanceUID', studyUID]); substitutionList.append(['SeriesInstanceUID', seriesUID]); substitutionList.append(['SOPInstanceUID', sopUID]); substitutionList.append(['MediaStorageSOPInstanceUID', sopUID]); # file meta success = dcmReader.saveAs(destFile, substitutionList); return success;
print('Getting Patient Diagnosis From %s' % (patients_csv)) for index, row in data.iterrows(): if row['cancer'] == 0: patient_diagnosis[row['id']] = np.array([1,0]) else: patient_diagnosis[row['id']] = np.array([0,1]) # Resample the images not found in the resampled directory. # This will take some time. for i in range(len(processPatientArray)): patient_name = processPatientArray[i].split(file_split)[-1] print('[%d/%d]\tPatient %s' % (i+1, len(processPatientArray), patient_name)) print('\tReading Slices...') slices = DicomReader.readFromDir(processPatientArray[i]) print('\tConverting to hu...') image = DicomReader.convertHounsfield(slices) print('\tDownsizing...') resampled_image = ImageMath.downsize(image, downsize_shape) print('\tReshaping Slices...') resampled_image = ImageMath.chunkify(resampled_image, slice_target=slice_count) print('\tExtracting Lung Data...') lungs = DicomReader.segmentLungMask(resampled_image, False) print('\tNormalizing...') lungs = ImageMath.normalize(lungs)
def _extractSopInstanceUID(self, dcmFileName): if DicomReader().isValidDcmFile(dcmFileName): dcm = DicomReader(dcmFileName); return dcm.getSopInstanceUID();
def __init__(self, path): DicomReader(path).read()
class DicomWorker: def __init__(self, path): DicomReader(path).read() if __name__ == "__main__": ap = argparse.ArgumentParser( description="", formatter_class=argparse.ArgumentDefaultsHelpFormatter ) #apg = ap.add_argument_group(title="Input Output") #apg.add_argument("-i", "--input", help="Input 7 Segment Image", type=str, default="7SegInput.png") #apg.add_argument("-o", "--output", help="Output 7 Segment Font", type=str, default="7SegOutput.bmp") #apg.add_argument("-b", "--background", help="Background color", type=int, nargs=3, default=[3, 17, 34]) #apg.add_argument("-c", "--color", help="Segment color", type=int, nargs=3, default=[255, 255, 0]) #apg.add_argument("-r", "--rainbow", help="Segment color", action='store_true') #apg.add_argument("-s", "--skewness", help="Italic factor", type=float, default=0) #args = ap.parse_args(sys.argv[1:]) dw = DicomReader("/data/image/tcia/110/") imageVtk = VtkImageHelper() print(dw.getImageInformation()) test = imageVtk.createVtkMarchingCube(dw.getArrayDicom(), dw.getImageInformation()) writer = vtk.vtkXMLPolyDataWriter() writer.SetFileName("/home/christoph/test.vtp") writer.SetInputData(test) writer.Write()