Mercurial > hg > orthanc-python
annotate Sources/DicomScpCallbacks.cpp @ 178:194ba7d6e0f4 java-code-model
integration mainline->java-code-model
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 27 Jun 2024 18:51:36 +0200 |
parents | e9be3c9294d4 |
children | 968dbd6982bb |
rev | line source |
---|---|
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 /** |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 * Python plugin for Orthanc |
166
6fada29b6759
updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
157
diff
changeset
|
3 * Copyright (C) 2020-2023 Osimis S.A., Belgium |
6fada29b6759
updated copyright, as Orthanc Team now replaces Osimis
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
157
diff
changeset
|
4 * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium |
155
71d305c29cfa
updated year to 2024
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
131
diff
changeset
|
5 * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
6 * |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
7 * This program is free software: you can redistribute it and/or |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Affero General Public License |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 * as published by the Free Software Foundation, either version 3 of |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 * the License, or (at your option) any later version. |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 * |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, but |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 * WITHOUT ANY WARRANTY; without even the implied warranty of |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 * Affero General Public License for more details. |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 * |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 * You should have received a copy of the GNU Affero General Public License |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 **/ |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 #include "DicomScpCallbacks.h" |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
24 #include "../Resources/Orthanc/Plugins/OrthancPluginCppWrapper.h" |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
25 #include "Autogenerated/sdk.h" |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 #include "ICallbackRegistration.h" |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
27 #include "PythonString.h" |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
29 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
30 static PyObject* findScpCallback_ = NULL; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
31 static PyObject* moveScpCallback_ = NULL; |
64
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
32 static PyObject* worklistScpCallback_ = NULL; |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
33 |
151
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
34 // version 2 of Move callbacks |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
35 static PyObject* createMoveScpDriverCallback_ = NULL; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
36 static PyObject* getMoveSizeCallback_ = NULL; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
37 static PyObject* applyMoveCallback_ = NULL; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
38 static PyObject* freeMoveCallback_ = NULL; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
39 |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
40 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
41 static PyObject *GetFindQueryTag(sdk_OrthancPluginFindQuery_Object* self, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
42 PyObject *args, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
43 bool isGroup) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
44 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
45 unsigned long index; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
46 uint16_t group, element; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
47 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
48 if (self->object_ == NULL) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
49 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
50 PyErr_SetString(PyExc_ValueError, "Invalid object"); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
51 return NULL; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
52 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
53 else if (!PyArg_ParseTuple(args, "k", &index)) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
54 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
55 PyErr_SetString(PyExc_TypeError, "Index is missing"); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
56 return NULL; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
57 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
58 else if (OrthancPluginGetFindQueryTag(OrthancPlugins::GetGlobalContext(), &group, &element, self->object_, index) != |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
59 OrthancPluginErrorCode_Success) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
60 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
61 PyErr_SetString(PyExc_ValueError, "Index is out of range"); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
62 return NULL; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
63 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
64 else if (isGroup) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
65 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
66 return PyLong_FromUnsignedLong(group); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
67 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
68 else |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
69 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
70 return PyLong_FromUnsignedLong(element); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
71 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
72 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
73 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
74 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
75 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
76 // Check out "CUSTOM_METHODS" in "../CodeAnalysis/ParseOrthancSDK.py" |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
77 PyObject *GetFindQueryTagGroup(sdk_OrthancPluginFindQuery_Object* self, PyObject *args) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
78 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
79 return GetFindQueryTag(self, args, true); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
80 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
81 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
82 PyObject *GetFindQueryTagElement(sdk_OrthancPluginFindQuery_Object* self, PyObject *args) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
83 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
84 return GetFindQueryTag(self, args, false); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
85 } |
64
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
86 // End of "CUSTOM_METHODS" |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
87 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
88 |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
89 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
90 static OrthancPluginErrorCode FindCallback(OrthancPluginFindAnswers *answers, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
91 const OrthancPluginFindQuery *query, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
92 const char *issuerAet, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
93 const char *calledAet) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
94 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
95 try |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
96 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
97 PythonLock lock; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
98 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
99 PyObject *pAnswers, *pQuery; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
100 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
101 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
102 PythonObject args(lock, PyTuple_New(2)); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
103 PyTuple_SetItem(args.GetPyObject(), 0, PyLong_FromSsize_t((intptr_t) answers)); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
104 PyTuple_SetItem(args.GetPyObject(), 1, PyBool_FromLong(true /* borrowed, don't destruct */)); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
105 pAnswers = PyObject_CallObject((PyObject *) GetOrthancPluginFindAnswersType(), args.GetPyObject()); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
106 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
107 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
108 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
109 PythonObject args(lock, PyTuple_New(2)); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
110 PyTuple_SetItem(args.GetPyObject(), 0, PyLong_FromSsize_t((intptr_t) query)); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
111 PyTuple_SetItem(args.GetPyObject(), 1, PyBool_FromLong(true /* borrowed, don't destruct */)); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
112 pQuery = PyObject_CallObject((PyObject *) GetOrthancPluginFindQueryType(), args.GetPyObject()); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
113 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
114 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
115 PythonString pIssuerAet(lock, issuerAet); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
116 PythonString pCalledAet(lock, calledAet); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
117 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
118 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
119 PythonObject args(lock, PyTuple_New(4)); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
120 PyTuple_SetItem(args.GetPyObject(), 0, pAnswers); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
121 PyTuple_SetItem(args.GetPyObject(), 1, pQuery); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
122 PyTuple_SetItem(args.GetPyObject(), 2, pIssuerAet.Release()); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
123 PyTuple_SetItem(args.GetPyObject(), 3, pCalledAet.Release()); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
124 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
125 assert(findScpCallback_ != NULL); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
126 PythonObject result(lock, PyObject_CallObject(findScpCallback_, args.GetPyObject())); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
127 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
128 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
129 return lock.CheckCallbackSuccess("Python C-FIND SCP callback"); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
130 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
131 catch (OrthancPlugins::PluginException& e) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
132 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
133 return e.GetErrorCode(); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
134 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
135 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
136 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
137 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
138 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
139 class IMoveDriver : public boost::noncopyable |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
140 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
141 public: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
142 virtual ~IMoveDriver() |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
143 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
144 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
145 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
146 virtual void Apply() = 0; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
147 }; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
148 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
149 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
150 static void* CreateMoveCallback(OrthancPluginResourceType resourceType, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
151 const char *patientId, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
152 const char *accessionNumber, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
153 const char *studyInstanceUid, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
154 const char *seriesInstanceUid, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
155 const char *sopInstanceUid, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
156 const char *originatorAet, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
157 const char *sourceAet, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
158 const char *targetAet, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
159 uint16_t originatorId) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
160 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
161 class Driver : public IMoveDriver |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
162 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
163 private: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
164 OrthancPluginResourceType resourceType_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
165 std::string patientId_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
166 std::string accessionNumber_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
167 std::string studyInstanceUid_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
168 std::string seriesInstanceUid_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
169 std::string sopInstanceUid_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
170 std::string originatorAet_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
171 std::string sourceAet_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
172 std::string targetAet_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
173 uint16_t originatorId_; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
174 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
175 public: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
176 Driver(OrthancPluginResourceType resourceType, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
177 const char *patientId, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
178 const char *accessionNumber, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
179 const char *studyInstanceUid, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
180 const char *seriesInstanceUid, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
181 const char *sopInstanceUid, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
182 const char *originatorAet, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
183 const char *sourceAet, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
184 const char *targetAet, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
185 uint16_t originatorId) : |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
186 resourceType_(resourceType), |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
187 originatorId_(originatorId) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
188 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
189 if (patientId != NULL) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
190 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
191 patientId_.assign(patientId); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
192 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
193 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
194 if (accessionNumber != NULL) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
195 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
196 accessionNumber_.assign(accessionNumber); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
197 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
198 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
199 if (studyInstanceUid != NULL) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
200 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
201 studyInstanceUid_.assign(studyInstanceUid); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
202 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
203 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
204 if (seriesInstanceUid != NULL) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
205 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
206 seriesInstanceUid_.assign(seriesInstanceUid); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
207 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
208 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
209 if (sopInstanceUid != NULL) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
210 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
211 sopInstanceUid_.assign(sopInstanceUid); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
212 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
213 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
214 if (originatorAet != NULL) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
215 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
216 originatorAet_.assign(originatorAet); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
217 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
218 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
219 if (sourceAet != NULL) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
220 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
221 sourceAet_.assign(sourceAet); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
222 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
223 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
224 if (targetAet != NULL) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
225 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
226 targetAet_.assign(targetAet); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
227 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
228 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
229 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
230 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
231 virtual void Apply() ORTHANC_OVERRIDE |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
232 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
233 PythonLock lock; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
234 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
235 PythonObject kw(lock, PyDict_New()); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
236 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
237 std::string level; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
238 switch (resourceType_) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
239 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
240 case OrthancPluginResourceType_Patient: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
241 level = "PATIENT"; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
242 break; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
243 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
244 case OrthancPluginResourceType_Study: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
245 level = "STUDY"; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
246 break; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
247 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
248 case OrthancPluginResourceType_Series: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
249 level = "SERIES"; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
250 break; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
251 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
252 case OrthancPluginResourceType_Instance: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
253 level = "INSTANCE"; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
254 break; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
255 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
256 default: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
257 throw OrthancPlugins::PluginException(OrthancPluginErrorCode_ParameterOutOfRange); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
258 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
259 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
260 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
261 PythonString tmp(lock, level); |
126
9ffe8881f856
fixing more PyDict_SetItemString()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
262 PyDict_SetItemString(kw.GetPyObject(), "Level", tmp.GetPyObject()); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
263 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
264 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
265 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
266 PythonString tmp(lock, patientId_); |
126
9ffe8881f856
fixing more PyDict_SetItemString()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
267 PyDict_SetItemString(kw.GetPyObject(), "PatientID", tmp.GetPyObject()); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
268 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
269 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
270 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
271 PythonString tmp(lock, accessionNumber_); |
126
9ffe8881f856
fixing more PyDict_SetItemString()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
272 PyDict_SetItemString(kw.GetPyObject(), "AccessionNumber", tmp.GetPyObject()); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
273 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
274 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
275 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
276 PythonString tmp(lock, studyInstanceUid_); |
126
9ffe8881f856
fixing more PyDict_SetItemString()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
277 PyDict_SetItemString(kw.GetPyObject(), "StudyInstanceUID", tmp.GetPyObject()); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
278 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
279 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
280 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
281 PythonString tmp(lock, seriesInstanceUid_); |
126
9ffe8881f856
fixing more PyDict_SetItemString()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
282 PyDict_SetItemString(kw.GetPyObject(), "SeriesInstanceUID", tmp.GetPyObject()); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
283 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
284 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
285 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
286 PythonString tmp(lock, sopInstanceUid_); |
126
9ffe8881f856
fixing more PyDict_SetItemString()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
287 PyDict_SetItemString(kw.GetPyObject(), "SOPInstanceUID", tmp.GetPyObject()); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
288 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
289 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
290 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
291 PythonString tmp(lock, originatorAet_); |
126
9ffe8881f856
fixing more PyDict_SetItemString()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
292 PyDict_SetItemString(kw.GetPyObject(), "OriginatorAET", tmp.GetPyObject()); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
293 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
294 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
295 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
296 PythonString tmp(lock, sourceAet_); |
126
9ffe8881f856
fixing more PyDict_SetItemString()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
297 PyDict_SetItemString(kw.GetPyObject(), "SourceAET", tmp.GetPyObject()); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
298 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
299 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
300 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
301 PythonString tmp(lock, targetAet_); |
126
9ffe8881f856
fixing more PyDict_SetItemString()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
101
diff
changeset
|
302 PyDict_SetItemString(kw.GetPyObject(), "TargetAET", tmp.GetPyObject()); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
303 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
304 |
127
a862d554753f
fixing leaks associated with setting integers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
126
diff
changeset
|
305 { |
a862d554753f
fixing leaks associated with setting integers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
126
diff
changeset
|
306 PythonObject tmp(lock, PyLong_FromUnsignedLong(originatorId_)); |
a862d554753f
fixing leaks associated with setting integers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
126
diff
changeset
|
307 PyDict_SetItemString(kw.GetPyObject(), "OriginatorID", tmp.GetPyObject()); |
a862d554753f
fixing leaks associated with setting integers
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
126
diff
changeset
|
308 } |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
309 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
310 PythonObject args(lock, PyTuple_New(0)); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
311 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
312 assert(moveScpCallback_ != NULL); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
313 PythonObject result(lock, PyObject_Call(moveScpCallback_, args.GetPyObject(), kw.GetPyObject())); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
314 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
315 OrthancPluginErrorCode code = lock.CheckCallbackSuccess("Python C-MOVE SCP callback"); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
316 if (code != OrthancPluginErrorCode_Success) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
317 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
318 throw OrthancPlugins::PluginException(code); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
319 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
320 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
321 }; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
322 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
323 try |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
324 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
325 return new Driver(resourceType, patientId, accessionNumber, studyInstanceUid, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
326 seriesInstanceUid, sopInstanceUid, originatorAet, sourceAet, |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
327 targetAet, originatorId); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
328 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
329 catch (OrthancPlugins::PluginException& e) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
330 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
331 return NULL; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
332 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
333 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
334 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
335 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
336 static uint32_t GetMoveSize(void *moveDriver) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
337 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
338 assert(moveDriver != NULL); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
339 return 1; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
340 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
341 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
342 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
343 OrthancPluginErrorCode ApplyMove(void *moveDriver) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
344 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
345 assert(moveDriver != NULL); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
346 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
347 try |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
348 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
349 reinterpret_cast<IMoveDriver*>(moveDriver)->Apply(); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
350 return OrthancPluginErrorCode_Success; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
351 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
352 catch (OrthancPlugins::PluginException& e) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
353 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
354 return e.GetErrorCode(); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
355 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
356 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
357 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
358 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
359 void FreeMove(void *moveDriver) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
360 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
361 assert(moveDriver != NULL); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
362 delete reinterpret_cast<IMoveDriver*>(moveDriver); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
363 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
364 |
64
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
365 |
151
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
366 static void* CreateMoveCallback2(OrthancPluginResourceType resourceType, |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
367 const char *patientId, |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
368 const char *accessionNumber, |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
369 const char *studyInstanceUid, |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
370 const char *seriesInstanceUid, |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
371 const char *sopInstanceUid, |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
372 const char *originatorAet, |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
373 const char *sourceAet, |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
374 const char *targetAet, |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
375 uint16_t originatorId) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
376 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
377 assert(createMoveScpDriverCallback_ != NULL); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
378 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
379 try |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
380 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
381 std::string _patientId, _accessionNumber, _studyInstanceUid, _seriesInstanceUid, _sopInstanceUid, _originatorAet, _sourceAet, _targetAet; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
382 if (patientId != NULL) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
383 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
384 _patientId.assign(patientId); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
385 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
386 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
387 if (accessionNumber != NULL) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
388 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
389 _accessionNumber.assign(accessionNumber); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
390 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
391 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
392 if (studyInstanceUid != NULL) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
393 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
394 _studyInstanceUid.assign(studyInstanceUid); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
395 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
396 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
397 if (seriesInstanceUid != NULL) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
398 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
399 _seriesInstanceUid.assign(seriesInstanceUid); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
400 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
401 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
402 if (sopInstanceUid != NULL) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
403 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
404 _sopInstanceUid.assign(sopInstanceUid); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
405 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
406 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
407 if (originatorAet != NULL) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
408 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
409 _originatorAet.assign(originatorAet); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
410 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
411 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
412 if (sourceAet != NULL) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
413 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
414 _sourceAet.assign(sourceAet); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
415 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
416 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
417 if (targetAet != NULL) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
418 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
419 _targetAet.assign(targetAet); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
420 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
421 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
422 PythonLock lock; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
423 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
424 PythonObject kw(lock, PyDict_New()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
425 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
426 std::string level; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
427 switch (resourceType) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
428 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
429 case OrthancPluginResourceType_Patient: |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
430 level = "PATIENT"; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
431 break; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
432 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
433 case OrthancPluginResourceType_Study: |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
434 level = "STUDY"; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
435 break; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
436 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
437 case OrthancPluginResourceType_Series: |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
438 level = "SERIES"; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
439 break; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
440 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
441 case OrthancPluginResourceType_Instance: |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
442 level = "INSTANCE"; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
443 break; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
444 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
445 default: |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
446 throw OrthancPlugins::PluginException(OrthancPluginErrorCode_ParameterOutOfRange); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
447 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
448 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
449 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
450 PythonString tmp(lock, level); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
451 PyDict_SetItemString(kw.GetPyObject(), "Level", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
452 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
453 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
454 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
455 PythonString tmp(lock, _patientId); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
456 PyDict_SetItemString(kw.GetPyObject(), "PatientID", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
457 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
458 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
459 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
460 PythonString tmp(lock, _accessionNumber); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
461 PyDict_SetItemString(kw.GetPyObject(), "AccessionNumber", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
462 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
463 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
464 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
465 PythonString tmp(lock, _studyInstanceUid); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
466 PyDict_SetItemString(kw.GetPyObject(), "StudyInstanceUID", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
467 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
468 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
469 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
470 PythonString tmp(lock, _seriesInstanceUid); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
471 PyDict_SetItemString(kw.GetPyObject(), "SeriesInstanceUID", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
472 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
473 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
474 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
475 PythonString tmp(lock, _sopInstanceUid); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
476 PyDict_SetItemString(kw.GetPyObject(), "SOPInstanceUID", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
477 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
478 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
479 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
480 PythonString tmp(lock, _originatorAet); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
481 PyDict_SetItemString(kw.GetPyObject(), "OriginatorAET", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
482 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
483 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
484 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
485 PythonString tmp(lock, _sourceAet); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
486 PyDict_SetItemString(kw.GetPyObject(), "SourceAET", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
487 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
488 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
489 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
490 PythonString tmp(lock, _targetAet); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
491 PyDict_SetItemString(kw.GetPyObject(), "TargetAET", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
492 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
493 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
494 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
495 PythonObject tmp(lock, PyLong_FromUnsignedLong(originatorId)); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
496 PyDict_SetItemString(kw.GetPyObject(), "OriginatorID", tmp.GetPyObject()); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
497 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
498 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
499 PythonObject args(lock, PyTuple_New(0)); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
500 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
501 // Note: the result is not attached to the PythonLock because we want it to survive after this call since |
152 | 502 // the result is the python move driver that will be passed as first argument to GetMoveSize, Apply and Free. |
503 // After the PyObject_Call, result's ref count is 1 -> no need to add a reference but we need to decref explicitely | |
504 // to delete the object at the end of the move. | |
505 PyObject* result = PyObject_Call(createMoveScpDriverCallback_, args.GetPyObject(), kw.GetPyObject()); | |
151
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
506 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
507 OrthancPluginErrorCode code = lock.CheckCallbackSuccess("Python C-MOVE SCP callback (Create)"); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
508 if (code != OrthancPluginErrorCode_Success) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
509 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
510 throw OrthancPlugins::PluginException(code); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
511 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
512 |
152 | 513 return result; |
151
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
514 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
515 catch (OrthancPlugins::PluginException& e) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
516 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
517 return NULL; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
518 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
519 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
520 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
521 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
522 static uint32_t GetMoveSize2(void *moveDriver) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
523 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
524 assert(moveDriver != NULL); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
525 assert(getMoveSizeCallback_ != NULL); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
526 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
527 PythonLock lock; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
528 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
529 PythonObject args(lock, PyTuple_New(1)); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
530 PyTuple_SetItem(args.GetPyObject(), 0, reinterpret_cast<PyObject*>(moveDriver)); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
531 Py_INCREF(moveDriver); // because PyTuple_SetItem steals a reference and we need to keep the object alive |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
532 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
533 PythonObject result(lock, PyObject_CallObject(getMoveSizeCallback_, args.GetPyObject())); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
534 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
535 OrthancPluginErrorCode code = lock.CheckCallbackSuccess("Python C-MOVE SCP callback (GetMoveSize)"); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
536 if (code != OrthancPluginErrorCode_Success) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
537 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
538 throw OrthancPlugins::PluginException(code); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
539 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
540 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
541 if (!PyLong_Check(result.GetPyObject())) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
542 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
543 throw OrthancPlugins::PluginException(OrthancPluginErrorCode_BadParameterType); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
544 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
545 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
546 return static_cast<uint32_t>(PyLong_AsLong(result.GetPyObject())); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
547 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
548 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
549 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
550 OrthancPluginErrorCode ApplyMove2(void *moveDriver) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
551 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
552 assert(moveDriver != NULL); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
553 assert(applyMoveCallback_ != NULL); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
554 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
555 PythonLock lock; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
556 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
557 PythonObject args(lock, PyTuple_New(1)); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
558 PyTuple_SetItem(args.GetPyObject(), 0, reinterpret_cast<PyObject*>(moveDriver)); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
559 Py_INCREF(moveDriver); // because PyTuple_SetItem steals a reference and we need to keep the object alive |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
560 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
561 PythonObject result(lock, PyObject_CallObject(applyMoveCallback_, args.GetPyObject())); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
562 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
563 OrthancPluginErrorCode code = lock.CheckCallbackSuccess("Python C-MOVE SCP callback (Apply)"); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
564 return code; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
565 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
566 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
567 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
568 void FreeMove2(void *moveDriver) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
569 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
570 assert(moveDriver != NULL); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
571 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
572 PythonLock lock; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
573 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
574 PythonObject args(lock, PyTuple_New(1)); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
575 PyTuple_SetItem(args.GetPyObject(), 0, reinterpret_cast<PyObject*>(moveDriver)); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
576 Py_INCREF(moveDriver); // because PyTuple_SetItem steals a reference and we need to keep the object alive |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
577 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
578 assert(freeMoveCallback_ != NULL); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
579 PythonObject result(lock, PyObject_CallObject(freeMoveCallback_, args.GetPyObject())); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
580 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
581 lock.CheckCallbackSuccess("Python C-MOVE SCP callback (Free)"); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
582 |
152 | 583 Py_DECREF(moveDriver); // remove the initial reference -> this will delete the Python Object when we exit this function |
151
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
584 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
585 |
64
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
586 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
587 OrthancPluginErrorCode WorklistCallback(OrthancPluginWorklistAnswers *answers, |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
588 const OrthancPluginWorklistQuery *query, |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
589 const char *issuerAet, |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
590 const char *calledAet) |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
591 { |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
592 try |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
593 { |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
594 PythonLock lock; |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
595 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
596 PyObject *pAnswers, *pQuery; |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
597 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
598 { |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
599 PythonObject args(lock, PyTuple_New(2)); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
600 PyTuple_SetItem(args.GetPyObject(), 0, PyLong_FromSsize_t((intptr_t) answers)); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
601 PyTuple_SetItem(args.GetPyObject(), 1, PyBool_FromLong(true /* borrowed, don't destruct */)); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
602 pAnswers = PyObject_CallObject((PyObject *) GetOrthancPluginWorklistAnswersType(), args.GetPyObject()); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
603 } |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
604 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
605 { |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
606 PythonObject args(lock, PyTuple_New(2)); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
607 PyTuple_SetItem(args.GetPyObject(), 0, PyLong_FromSsize_t((intptr_t) query)); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
608 PyTuple_SetItem(args.GetPyObject(), 1, PyBool_FromLong(true /* borrowed, don't destruct */)); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
609 pQuery = PyObject_CallObject((PyObject *) GetOrthancPluginWorklistQueryType(), args.GetPyObject()); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
610 } |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
611 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
612 PythonString pIssuerAet(lock, issuerAet); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
613 PythonString pCalledAet(lock, calledAet); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
614 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
615 { |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
616 PythonObject args(lock, PyTuple_New(4)); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
617 PyTuple_SetItem(args.GetPyObject(), 0, pAnswers); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
618 PyTuple_SetItem(args.GetPyObject(), 1, pQuery); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
619 PyTuple_SetItem(args.GetPyObject(), 2, pIssuerAet.Release()); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
620 PyTuple_SetItem(args.GetPyObject(), 3, pCalledAet.Release()); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
621 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
622 assert(worklistScpCallback_ != NULL); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
623 PythonObject result(lock, PyObject_CallObject(worklistScpCallback_, args.GetPyObject())); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
624 } |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
625 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
626 return lock.CheckCallbackSuccess("Python C-FIND SCP for worklist callback"); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
627 } |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
628 catch (OrthancPlugins::PluginException& e) |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
629 { |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
630 return e.GetErrorCode(); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
631 } |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
632 } |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
633 |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
634 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
635 PyObject* RegisterFindCallback(PyObject* module, PyObject* args) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
636 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
637 // The GIL is locked at this point (no need to create "PythonLock") |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
638 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
639 class Registration : public ICallbackRegistration |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
640 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
641 public: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
642 virtual void Register() ORTHANC_OVERRIDE |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
643 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
644 OrthancPluginRegisterFindCallback(OrthancPlugins::GetGlobalContext(), FindCallback); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
645 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
646 }; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
647 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
648 Registration registration; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
649 return ICallbackRegistration::Apply( |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
650 registration, args, findScpCallback_, "Python C-FIND SCP callback"); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
651 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
652 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
653 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
654 PyObject* RegisterMoveCallback(PyObject* module, PyObject* args) |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
655 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
656 // The GIL is locked at this point (no need to create "PythonLock") |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
657 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
658 class Registration : public ICallbackRegistration |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
659 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
660 public: |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
661 virtual void Register() ORTHANC_OVERRIDE |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
662 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
663 OrthancPluginRegisterMoveCallback( |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
664 OrthancPlugins::GetGlobalContext(), CreateMoveCallback, GetMoveSize, ApplyMove, FreeMove); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
665 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
666 }; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
667 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
668 Registration registration; |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
669 return ICallbackRegistration::Apply( |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
670 registration, args, moveScpCallback_, "Python C-MOVE SCP callback"); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
671 } |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
672 |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
673 |
151
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
674 PyObject* RegisterMoveCallback2(PyObject* module, PyObject* args) |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
675 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
676 // The GIL is locked at this point (no need to create "PythonLock") |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
677 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
678 class Registration : public ICallbackRegistration |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
679 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
680 public: |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
681 virtual void Register() ORTHANC_OVERRIDE |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
682 { |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
683 OrthancPluginRegisterMoveCallback( |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
684 OrthancPlugins::GetGlobalContext(), CreateMoveCallback2, GetMoveSize2, ApplyMove2, FreeMove2); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
685 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
686 }; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
687 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
688 Registration registration; |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
689 return ICallbackRegistration::Apply4( |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
690 registration, args, createMoveScpDriverCallback_, getMoveSizeCallback_, applyMoveCallback_, freeMoveCallback_, "Python C-MOVE SCP callback (2)"); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
691 } |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
692 |
64
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
693 PyObject* RegisterWorklistCallback(PyObject* module, PyObject* args) |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
694 { |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
695 // The GIL is locked at this point (no need to create "PythonLock") |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
696 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
697 class Registration : public ICallbackRegistration |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
698 { |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
699 public: |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
700 virtual void Register() ORTHANC_OVERRIDE |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
701 { |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
702 OrthancPluginRegisterWorklistCallback(OrthancPlugins::GetGlobalContext(), WorklistCallback); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
703 } |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
704 }; |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
705 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
706 Registration registration; |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
707 return ICallbackRegistration::Apply( |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
708 registration, args, worklistScpCallback_, "Python C-FIND SCP for worklist callback"); |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
709 } |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
710 |
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
711 |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
712 void FinalizeDicomScpCallbacks() |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
713 { |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
714 ICallbackRegistration::Unregister(findScpCallback_); |
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
715 ICallbackRegistration::Unregister(moveScpCallback_); |
64
091fb1903bfc
new wrapped function: orthanc.RegisterWorklistCallback() and orthanc.WorklistAnswers.WorklistAddAnswer()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
63
diff
changeset
|
716 ICallbackRegistration::Unregister(worklistScpCallback_); |
151
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
717 |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
718 ICallbackRegistration::Unregister(createMoveScpDriverCallback_); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
719 ICallbackRegistration::Unregister(getMoveSizeCallback_); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
720 ICallbackRegistration::Unregister(applyMoveCallback_); |
566df919b286
new more detailed C-Move SCP callbacks
Alain Mazy <am@osimis.io>
parents:
131
diff
changeset
|
721 ICallbackRegistration::Unregister(freeMoveCallback_); |
63
32de70a1e4c7
New functions from the SDK wrapped in Python: CreateDicom, RegisterFindCallback, RegisterMoveCallback
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
722 } |