NorMIT-nav  22.09
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
cx::XmlOptionFile
Helper class for xml files used to store ssc/cx data.
Definition: cxXmlOptionItem.h:78
cx::ReconstructPreprocessorPtr
boost::shared_ptr< class ReconstructPreprocessor > ReconstructPreprocessorPtr
Definition: cxReconstructPreprocessor.h:24
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cx::ReconstructCorePtr
boost::shared_ptr< class ReconstructCore > ReconstructCorePtr
Definition: cxReconstructCore.h:23
cxForwardDeclarations.h
cx::UsReconstructionServicePtr
boost::shared_ptr< class UsReconstructionService > UsReconstructionServicePtr
Definition: cxAcquisitionImplService.h:24
cx::UsReconstructionService
Definition: cxUsReconstructionService.h:50
cx::ThreadedTimedReconstructerPtr
boost::shared_ptr< class ThreadedTimedReconstructer > ThreadedTimedReconstructerPtr
Definition: cxUSAcqusitionWidget.h:23
cx::ThreadedTimedReconstructPreprocessorPtr
boost::shared_ptr< class ThreadedTimedReconstructPreprocessor > ThreadedTimedReconstructPreprocessorPtr
Definition: cxReconstructThreads.h:35
cx::ReconstructionMethodService
Abstract interface for reconstruction algorithm.
Definition: cxReconstructionMethodService.h:54
cx::TimedAlgorithmPtr
boost::shared_ptr< class TimedBaseAlgorithm > TimedAlgorithmPtr
Definition: cxReconstructionExecuter.h:27
cx::PropertyPtr
boost::shared_ptr< class Property > PropertyPtr
Definition: cxLocalServerStreamerServer.h:25
cx::ReconstructCore::InputParams
Definition: cxReconstructCore.h:41
UsReconstructionService_iid
#define UsReconstructionService_iid
Definition: cxUsReconstructionService.h:24
cx::ReconstructionExecuterPtr
boost::shared_ptr< class ReconstructionExecuter > ReconstructionExecuterPtr
Definition: cxReconstructionExecuter.h:28
cx::ThreadedTimedReconstructCorePtr
boost::shared_ptr< class ThreadedTimedReconstructCore > ThreadedTimedReconstructCorePtr
Definition: cxReconstructThreads.h:36
cx::CompositeTimedAlgorithmPtr
boost::shared_ptr< class CompositeTimedAlgorithm > CompositeTimedAlgorithmPtr
Definition: cxUsReconstructionService.h:34
cxReconstructCore.h
cx::OutputVolumeParams
Helper struct for sending and controlling output volume properties.
Definition: cxReconstructedOutputVolumeParams.h:39
cx::USReconstructInputData
Definition: cxUSReconstructInputData.h:48
cx::ReconstructionManagerPtr
boost::shared_ptr< class ReconstructionManager > ReconstructionManagerPtr
Definition: cxUsReconstructionService.h:35
cx::ReconstructParamsPtr
boost::shared_ptr< class ReconstructParams > ReconstructParamsPtr
Definition: cxReconstructParams.h:85