Sfoglia il codice sorgente

Working on logger and DICOM Query.

Resolved bad dependancy with build ctkDICOMDemoSCU.  Reworking Logger to resolve link errors and add functionality.
Daniel Blezek 15 anni fa
parent
commit
9da098279b

+ 2 - 2
Applications/ctkDICOMDemoSCU/target_libraries.cmake

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

+ 1 - 0
CMakeLists.txt

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

+ 6 - 0
Libs/Core/ctkLogger.cpp

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

+ 2 - 1
Libs/Core/ctkLogger.h

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

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

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

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

@@ -32,6 +32,7 @@
 
 
 // ctkDICOM includes
 // ctkDICOM includes
 #include "ctkDICOMQuery.h"
 #include "ctkDICOMQuery.h"
+#include "ctkLogger.h"
 
 
 // DCMTK includes
 // DCMTK includes
 #ifndef WIN32
 #ifndef WIN32
@@ -51,6 +52,8 @@
 
 
 #include <dcmtk/dcmnet/scu.h>
 #include <dcmtk/dcmnet/scu.h>
 
 
+static ctkLogger logger ( "org.commontk.core.Logger" );
+
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 class ctkDICOMQueryPrivate: public ctkPrivate<ctkDICOMQuery>
 class ctkDICOMQueryPrivate: public ctkPrivate<ctkDICOMQuery>
 {
 {
@@ -140,21 +143,32 @@ void ctkDICOMQuery::query(QSqlDatabase database )
 {
 {
   CTK_D(ctkDICOMQuery);
   CTK_D(ctkDICOMQuery);
   QSqlDatabase db = database;
   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;
   OFList<OFString> transferSyntaxes;
   transferSyntaxes.push_back ( UID_LittleEndianExplicitTransferSyntax );
   transferSyntaxes.push_back ( UID_LittleEndianExplicitTransferSyntax );
   transferSyntaxes.push_back ( UID_BigEndianExplicitTransferSyntax );
   transferSyntaxes.push_back ( UID_BigEndianExplicitTransferSyntax );
   transferSyntaxes.push_back ( UID_LittleEndianImplicitTransferSyntax );
   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() ) 
   if ( !d->SCU.initNetwork().good() ) 
     {
     {
     std::cerr << "Error initializing the network" << std::endl;
     std::cerr << "Error initializing the network" << std::endl;
+    return;
     }
     }
+  logger.debug ( "Negotiating Association" );
   d->SCU.negotiateAssociation();
   d->SCU.negotiateAssociation();
+  logger.debug ( "Sending Echo" );
   OFString abstractSyntax;
   OFString abstractSyntax;
   OFString transferSyntax;
   OFString transferSyntax;
   if ( d->SCU.sendECHORequest ( 0 ).good() )
   if ( d->SCU.sendECHORequest ( 0 ).good() )