Browse Source

Fixed type of acceptableTransferSyntaxUIDs

Ivo Wolf 12 years ago
parent
commit
f61a9afd18

+ 1 - 1
Applications/ctkDICOMHost/ctkDICOMHostMainLogic.cpp

@@ -176,7 +176,7 @@ void ctkDICOMHostMainLogic::onDataAvailable()
     return;
 
   QString transfersyntax("1.2.840.10008.1.2.1");
-  QList<QUuid> transfersyntaxlist;
+  QList<QString> transfersyntaxlist;
   transfersyntaxlist.append(transfersyntax);
   QList<ctkDicomAppHosting::ObjectLocator> locators;
   locators = this->Host->getOtherSideExchangeService()->getData(uuidlist, transfersyntaxlist, false);

+ 13 - 5
Plugins/org.commontk.dah.cmdlinemoduleapp/ctkCommandLineModuleAppLogic.cpp

@@ -228,6 +228,11 @@ void ctkCommandLineModuleAppLogic::onDataAvailable()
   }
   ui.ReceivedDataInformation->setText(s);
   ui.LoadDataButton->setEnabled(true);
+
+  //FIX: still does not work here: need to postpone onDataAvailable even further (not just via QueuedConnection)
+  //QStringList preferredProtocols;
+  //preferredProtocols.append("file:");
+  //OutputLocation = getHostInterface()->getOutputLocation(preferredProtocols);
 }
 
 
@@ -240,12 +245,16 @@ void ctkCommandLineModuleAppLogic::onLoadDataClicked()
   QList<QUuid> uuidlist = ctkDicomAvailableDataHelper::getAllUuids(firstpatient);
   
   QString transfersyntax("1.2.840.10008.1.2.1");
-  QList<QUuid> transfersyntaxlist;
+  QList<QString> transfersyntaxlist;
   transfersyntaxlist.append(transfersyntax);
   QList<ctkDicomAppHosting::ObjectLocator> locators;
   locators = getHostInterface()->getData(uuidlist, transfersyntaxlist, false);
   qDebug() << "got locators! " << QString().setNum(locators.count());
 
+  QStringList preferredProtocols;
+  preferredProtocols.append("file:");
+  OutputLocation = getHostInterface()->getOutputLocation(preferredProtocols);
+
   QString s;
   s=s+" loc.count:"+QString().setNum(locators.count());
   if(locators.count()>0)
@@ -263,6 +272,8 @@ void ctkCommandLineModuleAppLogic::onLoadDataClicked()
         ctkDICOMImage ctkImage(&dcmtkImage);
 
         ModuleInstance->setValue("fileVar", filename);
+        ModuleInstance->setValue("dirVar", OutputLocation);
+        ModuleInstance->run();
 
         QPixmap pixmap = QPixmap::fromImage(ctkImage.frame(0),Qt::AvoidDither);
         if (pixmap.isNull())
@@ -292,10 +303,7 @@ void ctkCommandLineModuleAppLogic::onCreateSecondaryCapture()
   const QPixmap* pixmap = ui.PlaceHolderForImage->pixmap();
   if(pixmap!=NULL)
   {
-    QStringList preferredProtocols;
-    preferredProtocols.append("file:");
-    QString outputlocation = getHostInterface()->getOutputLocation(preferredProtocols);
-    QString templatefilename = QDir(outputlocation).absolutePath();
+    QString templatefilename = QDir(OutputLocation).absolutePath();
     if(templatefilename.isEmpty()==false) templatefilename.append('/'); 
     templatefilename.append("ctkdahscXXXXXX.jpg");
     QTemporaryFile *tempfile = new QTemporaryFile(templatefilename,this->AppWidget);

+ 2 - 0
Plugins/org.commontk.dah.cmdlinemoduleapp/ctkCommandLineModuleAppLogic_p.h

@@ -88,6 +88,8 @@ private:
   ctkCmdLineModuleManager ModuleManager;
   ctkCmdLineModuleInstance* ModuleInstance;
 
+  QString OutputLocation;
+
   ctkDicomAppHosting::AvailableData* ResultData;
 }; // ctkCommandLineModuleAppLogic
 

+ 1 - 1
Plugins/org.commontk.dah.core/ctkDicomAbstractExchangeCache.cpp

