ARTICLE AD BOX
I'm trying to anonymize DICOM files in place using DCMTK. The following code does successfuly change the tags in the modified file, but the pixel data is blank. What might be happening?
const char *anonStr = "Anon"; const char *anonDate = "10000101"; const char *anonTime = "000000.000000"; QStringList files = FindAllFiles(dir, "*"); foreach (QString file, files) { OFFilename f = file.toStdString().c_str(); DcmFileFormat fileformat; OFCondition status = fileformat.loadFile(f); if (status.good()) { DcmDataset *dataset = fileformat.getDataset(); qDebug() << "Original TS:" << DcmXfer(dataset->getOriginalXfer()).getXferName(); if (dataset->tagExists(DCM_ReferringPhysicianName)) { dataset->putAndInsertString(DCM_ReferringPhysicianName, anonStr); if (dataset->tagExists(DCM_PerformingPhysicianName)) { dataset->putAndInsertString(DCM_PerformingPhysicianName, anonStr); if (dataset->tagExists(DCM_OperatorsName)) { dataset->putAndInsertString(DCM_OperatorsName, anonStr); if (dataset->tagExists(DCM_PatientName)) { dataset->putAndInsertString(DCM_PatientName, anonStr); if (dataset->tagExists(DCM_PatientBirthDate)) { dataset->putAndInsertString(DCM_PatientBirthDate, anonDate); status = fileformat.saveFile(f, dataset->getOriginalXfer(), EET_ExplicitLength, EGL_recalcGL, EPD_noChange); if (status.good()) { std::cout << "Tag modified successfully." << std::endl; } else { std::cerr << "Error: Cannot save file (" << status.text() << ")" << std::endl; } } else { std::cerr << "Error: Cannot load DICOM file (" << status.text() << ")" << std::endl; } }6291 gold badge6 silver badges22 bronze badges
4
Explore related questions
See similar questions with these tags.
