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