| 119 | |
| 120 | |
| 121 | E_Condition DcmPixelSequence::makeSubObject(DcmObject * & subObject, |
| 122 | const DcmTag & newTag, |
| 123 | const Uint32 newLength) |
| 124 | { |
| 125 | E_Condition l_error = EC_Normal; |
| 126 | DcmObject * newObject = NULL; |
| 127 | |
| 128 | switch ( newTag.getEVR() ) |
| 129 | { |
| 130 | case EVR_na: |
| 131 | if ( newTag.getXTag() == DCM_Item ) |
| 132 | newObject = new DcmPixelItem(newTag, newLength); |
| 133 | else if (newTag.getXTag() == DCM_SequenceDelimitationItem) |
| 134 | l_error = EC_SequEnd; |
| 135 | else if (newTag.getXTag() == DCM_ItemDelimitationItem) |
| 136 | l_error = EC_ItemEnd; |
| 137 | else |
| 138 | l_error = EC_InvalidTag; |
| 139 | break; |
| 140 | |
| 141 | default: |
| 142 | newObject = new DcmPixelItem(newTag, newLength); |
| 143 | l_error = EC_CorruptedData; |
| 144 | break; |
| 145 | } |
| 146 | |
| 147 | subObject = newObject; |
| 148 | return l_error; |
| 149 | } |
| 150 | |
| 151 | // ******************************** |
| 152 | |