NorMIT-nav  2023.01.05-dev+develop.0da12
An IGT application
cxManualPatientRegistrationWidget.cpp
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
13 
14 #include <QLabel>
15 #include "cxPatientModelService.h"
16 #include "cxRegistrationService.h"
17 #include "cxTransform3DWidget.h"
18 
19 namespace cx
20 {
21 
23  BaseWidget(parent, objectName, "Manual Patient Registration"),
24  mVerticalLayout(new QVBoxLayout(this)),
25  mServices(services)
26 {
27  this->setToolTip("Set patient registration directly");
28  mVerticalLayout->setMargin(0);
29  mLabel = new QLabel("Patient Registration matrix rMpr");
30  mVerticalLayout->addWidget(mLabel);
31  mMatrixWidget = new Transform3DWidget(this);
32  mVerticalLayout->addWidget(mMatrixWidget);
33  connect(mMatrixWidget, SIGNAL(changed()), this, SLOT(matrixWidgetChanged()));
34  connect(services->patient().get(), SIGNAL(rMprChanged()), this, SLOT(patientMatrixChanged()));
35  mMatrixWidget->setEditable(true);
36 
37  mVerticalLayout->addStretch();
38 
39 }
40 
41 
43 {
44  this->patientMatrixChanged();
45 }
46 
48 // * Perform registration.
49 // *
50 // */
51 void ManualPatientRegistrationWidget::matrixWidgetChanged()
52 {
53  Transform3D rMpr = mMatrixWidget->getMatrix();
54  mServices->registration()->addPatientRegistration(rMpr, "Manual Patient");
55 }
56 
58 // * Perform registration.
59 // *
60 // */
61 void ManualPatientRegistrationWidget::patientMatrixChanged()
62 {
63  mLabel->setText(this->getDescription());
64  mMatrixWidget->blockSignals(true);
65  mMatrixWidget->setMatrix(mServices->patient()->get_rMpr());
66  mMatrixWidget->blockSignals(false);
67 }
68 
69 bool ManualPatientRegistrationWidget::isValid() const
70 {
71  return true;
72 }
73 
74 QString ManualPatientRegistrationWidget::getDescription()
75 {
76  if (this->isValid())
77  return QString("<b>Patient Registration matrix rMpr</b>");
78  else
79  return "<Invalid matrix>";
80 }
81 
82 } //cx
cx::Transform3DWidget
Widget for displaying and manipulating an affine matrix, i.e. a rotation+translation matrix.
Definition: cxTransform3DWidget.h:38
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cx::ManualPatientRegistrationWidget::showEvent
void showEvent(QShowEvent *event)
Definition: cxManualPatientRegistrationWidget.cpp:42
cx::BaseWidget
Interface for QWidget which handles widgets uniformly for the system.
Definition: cxBaseWidget.h:88
cxTransform3DWidget.h
cx::ManualPatientRegistrationWidget::ManualPatientRegistrationWidget
ManualPatientRegistrationWidget(RegServicesPtr services, QWidget *parent, QString objectName)
Definition: cxManualPatientRegistrationWidget.cpp:22
cx::Transform3D
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
Definition: cxLandmarkPatientRegistrationWidget.h:33
cxPatientModelService.h
cx::RegServicesPtr
boost::shared_ptr< class RegServices > RegServicesPtr
Definition: cxRegServices.h:20
cxManualPatientRegistrationWidget.h
cx::Transform3DWidget::setMatrix
void setMatrix(const Transform3D &M)
Definition: cxTransform3DWidget.cpp:267
cx::Transform3DWidget::getMatrix
Transform3D getMatrix() const
Definition: cxTransform3DWidget.cpp:272
cx::Transform3DWidget::setEditable
void setEditable(bool edit)
Definition: cxTransform3DWidget.cpp:195
cxRegistrationService.h
cx::ManualPatientRegistrationWidget::mServices
RegServicesPtr mServices
Definition: cxManualPatientRegistrationWidget.h:43