annotate JavaSDK/be/uclouvain/orthanc/DicomInstance.java @ 0:3ecef5782f2c

initial commit
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 18 Oct 2023 17:59:44 +0200
parents
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 * DICOM instance managed by the Orthanc core
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 DicomInstance {
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 DicomInstance(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 @Override
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 protected void finalize() throws Throwable {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55 dispose();
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 super.finalize();
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
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 * Manually deallocate the C object that is associated with this Java wrapper.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 * This method can be used to immediately deallocate the C object,
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 * instead of waiting for the garbage collector to dispose the Java wrapper.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 public void dispose() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 if (self != 0) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 NativeSDK.OrthancPluginFreeDicomInstance(self);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 self = 0;
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71
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 * Parse a DICOM instance.
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 * This function parses a memory buffer that contains a DICOM file. The function
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 * returns a new pointer to a data structure that is managed by the Orthanc core.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78 * @param buffer The memory buffer containing the DICOM instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 * @return The newly constructed object.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 public static DicomInstance createDicomInstance(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 byte[] buffer) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 return new DicomInstance(NativeSDK.OrthancPluginCreateDicomInstance(buffer));
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 * Parse and transcode a DICOM instance.
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 * This function parses a memory buffer that contains a DICOM file, then transcodes
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90 * it to the given transfer syntax. The function returns a new pointer to a data
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 * structure that is managed by the Orthanc core.
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 * @param buffer The memory buffer containing the DICOM instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 * @param transferSyntax The transfer syntax UID for the transcoding.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 * @return The newly constructed object.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97 public static DicomInstance transcodeDicomInstance(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 byte[] buffer,
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 String transferSyntax) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 return new DicomInstance(NativeSDK.OrthancPluginTranscodeDicomInstance(buffer, transferSyntax));
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102
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 * Get the AET of a DICOM instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 * This function returns the Application Entity Title (AET) of the DICOM modality
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 * from which a DICOM instance originates.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
110 * @return The resulting string.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 public String getInstanceRemoteAet() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 return NativeSDK.OrthancPluginGetInstanceRemoteAet(self);
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
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 * Get the size of a DICOM file.
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 * This function returns the number of bytes of the given DICOM instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 * @return The size of the file, -1 in case of error.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123 public long getInstanceSize() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 return NativeSDK.OrthancPluginGetInstanceSize(self);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 * Get the DICOM tag hierarchy as a JSON file.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 * This function returns a pointer to a newly created string containing a JSON
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 * file. This JSON file encodes the tag hierarchy of the given DICOM instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 * @return The resulting string.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 public String getInstanceJson() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 return NativeSDK.OrthancPluginGetInstanceJson(self);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140 * Get the DICOM tag hierarchy as a JSON file (with simplification).
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 * This function returns a pointer to a newly created string containing a JSON
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 * file. This JSON file encodes the tag hierarchy of the given DICOM instance. In
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 * contrast with ::OrthancPluginGetInstanceJson(), the returned JSON file is in its
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145 * simplified version.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 * @return The resulting string.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 public String getInstanceSimplifiedJson() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150 return NativeSDK.OrthancPluginGetInstanceSimplifiedJson(self);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 * Check whether a DICOM instance is associated with some metadata.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 * This function checks whether the DICOM instance of interest is associated with
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 * some metadata. As of Orthanc 0.8.1, in the callbacks registered by
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 * ::OrthancPluginRegisterOnStoredInstanceCallback(), the only possibly available
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 * metadata are "ReceptionDate", "RemoteAET" and "IndexInSeries".
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 * @param metadata The metadata of interest.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 * @return 1 if the metadata is present, 0 if it is absent, -1 in case of error.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 public int hasInstanceMetadata(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 String metadata) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166 return NativeSDK.OrthancPluginHasInstanceMetadata(self, metadata);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170 * Get the value of some metadata associated with a given DICOM instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 * This functions returns the value of some metadata that is associated with the
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 * DICOM instance of interest. Before calling this function, the existence of the
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 * metadata must have been checked with ::OrthancPluginHasInstanceMetadata().
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 * @param metadata The metadata of interest.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 * @return The resulting string.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179 public String getInstanceMetadata(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180 String metadata) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181 return NativeSDK.OrthancPluginGetInstanceMetadata(self, metadata);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185 * Get the origin of a DICOM file.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 * This function returns the origin of a DICOM instance that has been received by
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 * Orthanc.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190 * @return The origin of the instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
192 public InstanceOrigin getInstanceOrigin() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
193 return InstanceOrigin.getInstance(NativeSDK.OrthancPluginGetInstanceOrigin(self));
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
194 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
195
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
196 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
197 * Get the transfer syntax of a DICOM file.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
198 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
199 * This function returns a pointer to a newly created string that contains the
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
200 * transfer syntax UID of the DICOM instance. The empty string might be returned if
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
201 * this information is unknown.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
202 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
203 * @return The resulting string.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
204 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
205 public String getInstanceTransferSyntaxUid() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
206 return NativeSDK.OrthancPluginGetInstanceTransferSyntaxUid(self);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
207 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
208
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
209 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
210 * Check whether the DICOM file has pixel data.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
211 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
212 * This function returns a Boolean value indicating whether the DICOM instance
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
213 * contains the pixel data (7FE0,0010) tag.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
214 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
215 * @return "1" if the DICOM instance contains pixel data, or "0" if the tag is
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
216 * missing, or "-1" in the case of an error.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
217 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
218 public int hasInstancePixelData() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
219 return NativeSDK.OrthancPluginHasInstancePixelData(self);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
220 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
221
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
222 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
223 * Get the number of frames in a DICOM instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
224 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
225 * This function returns the number of frames that are part of a DICOM image
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
226 * managed by the Orthanc core.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
227 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
228 * @return The number of frames (will be zero in the case of an error).
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
229 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
230 public int getInstanceFramesCount() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
231 return NativeSDK.OrthancPluginGetInstanceFramesCount(self);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
232 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
233
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
234 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
235 * Get the raw content of a frame in a DICOM instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
236 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
237 * This function returns a memory buffer containing the raw content of a frame in a
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
238 * DICOM instance that is managed by the Orthanc core. This is notably useful for
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
239 * compressed transfer syntaxes, as it gives access to the embedded files (such as
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
240 * JPEG, JPEG-LS or JPEG2k). The Orthanc core transparently reassembles the
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
241 * fragments to extract the raw frame.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
242 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
243 * @param frameIndex The index of the frame of interest.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
244 * @return The resulting memory buffer.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
245 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
246 public byte[] getInstanceRawFrame(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
247 int frameIndex) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
248 return NativeSDK.OrthancPluginGetInstanceRawFrame(self, frameIndex);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
249 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
250
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
251 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
252 * Decode one frame from a DICOM instance.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
253 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
254 * This function decodes one frame of a DICOM image that is managed by the Orthanc
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
255 * core.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
256 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
257 * @param frameIndex The index of the frame of interest.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
258 * @return The newly constructed object.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
259 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
260 public Image getInstanceDecodedFrame(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
261 int frameIndex) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
262 return new Image(NativeSDK.OrthancPluginGetInstanceDecodedFrame(self, frameIndex));
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
263 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
264
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
265 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
266 * Writes a DICOM instance to a memory buffer.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
267 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
268 * This function returns a memory buffer containing the serialization of a DICOM
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
269 * instance that is managed by the Orthanc core.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
270 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
271 * @return The resulting memory buffer.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
272 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
273 public byte[] serializeDicomInstance() {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
274 return NativeSDK.OrthancPluginSerializeDicomInstance(self);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
275 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
276
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
277 /**
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
278 * Format a DICOM memory buffer as a JSON string.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
279 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
280 * This function takes as DICOM instance managed by the Orthanc core, and outputs a
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
281 * JSON string representing the tags of this DICOM file.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
282 *
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
283 * @param format The output format.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
284 * @param flags Flags governing the output.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
285 * @param maxStringLength The maximum length of a field. Too long fields will be
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
286 * output as "null". The 0 value means no maximum length.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
287 * @return The resulting string.
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
288 **/
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
289 public String getInstanceAdvancedJson(
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
290 DicomToJsonFormat format,
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
291 DicomToJsonFlags flags,
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
292 int maxStringLength) {
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
293 return NativeSDK.OrthancPluginGetInstanceAdvancedJson(self, format.getValue(), flags.getValue(), maxStringLength);
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
294 }
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
295
3ecef5782f2c initial commit
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
296 }