This file is indexed.

/usr/include/dcmtk/dcmqrdb/dcmqrcbm.h is in libdcmtk-dev 3.6.2-3build3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
/*
 *
 *  Copyright (C) 1993-2017, OFFIS e.V.
 *  All rights reserved.  See COPYRIGHT file for details.
 *
 *  This software and supporting documentation were developed by
 *
 *    OFFIS e.V.
 *    R&D Division Health
 *    Escherweg 2
 *    D-26121 Oldenburg, Germany
 *
 *
 *  Module:  dcmqrdb
 *
 *  Author:  Marco Eichelberg
 *
 *  Purpose: class DcmQueryRetrieveMoveContext
 *
 */

#ifndef DCMQRCBM_H
#define DCMQRCBM_H

#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
#include "dcmtk/dcmnet/dimse.h"
#include "dcmtk/dcmnet/dcasccfg.h"
#include "dcmtk/dcmqrdb/qrdefine.h"

class DcmQueryRetrieveDatabaseHandle;
class DcmQueryRetrieveOptions;
class DcmQueryRetrieveConfig;
class DcmQueryRetrieveDatabaseStatus;

/** this class maintains the context information that is passed to the
 *  callback function called by DIMSE_moveProvider.
 */
class DCMTK_DCMQRDB_EXPORT DcmQueryRetrieveMoveContext
{
public:
    /** constructor
     *  @param handle reference to database handle
     *  @param options options for the Q/R service
     *  @param cfg configuration for the Q/R service
     *  @param priorstatus prior DIMSE status
     *  @param assoc pointer to DIMSE association
     *  @param msgid DIMSE message ID
     *  @param pr DIMSE priority
     */
    DcmQueryRetrieveMoveContext(
      DcmQueryRetrieveDatabaseHandle& handle,
      const DcmQueryRetrieveOptions& options,
      const DcmAssociationConfiguration& associationConfiguration,
      const DcmQueryRetrieveConfig *cfg,
      DIC_US priorstatus,
      T_ASC_Association *assoc,
      DIC_US msgid,
      T_DIMSE_Priority pr)
    : dbHandle(handle)
    , options_(options)
    , associationConfiguration_(associationConfiguration)
    , priorStatus(priorstatus)
    , origAssoc(assoc)
    , subAssoc(NULL)
    , config(cfg)
    , assocStarted(OFFalse)
    , origMsgId(msgid)
//    , origAETitle()
//    , origHostName()
    , priority(pr)
    , ourAETitle()
//    , dstAETitle()
    , failedUIDs(NULL)
    , nRemaining(0)
    , nCompleted(0)
    , nFailed(0)
    , nWarning(0)
    {
      origAETitle[0] = '\0';
      origHostName[0] = '\0';
      dstAETitle[0] = '\0';
    }

    /** callback handler called by the DIMSE_storeProvider callback function.
     *  @param cancelled (in) flag indicating whether a C-CANCEL was received
     *  @param request original move request (in)
     *  @param requestIdentifiers original move request identifiers (in)
     *  @param responseCount move response count (in)
     *  @param response move response (out)
     *  @param stDetail status detail for move response (out)
     *  @param responseIdentifiers move response identifiers (out)
     */
    void callbackHandler(
        /* in */
        OFBool cancelled, T_DIMSE_C_MoveRQ *request,
        DcmDataset *requestIdentifiers, int responseCount,
        /* out */
        T_DIMSE_C_MoveRSP *response, DcmDataset **stDetail,
        DcmDataset **responseIdentifiers);

    /** set the AEtitle under which this application operates
     *  @param ae AEtitle, is copied into this object.
     */
    void setOurAETitle(const char *ae)
    {
      if (ae) ourAETitle = ae; else ourAETitle.clear();
    }

private:

    /// private undefined copy constructor
    DcmQueryRetrieveMoveContext(const DcmQueryRetrieveMoveContext& other);

    /// private undefined assignment operator
    DcmQueryRetrieveMoveContext& operator=(const DcmQueryRetrieveMoveContext& other);

    void addFailedUIDInstance(const char *sopInstance);
    OFCondition performMoveSubOp(DIC_UI sopClass, DIC_UI sopInstance, char *fname);
    OFCondition buildSubAssociation(T_DIMSE_C_MoveRQ *request);
    OFCondition closeSubAssociation();
    void moveNextImage(DcmQueryRetrieveDatabaseStatus * dbStatus);
    void failAllSubOperations(DcmQueryRetrieveDatabaseStatus * dbStatus);
    void buildFailedInstanceList(DcmDataset ** rspIds);
    OFBool mapMoveDestination(
      const char *origPeer, const char *origAE,
      const char *dstAE, char *dstPeer, int *dstPort);
    OFCondition addAllStoragePresentationContexts(T_ASC_Parameters *params);

    /// reference to database handle
    DcmQueryRetrieveDatabaseHandle& dbHandle;

    /// reference to Q/R service options
    const DcmQueryRetrieveOptions& options_;

    /// reference to association configuration
    const DcmAssociationConfiguration& associationConfiguration_;

    /// prior DIMSE status
    DIC_US  priorStatus;

    /// pointer to original association on which the C-MOVE-RQ was received
    T_ASC_Association   *origAssoc;     /* association of requestor */

    /// pointer to sub-association for outgoing C-STORE-RQ
    T_ASC_Association   *subAssoc;      /* sub-association */

    /// pointer to Q/R configuration
    const DcmQueryRetrieveConfig *config;

    /// true if the association was started
    OFBool assocStarted;

    /// message id of request
    DIC_US origMsgId;

    /// title of requestor
    DIC_AE origAETitle;

    /// hostname of move requestor
    DIC_NODENAME origHostName;

    /// priority of move request
    T_DIMSE_Priority priority;

    /// our current title
    OFString ourAETitle;

    /// destination title for move
    DIC_AE dstAETitle;

    /// instance UIDs of failed store sub-ops
    char *failedUIDs;

    /// number of remaining sub-operations
    DIC_US nRemaining;

    /// number of completed sub-operations
    DIC_US nCompleted;

    /// number of failed sub-operations
    DIC_US nFailed;

    /// number of completed sub-operations that causes warnings
    DIC_US nWarning;

};

#endif