annotate Framework/StoneInitialization.cpp @ 1327:4f8db2d202c8 broker

OrthancSeriesProgressiveLoader now has two modes that can be selected at object creation : - progressive (will first load jpeg50, then jpeg90 then PAM) - non-progressive (will directly load PAM (uncompressed)) Please note that the slice loading order remains dynamic and depending upon the slice that the client code wishes to extract from the volume.
author Benjamin Golinvaux <bgo@osimis.io>
date Wed, 25 Mar 2020 14:34:27 +0100
parents c38c89684d83
children 1c2d065ba372
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 /**
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 * Stone of Orthanc
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 * Department, University Hospital of Liege, Belgium
1270
2d8ab34c8c91 upgrade to year 2020
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
5 * Copyright (C) 2017-2020 Osimis S.A., Belgium
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 *
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 * This program is free software: you can redistribute it and/or
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 * modify it under the terms of the GNU Affero General Public License
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 * as published by the Free Software Foundation, either version 3 of
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * the License, or (at your option) any later version.
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 *
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful, but
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * Affero General Public License for more details.
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 *
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * You should have received a copy of the GNU Affero General Public License
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 **/
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 #include "StoneInitialization.h"
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 #if !defined(ORTHANC_ENABLE_SDL)
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 # error Macro ORTHANC_ENABLE_SDL must be defined
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 #endif
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27
1187
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
28 #if !defined(ORTHANC_ENABLE_QT)
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
29 # error Macro ORTHANC_ENABLE_QT must be defined
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
30 #endif
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
31
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
32 #if !defined(ORTHANC_ENABLE_SSL)
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
33 # error Macro ORTHANC_ENABLE_SSL must be defined
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
34 #endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
35
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
36 #if !defined(ORTHANC_ENABLE_CURL)
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
37 # error Macro ORTHANC_ENABLE_CURL must be defined
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
38 #endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
39
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
40 #if !defined(ORTHANC_ENABLE_DCMTK)
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
41 # error Macro ORTHANC_ENABLE_DCMTK must be defined
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
42 # if !defined(DCMTK_VERSION_NUMBER)
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
43 # error Macro DCMTK_VERSION_NUMBER must be defined
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
44 # endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
45 #endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
46
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 #if ORTHANC_ENABLE_SDL == 1
1047
efc5b62b9539 reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 804
diff changeset
48 # include "Viewport/SdlWindow.h"
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 #endif
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50
1187
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
51 #if ORTHANC_ENABLE_QT == 1
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
52 # include <QCoreApplication>
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
53 #endif
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
54
797
20262f5e5e88 Added missing HttpClient::GlobalInitialize in StoneInitialize
Benjamin Golinvaux <bgo@osimis.io>
parents: 663
diff changeset
55 #if ORTHANC_ENABLE_CURL == 1
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
56 # include <Core/HttpClient.h>
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
57 #endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
58
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
59 #if ORTHANC_ENABLE_DCMTK == 1
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
60 # include <Core/DicomParsing/FromDcmtkBridge.h>
797
20262f5e5e88 Added missing HttpClient::GlobalInitialize in StoneInitialize
Benjamin Golinvaux <bgo@osimis.io>
parents: 663
diff changeset
61 #endif
20262f5e5e88 Added missing HttpClient::GlobalInitialize in StoneInitialize
Benjamin Golinvaux <bgo@osimis.io>
parents: 663
diff changeset
62
1236
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
63 #if ORTHANC_ENABLE_WASM == 1
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
64 static double viewportsTimeout_ = 1000;
1299
c38c89684d83 replacing std::auto_ptr by std::unique_ptr
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1279
diff changeset
65 static std::unique_ptr<OrthancStone::WebGLViewportsRegistry> viewportsRegistry_;
1236
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
66 #endif
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
67
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
68 #include "Toolbox/LinearAlgebra.h"
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
69
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
70 #include <Core/OrthancException.h>
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
71 #include <Core/Toolbox.h>
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
72
1187
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
73 #include <locale>
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
74
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
75
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 namespace OrthancStone
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 {
663
b8b2bb75fde1 fix to include Stone within an Orthanc plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 613
diff changeset
78 #if ORTHANC_ENABLE_LOGGING_PLUGIN == 1
b8b2bb75fde1 fix to include Stone within an Orthanc plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 613
diff changeset
79 void StoneInitialize(OrthancPluginContext* context)
b8b2bb75fde1 fix to include Stone within an Orthanc plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 613
diff changeset
80 #else
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 void StoneInitialize()
663
b8b2bb75fde1 fix to include Stone within an Orthanc plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 613
diff changeset
82 #endif
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 {
663
b8b2bb75fde1 fix to include Stone within an Orthanc plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 613
diff changeset
84 #if ORTHANC_ENABLE_LOGGING_PLUGIN == 1
b8b2bb75fde1 fix to include Stone within an Orthanc plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 613
diff changeset
85 Orthanc::Logging::Initialize(context);
b8b2bb75fde1 fix to include Stone within an Orthanc plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 613
diff changeset
86 #else
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 Orthanc::Logging::Initialize();
663
b8b2bb75fde1 fix to include Stone within an Orthanc plugin
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 613
diff changeset
88 #endif
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
90 #if ORTHANC_ENABLE_SSL == 1
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
91 // Must be before curl
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
92 Orthanc::Toolbox::InitializeOpenSsl();
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93 #endif
797
20262f5e5e88 Added missing HttpClient::GlobalInitialize in StoneInitialize
Benjamin Golinvaux <bgo@osimis.io>
parents: 663
diff changeset
94
20262f5e5e88 Added missing HttpClient::GlobalInitialize in StoneInitialize
Benjamin Golinvaux <bgo@osimis.io>
parents: 663
diff changeset
95 #if ORTHANC_ENABLE_CURL == 1
20262f5e5e88 Added missing HttpClient::GlobalInitialize in StoneInitialize
Benjamin Golinvaux <bgo@osimis.io>
parents: 663
diff changeset
96 Orthanc::HttpClient::GlobalInitialize();
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
97 # if ORTHANC_ENABLE_SSL == 1
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
98 Orthanc::HttpClient::ConfigureSsl(false, "");
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
99 # endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
100 #endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
101
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
102 #if ORTHANC_ENABLE_DCMTK == 1
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
103 Orthanc::FromDcmtkBridge::InitializeDictionary(true);
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
104 Orthanc::FromDcmtkBridge::InitializeCodecs();
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
105 # if DCMTK_VERSION_NUMBER <= 360
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
106 OFLog::configure(OFLogger::FATAL_LOG_LEVEL);
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
107 # else
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
108 OFLog::configure(OFLogger::OFF_LOG_LEVEL);
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
109 # endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
110 #endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
111
1187
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
112 /**
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
113 * This call is necessary to make "boost::lexical_cast<>" work in
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
114 * a consistent way in the presence of "double" or "float", and of
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
115 * a numeric locale that replaces dot (".") by comma (",") as the
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
116 * decimal separator.
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
117 * https://stackoverflow.com/a/18981514/881731
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
118 **/
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
119 std::locale::global(std::locale::classic());
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
120
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
121 {
1187
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
122 // Run-time checks of locale settings, to be run after Qt has
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
123 // been initialized, as Qt changes locale settings
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
124
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
125 #if ORTHANC_ENABLE_QT == 1
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
126 if (QCoreApplication::instance() == NULL)
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
127 {
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
128 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls,
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
129 "Qt must be initialized before Stone");
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
130 }
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
131 #endif
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
132
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
133 {
1187
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
134 OrthancStone::Vector v;
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
135 if (!OrthancStone::LinearAlgebra::ParseVector(v, "1.3671875\\-1.3671875") ||
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
136 v.size() != 2 ||
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
137 !OrthancStone::LinearAlgebra::IsNear(1.3671875f, v[0]) ||
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
138 !OrthancStone::LinearAlgebra::IsNear(-1.3671875f, v[1]))
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
139 {
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
140 throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError,
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
141 "Error in the locale settings, giving up");
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
142 }
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
143 }
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
144
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
145 {
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
146 Json::Value dicomweb = Json::objectValue;
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
147 dicomweb["00280030"] = Json::objectValue;
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
148 dicomweb["00280030"]["vr"] = "DS";
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
149 dicomweb["00280030"]["Value"] = Json::arrayValue;
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
150 dicomweb["00280030"]["Value"].append(1.2f);
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
151 dicomweb["00280030"]["Value"].append(-1.5f);
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
152
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
153 Orthanc::DicomMap source;
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
154 source.FromDicomWeb(dicomweb);
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
155
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
156 std::string s;
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
157 OrthancStone::Vector v;
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
158 if (!source.LookupStringValue(s, Orthanc::DICOM_TAG_PIXEL_SPACING, false) ||
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
159 !OrthancStone::LinearAlgebra::ParseVector(v, s) ||
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
160 v.size() != 2 ||
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
161 !OrthancStone::LinearAlgebra::IsNear(1.2f, v[0]) ||
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
162 !OrthancStone::LinearAlgebra::IsNear(-1.5f, v[1]))
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
163 {
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
164 throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError,
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
165 "Error in the locale settings, giving up");
092ec2a225ad dealing with locales in Qt
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1167
diff changeset
166 }
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
167 }
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
168 }
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
169
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
170 #if ORTHANC_ENABLE_SDL == 1
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
171 OrthancStone::SdlWindow::GlobalInitialize();
797
20262f5e5e88 Added missing HttpClient::GlobalInitialize in StoneInitialize
Benjamin Golinvaux <bgo@osimis.io>
parents: 663
diff changeset
172 #endif
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 }
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
174
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 void StoneFinalize()
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 {
1236
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
178 #if ORTHANC_ENABLE_WASM == 1
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
179 viewportsRegistry_.reset();
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
180 #endif
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
181
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182 #if ORTHANC_ENABLE_SDL == 1
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183 OrthancStone::SdlWindow::GlobalFinalize();
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184 #endif
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
186 #if ORTHANC_ENABLE_DCMTK == 1
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
187 Orthanc::FromDcmtkBridge::FinalizeCodecs();
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
188 #endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
189
804
61ba4b504e9a PolylineSceneLayer now has one color per chain
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 797
diff changeset
190 #if ORTHANC_ENABLE_CURL == 1
61ba4b504e9a PolylineSceneLayer now has one color per chain
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 797
diff changeset
191 Orthanc::HttpClient::GlobalFinalize();
61ba4b504e9a PolylineSceneLayer now has one color per chain
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 797
diff changeset
192 #endif
61ba4b504e9a PolylineSceneLayer now has one color per chain
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 797
diff changeset
193
1167
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
194 #if ORTHANC_ENABLE_SSL == 1
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
195 Orthanc::Toolbox::FinalizeOpenSsl();
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
196 #endif
ad4e21df4e40 enriching OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1047
diff changeset
197
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
198 Orthanc::Logging::Finalize();
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
199 }
1236
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
200
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
201
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
202 #if ORTHANC_ENABLE_WASM == 1
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
203 void SetWebGLViewportsRegistryTimeout(double timeout)
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
204 {
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
205 if (viewportsRegistry_.get())
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
206 {
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
207 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
208 }
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
209 else
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
210 {
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
211 viewportsTimeout_ = timeout;
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
212 }
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
213 }
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
214 #endif
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
215
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
216
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
217 #if ORTHANC_ENABLE_WASM == 1
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
218 WebGLViewportsRegistry& GetWebGLViewportsRegistry()
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
219 {
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
220 if (viewportsRegistry_.get() == NULL)
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
221 {
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
222 viewportsRegistry_.reset(new WebGLViewportsRegistry(viewportsTimeout_));
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
223 }
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
224
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
225 return *viewportsRegistry_;
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
226 }
358461330978 global function GetWebGLViewportsRegistry()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1187
diff changeset
227 #endif
610
0c4c0693b97c OrthancStone::StoneInitialize()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
228 }