Mercurial > hg > orthanc-stone
annotate Samples/WebAssembly/SingleFrameViewer/SingleFrameViewer.cpp @ 1383:ab871499ed30
SingleFrameViewer: refactored file locations + names to share files for RtViewer
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Mon, 27 Apr 2020 10:01:03 +0200 |
parents | 458ab069f313 |
children | 240531afdd2d |
rev | line source |
---|---|
1377
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
1 #include "SingleFrameViewerApplication.h" |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
2 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
3 #include <Framework/Loaders/WebAssemblyLoadersContext.h> |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
4 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
5 #include <Framework/StoneException.h> |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
6 #include <Framework/StoneInitialization.h> |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
7 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
8 #include <Core/Toolbox.h> |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
9 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
10 #include <emscripten.h> |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
11 #include <emscripten/html5.h> |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
12 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
13 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
14 #define DISPATCH_JAVASCRIPT_EVENT(name) \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
15 EM_ASM( \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
16 const customEvent = document.createEvent("CustomEvent"); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
17 customEvent.initCustomEvent(name, false, false, undefined); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
18 window.dispatchEvent(customEvent); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
19 ); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
20 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
21 #define EXTERN_CATCH_EXCEPTIONS \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
22 catch (Orthanc::OrthancException& e) \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
23 { \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
24 LOG(ERROR) << "OrthancException: " << e.What(); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
25 DISPATCH_JAVASCRIPT_EVENT("StoneException"); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
26 } \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
27 catch (OrthancStone::StoneException& e) \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
28 { \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
29 LOG(ERROR) << "StoneException: " << e.What(); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
30 DISPATCH_JAVASCRIPT_EVENT("StoneException"); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
31 } \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
32 catch (std::exception& e) \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
33 { \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
34 LOG(ERROR) << "Runtime error: " << e.what(); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
35 DISPATCH_JAVASCRIPT_EVENT("StoneException"); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
36 } \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
37 catch (...) \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
38 { \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
39 LOG(ERROR) << "Native exception"; \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
40 DISPATCH_JAVASCRIPT_EVENT("StoneException"); \ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
41 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
42 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
43 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
44 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
45 namespace OrthancStone |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
46 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
47 class Observer : public IWebViewerLoadersObserver |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
48 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
49 public: |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
50 virtual void SignalSeriesUpdated(LoadedDicomResources& series) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
51 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
52 LOG(INFO) << "====================================="; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
53 LOG(INFO) << series.GetSize() << " series"; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
54 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
55 /*for (size_t i = 0; i < series.GetSize(); i++) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
56 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
57 series.GetResource(i).Print(stdout); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
58 printf("\n"); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
59 }*/ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
60 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
61 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
62 virtual void SignalThumbnailLoaded(const std::string& studyInstanceUid, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
63 const std::string& seriesInstanceUid, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
64 SeriesThumbnailType type) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
65 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
66 LOG(INFO) << "*** Thumbnail loaded: " << studyInstanceUid << " / " |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
67 << seriesInstanceUid << " (type " << type << ")"; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
68 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
69 }; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
70 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
71 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
72 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
73 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
74 static std::auto_ptr<OrthancStone::WebAssemblyLoadersContext> context_; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
75 static boost::shared_ptr<OrthancStone::Application> application_; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
76 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
77 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
78 extern "C" |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
79 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
80 int main(int argc, char const *argv[]) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
81 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
82 try |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
83 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
84 Orthanc::Logging::Initialize(); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
85 Orthanc::Logging::EnableInfoLevel(true); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
86 //Orthanc::Logging::EnableTraceLevel(true); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
87 LOG(WARNING) << "Initializing native Stone"; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
88 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
89 LOG(WARNING) << "Compiled with Emscripten " << __EMSCRIPTEN_major__ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
90 << "." << __EMSCRIPTEN_minor__ |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
91 << "." << __EMSCRIPTEN_tiny__; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
92 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
93 LOG(INFO) << "Endianness: " << Orthanc::EnumerationToString(Orthanc::Toolbox::DetectEndianness()); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
94 context_.reset(new OrthancStone::WebAssemblyLoadersContext(1, 4, 1)); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
95 context_->SetLocalOrthanc(".."); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
96 context_->SetDicomCacheSize(128 * 1024 * 1024); // 128MB |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
97 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
98 DISPATCH_JAVASCRIPT_EVENT("StoneInitialized"); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
99 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
100 EXTERN_CATCH_EXCEPTIONS; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
101 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
102 return 0; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
103 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
104 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
105 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
106 EMSCRIPTEN_KEEPALIVE |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
107 void InitializeViewport(const char* canvasId) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
108 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
109 try |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
110 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
111 if (context_.get() == NULL) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
112 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
113 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
114 "The loaders context is not available yet"); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
115 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
116 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
117 if (application_.get() != NULL) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
118 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
119 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
120 "Only one single viewport is available for this application"); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
121 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
122 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
123 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
124 std::auto_ptr<OrthancStone::Observer> observer(new OrthancStone::Observer); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
125 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
126 #if 1 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
127 OrthancStone::DicomSource source1; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
128 //source1.SetDicomWebSource("http://localhost:8042/dicom-web"); source1.SetDicomWebRendered(true); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
129 source1.SetDicomWebThroughOrthancSource("self"); source1.SetDicomWebRendered(true); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
130 //source1.SetDicomWebThroughOrthancSource("my-google"); source1.SetDicomWebRendered(false); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
131 boost::shared_ptr<OrthancStone::WebViewerLoaders> app2( |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
132 OrthancStone::WebViewerLoaders::Create(*context_, source1, true, observer.release())); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
133 #else |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
134 OrthancStone::DicomSource source1; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
135 source1.SetOrthancSource(); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
136 boost::shared_ptr<OrthancStone::WebViewerLoaders> app2( |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
137 OrthancStone::WebViewerLoaders::Create(*context_, source1, true, observer.release())); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
138 //app2->AddOrthancStudy("27f7126f-4f66fb14-03f4081b-f9341db2-53925988"); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
139 //app2->AddOrthancSeries("1e2c125c-411b8e86-3f4fe68e-a7584dd3-c6da78f0"); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
140 #endif |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
141 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
142 // BRAINIX |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
143 //app2->AddDicomAllSeries(); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
144 //app2->AddDicomStudy("2.16.840.1.113669.632.20.1211.10000357775"); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
145 app2->AddDicomSeries("2.16.840.1.113669.632.20.1211.10000357775", "1.3.46.670589.11.0.0.11.4.2.0.8743.5.3800.2006120117110979000"); // Standard image: type 5 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
146 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
147 app2->AddDicomStudy("1.3.51.0.7.633920140505.6339234439.633987.633918098"); // "Video" type 4: video720p.dcm |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
148 app2->AddDicomStudy("1.2.276.0.7230010.3.1.2.2344313775.14992.1458058404.7528"); // "PDF" type 3: pdf.dcm |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
149 app2->AddDicomSeries("1.2.276.0.7230010.3.1.2.296485376.1.1568899779.944131", "1.2.276.0.7230010.3.1.3.296485376.1.1568899781.944588"); // RTSTRUCT, "Unsupported" type 2: DICOM/WebViewer2/TFE/IMAGES/IM452 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
150 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
151 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
152 //app2->AddDicomStudy("1.2.276.0.7230010.3.1.2.380371456.1.1544616291.954997"); // CSPO |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
153 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
154 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
155 boost::shared_ptr<OrthancStone::WebGLViewport> viewport(OrthancStone::GetWebGLViewportsRegistry().Add(canvasId)); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
156 application_ = OrthancStone::Application::Create(*context_, viewport); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
157 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
158 // Paint the viewport to black |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
159 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
160 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
161 OrthancStone::WebGLViewportsRegistry::Accessor accessor( |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
162 OrthancStone::GetWebGLViewportsRegistry(), canvasId); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
163 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
164 if (accessor.IsValid()) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
165 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
166 accessor.GetViewport().Invalidate(); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
167 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
168 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
169 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
170 EXTERN_CATCH_EXCEPTIONS; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
171 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
172 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
173 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
174 EMSCRIPTEN_KEEPALIVE |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
175 void LoadOrthanc(const char* instance, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
176 int frame) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
177 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
178 try |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
179 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
180 if (application_.get() != NULL) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
181 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
182 OrthancStone::DicomSource source; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
183 application_->LoadOrthancFrame(source, instance, frame); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
184 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
185 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
186 EXTERN_CATCH_EXCEPTIONS; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
187 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
188 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
189 |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
190 EMSCRIPTEN_KEEPALIVE |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
191 void LoadDicomWeb(const char* server, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
192 const char* studyInstanceUid, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
193 const char* seriesInstanceUid, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
194 const char* sopInstanceUid, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
195 int frame) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
196 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
197 try |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
198 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
199 if (application_.get() != NULL) |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
200 { |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
201 OrthancStone::DicomSource source; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
202 source.SetDicomWebThroughOrthancSource(server); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
203 application_->LoadDicomWebFrame(source, studyInstanceUid, seriesInstanceUid, |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
204 sopInstanceUid, frame); |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
205 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
206 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
207 EXTERN_CATCH_EXCEPTIONS; |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
208 } |
458ab069f313
Fixed missing file in WASM sample
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff
changeset
|
209 } |