如何访问 CustusX 插件中的注册服务?
How to access a registrationService in a CustusX plugin?
在 custusX 的自定义插件中,我使用 mServices->patientModelService->getPatientLandmarks()->setLandmark
以编程方式更改一些地标。我想用已经存在的卷进行注册。
在LandmarkPatientRegistrationWidget
中org.custusx.registration.method.landmark
,performRegistration()
调用mServices.registrationService->doPatientRegistration()
。
但是,我不确定我获取 registrationService
实例的方法是否正确。
到目前为止,我已将 org_custusx_registration
添加到 CMakeLists.txt 文件,并添加了 "cxRegistrationService.h"
和 <cxRegServices.h>
作为包含。
现在我可以定义一个 RegServices mRegServices
并在构造函数中用插件的 mContext
初始化它。
但是我是创建自己的注册服务还是访问现有的服务?我怎样才能访问已经 运行 的注册服务?
您的方法正确地重用了现有的 运行 注册服务。
CustusX 的默认设置注册了一个实现 cx::RegistrationService interface. The cx::RegServices helper class contains a cx::RegistrationServiceProxy 的 单个实例 (对象),它充当引用该对象的智能指针。服务对象仅由实现它们的插件创建:用户只需访问这些对象。
RegistrationServiceProxy 使用 ctkServiceTracker and related classes, see for example this tutorial on OSGi 第 5.4 节(在 java 中,但原则适用)来实现这一点。
在 custusX 的自定义插件中,我使用 mServices->patientModelService->getPatientLandmarks()->setLandmark
以编程方式更改一些地标。我想用已经存在的卷进行注册。
在LandmarkPatientRegistrationWidget
中org.custusx.registration.method.landmark
,performRegistration()
调用mServices.registrationService->doPatientRegistration()
。
但是,我不确定我获取 registrationService
实例的方法是否正确。
到目前为止,我已将 org_custusx_registration
添加到 CMakeLists.txt 文件,并添加了 "cxRegistrationService.h"
和 <cxRegServices.h>
作为包含。
现在我可以定义一个 RegServices mRegServices
并在构造函数中用插件的 mContext
初始化它。
但是我是创建自己的注册服务还是访问现有的服务?我怎样才能访问已经 运行 的注册服务?
您的方法正确地重用了现有的 运行 注册服务。
CustusX 的默认设置注册了一个实现 cx::RegistrationService interface. The cx::RegServices helper class contains a cx::RegistrationServiceProxy 的 单个实例 (对象),它充当引用该对象的智能指针。服务对象仅由实现它们的插件创建:用户只需访问这些对象。
RegistrationServiceProxy 使用 ctkServiceTracker and related classes, see for example this tutorial on OSGi 第 5.4 节(在 java 中,但原则适用)来实现这一点。