comparison Plugin/OrthancResource.h @ 1:d5d3cb00556a

initial release
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 22 Mar 2017 16:13:52 +0100
parents
children bc0431cb6b8f
comparison
equal deleted inserted replaced
0:decac5df19c4 1:d5d3cb00556a
1 /**
2 * Advanced authorization plugin for Orthanc
3 * Copyright (C) 2017 Osimis, Belgium
4 *
5 * This program is free software: you can redistribute it and/or
6 * modify it under the terms of the GNU Affero General Public License
7 * as published by the Free Software Foundation, either version 3 of
8 * the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 **/
18
19 #pragma once
20
21 #include "Enumerations.h"
22
23 #include <orthanc/OrthancCPlugin.h>
24 #include <json/value.h>
25 #include <list>
26
27 namespace OrthancPlugins
28 {
29 class OrthancResource
30 {
31 private:
32 bool isValid_;
33 Orthanc::ResourceType level_;
34 std::string id_;
35
36 static void GetDicomUidInternal(std::string& result,
37 Orthanc::ResourceType level,
38 const Json::Value& content);
39
40 public:
41 OrthancResource() :
42 isValid_(false)
43 {
44 }
45
46 OrthancResource(Orthanc::ResourceType level,
47 const std::string& id) :
48 isValid_(true),
49 level_(level),
50 id_(id)
51 {
52 }
53
54 bool IsValid() const
55 {
56 return isValid_;
57 }
58
59 Orthanc::ResourceType GetLevel() const;
60
61 const std::string& GetIdentifier() const;
62
63 bool GetContent(Json::Value& content,
64 OrthancPluginContext* context) const;
65
66 bool GetDicomUid(std::string& dicomUid /* out */,
67 OrthancPluginContext* context) const;
68
69 bool GetHierarchy(std::string& dicomUid /* out */,
70 OrthancResource& parent /* out */,
71 std::list<OrthancResource>& children /* out */,
72 OrthancPluginContext* context) const;
73
74 static bool LookupOrthancId(std::string& result,
75 OrthancPluginContext* context,
76 Orthanc::ResourceType level,
77 const std::string& dicomUid);
78 };
79 }