@@ -71,7 +71,7 @@ ctkDicomAbstractExchangeCache::~ctkDicomAbstractExchangeCache()
 //----------------------------------------------------------------------------
 QList<ctkDicomAppHosting::ObjectLocator> ctkDicomAbstractExchangeCache::getData(
   const QList<QUuid>& objectUUIDs,
-  const QList<QUuid>& acceptableTransferSyntaxUIDs,
+  const QList<QString>& acceptableTransferSyntaxUIDs,
   bool includeBulkData)
 {
   Q_UNUSED(acceptableTransferSyntaxUIDs);

+ 1 - 1
Plugins/org.commontk.dah.core/ctkDicomAbstractExchangeCache.h

@@ -77,7 +77,7 @@ public:
   */
   virtual QList<ctkDicomAppHosting::ObjectLocator> getData(
     const QList<QUuid>& objectUUIDs,
-    const QList<QUuid>& acceptableTransferSyntaxUIDs,
+    const QList<QString>& acceptableTransferSyntaxUIDs,
     bool includeBulkData);
 
   void releaseData(const QList<QUuid>& objectUUIDs);

+ 23 - 0
Plugins/org.commontk.dah.core/ctkDicomAppHostingTypesHelper.cpp

@@ -180,6 +180,29 @@ QString ctkDicomSoapUID::getUID(const QtSoapType& type)
 }
 
 //----------------------------------------------------------------------------
+ctkDicomSoapArrayOfUIDS::ctkDicomSoapArrayOfUIDS(const QString& name, const QList<QString>& array)
+//  : QtSoapArray(QtSoapQName(name), QtSoapType::String, array.size())
+  : QtSoapStruct(QtSoapQName(name))
+{
+  for (QList<QString>::ConstIterator it = array.constBegin();
+       it < array.constEnd(); it++)
+    {
+    this->insert(new ctkDicomSoapUID("Uid",(*it)));
+    }
+}
+
+//----------------------------------------------------------------------------
+QList<QString> ctkDicomSoapArrayOfUIDS::getArray(const QtSoapType& type)
+{
+  QList<QString> list;
+  for (int i = 0; i < type.count(); i++)
+    {
+    list << ctkDicomSoapUID::getUID(type[i]);
+    }
+  return list;
+}
+
+//----------------------------------------------------------------------------
 ctkDicomSoapBool::ctkDicomSoapBool(const QString& name, bool boolean)
   : QtSoapSimpleType(QtSoapQName(name), boolean, 0)
 {}

+ 8 - 0
Plugins/org.commontk.dah.core/ctkDicomAppHostingTypesHelper.h

@@ -71,6 +71,14 @@ struct org_commontk_dah_core_EXPORT ctkDicomSoapUID : public QtSoapStruct
 };
 
 //----------------------------------------------------------------------------
