annotate OrthancServer/ExportedResource.cpp @ 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
1247
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 /**
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 * Orthanc - A Lightweight, RESTful DICOM Store
1900
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1624
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
1288
6e7e5ed91c2d upgrade to year 2015
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1247
diff changeset
4 * Department, University Hospital of Liege, Belgium
2244
a3a65de1840f shared copyright with osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1900
diff changeset
5 * Copyright (C) 2017 Osimis, Belgium
1247
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 *
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 * This program is free software: you can redistribute it and/or
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 * modify it under the terms of the GNU General Public License as
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 * published by the Free Software Foundation, either version 3 of the
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * License, or (at your option) any later version.
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 *
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 * In addition, as a special exception, the copyright holders of this
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * program give permission to link the code of its release with the
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 * OpenSSL project's "OpenSSL" library (or with modified versions of it
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * that use the same license as the "OpenSSL" library), and distribute
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 * the linked executables. You must obey the GNU General Public License
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * in all respects for all of the code used other than "OpenSSL". If you
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * modify file(s) with this exception, you may extend this exception to
32fcc5dc7562 abstraction
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
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 * you do not wish to do so, delete this exception statement from your
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 * version. If you delete this exception statement from all source files
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 * in the program, then also delete it here.
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 *
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 * This program is distributed in the hope that it will be useful, but
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 * WITHOUT ANY WARRANTY; without even the implied warranty of
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 * General Public License for more details.
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 *
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 * You should have received a copy of the GNU General Public License
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 * along with this program. If not, see <http://www.gnu.org/licenses/>.
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 **/
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33
1624
0a2ad4a6858f fix missing precompiled headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1288
diff changeset
34 #include "PrecompiledHeadersServer.h"
1247
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 #include "ExportedResource.h"
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 #include "../Core/OrthancException.h"
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 namespace Orthanc
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 {
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 void ExportedResource::Format(Json::Value& item) const
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 {
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 item = Json::objectValue;
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 item["Seq"] = static_cast<int>(seq_);
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 item["ResourceType"] = EnumerationToString(resourceType_);
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 item["ID"] = publicId_;
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 item["Path"] = GetBasePath(resourceType_, publicId_);
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 item["RemoteModality"] = modality_;
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 item["Date"] = date_;
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 // WARNING: Do not add "break" below and do not reorder the case items!
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 switch (resourceType_)
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 {
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 case ResourceType_Instance:
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55 item["SOPInstanceUID"] = sopInstanceUid_;
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 case ResourceType_Series:
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 item["SeriesInstanceUID"] = seriesInstanceUid_;
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 case ResourceType_Study:
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 item["StudyInstanceUID"] = studyInstanceUid_;
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 case ResourceType_Patient:
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 item["PatientID"] = patientId_;
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 break;
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 default:
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 throw OrthancException(ErrorCode_InternalError);
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 }
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 }
32fcc5dc7562 abstraction
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 }