1 /**
2  * Orthanc - A Lightweight, RESTful DICOM Store
3  * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4  * Department, University Hospital of Liege, Belgium
5  * Copyright (C) 2017-2021 Osimis S.A., Belgium
6  *
7  * This program is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License as
9  * published by the Free Software Foundation, either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * In addition, as a special exception, the copyright holders of this
13  * program give permission to link the code of its release with the
14  * OpenSSL project's "OpenSSL" library (or with modified versions of it
15  * that use the same license as the "OpenSSL" library), and distribute
16  * the linked executables. You must obey the GNU General Public License
17  * in all respects for all of the code used other than "OpenSSL". If you
18  * modify file(s) with this exception, you may extend this exception to
19  * your version of the file(s), but you are not obligated to do so. If
20  * you do not wish to do so, delete this exception statement from your
21  * version. If you delete this exception statement from all source files
22  * in the program, then also delete it here.
23  *
24  * This program is distributed in the hope that it will be useful, but
25  * WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27  * General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program. If not, see <http://www.gnu.org/licenses/>.
31  **/
32 
33 
34 #pragma once
35 
36 #include "ServerEnumerations.h"
37 #include "../../OrthancFramework/Sources/Toolbox.h"
38 
39 #include <string>
40 #include <json/value.h>
41 
42 namespace Orthanc
43 {
44   class ExportedResource
45   {
46   private:
47     int64_t      seq_;
48     ResourceType resourceType_;
49     std::string  publicId_;
50     std::string  modality_;
51     std::string  date_;
52     std::string  patientId_;
53     std::string  studyInstanceUid_;
54     std::string  seriesInstanceUid_;
55     std::string  sopInstanceUid_;
56 
57   public:
ExportedResource(int64_t seq,ResourceType resourceType,const std::string & publicId,const std::string & modality,const std::string & date,const std::string & patientId,const std::string & studyInstanceUid,const std::string & seriesInstanceUid,const std::string & sopInstanceUid)58     ExportedResource(int64_t seq,
59                      ResourceType resourceType,
60                      const std::string& publicId,
61                      const std::string& modality,
62                      const std::string& date,
63                      const std::string& patientId,
64                      const std::string& studyInstanceUid,
65                      const std::string& seriesInstanceUid,
66                      const std::string& sopInstanceUid) :
67       seq_(seq),
68       resourceType_(resourceType),
69       publicId_(publicId),
70       modality_(modality),
71       date_(date),
72       patientId_(patientId),
73       studyInstanceUid_(studyInstanceUid),
74       seriesInstanceUid_(seriesInstanceUid),
75       sopInstanceUid_(sopInstanceUid)
76     {
77     }
78 
GetSeq()79     int64_t  GetSeq() const
80     {
81       return seq_;
82     }
83 
GetResourceType()84     ResourceType  GetResourceType() const
85     {
86       return resourceType_;
87     }
88 
GetPublicId()89     const std::string&  GetPublicId() const
90     {
91       return publicId_;
92     }
93 
GetModality()94     const std::string& GetModality() const
95     {
96       return modality_;
97     }
98 
GetDate()99     const std::string& GetDate() const
100     {
101       return date_;
102     }
103 
GetPatientId()104     const std::string& GetPatientId() const
105     {
106       return patientId_;
107     }
108 
GetStudyInstanceUid()109     const std::string& GetStudyInstanceUid() const
110     {
111       return studyInstanceUid_;
112     }
113 
GetSeriesInstanceUid()114     const std::string& GetSeriesInstanceUid() const
115     {
116       return seriesInstanceUid_;
117     }
118 
GetSopInstanceUid()119     const std::string& GetSopInstanceUid() const
120     {
121       return sopInstanceUid_;
122     }
123 
124     void Format(Json::Value& item) const;
125   };
126 }
127