1
votes

I'm reading attributes from each dicom file in directory and it takes a lot of time. My code :

       var patient_id = k_di_.DataSet.GetAttribute(DicomTags.PatientId);

How can i do the same, but reading only in dicomdir?

1

1 Answers

2
votes

The ClearCanvas library has a DicomDirectory class for reading and writing DICOMDIRs. You can traverse a DICOMDIR and read the Patient ID something like this:


DicomDirectory reader = new DicomDirectory("DICOMDIR");
reader.Load("DICOMDIR Filename");
DirectoryRecordSequenceItem record = reader.RootDirectoryRecord;
while (record != null)
{
    var patientId = record[DicomTags.PatientId];
    record = record.NextDirectoryRecord;
}