/*=========================================================================
Program: vv http://www.creatis.insa-lyon.fr/rio/vv
- Authors belong to:
+ Authors belong to:
- University of LYON http://www.universite-lyon.fr/
- Léon Bérard cancer center http://www.centreleonberard.fr
- CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
class vtkRenderer;
class vtkMatrix4x4;
class vvDicomSeriesSelector;
+#if CLITK_USE_PACS_CONNECTION
+class vvQPacsConnection;
+#endif
class vvSlicer;
class QTreeWidget;
void LoadImages(std::vector<std::string> filenames, vvImageReader::LoadedImageType type);
vvSlicerManager * AddImage(vvImage::Pointer image,std::string filename);
void AddField(QString file,int index);
+ bool CheckAddedImage(int index, QString imageType);
void AddOverlayImage(int index, std::vector<std::string> fileNames, vvImageReader::LoadedImageType type);
- void AddFusionImage(int index, QString filename);
+ void AddFusionImage(int index, std::vector<std::string> fileNames, vvImageReader::LoadedImageType type);
void AddROI(int index, QString filename);
+
+ //Process the sequence for fusion:
+ void AddFusionSequence(int index, std::vector<std::string> fileNames, vvImageReader::LoadedImageType type);
+
void AddLandmarks(int index, std::vector<std::string>);
///Adds a mesh to a SlicerManager, with optional warping by vector field
void AddContour(int image_index, vvMesh::Pointer contour, bool propagation);
void SaveCurrentStateAs(const std::string& stateFile);
void ReadSavedStateFile(const std::string& stateFile);
void LinkAllImages();
- QString Get4x4MatrixDoubleAsString(vtkSmartPointer<vtkMatrix4x4> matrix, const int precision=3);
virtual void UpdateCurrentSlicer();
virtual QTabWidget * GetTab();
void SliceImages();
void MergeImagesWithTime();
void OpenDicom();
+#if CLITK_USE_PACS_CONNECTION
+ void ConnectPacs();
+#endif
///Open a vtkPolyData surface mesh and display it over the current image
void OpenVTKContour();
void SaveAs();
void VectorChanged(int visibility, double x, double y, double z, double value);
void OverlayChanged(int visibility, double valueOver, double valueRef);
void FusionChanged(int visibility, double value);
+ //void FusionSequenceChanged(int visibility, double value);
void SegmentationOnCurrentImage();
void SurfaceViewerLaunch();
void WindowLevelChanged();
void UpdateSlice(int slicer, int slice);
- void UpdateTSlice(int slicer, int slice);
+ void UpdateTSlice(int slicer, int slice, int code=-1);
void UpdateSliceRange(int slicer, int min, int max, int tmin, int tmax);
void WindowLevelEdited();
void SetWindowLevel(double w, double l);
void OpenField();
void SelectOverlayImage();
void SelectFusionImage();
+ //select the file(s) from the disk containing the image sequence to fuse
+ void SelectFusionSequence();
+ void SelectFusionSequenceCorrespondances();
+
void ResetTransformationToIdentity();
void SetVFProperty(int subsampling,int scale,int lut, int width, double r, double g, double b);
void SetOverlayProperty(int color, int linked, double window, double level);
void SetFusionProperty(int opacity, int tresOpacity, int colormap,double window,double level, bool showLegend);
+ void SetFusionSequenceProperty(int fusionSequenceFrameIndex, bool spatialSyncFlag, unsigned int fusionSequenceNbFrames, bool temporalSyncFlag);
void GoToCursor();
void GoToLandmark();
vvDocumentation *documentation;
vvDicomSeriesSelector *dicomSeriesSelector;
+#if CLITK_USE_PACS_CONNECTION
+ vvQPacsConnection *PacsConnection;
+#endif
+
bool viewMode;
bool playMode;
QString GetSizeInBytes(unsigned long size);
QString GetVectorDoubleAsString(std::vector<double> vectorDouble);
QString GetVectorIntAsString(std::vector<int> vectorInt);
- int GetSlicerIndexFromItem(QTreeWidgetItem* item);
+ int GetSlicerIndexFromItem(QTreeWidgetItem* item); //this actually returns the SlicerManager index TODO: rename it to GetSlicerManagerIndexFromItem
QTreeWidgetItem* GetItemFromSlicerManager(vvSlicerManager* sm);
void SaveScreenshot(QVTKWidget *widget);
int GetImageDuplicateFilenameNumber(std::string filename);