Преглед изворни кода

Working on logger and DICOM Query.

Resolved bad dependancy with build ctkDICOMDemoSCU.  Reworking Logger to resolve link errors and add functionality.
Daniel Blezek пре 15 година
родитељ
комит
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() )