14 #include <QDomDocument> 18 #include <QTextStream> 19 #include <QApplication> 29 #include <vtkPolyData.h> 30 #include <vtkPointData.h> 45 mDataManager(dataManager),
60 return mSession->getRootFolder();
65 return mSession->isValid();
68 void PatientData::onCleared()
70 mDataManager->clear();
73 void PatientData::onSessionLoad(QDomElement &node)
76 QDomElement dataManagerNode = root.
descend(
"managers/datamanager").
node().toElement();
78 if (!dataManagerNode.isNull())
79 mDataManager->parseXml(dataManagerNode, mSession->getRootFolder());
82 void PatientData::onSessionSave(QDomElement &node)
85 QDomElement managerNode = root.
descend(
"managers").
node().toElement();
87 mDataManager->addXml(managerNode);
92 for (DataManager::ImagesMap::iterator iter = images.begin(); iter != images.end(); ++iter)
94 if(!iter->second->getFilename().isEmpty())
97 customReader->setTransform(iter->second->get_rMd());
105 if (
settings()->value(
"Automation/autoSave").toBool())
111 QString targetFolder = mSession->getRootFolder() +
"/Export/" 115 for (DataManager::ImagesMap::iterator iter = images.begin(); iter != images.end(); ++iter)
117 iter->second->save(targetFolder);
121 for (DataManager::MeshMap::iterator iter = meshes.begin(); iter != meshes.end(); ++iter)
131 mesh = mDataManager->getDataFactory()->createSpecific<
Mesh>(mesh->getUid(), mesh->getName());
133 mesh->setFilename(
"Images");
134 mesh->save(targetFolder);
137 report(
"Exported patient data to " + targetFolder +
".");
142 if (fileName.isEmpty())
144 QString text =
"Import canceled";
146 infoText =
"<font color=red>" + text +
"</font>";
150 QFileInfo fileInfo(fileName);
154 if (mDataManager->getData(uid))
156 QString text =
"Data with uid " + uid +
" already exists. Import canceled.";
158 infoText =
"<font color=red>" + text +
"</font>";
163 DataPtr data = mDataManager->loadData(uid, fileName);
166 QString text =
"Error with data file: " + fileName +
" Import canceled.";
168 infoText =
"<font color=red>" + text +
"</font>";
171 data->setAcquisitionTime(QDateTime::currentDateTime());
173 data->save(mSession->getRootFolder());
176 infoText = infoText.split(
"<br>", QString::SkipEmptyParts).join(
"<br>");
QString getActivePatientFolder() const
void isLoading(QDomElement &root)
emitted while loading a session. Xml storage is available, getRootFolder() is set to loaded value...
XMLNodeAdder descend(QString path)
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
cxResource_EXPORT Transform3D createTransformFromReferenceToExternal(PATIENT_COORDINATE_SYSTEM external)
void exportPatient(PATIENT_COORDINATE_SYSTEM externalSpace)
std::map< QString, MeshPtr > MeshMap
QString timestampSecondsFormat()
DataPtr importData(QString fileName, QString &infoText)
Import data into CustusX.
boost::shared_ptr< class DataManager > DataServicePtr
void sessionChanged()
emitted after change to a new session (new or loaded or cleared)
boost::shared_ptr< class Data > DataPtr
boost::shared_ptr< class CustomMetaImage > CustomMetaImagePtr
void reportWarning(QString msg)
void setVtkPolyData(const vtkPolyDataPtr &polyData)
std::map< QString, ImagePtr > ImagesMap
XMLNodeParser descend(QString path)
Settings * settings()
Shortcut for accessing the settings instance.
void cleared()
emitted when session is cleared, before isLoading is called
vtkSmartPointer< vtkPolyData > vtkPolyDataPtr
QString changeExtension(QString name, QString ext)
void removeData(QString uid)
PatientData(DataServicePtr dataManager, SessionStorageServicePtr session)
bool isPatientValid() const
boost::shared_ptr< class Mesh > MeshPtr
void isSaving(QDomElement &root)
xml storage is available
boost::shared_ptr< class SessionStorageService > SessionStorageServicePtr
Namespace for all CustusX production code.