ctkDICOMFindContext.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #ifndef CTKDICOMFINDCONTEXT_H
  2. #define CTKDICOMFINDCONTEXT_H
  3. // DCMTK includes
  4. #include <dcmtk/config/osconfig.h> /* make sure OS specific configuration is included first */
  5. #include <dcmtk/dcmnet/dimse.h>
  6. #include <dcmtk/dcmqrdb/qrdefine.h>
  7. #include <dcmtk/dcmqrdb/dcmqrdba.h>
  8. // Qt includes
  9. #include <QDebug>
  10. #include <QObject>
  11. #include "ctkDICOMCoreExport.h"
  12. class CTK_DICOM_CORE_EXPORT ctkDICOMFindContext : public QObject
  13. {
  14. Q_OBJECT
  15. public:
  16. /** constructor
  17. * @param options options for the Q/R service
  18. * @param priorStat prior DIMSE status
  19. */
  20. ctkDICOMFindContext(DIC_US priorStat, QObject *parent = 0);
  21. /** set the AEtitle under which this application operates
  22. * @param ae AEtitle, is copied into this object.
  23. */
  24. void setOurAETitle(const char *ae)
  25. {
  26. if (ae) ourAETitle = ae; else ourAETitle.clear();
  27. }
  28. /** callback handler called by the DIMSE_storeProvider callback function.
  29. * @param cancelled (in) flag indicating whether a C-CANCEL was received
  30. * @param request original find request (in)
  31. * @param requestIdentifiers original find request identifiers (in)
  32. * @param responseCount find response count (in)
  33. * @param response find response (out)
  34. * @param responseIdentifiers find response identifiers (out)
  35. * @param stDetail status detail for find response (out)
  36. */
  37. void callbackHandler(
  38. OFBool cancelled, T_DIMSE_C_FindRQ *request,
  39. DcmDataset *requestIdentifiers, int responseCount,
  40. T_DIMSE_C_FindRSP *response,
  41. DcmDataset **responseIdentifiers,
  42. DcmDataset **stDetail);
  43. virtual OFCondition startFindRequest (const char *SOPClassUID, DcmDataset *findRequestIdentifiers, DcmQueryRetrieveDatabaseStatus *status)
  44. {
  45. return OFCondition(OFM_dcmdata, 0x001, OF_error, "DcmQR Index Database Error");
  46. }
  47. virtual OFCondition nextFindResponse (DcmDataset **findResponseIdentifiers, DcmQueryRetrieveDatabaseStatus *status)
  48. {
  49. return OFCondition(OFM_dcmdata, 0x001, OF_error, "DcmQR Index Database Error");
  50. }
  51. virtual OFCondition cancelFindRequest (DcmQueryRetrieveDatabaseStatus *status)
  52. {
  53. return OFCondition(OFM_dcmdata, 0x001, OF_error, "DcmQR Index Database Error");
  54. }
  55. private:
  56. /// prior DIMSE status
  57. DIC_US priorStatus;
  58. /// our current title
  59. OFString ourAETitle;
  60. };
  61. #endif // CTKDCMFINDCONTEXT_H