CustusX  2021.04.21-dev+develop.337f9
An IGT application
cxUsReconstructionService.h
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 
12 #ifndef CXUSRECONSTRUCTIONSERVICE_H
13 #define CXUSRECONSTRUCTIONSERVICE_H
14 
15 #include "org_custusx_usreconstruction_Export.h"
16 
17 #include <boost/shared_ptr.hpp>
18 #include <set>
19 #include <vector>
20 #include <QObject>
21 #include "cxForwardDeclarations.h"
22 #include "cxReconstructCore.h"
23 
24 #define UsReconstructionService_iid "cx::UsReconstructionService"
25 
26 namespace cx
27 {
28 struct USReconstructInputData;
29 class XmlOptionFile;
30 class OutputVolumeParams;
31 class ReconstructionMethodService;
32 
33 typedef boost::shared_ptr<class TimedBaseAlgorithm> TimedAlgorithmPtr;
34 typedef boost::shared_ptr<class CompositeTimedAlgorithm> CompositeTimedAlgorithmPtr;
35 typedef boost::shared_ptr<class ReconstructionManager> ReconstructionManagerPtr;
36 typedef boost::shared_ptr<class ReconstructCore> ReconstructCorePtr;
37 typedef boost::shared_ptr<class ReconstructParams> ReconstructParamsPtr;
38 typedef boost::shared_ptr<class ReconstructPreprocessor> ReconstructPreprocessorPtr;
39 typedef boost::shared_ptr<class ThreadedTimedReconstructer> ThreadedTimedReconstructerPtr;
40 typedef boost::shared_ptr<class ThreadedTimedReconstructPreprocessor> ThreadedTimedReconstructPreprocessorPtr;
41 typedef boost::shared_ptr<class ThreadedTimedReconstructCore> ThreadedTimedReconstructCorePtr;
42 
43 typedef boost::shared_ptr<class ReconstructionExecuter> ReconstructionExecuterPtr;
44 
45 typedef boost::shared_ptr<class UsReconstructionService> UsReconstructionServicePtr;
46 
50 class org_custusx_usreconstruction_EXPORT UsReconstructionService : public QObject
51 {
52  Q_OBJECT
53 public:
54 
55  virtual void selectData(QString filename, QString calFilesPath = "") = 0;
56  virtual void selectData(USReconstructInputData data) = 0;
57 
58  virtual QString getSelectedFilename() const = 0;
59  virtual USReconstructInputData getSelectedFileData() = 0;
60 // virtual ReconstructParamsPtr getParams() = 0; ///< Return control parameters that can be adjusted by the GUI or similar prior to reconstruction
61  virtual PropertyPtr getParam(QString uid) = 0;
62  virtual std::vector<PropertyPtr> getAlgoOptions() = 0;
63  virtual XmlOptionFile getSettings() = 0;
64  virtual OutputVolumeParams getOutputVolumeParams() const = 0;
65 
66  virtual void setOutputVolumeParams(const OutputVolumeParams& par) = 0;
67 // virtual void setOutputRelativePath(QString path) = 0; ///< Set location of output relative to base
68 // virtual void setOutputBasePath(QString path) = 0; ///< Set base location of output
69 
76  virtual void startReconstruction() = 0;
77  virtual std::set<cx::TimedAlgorithmPtr> getThreadedReconstruction() = 0;
78 
83  virtual ReconstructionMethodService* createAlgorithm() = 0;
84 
85  virtual ReconstructCore::InputParams createCoreParameters() = 0;
86 
87  virtual bool isNull() = 0;
88  static UsReconstructionServicePtr getNullObject();
89 
90 public slots:
91  virtual void newDataOnDisk(QString mhdFilename) = 0;
92 
93 signals:
94  void paramsChanged();
95  void algorithmChanged();
96  void inputDataSelected(QString mhdFileName);
97  void reconstructAboutToStart();
98  void reconstructStarted();
99  void reconstructFinished();
100 
101  void newInputDataAvailable(QString mhdFileName);
102  void newInputDataPath(QString path);
103 };
104 
105 } //cx
107 
108 #endif // CXUSRECONSTRUCTIONSERVICE_H
boost::shared_ptr< class CompositeTimedAlgorithm > CompositeTimedAlgorithmPtr
boost::shared_ptr< class UsReconstructionService > UsReconstructionServicePtr
boost::shared_ptr< class ReconstructionExecuter > ReconstructionExecuterPtr
Abstract interface for reconstruction algorithm.
boost::shared_ptr< class ThreadedTimedReconstructCore > ThreadedTimedReconstructCorePtr
boost::shared_ptr< class ThreadedTimedReconstructPreprocessor > ThreadedTimedReconstructPreprocessorPtr
Helper struct for sending and controlling output volume properties.
boost::shared_ptr< class ThreadedTimedReconstructer > ThreadedTimedReconstructerPtr
#define UsReconstructionService_iid
boost::shared_ptr< class TimedBaseAlgorithm > TimedAlgorithmPtr
boost::shared_ptr< class ReconstructParams > ReconstructParamsPtr
boost::shared_ptr< class Property > PropertyPtr
boost::shared_ptr< class ReconstructPreprocessor > ReconstructPreprocessorPtr
boost::shared_ptr< class ReconstructionManager > ReconstructionManagerPtr
Helper class for xml files used to store ssc/cx data.
boost::shared_ptr< class ReconstructCore > ReconstructCorePtr
Namespace for all CustusX production code.