0
|
1 package be.uclouvain.orthanc;
|
|
2
|
|
3 /**
|
20
|
4 * SPDX-FileCopyrightText: 2023-2024 Sebastien Jodogne, UCLouvain, Belgium
|
0
|
5 * SPDX-License-Identifier: GPL-3.0-or-later
|
|
6 */
|
|
7
|
|
8 /**
|
|
9 * Java plugin for Orthanc
|
20
|
10 * Copyright (C) 2023-2024 Sebastien Jodogne, UCLouvain, Belgium
|
0
|
11 *
|
|
12 * This program is free software: you can redistribute it and/or
|
|
13 * modify it under the terms of the GNU General Public License as
|
|
14 * published by the Free Software Foundation, either version 3 of the
|
|
15 * License, or (at your option) any later version.
|
|
16 *
|
|
17 * This program is distributed in the hope that it will be useful, but
|
|
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
20 * General Public License for more details.
|
|
21 *
|
|
22 * You should have received a copy of the GNU General Public License
|
|
23 * along with this program. If not, see http://www.gnu.org/licenses/.
|
|
24 **/
|
|
25
|
|
26
|
|
27 import java.util.Map;
|
|
28
|
|
29 /**
|
|
30 * Wrapper around the callbacks provided by the Orthanc SDK.
|
|
31 **/
|
|
32 public class Callbacks {
|
33
|
33 /**
|
|
34 * Callback to react to changes.
|
|
35 **/
|
0
|
36 public interface OnChange {
|
33
|
37 /**
|
|
38 * Signature of a callback function that is triggered when a
|
|
39 * change happens to some DICOM resource.
|
|
40 * @param changeType The type of change.
|
|
41 * @param resourceType The type of resource affected by this change.
|
|
42 * @param resourceId The identifier of the affected resource, if any.
|
|
43 **/
|
0
|
44 public void call(ChangeType changeType,
|
|
45 ResourceType resourceType,
|
|
46 String resourceId);
|
|
47 }
|
|
48
|
33
|
49 /**
|
|
50 * Callback to serve a resource in the REST API.
|
|
51 **/
|
0
|
52 public interface OnRestRequest {
|
33
|
53 /**
|
|
54 * Signature of a callback function that answers a REST request.
|
|
55 * @param output Output containing the answer that is sent to the REST client.
|
|
56 * @param method The HTTP method.
|
|
57 * @param uri The URI, starting from the root of the Orthanc server.
|
|
58 * @param regularExpressionGroups The actual values of the groups matched by the regular expression.
|
|
59 * @param headers The HTTP headers of the request.
|
|
60 * @param getParameters The parameters of a GET request.
|
|
61 * @param body The body of the request (only applicable to POST and PUT methods).
|
|
62 **/
|
0
|
63 public void call(RestOutput output,
|
|
64 HttpMethod method,
|
|
65 String uri,
|
|
66 String[] regularExpressionGroups,
|
|
67 Map<String, String> headers,
|
|
68 Map<String, String> getParameters,
|
|
69 byte[] body);
|
|
70 }
|
|
71
|
33
|
72 /**
|
|
73 * Register a callback to monitor changes.
|
|
74 * @param callback The callback to handle the change.
|
|
75 **/
|
0
|
76 public static native void register(OnChange callback);
|
|
77
|
33
|
78 /**
|
|
79 * Register a REST callback. Note that the callback will NOT be
|
|
80 * invoked in mutual exclusion.
|
|
81 * @param pathRegularExpression Regular expression for the URI. May contain groups.
|
|
82 * @param callback The callback to handle the REST call.
|
|
83 **/
|
0
|
84 public static native void register(String pathRegularExpression,
|
|
85 OnRestRequest callback);
|
|
86 }
|