Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkXnatSubjectWidget.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #include "QmitkXnatSubjectWidget.h"
14 
15 #include <ctkXnatSubject.h>
16 #include <iostream>
17 
18 QmitkXnatSubjectWidget::QmitkXnatSubjectWidget(QWidget *parent) : QWidget(parent)
19 {
20  m_Mode = INFO;
21  Init();
22 }
23 
24 QmitkXnatSubjectWidget::QmitkXnatSubjectWidget(Mode mode, QWidget *parent) : QWidget(parent), m_Mode(mode)
25 {
26  Init();
27 }
28 
30 {
31 }
32 
33 void QmitkXnatSubjectWidget::Init()
34 {
35  // Create GUI widgets from the Qt Designer's .ui file
36  m_Controls.setupUi(this);
37 
38  if (m_Mode == Mode::INFO)
39  {
40  // make not needed row invisible
41  m_Controls.labelLabel->setText("ID:");
42  m_Controls.mandatoryLabel->setVisible(false);
43  }
44 }
45 
46 void QmitkXnatSubjectWidget::SetSubject(ctkXnatSubject *subject)
47 {
48  m_Subject = subject;
49 
50  // Set the UI labels
51  if (m_Subject->parent())
52  {
53  m_Controls.breadcrumbLabel->setText("Project:" + m_Subject->parent()->property("name"));
54  }
55  m_Controls.labelLineEdit->setText(m_Subject->property("label"));
56  m_Controls.birthdateLineEdit->setText(m_Subject->property("dob"));
57  m_Controls.genderLineEdit->setText(m_Subject->property("gender"));
58  m_Controls.handednessLineEdit->setText(m_Subject->property("handedness"));
59  m_Controls.heightLineEdit->setText(m_Subject->property("height"));
60  m_Controls.weightLineEdit->setText(m_Subject->property("weight"));
61 }
62 
63 ctkXnatSubject *QmitkXnatSubjectWidget::GetSubject() const
64 {
65  if (m_Mode == CREATE)
66  {
67  if (!m_Controls.labelLineEdit->text().isEmpty())
68  {
69  m_Subject->setProperty("label", m_Controls.labelLineEdit->text());
70  }
71  if (!m_Controls.birthdateLineEdit->text().isEmpty())
72  {
73  m_Subject->setProperty("dob", m_Controls.birthdateLineEdit->text());
74  }
75  if (!m_Controls.genderLineEdit->text().isEmpty())
76  {
77  m_Subject->setProperty("gender", m_Controls.genderLineEdit->text());
78  }
79  if (!m_Controls.handednessLineEdit->text().isEmpty())
80  {
81  m_Subject->setProperty("handedness", m_Controls.handednessLineEdit->text());
82  }
83  if (!m_Controls.heightLineEdit->text().isEmpty())
84  {
85  m_Subject->setProperty("height", m_Controls.heightLineEdit->text());
86  }
87  if (!m_Controls.weightLineEdit->text().isEmpty())
88  {
89  m_Subject->setProperty("weight", m_Controls.weightLineEdit->text());
90  }
91  }
92 
93  return m_Subject;
94 }
QmitkXnatSubjectWidget(QWidget *parent=nullptr)
Ui::QmitkXnatSubjectWidgetControls m_Controls
void SetSubject(ctkXnatSubject *subject)
ctkXnatSubject * GetSubject() const