Mercurial > hg > orthanc-stone
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 } |