在 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 的单个实例(对象)界面。 cx::RegServices辅助类包含 cx::RegistrationServiceProxy ,它充当引用该对象的智能指针。服务对象仅由实现它们的插件创建:用户只需访问这些对象即可。
RegistrationServiceProxy 使用 ctkServiceTracker 来实现这一点和相关类,例如 this tutorial on OSGi ,第 5.4 节(在 java 中,但原则适用)。
关于plugins - 如何访问 CustusX 插件中的 RegistrationService?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31162323/