in src/wsiToDcm.cpp [145:171]
std::unique_ptr<DcmFilePyramidSource> WsiToDcm::initDicomIngest(
bool load_frame_data_from_dicom_using_dcmtk) {
std::unique_ptr<DcmFilePyramidSource> dicomFile =
std::make_unique<DcmFilePyramidSource>(wsiRequest_->inputFile,
load_frame_data_from_dicom_using_dcmtk);
if (!dicomFile->isValid()) {
throw 1;
}
svsLevelCount_ = 1;
largestSlideLevelWidth_ = dicomFile->imageWidth();
largestSlideLevelHeight_ = dicomFile->imageHeight();
wsiRequest_->frameSizeX = dicomFile->frameWidth();
wsiRequest_->frameSizeY = dicomFile->frameHeight();
if (wsiRequest_->studyId.size() < 1) {
wsiRequest_->studyId =
std::move(static_cast<std::string>(dicomFile->studyInstanceUID()));
}
if (wsiRequest_->seriesId.size() < 1) {
wsiRequest_->seriesId =
std::move(static_cast<std::string>(dicomFile->seriesInstanceUID()));
}
if (wsiRequest_->imageName.size() < 1) {
wsiRequest_->imageName =
std::move(static_cast<std::string>(dicomFile->seriesDescription()));
}
return std::move(dicomFile);
}