annotate JavaSDK/be/uclouvain/orthanc/StorageArea.java @ 6:709e5347a390

added missing files
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 19 Oct 2023 08:51:43 +0200
parents 3ecef5782f2c
children 26c08ff926a3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 package be.uclouvain.orthanc;
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 * SPDX-FileCopyrightText: 2023 Sebastien Jodogne, UCLouvain, Belgium
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 * SPDX-License-Identifier: GPL-3.0-or-later
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 */
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 * Java plugin for Orthanc
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * Copyright (C) 2023 Sebastien Jodogne, UCLouvain, Belgium
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 * This program is free software: you can redistribute it and/or
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * modify it under the terms of the GNU General Public License as
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 * published by the Free Software Foundation, either version 3 of the
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * License, or (at your option) any later version.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful, but
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 * General Public License for more details.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 * along with this program. If not, see http://www.gnu.org/licenses/.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 * Storage area plugin
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 public class StorageArea {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 private long self;
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 * Construct a Java object wrapping a C object that is managed by Orthanc.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 * @param self Pointer to the C object.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 protected StorageArea(long self) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 if (self == 0) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 throw new IllegalArgumentException("Null pointer");
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 } else {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 this.self = self;
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 * Return the C object that is associated with this Java wrapper.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 * @return Pointer to the C object.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 protected long getSelf() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 return self;
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 * Create a file inside the storage area.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 * This function creates a new file inside the storage area that is currently used
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 * by Orthanc.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 * @param uuid The identifier of the file to be created.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 * @param content The content to store in the newly created file.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 * @param size The size of the content.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 * @param type The type of the file content.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 public void storageAreaCreate(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 String uuid,
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 byte[] content,
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 long size,
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 ContentType type) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 NativeSDK.OrthancPluginStorageAreaCreate(self, uuid, content, size, type.getValue());
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 * Read a file from the storage area.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 * This function reads the content of a given file from the storage area that is
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78 * currently used by Orthanc.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 * @param uuid The identifier of the file to be read.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 * @param type The type of the file content.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 * @return The resulting memory buffer.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84 public byte[] storageAreaRead(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 String uuid,
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 ContentType type) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 return NativeSDK.OrthancPluginStorageAreaRead(self, uuid, type.getValue());
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 * Remove a file from the storage area.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
92 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93 * This function removes a given file from the storage area that is currently used
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 * by Orthanc.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 * @param uuid The identifier of the file to be removed.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97 * @param type The type of the file content.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 public void storageAreaRemove(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 String uuid,
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 ContentType type) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 NativeSDK.OrthancPluginStorageAreaRemove(self, uuid, type.getValue());
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 * Reconstruct the main DICOM tags.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 * This function requests the Orthanc core to reconstruct the main DICOM tags of
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 * all the resources of the given type. This function can only be used as a part of
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
110 * the upgrade of a custom database back-end. A database transaction will be
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 * automatically setup.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 * @param level The type of the resources of interest.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 public void reconstructMainDicomTags(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 ResourceType level) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 NativeSDK.OrthancPluginReconstructMainDicomTags(self, level.getValue());
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 }