+struct org_commontk_dah_core_EXPORT ctkDicomSoapArrayOfUIDS : public QtSoapStruct
+{
+  ctkDicomSoapArrayOfUIDS(const QString& name, const QList<QString>& array);
+
+  static QList<QString> getArray(const QtSoapType& array);
+};
+
+//----------------------------------------------------------------------------
 struct org_commontk_dah_core_EXPORT ctkDicomSoapBool : public QtSoapSimpleType
 {
   ctkDicomSoapBool(const QString& name, bool boolean);

+ 1 - 1
Plugins/org.commontk.dah.core/ctkDicomExchangeInterface.h

@@ -46,7 +46,7 @@ struct ctkDicomExchangeInterface
 
   virtual QList<ctkDicomAppHosting::ObjectLocator> getData(
     const QList<QUuid>& objectUUIDs,
-    const QList<QUuid>& acceptableTransferSyntaxUIDs,
+    const QList<QString>& acceptableTransferSyntaxUIDs,
     bool includeBulkData) = 0;
 
   /**

+ 2 - 2
Plugins/org.commontk.dah.core/ctkDicomExchangeService.cpp

@@ -52,13 +52,13 @@ bool ctkDicomExchangeService::notifyDataAvailable(
 //----------------------------------------------------------------------------
 QList<ctkDicomAppHosting::ObjectLocator> ctkDicomExchangeService::getData(
     const QList<QUuid>& objectUUIDs,
-    const QList<QUuid>& acceptableTransferSyntaxUIDs, bool includeBulkData)
+    const QList<QString>& acceptableTransferSyntaxUIDs, bool includeBulkData)
 {
   //Q_D(ctkDicomService);
   QList<QtSoapType*> list;
 
   list << new ctkDicomSoapArrayOfUUIDS("objects",objectUUIDs);
-  list << new ctkDicomSoapArrayOfUUIDS("acceptableTransferSyntaxes", acceptableTransferSyntaxUIDs);
+  list << new ctkDicomSoapArrayOfUIDS("acceptableTransferSyntaxes", acceptableTransferSyntaxUIDs);
   list << new ctkDicomSoapBool("includeBulkData", includeBulkData);
   const QtSoapType & result = submitSoapRequest("GetData",list);
 //QtSoapType *tt;

+ 1 - 1
Plugins/org.commontk.dah.core/ctkDicomExchangeService.h

@@ -41,7 +41,7 @@ public:
 
   QList<ctkDicomAppHosting::ObjectLocator> getData(
     const QList<QUuid>& objectUUIDs,
-    const QList<QUuid>& acceptableTransferSyntaxUIDs,
+    const QList<QString>& acceptableTransferSyntaxUIDs,
     bool includeBulkData);
 
   void releaseData(const QList<QUuid>& objectUUIDs);

+ 1 - 1
Plugins/org.commontk.dah.core/ctkExchangeSoapMessageProcessor.cpp

@@ -96,7 +96,7 @@ void ctkExchangeSoapMessageProcessor::processGetData(
   const QtSoapType& inputType = message.method()["objects"];
   const QList<QUuid> objectUUIDs = ctkDicomSoapArrayOfUUIDS::getArray(inputType);
   const QtSoapType& inputType2 = message.method()["acceptableTransferSyntaxes"];
-  const QList<QUuid> acceptableTransferSyntaxUIDs = ctkDicomSoapArrayOfUUIDS::getArray(inputType2);
+  const QList<QString> acceptableTransferSyntaxUIDs = ctkDicomSoapArrayOfUIDS::getArray(inputType2);
   const QtSoapType& inputType3 = message.method()["includeBulkData"];
   const bool includeBulkData = ctkDicomSoapBool::getBool(inputType3);
   // query interface

+ 1 - 1
Plugins/org.commontk.dah.exampleapp/ctkExampleDicomAppLogic.cpp

@@ -225,7 +225,7 @@ void ctkExampleDicomAppLogic::onLoadDataClicked()
   QList<QUuid> uuidlist = ctkDicomAvailableDataHelper::getAllUuids(firstpatient);
   
   QString transfersyntax("1.2.840.10008.1.2.1");
-  QList<QUuid> transfersyntaxlist;
+  QList<QString> transfersyntaxlist;
   transfersyntaxlist.append(transfersyntax);
   QList<ctkDicomAppHosting::ObjectLocator> locators;
   locators = getHostInterface()->getData(uuidlist, transfersyntaxlist, false);

+ 1 - 1
Plugins/org.commontk.dah.host/ctkDicomAppService.cpp

@@ -72,7 +72,7 @@ bool ctkDicomAppService::notifyDataAvailable(const ctkDicomAppHosting::Available
 //----------------------------------------------------------------------------
 QList<ctkDicomAppHosting::ObjectLocator> ctkDicomAppService::getData(
   const QList<QUuid>& objectUUIDs,
-  const QList<QUuid>& acceptableTransferSyntaxUIDs,
+  const QList<QString>& acceptableTransferSyntaxUIDs,
   bool includeBulkData)
 {
   return ctkDicomExchangeService::getData(objectUUIDs, acceptableTransferSyntaxUIDs, includeBulkData);

+ 1 - 1
Plugins/org.commontk.dah.host/ctkDicomAppService.h

@@ -42,7 +42,7 @@ public:
 
   virtual QList<ctkDicomAppHosting::ObjectLocator> getData(
     const QList<QUuid>& objectUUIDs,
-    const QList<QUuid>& acceptableTransferSyntaxUIDs,
+    const QList<QString>& acceptableTransferSyntaxUIDs,
     bool includeBulkData);
 
   virtual void releaseData(const QList<QUuid>& objectUUIDs);

+ 1 - 1
Plugins/org.commontk.dah.hostedapp/ctkDicomHostService.cpp

@@ -89,7 +89,7 @@ bool ctkDicomHostService::notifyDataAvailable(const ctkDicomAppHosting::Availabl
 //----------------------------------------------------------------------------
 QList<ctkDicomAppHosting::ObjectLocator> ctkDicomHostService::getData(
   const QList<QUuid>& objectUUIDs,
-  const QList<QUuid>& acceptableTransferSyntaxUIDs,
+  const QList<QString>& acceptableTransferSyntaxUIDs,
   bool includeBulkData)
 {
   return ctkDicomExchangeService::getData(objectUUIDs, acceptableTransferSyntaxUIDs, includeBulkData);

+ 1 - 1
Plugins/org.commontk.dah.hostedapp/ctkDicomHostService_p.h

@@ -79,7 +79,7 @@ public:
 
   virtual QList<ctkDicomAppHosting::ObjectLocator> getData(
     const QList<QUuid>& objectUUIDs,
-    const QList<QUuid>& acceptableTransferSyntaxUIDs,
+    const QList<QString>& acceptableTransferSyntaxUIDs,
     bool includeBulkData);
 
   /**