comparison Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp @ 1674:0621e523b670

number of frames in badge
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 23 Nov 2020 17:05:24 +0100
parents 570398585b5f
children 6fa05252b085
comparison
equal deleted inserted replaced
1673:dd50f8a1a2be 1674:0621e523b670
460 { 460 {
461 return false; 461 return false;
462 } 462 }
463 } 463 }
464 464
465 size_t GetSeriesNumberOfFrames(const std::string& seriesInstanceUid) const
466 {
467 OrthancStone::SeriesMetadataLoader::Accessor accessor(*metadataLoader_, seriesInstanceUid);
468
469 if (accessor.IsComplete())
470 {
471 size_t count = 0;
472
473 for (size_t i = 0; i < accessor.GetInstancesCount(); i++)
474 {
475 uint32_t f;
476 if (accessor.GetInstance(i).ParseUnsignedInteger32(f, Orthanc::DICOM_TAG_NUMBER_OF_FRAMES))
477 {
478 count += f;
479 }
480 else
481 {
482 count++;
483 }
484 }
485
486 return count;
487 }
488 else
489 {
490 return 0;
491 }
492 }
493
465 void AcquireObserver(IObserver* observer) 494 void AcquireObserver(IObserver* observer)
466 { 495 {
467 observer_.reset(observer); 496 observer_.reset(observer);
468 } 497 }
469 498
2358 EM_ASM({ 2387 EM_ASM({
2359 const customEvent = document.createEvent("CustomEvent"); 2388 const customEvent = document.createEvent("CustomEvent");
2360 customEvent.initCustomEvent("FrameUpdated", false, false, 2389 customEvent.initCustomEvent("FrameUpdated", false, false,
2361 { "canvasId" : UTF8ToString($0), 2390 { "canvasId" : UTF8ToString($0),
2362 "currentFrame" : $1, 2391 "currentFrame" : $1,
2363 "framesCount" : $2, 2392 "numberOfFrames" : $2,
2364 "quality" : $3 }); 2393 "quality" : $3 });
2365 window.dispatchEvent(customEvent); 2394 window.dispatchEvent(customEvent);
2366 }, 2395 },
2367 viewport.GetCanvasId().c_str(), 2396 viewport.GetCanvasId().c_str(),
2368 static_cast<int>(currentFrame), 2397 static_cast<int>(currentFrame),
2931 return GetViewport(canvas)->GetCineRate(); 2960 return GetViewport(canvas)->GetCineRate();
2932 } 2961 }
2933 EXTERN_CATCH_EXCEPTIONS; 2962 EXTERN_CATCH_EXCEPTIONS;
2934 return 0; 2963 return 0;
2935 } 2964 }
2965
2966
2967 EMSCRIPTEN_KEEPALIVE
2968 unsigned int GetSeriesNumberOfFrames(const char* seriesInstanceUid)
2969 {
2970 try
2971 {
2972 return GetResourcesLoader().GetSeriesNumberOfFrames(seriesInstanceUid);
2973 }
2974 EXTERN_CATCH_EXCEPTIONS;
2975 return 0;
2976 }
2936 } 2977 }