Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkSemanticRelationsIntegration.h
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 #ifndef MITKSEMANTICRELATIONSINTEGRATION_H
14 #define MITKSEMANTICRELATIONSINTEGRATION_H
15 
17 
18 // semantic relations module
21 #include "mitkSemanticTypes.h"
22 
23 // mitk core
24 #include <mitkDataNode.h>
25 
26 namespace mitk
27 {
44  {
45  public:
46 
47  /************************************************************************/
48  /* functions to implement the observer pattern */
49  /************************************************************************/
56  void AddObserver(ISemanticRelationsObserver* observer) override;
62  void RemoveObserver(ISemanticRelationsObserver* observer) override;
63 
65 
66  /************************************************************************/
67  /* functions to add / remove instances / attributes */
68  /************************************************************************/
81  void AddImage(const DataNode* imageNode);
90  void RemoveImage(const DataNode* imageNode);
100  void AddLesion(const SemanticTypes::CaseID& caseID, const SemanticTypes::Lesion& lesion);
110  void OverwriteLesion(const SemanticTypes::CaseID& caseID, const SemanticTypes::Lesion& lesion);
124  void AddLesionAndLinkSegmentation(const DataNode* segmentationNode, const SemanticTypes::Lesion& lesion);
136  void RemoveLesion(const SemanticTypes::CaseID& caseID, const SemanticTypes::Lesion& lesion);
143  void AddSegmentation(const DataNode* segmentationNode, const DataNode* parentNode);
156  void LinkSegmentationToLesion(const DataNode* segmentationNode, const SemanticTypes::Lesion& lesion);
166  void UnlinkSegmentationFromLesion(const DataNode* segmentationNode);
175  void RemoveSegmentation(const DataNode* segmentationNode);
185  void SetControlPointOfImage(const DataNode* imageNode, const SemanticTypes::ControlPoint& controlPoint);
203  void AddControlPointAndLinkImage(const DataNode* imageNode, const SemanticTypes::ControlPoint& controlPoint, bool checkConsistence = true);
218  void LinkImageToControlPoint(const DataNode* imageNode, const SemanticTypes::ControlPoint& controlPoint, bool checkConsistence = true);
227  void UnlinkImageFromControlPoint(const DataNode* imageNode);
237  void AddExaminationPeriod(const SemanticTypes::CaseID& caseID, const SemanticTypes::ExaminationPeriod& examinationPeriod);
247  void RenameExaminationPeriod(const SemanticTypes::CaseID& caseID, const SemanticTypes::ExaminationPeriod& examinationPeriod);
260  void AddControlPointToExaminationPeriod(const SemanticTypes::CaseID& caseID, const SemanticTypes::ControlPoint& controlPoint, const SemanticTypes::ExaminationPeriod& examinationPeriod);
272  void SetInformationType(const DataNode* imageNode, const SemanticTypes::InformationType& informationType);
283  void AddInformationTypeToImage(const DataNode* imageNode, const SemanticTypes::InformationType& informationType);
295  void RemoveInformationTypeFromImage(const DataNode* imageNode);
296 
297  private:
301  static std::vector<mitk::ISemanticRelationsObserver*> m_ObserverVector;
309  void NotifyObserver(const mitk::SemanticTypes::CaseID& caseID) const override;
317  void ClearControlPoints(const SemanticTypes::CaseID& caseID);
318 
319  };
320 } // namespace mitk
321 
322 #endif // MITKSEMANTICRELATIONSINTEGRATION_H
void AddExaminationPeriod(const SemanticTypes::CaseID &caseID, const SemanticTypes::ExaminationPeriod &examinationPeriod)
void AddInformationTypeToImage(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &imageID, const SemanticTypes::InformationType &informationType)
void LinkSegmentationToLesion(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &segmentationID, const SemanticTypes::Lesion &lesion)
void AddControlPointToExaminationPeriod(const SemanticTypes::CaseID &caseID, const SemanticTypes::ControlPoint &controlPoint, const SemanticTypes::ExaminationPeriod &examinationPeriod)
void UnlinkSegmentationFromLesion(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &segmentationID)
DataCollection - Class to facilitate loading/accessing structured data.
#define MITKSEMANTICRELATIONS_EXPORT
The API provides functions to manipulate image relations and instances that are helpful during follow...
void AddImage(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &imageID)
MITKSEMANTICRELATIONS_EXPORT void RenameExaminationPeriod(const SemanticTypes::CaseID &caseID, const SemanticTypes::ExaminationPeriod &examinationPeriod)
void LinkImageToControlPoint(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &imageID, const SemanticTypes::ControlPoint &controlPoint)
The concept of an examination period. An examination period holds a vector of control point UIDs...
void UnlinkImageFromControlPoint(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &imageID)
void OverwriteLesion(const SemanticTypes::CaseID &caseID, const SemanticTypes::Lesion &lesion)
void RemoveLesion(const SemanticTypes::CaseID &caseID, const SemanticTypes::Lesion &lesion)
void RemoveInformationTypeFromImage(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &imageID)
std::string InformationType
void RemoveSegmentation(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &segmentationID)
void RemoveImage(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &imageID)
void AddLesion(const SemanticTypes::CaseID &caseID, const SemanticTypes::Lesion &lesion)
void AddSegmentation(const SemanticTypes::CaseID &caseID, const SemanticTypes::ID &segmentationID, const SemanticTypes::ID &parentID)
Class for nodes of the DataTree.
Definition: mitkDataNode.h:57