Explorar o código

Working on logger and DICOM Query.

Resolved bad dependancy with build ctkDICOMDemoSCU.  Reworking Logger to resolve link errors and add functionality.
Daniel Blezek %!s(int64=15) %!d(string=hai) anos
pai
achega
9da098279b

+ 2 - 2
Applications/ctkDICOMDemoSCU/target_libraries.cmake

@@ -5,5 +5,5 @@
 # 
 
 SET(target_libraries
-   DCMTK_LIBRARIES
-  )
+  CTKDICOMCore
+  )

+ 1 - 0
CMakeLists.txt

@@ -284,6 +284,7 @@ SET(CTK_APPLICATIONS
   ctkDICOM:OFF
   ctkDICOMIndexer:OFF
   ctkDICOMDemoSCU:OFF
+  ctkDICOMQuery:OFF
   )
   
 #-----------------------------------------------------------------------------

+ 6 - 0
Libs/Core/ctkLogger.cpp

@@ -27,6 +27,7 @@
 // log4cpp
 #include "log4qt/log4qt.h"
 #include "log4qt/logger.h"
+#include "log4qt/basicconfigurator.h"
 
 class ctkLoggerPrivate: public ctkPrivate<ctkLogger>
 {
@@ -46,6 +47,11 @@ ctkLogger::~ctkLogger()
 {
 }
 
+void ctkLogger::configure()
+{
+  Log4Qt::BasicConfigurator::configure();
+}
+
 void ctkLogger::debug ( QString s ) 
 { 
   CTK_D(ctkLogger);

+ 2 - 1
Libs/Core/ctkLogger.h

@@ -23,7 +23,6 @@
 
 // Qt includes 
 #include <QObject>
-#include <QSqlDatabase>
 
 // CTK includes
 #include <ctkPimpl.h>
@@ -37,6 +36,8 @@ public:
   typedef QObject Superclass;
   explicit ctkLogger ( QString name, QObject* parent = 0 );
   virtual ~ctkLogger ();
+
+  static void configure();
   
   void debug ( QString s );
   void info ( QString s );

+ 3 - 0
Libs/DICOM/Core/CMakeLists.txt

@@ -26,6 +26,8 @@ SET(KIT_SRCS
   ctkDICOM.h
   ctkDICOMIndexer.cpp
   ctkDICOMIndexer.h
+  ctkDICOMQuery.cpp
+  ctkDICOMQuery.h
   ctkDICOMModel.cpp
   ctkDICOMModel.h
   )
@@ -34,6 +36,7 @@ SET(KIT_SRCS
 SET(KIT_MOC_SRCS
   ctkDICOM.h
   ctkDICOMModel.h
+  ctkDICOMQuery.h
   )
 
 # UI files

+ 19 - 5
Libs/DICOM/Core/ctkDICOMQuery.cpp

@@ -32,6 +32,7 @@
 
 // ctkDICOM includes
 #include "ctkDICOMQuery.h"
+#include "ctkLogger.h"
 
 // DCMTK includes
 #ifndef WIN32
@@ -51,6 +52,8 @@
 
 #include <dcmtk/dcmnet/scu.h>
 
+static ctkLogger logger ( "org.commontk.core.Logger" );
+
 //------------------------------------------------------------------------------
 class ctkDICOMQueryPrivate: public ctkPrivate<ctkDICOMQuery>
 {
@@ -140,21 +143,32 @@ void ctkDICOMQuery::query(QSqlDatabase database )
 {
   CTK_D(ctkDICOMQuery);
   QSqlDatabase db = database;
-  
+
+  if ( logger.isDebugEnabled() )
+    {
+    std::cout << "Debugging ctkDICOMQuery" << std::endl;
+    }
+  d->SCU.setAETitle ( this->callingAETitle().toStdString() );
+  d->SCU.setPeerAETitle ( this->calledAETitle().toStdString() );
+  d->SCU.setPeerHostName ( this->host().toStdString() );
+  d->SCU.setPeerPort ( this->port() );
+
+  logger.error ( "Setting Transfer Syntaxes" );
   OFList<OFString> transferSyntaxes;
   transferSyntaxes.push_back ( UID_LittleEndianExplicitTransferSyntax );
   transferSyntaxes.push_back ( UID_BigEndianExplicitTransferSyntax );
   transferSyntaxes.push_back ( UID_LittleEndianImplicitTransferSyntax );
 
-  d->SCU.addPresentationContext ( UID_FINDStudyRootQueryRetrieveInformationModel, transferSyntaxes );
-  d->SCU.setAETitle ( this->callingAETitle().toStdString() );
-  d->SCU.setPeerAETitle ( this->calledAETitle().toStdString() );
-  d->SCU.setPeerHostName ( this->host().toStdString() );
+  // d->SCU.addPresentationContext ( UID_FINDStudyRootQueryRetrieveInformationModel, transferSyntaxes );
+  d->SCU.addPresentationContext ( UID_VerificationSOPClass, transferSyntaxes );
   if ( !d->SCU.initNetwork().good() ) 
     {
     std::cerr << "Error initializing the network" << std::endl;
+    return;
     }
+  logger.debug ( "Negotiating Association" );
   d->SCU.negotiateAssociation();
+  logger.debug ( "Sending Echo" );
   OFString abstractSyntax;
   OFString transferSyntax;
   if ( d->SCU.sendECHORequest ( 0 ).good() )