Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkPatientInfoWidget.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 "QmitkPatientInfoWidget.h"
14 
15 // semantic relations module
16 #include <mitkDICOMHelper.h>
17 
18 // mitk core
19 #include <mitkPropertyNameHelper.h>
20 
22  : QWidget(parent)
23 {
24  Init();
25 }
26 
28 {
29  // nothing here
30 }
31 
32 void QmitkPatientInfoWidget::Init()
33 {
34  // Create GUI widgets from the Qt Designer's .ui file
35  m_Controls.setupUi(this);
36 }
37 
39 {
40  if (nullptr == dataNode)
41  {
42  MITK_INFO << "Not a valid data node.";
43  return;
44  }
45 
46  mitk::BaseData* baseData = dataNode->GetData();
47  if (nullptr == baseData)
48  {
49  MITK_INFO << "No valid base data.";
50  return;
51  }
52 
53  mitk::BaseProperty* acquisitionDate = baseData->GetProperty(mitk::GeneratePropertyNameForDICOMTag(0x0008, 0x0022).c_str());
54  std::string acquisitionDateAsString = "";
55  if (nullptr != acquisitionDate)
56  {
57  acquisitionDateAsString = acquisitionDate->GetValueAsString();
58  mitk::DICOMHelper::ReformatDICOMTag(mitk::GeneratePropertyNameForDICOMTag(0x0008, 0x0022).c_str(), acquisitionDateAsString);
59  }
60 
61  mitk::BaseProperty* acquisitionTime = baseData->GetProperty(mitk::GeneratePropertyNameForDICOMTag(0x0008, 0x0032).c_str());
62  std::string acquisitionTimeAsString = "";
63  if (nullptr != acquisitionTime)
64  {
65  acquisitionTimeAsString = acquisitionTime->GetValueAsString();
66  mitk::DICOMHelper::ReformatDICOMTag(mitk::GeneratePropertyNameForDICOMTag(0x0008, 0x0032).c_str(), acquisitionTimeAsString);
67  }
68 
69  std::string patiensBirthDateAsString = "";
70  mitk::BaseProperty* patientBirthDate = baseData->GetProperty(mitk::GeneratePropertyNameForDICOMTag(0x0010, 0x0030).c_str());
71  if (nullptr != patientBirthDate)
72  {
73  patiensBirthDateAsString = patientBirthDate->GetValueAsString();
74  mitk::DICOMHelper::ReformatDICOMTag(mitk::GeneratePropertyNameForDICOMTag(0x0010, 0x0030).c_str(), patiensBirthDateAsString);
75  }
76 
77  mitk::BaseProperty* modality = baseData->GetProperty(mitk::GeneratePropertyNameForDICOMTag(0x0008, 0x0060).c_str());
78  std::string modalityAsString = "";
79  if (nullptr != modality)
80  {
81  modalityAsString = modality->GetValueAsString();
82  mitk::DICOMHelper::ReformatDICOMTag(mitk::GeneratePropertyNameForDICOMTag(0x0008, 0x0060).c_str(), modalityAsString);
83  }
84 
85  mitk::BaseProperty* gender = baseData->GetProperty(mitk::GeneratePropertyNameForDICOMTag(0x0010, 0x0040).c_str());
86  std::string genderAsString = "";
87  if (nullptr != gender)
88  {
89  genderAsString = gender->GetValueAsString();
90  mitk::DICOMHelper::ReformatDICOMTag(mitk::GeneratePropertyNameForDICOMTag(0x0008, 0x0060).c_str(), genderAsString);
91  }
92 
93  m_Controls.dataIDLineEdit->setText(QString::fromStdString(mitk::DICOMHelper::GetIDFromDataNode(dataNode)));
94  m_Controls.nameLineEdit->setText(QString::fromStdString(mitk::DICOMHelper::GetCaseIDFromDataNode(dataNode)));
95  m_Controls.dateLineEdit->setText(QString::fromStdString(acquisitionDateAsString));
96  m_Controls.timeLineEdit->setText(QString::fromStdString(acquisitionTimeAsString));
97  m_Controls.scannerLineEdit->setText("");
98  m_Controls.modalityLineEdit->setText(QString::fromStdString(modalityAsString));
99  m_Controls.birthdateLineEdit->setText(QString::fromStdString(patiensBirthDateAsString));
100  m_Controls.genderLineEdit->setText(QString::fromStdString(genderAsString));
101 }
#define MITK_INFO
Definition: mitkLogMacros.h:18
void SetPatientInfo(const mitk::DataNode *dataNode)
Base of all data objects.
Definition: mitkBaseData.h:37
std::string MITKCORE_EXPORT GeneratePropertyNameForDICOMTag(unsigned int group, unsigned int element)
MITKSEMANTICRELATIONS_EXPORT SemanticTypes::CaseID GetCaseIDFromDataNode(const mitk::DataNode *dataNode)
BaseData * GetData() const
Get the data object (instance of BaseData, e.g., an Image) managed by this DataNode.
virtual std::string GetValueAsString() const
Abstract base class for properties.
QmitkPatientInfoWidget(QWidget *parent=nullptr)
MITKSEMANTICRELATIONS_EXPORT SemanticTypes::ID GetIDFromDataNode(const mitk::DataNode *dataNode)
mitk::BaseProperty::Pointer GetProperty(const char *propertyKey) const
Get the property (instance of BaseProperty) with key propertyKey from the PropertyList, and set it to this, respectively;.
Class for nodes of the DataTree.
Definition: mitkDataNode.h:57