annotate OrthancServer/ServerIndexChange.h @ 2294:e371519d4ac9

added -U option to gdcmconv to prevent gdcmconv to mess up the files. Without that option, we have seen the SpecificCharSet tag becoming invalid !!! (seen on the VIX samples)
author Alain Mazy <am@osimis.io>
date Tue, 04 Jul 2017 15:36:19 +0000
parents a3a65de1840f
children 878b59270859
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 /**
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 * Orthanc - A Lightweight, RESTful DICOM Store
1900
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1737
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
1288
6e7e5ed91c2d upgrade to year 2015
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1242
diff changeset
4 * Department, University Hospital of Liege, Belgium
2244
a3a65de1840f shared copyright with osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2143
diff changeset
5 * Copyright (C) 2017 Osimis, Belgium
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 *
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 * This program is free software: you can redistribute it and/or
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 * modify it under the terms of the GNU General Public License as
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 * published by the Free Software Foundation, either version 3 of the
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * License, or (at your option) any later version.
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 *
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 * In addition, as a special exception, the copyright holders of this
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * program give permission to link the code of its release with the
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 * OpenSSL project's "OpenSSL" library (or with modified versions of it
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * that use the same license as the "OpenSSL" library), and distribute
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 * the linked executables. You must obey the GNU General Public License
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * in all respects for all of the code used other than "OpenSSL". If you
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * modify file(s) with this exception, you may extend this exception to
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 * your version of the file(s), but you are not obligated to do so. If
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 * you do not wish to do so, delete this exception statement from your
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 * version. If you delete this exception statement from all source files
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 * in the program, then also delete it here.
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 *
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 * This program is distributed in the hope that it will be useful, but
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 * WITHOUT ANY WARRANTY; without even the implied warranty of
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 * General Public License for more details.
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 *
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 * You should have received a copy of the GNU General Public License
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 **/
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 #pragma once
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 #include "ServerEnumerations.h"
1737
ec66a16aa398 removal of DicomStringValue and DicomNullValue
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1436
diff changeset
37 #include "../Core/IDynamicObject.h"
2143
fd5875662670 creation of namespace SystemToolbox
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2140
diff changeset
38 #include "../Core/SystemToolbox.h"
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 #include <string>
1240
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
41 #include <json/value.h>
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 namespace Orthanc
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 {
1436
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
45 struct ServerIndexChange : public IDynamicObject
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 {
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 private:
1240
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
48 int64_t seq_;
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 ChangeType changeType_;
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 ResourceType resourceType_;
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 std::string publicId_;
1240
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
52 std::string date_;
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 public:
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55 ServerIndexChange(ChangeType changeType,
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 ResourceType resourceType,
1240
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
57 const std::string& publicId) :
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
58 seq_(-1),
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 changeType_(changeType),
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 resourceType_(resourceType),
1240
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
61 publicId_(publicId),
2140
aa4b8895cd23 reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1900
diff changeset
62 date_(SystemToolbox::GetNowIsoString())
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 {
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 }
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65
1240
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
66 ServerIndexChange(int64_t seq,
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
67 ChangeType changeType,
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
68 ResourceType resourceType,
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
69 const std::string& publicId,
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
70 const std::string& date) :
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
71 seq_(seq),
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
72 changeType_(changeType),
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
73 resourceType_(resourceType),
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
74 publicId_(publicId),
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
75 date_(date)
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
76 {
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
77 }
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
78
1436
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
79 ServerIndexChange(const ServerIndexChange& other)
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
80 : seq_(other.seq_),
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
81 changeType_(other.changeType_),
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
82 resourceType_(other.resourceType_),
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
83 publicId_(other.publicId_),
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
84 date_(other.date_)
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
85 {
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
86 }
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
87
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
88 ServerIndexChange* Clone() const
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
89 {
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
90 return new ServerIndexChange(*this);
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
91 }
0a3e3be59094 uncoupling of SignalChange for Lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
92
1240
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
93 int64_t GetSeq() const
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
94 {
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
95 return seq_;
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
96 }
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
97
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 ChangeType GetChangeType() const
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 {
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 return changeType_;
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 }
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 ResourceType GetResourceType() const
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 {
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 return resourceType_;
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 }
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 const std::string& GetPublicId() const
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 {
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
110 return publicId_;
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 }
1240
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
112
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
113 const std::string& GetDate() const
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
114 {
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
115 return date_;
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
116 }
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
117
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
118 void Format(Json::Value& item) const
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
119 {
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
120 item = Json::objectValue;
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
121 item["Seq"] = static_cast<int>(seq_);
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
122 item["ChangeType"] = EnumerationToString(changeType_);
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
123 item["ResourceType"] = EnumerationToString(resourceType_);
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
124 item["ID"] = publicId_;
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
125 item["Path"] = GetBasePath(resourceType_, publicId_);
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
126 item["Date"] = date_;
62c35e4b67db refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1198
diff changeset
127 }
1198
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 };
1169528a9a5f refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 }