comparison Framework/Toolbox/OrthancSeriesLoader.cpp @ 118:a4d0b6c82b29 wasm

using Orthanc::DicomMap instead of OrthancPlugins::DicomDatasetReader
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 02 Oct 2017 14:31:26 +0200
parents 2eca030792aa
children
comparison
equal deleted inserted replaced
117:42c05a3baee3 118:a4d0b6c82b29
354 } 354 }
355 355
356 std::string uri = "/instances/" + slices_->GetSlice(0).GetInstanceId() + "/tags"; 356 std::string uri = "/instances/" + slices_->GetSlice(0).GetInstanceId() + "/tags";
357 357
358 OrthancPlugins::FullOrthancDataset dataset(orthanc_, uri); 358 OrthancPlugins::FullOrthancDataset dataset(orthanc_, uri);
359 OrthancPlugins::DicomDatasetReader reader(dataset); 359
360 360 Orthanc::DicomMap dicom;
361 if (!reader.GetUnsignedIntegerValue(width_, OrthancPlugins::DICOM_TAG_COLUMNS) || 361 MessagingToolbox::ConvertDataset(dicom, dataset);
362 !reader.GetUnsignedIntegerValue(height_, OrthancPlugins::DICOM_TAG_ROWS)) 362
363 if (!dicom.ParseUnsignedInteger32(width_, Orthanc::DICOM_TAG_COLUMNS) ||
364 !dicom.ParseUnsignedInteger32(height_, Orthanc::DICOM_TAG_ROWS))
363 { 365 {
364 throw Orthanc::OrthancException(Orthanc::ErrorCode_InexistentTag); 366 throw Orthanc::OrthancException(Orthanc::ErrorCode_InexistentTag);
365 } 367 }
366 368
367 DicomFrameConverter converter; 369 DicomFrameConverter converter;
368 converter.ReadParameters(dataset); 370 converter.ReadParameters(dicom);
369 format_ = converter.GetExpectedPixelFormat(); 371 format_ = converter.GetExpectedPixelFormat();
370 } 372 }
371 373
372 374
373 OrthancPlugins::IDicomDataset* OrthancSeriesLoader::DownloadDicom(size_t index) 375 OrthancPlugins::IDicomDataset* OrthancSeriesLoader::DownloadDicom(size_t index)
374 { 376 {
375 std::string uri = "/instances/" + slices_->GetSlice(index).GetInstanceId() + "/tags"; 377 std::string uri = "/instances/" + slices_->GetSlice(index).GetInstanceId() + "/tags";
376 378
377 std::auto_ptr<OrthancPlugins::IDicomDataset> dataset(new OrthancPlugins::FullOrthancDataset(orthanc_, uri)); 379 std::auto_ptr<OrthancPlugins::IDicomDataset> dataset(new OrthancPlugins::FullOrthancDataset(orthanc_, uri));
378 OrthancPlugins::DicomDatasetReader reader(*dataset); 380
379 381 Orthanc::DicomMap dicom;
380 unsigned int frames; 382 MessagingToolbox::ConvertDataset(dicom, *dataset);
381 if (reader.GetUnsignedIntegerValue(frames, OrthancPlugins::DICOM_TAG_NUMBER_OF_FRAMES) && 383
384 uint32_t frames;
385 if (dicom.ParseUnsignedInteger32(frames, Orthanc::DICOM_TAG_NUMBER_OF_FRAMES) &&
382 frames != 1) 386 frames != 1)
383 { 387 {
384 LOG(ERROR) << "One instance in this series has more than 1 frame"; 388 LOG(ERROR) << "One instance in this series has more than 1 frame";
385 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat); 389 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat);
386 } 390 }