This file is indexed.

/usr/include/dcmtk/dcmsr/cmr/cid4020.h is in libdcmtk-dev 3.6.1~20150924-5.

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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
/*
 *
 *  Copyright (C) 2015, J. Riesmeier, Oldenburg, Germany
 *  All rights reserved.  See COPYRIGHT file for details.
 *
 *  Header file for class CID4020_PETRadionuclide
 *
 *  Generated automatically from DICOM PS 3.16-2015c
 *  File created on 2015-08-23 14:59:18 by J. Riesmeier
 *
 */


#ifndef CMR_CID4020_H
#define CMR_CID4020_H

#include "dcmtk/config/osconfig.h"   /* make sure OS specific configuration is included first */

#include "dcmtk/dcmsr/dsrctxgr.h"
#include "dcmtk/dcmsr/cmr/define.h"


/*---------------------*
 *  class declaration  *
 *---------------------*/

/** Implementation of DCMR Context Group:
 *  CID 4020 - PET Radionuclide.
 *  (type: extensible, version: 20141110)
 */
class DCMTK_CMR_EXPORT CID4020_PETRadionuclide
  : public DSRContextGroup
{

  public:

    /** types of PET radionuclide
     */
    enum EnumType
    {
        /// (C-105A1,SRT,"^11^Carbon")
        _11_Carbon,
        /// (C-107A1,SRT,"^13^Nitrogen")
        _13_Nitrogen,
        /// (C-1018C,SRT,"^14^Oxygen")
        _14_Oxygen,
        /// (C-B1038,SRT,"^15^Oxygen")
        _15_Oxygen,
        /// (C-111A1,SRT,"^18^Fluorine")
        _18_Fluorine,
        /// (C-155A1,SRT,"^22^Sodium")
        _22_Sodium,
        /// (C-135A4,SRT,"^38^Potassium")
        _38_Potassium,
        /// (126605,DCM,"^43^Scandium")
        _43_Scandium,
        /// (126600,DCM,"^44^Scandium")
        _44_Scandium,
        /// (C-166A2,SRT,"^45^Titanium")
        _45_Titanium,
        /// (126601,DCM,"^51^Manganese")
        _51_Manganese,
        /// (C-130A1,SRT,"^52^Iron")
        _52_Iron,
        /// (C-149A1,SRT,"^52^Manganese")
        _52_Manganese,
        /// (C-127A4,SRT,"^60^Copper")
        _60_Copper,
        /// (C-127A1,SRT,"^61^Copper")
        _61_Copper,
        /// (C-127A5,SRT,"^62^Copper")
        _62_Copper,
        /// (C-141A1,SRT,"^62^Zinc")
        _62_Zinc,
        /// (C-127A2,SRT,"^64^Copper")
        _64_Copper,
        /// (C-131A1,SRT,"^66^Gallium")
        _66_Gallium,
        /// (C-131A3,SRT,"^68^Gallium")
        _68_Gallium,
        /// (C-128A2,SRT,"^68^Germanium")
        _68_Germanium,
        /// (126602,DCM,"^70^Arsenic")
        _70_Arsenic,
        /// (C-115A2,SRT,"^72^Arsenic")
        _72_Arsenic,
        /// (C-116A2,SRT,"^73^Selenium")
        _73_Selenium,
        /// (C-113A1,SRT,"^75^Bromine")
        _75_Bromine,
        /// (C-113A2,SRT,"^76^Bromine")
        _76_Bromine,
        /// (C-113A3,SRT,"^77^Bromine")
        _77_Bromine,
        /// (C-159A2,SRT,"^82^Rubidium")
        _82_Rubidium,
        /// (C-162A3,SRT,"^86^Yttrium")
        _86_Yttrium,
        /// (C-168A4,SRT,"^89^Zirconium")
        _89_Zirconium,
        /// (126603,DCM,"^90^Niobium")
        _90_Niobium,
        /// (C-162A7,SRT,"^90^Yttrium")
        _90_Yttrium,
        /// (C-163AA,SRT,"^94m^Technetium")
        _94m_Technetium,
        /// (C-114A5,SRT,"^124^Iodine")
        _124_Iodine,
        /// (126606,DCM,"^152^Terbium")
        _152_Terbium
    };

    /** (default) constructor
     ** @param  selectedValue  coded entry to be selected as the current value (optional).
     *                         Should be a valid code according to the DICOM definitions
     *                         for this context group, i.e. no checks are performed.
     *                         Call DSRContextGroup::checkSelectedValue() if needed.
     */
    CID4020_PETRadionuclide(const DSRCodedEntryValue &selectedValue = DSRCodedEntryValue());

    /** constructor
     ** @param  selectedValue         type mapped to a coded entry that is selected as the
     *                                current value
     ** @param  enhancedEncodingMode  set enhanced encoding mode for coded entry (if enabled)
     */
    CID4020_PETRadionuclide(const EnumType selectedValue,
                            const OFBool enhancedEncodingMode = OFFalse);

    /** select a coded entry given by its type as the current value
     ** @param  selectedValue         type mapped to a coded entry that is selected as the
     *                                current value
     *  @param  enhancedEncodingMode  set enhanced encoding mode for coded entry (if enabled)
     ** @return status, EC_Normal if successful, an error code otherwise
     */
    virtual OFCondition selectValue(const EnumType selectedValue,
                                    const OFBool enhancedEncodingMode = OFFalse);

  // --- static helper functions ---

    /** initialize this context group explicitly.  Internally, the list of standard coded
     *  entries is created and initialized by calling getCodes().
     ** @note This function can be called multiple times but in case of multi-threaded
     *        applications should be called at least once before any instance of this class
     *        is actually used.  For single-threaded applications, there is no need to call
     *        it since the initialization is done implicitly.
     */
    static void initialize();

    /** cleanup this context group, i.e.\ delete the internal list of standard coded entries.
     *  Usually, there is no need to call this method, but it might be useful in order to
     *  explicitly free the associated memory, e.g. when checking for memory leaks.  The list
     *  will be recreated automatically when needed (or when initialize() is called).
     */
    static void cleanup();

    /** map a given type to the associated coded entry
     ** @param  value                 type that should be mapped to a coded entry
     *  @param  enhancedEncodingMode  set enhanced encoding mode for coded entry (if enabled)
     ** @return coded entry that is associated with the given type
     */
    static DSRCodedEntryValue getCodedEntry(const EnumType value,
                                            const OFBool enhancedEncodingMode = OFFalse);

  // --- reintroduce methods from base class

     using DSRContextGroup::selectValue;
     using DSRContextGroup::findCodedEntry;


  protected:

    /// type used for storing and managing the coded entries
    typedef OFMap<EnumType, DSRBasicCodedEntry> CodeList;

    /** print details on coded entries that are contained in this context group.
     *  See DSRCodedEntryValue::print() for details of the coded entry output.
     ** @param  stream  stream to which the output should be printed
     */
    virtual void printCodes(STD_NAMESPACE ostream &stream) const;

    /** search for a given coded entry in this context group
     ** @param  searchForCodedEntry   coded entry to be searched for
     *  @param  foundCodedEntry       pointer to variable that will store the coded entry
     *                                (if found and pointer is not NULL)
     *  @param  enhancedEncodingMode  set enhanced encoding mode for coded entry (if enabled)
     ** @return result of the search process, also defines the type of the entry
     */
    virtual OFCondition findCodedEntry(const DSRCodedEntryValue &searchForCodedEntry,
                                       DSRCodedEntryValue *foundCodedEntry,
                                       const OFBool enhancedEncodingMode = OFFalse) const;

  // --- static helper function ---

    /** get list of standard coded entries that are managed by this context group.
     *  Internally, the singleton pattern is used, so the list is initialized only once.
     *  Please note that this function is not thread-safe.  Therefore, the initialize()
     *  function can be called before any instance of this class is actually used.
     ** @return reference to list of coded entries managed by this context group
     */
    static CodeList &getCodes();

    /** set the "Enhanced Encoding Mode" for a given coded entry
     ** @param  codedEntryValue  coded entry for which the enhanced encoding mode is set
     ** @return status, EC_Normal if successful, an error code otherwise
     */
    static OFCondition setEnhancedEncodingMode(DSRCodedEntryValue &codedEntryValue);


  private:

    /// pointer to internal code list (use a static variable for singleton pattern)
    static CodeList *Codes;
};

#endif