1 /*
2  *
3  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
4  *  Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany
5  *  All rights reserved.  See COPYRIGHT file for details.
6  *
7  *  Source file for class DRTRangeModulatorSequence
8  *
9  *  Generated automatically from DICOM PS 3.3-2017e
10  *  File created on 2017-12-05 09:30:54
11  *
12  */
13 
14 
15 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
16 
17 #include "dcmtk/dcmrt/seq/drtrms.h"
18 
19 
20 // --- item class ---
21 
Item(const OFBool emptyDefaultItem)22 DRTRangeModulatorSequence::Item::Item(const OFBool emptyDefaultItem)
23   : EmptyDefaultItem(emptyDefaultItem),
24     AccessoryCode(DCM_AccessoryCode),
25     BeamCurrentModulationID(DCM_BeamCurrentModulationID),
26     RangeModulatorDescription(DCM_RangeModulatorDescription),
27     RangeModulatorID(DCM_RangeModulatorID),
28     RangeModulatorNumber(DCM_RangeModulatorNumber),
29     RangeModulatorType(DCM_RangeModulatorType)
30 {
31 }
32 
33 
Item(const Item & copy)34 DRTRangeModulatorSequence::Item::Item(const Item &copy)
35   : EmptyDefaultItem(copy.EmptyDefaultItem),
36     AccessoryCode(copy.AccessoryCode),
37     BeamCurrentModulationID(copy.BeamCurrentModulationID),
38     RangeModulatorDescription(copy.RangeModulatorDescription),
39     RangeModulatorID(copy.RangeModulatorID),
40     RangeModulatorNumber(copy.RangeModulatorNumber),
41     RangeModulatorType(copy.RangeModulatorType)
42 {
43 }
44 
45 
~Item()46 DRTRangeModulatorSequence::Item::~Item()
47 {
48 }
49 
50 
operator =(const Item & copy)51 DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::Item::operator=(const Item &copy)
52 {
53     if (this != &copy)
54     {
55         EmptyDefaultItem = copy.EmptyDefaultItem;
56         AccessoryCode = copy.AccessoryCode;
57         BeamCurrentModulationID = copy.BeamCurrentModulationID;
58         RangeModulatorDescription = copy.RangeModulatorDescription;
59         RangeModulatorID = copy.RangeModulatorID;
60         RangeModulatorNumber = copy.RangeModulatorNumber;
61         RangeModulatorType = copy.RangeModulatorType;
62     }
63     return *this;
64 }
65 
66 
clear()67 void DRTRangeModulatorSequence::Item::clear()
68 {
69     if (!EmptyDefaultItem)
70     {
71         /* clear all DICOM attributes */
72         RangeModulatorNumber.clear();
73         RangeModulatorID.clear();
74         AccessoryCode.clear();
75         RangeModulatorType.clear();
76         RangeModulatorDescription.clear();
77         BeamCurrentModulationID.clear();
78     }
79 }
80 
81 
isEmpty()82 OFBool DRTRangeModulatorSequence::Item::isEmpty()
83 {
84     return RangeModulatorNumber.isEmpty() &&
85            RangeModulatorID.isEmpty() &&
86            AccessoryCode.isEmpty() &&
87            RangeModulatorType.isEmpty() &&
88            RangeModulatorDescription.isEmpty() &&
89            BeamCurrentModulationID.isEmpty();
90 }
91 
92 
isValid() const93 OFBool DRTRangeModulatorSequence::Item::isValid() const
94 {
95     return !EmptyDefaultItem;
96 }
97 
98 
read(DcmItem & item)99 OFCondition DRTRangeModulatorSequence::Item::read(DcmItem &item)
100 {
101     OFCondition result = EC_IllegalCall;
102     if (!EmptyDefaultItem)
103     {
104         /* re-initialize object */
105         clear();
106         getAndCheckElementFromDataset(item, RangeModulatorNumber, "1", "1", "RangeModulatorSequence");
107         getAndCheckElementFromDataset(item, RangeModulatorID, "1", "1", "RangeModulatorSequence");
108         getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "RangeModulatorSequence");
109         getAndCheckElementFromDataset(item, RangeModulatorType, "1", "1", "RangeModulatorSequence");
110         getAndCheckElementFromDataset(item, RangeModulatorDescription, "1", "3", "RangeModulatorSequence");
111         getAndCheckElementFromDataset(item, BeamCurrentModulationID, "1", "1C", "RangeModulatorSequence");
112         result = EC_Normal;
113     }
114     return result;
115 }
116 
117 
write(DcmItem & item)118 OFCondition DRTRangeModulatorSequence::Item::write(DcmItem &item)
119 {
120     OFCondition result = EC_IllegalCall;
121     if (!EmptyDefaultItem)
122     {
123         result = EC_Normal;
124         addElementToDataset(result, item, new DcmIntegerString(RangeModulatorNumber), "1", "1", "RangeModulatorSequence");
125         addElementToDataset(result, item, new DcmShortString(RangeModulatorID), "1", "1", "RangeModulatorSequence");
126         addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "RangeModulatorSequence");
127         addElementToDataset(result, item, new DcmCodeString(RangeModulatorType), "1", "1", "RangeModulatorSequence");
128         addElementToDataset(result, item, new DcmLongString(RangeModulatorDescription), "1", "3", "RangeModulatorSequence");
129         addElementToDataset(result, item, new DcmShortString(BeamCurrentModulationID), "1", "1C", "RangeModulatorSequence");
130     }
131     return result;
132 }
133 
134 
getAccessoryCode(OFString & value,const signed long pos) const135 OFCondition DRTRangeModulatorSequence::Item::getAccessoryCode(OFString &value, const signed long pos) const
136 {
137     if (EmptyDefaultItem)
138         return EC_IllegalCall;
139     else
140         return getStringValueFromElement(AccessoryCode, value, pos);
141 }
142 
143 
getBeamCurrentModulationID(OFString & value,const signed long pos) const144 OFCondition DRTRangeModulatorSequence::Item::getBeamCurrentModulationID(OFString &value, const signed long pos) const
145 {
146     if (EmptyDefaultItem)
147         return EC_IllegalCall;
148     else
149         return getStringValueFromElement(BeamCurrentModulationID, value, pos);
150 }
151 
152 
getRangeModulatorDescription(OFString & value,const signed long pos) const153 OFCondition DRTRangeModulatorSequence::Item::getRangeModulatorDescription(OFString &value, const signed long pos) const
154 {
155     if (EmptyDefaultItem)
156         return EC_IllegalCall;
157     else
158         return getStringValueFromElement(RangeModulatorDescription, value, pos);
159 }
160 
161 
getRangeModulatorID(OFString & value,const signed long pos) const162 OFCondition DRTRangeModulatorSequence::Item::getRangeModulatorID(OFString &value, const signed long pos) const
163 {
164     if (EmptyDefaultItem)
165         return EC_IllegalCall;
166     else
167         return getStringValueFromElement(RangeModulatorID, value, pos);
168 }
169 
170 
getRangeModulatorNumber(OFString & value,const signed long pos) const171 OFCondition DRTRangeModulatorSequence::Item::getRangeModulatorNumber(OFString &value, const signed long pos) const
172 {
173     if (EmptyDefaultItem)
174         return EC_IllegalCall;
175     else
176         return getStringValueFromElement(RangeModulatorNumber, value, pos);
177 }
178 
179 
getRangeModulatorNumber(Sint32 & value,const unsigned long pos) const180 OFCondition DRTRangeModulatorSequence::Item::getRangeModulatorNumber(Sint32 &value, const unsigned long pos) const
181 {
182     if (EmptyDefaultItem)
183         return EC_IllegalCall;
184     else
185         return OFconst_cast(DcmIntegerString &, RangeModulatorNumber).getSint32(value, pos);
186 }
187 
188 
getRangeModulatorType(OFString & value,const signed long pos) const189 OFCondition DRTRangeModulatorSequence::Item::getRangeModulatorType(OFString &value, const signed long pos) const
190 {
191     if (EmptyDefaultItem)
192         return EC_IllegalCall;
193     else
194         return getStringValueFromElement(RangeModulatorType, value, pos);
195 }
196 
197 
setAccessoryCode(const OFString & value,const OFBool check)198 OFCondition DRTRangeModulatorSequence::Item::setAccessoryCode(const OFString &value, const OFBool check)
199 {
200     OFCondition result = EC_IllegalCall;
201     if (!EmptyDefaultItem)
202     {
203         result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
204         if (result.good())
205             result = AccessoryCode.putOFStringArray(value);
206     }
207     return result;
208 }
209 
210 
setBeamCurrentModulationID(const OFString & value,const OFBool check)211 OFCondition DRTRangeModulatorSequence::Item::setBeamCurrentModulationID(const OFString &value, const OFBool check)
212 {
213     OFCondition result = EC_IllegalCall;
214     if (!EmptyDefaultItem)
215     {
216         result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
217         if (result.good())
218             result = BeamCurrentModulationID.putOFStringArray(value);
219     }
220     return result;
221 }
222 
223 
setRangeModulatorDescription(const OFString & value,const OFBool check)224 OFCondition DRTRangeModulatorSequence::Item::setRangeModulatorDescription(const OFString &value, const OFBool check)
225 {
226     OFCondition result = EC_IllegalCall;
227     if (!EmptyDefaultItem)
228     {
229         result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
230         if (result.good())
231             result = RangeModulatorDescription.putOFStringArray(value);
232     }
233     return result;
234 }
235 
236 
setRangeModulatorID(const OFString & value,const OFBool check)237 OFCondition DRTRangeModulatorSequence::Item::setRangeModulatorID(const OFString &value, const OFBool check)
238 {
239     OFCondition result = EC_IllegalCall;
240     if (!EmptyDefaultItem)
241     {
242         result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
243         if (result.good())
244             result = RangeModulatorID.putOFStringArray(value);
245     }
246     return result;
247 }
248 
249 
setRangeModulatorNumber(const OFString & value,const OFBool check)250 OFCondition DRTRangeModulatorSequence::Item::setRangeModulatorNumber(const OFString &value, const OFBool check)
251 {
252     OFCondition result = EC_IllegalCall;
253     if (!EmptyDefaultItem)
254     {
255         result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
256         if (result.good())
257             result = RangeModulatorNumber.putOFStringArray(value);
258     }
259     return result;
260 }
261 
262 
setRangeModulatorType(const OFString & value,const OFBool check)263 OFCondition DRTRangeModulatorSequence::Item::setRangeModulatorType(const OFString &value, const OFBool check)
264 {
265     OFCondition result = EC_IllegalCall;
266     if (!EmptyDefaultItem)
267     {
268         result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
269         if (result.good())
270             result = RangeModulatorType.putOFStringArray(value);
271     }
272     return result;
273 }
274 
275 
276 // --- sequence class ---
277 
DRTRangeModulatorSequence(const OFBool emptyDefaultSequence)278 DRTRangeModulatorSequence::DRTRangeModulatorSequence(const OFBool emptyDefaultSequence)
279   : EmptyDefaultSequence(emptyDefaultSequence),
280     SequenceOfItems(),
281     CurrentItem(),
282     EmptyItem(OFTrue /*emptyDefaultItem*/)
283 {
284     CurrentItem = SequenceOfItems.end();
285 }
286 
287 
DRTRangeModulatorSequence(const DRTRangeModulatorSequence & copy)288 DRTRangeModulatorSequence::DRTRangeModulatorSequence(const DRTRangeModulatorSequence &copy)
289   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
290     SequenceOfItems(),
291     CurrentItem(),
292     EmptyItem(OFTrue /*emptyDefaultItem*/)
293 {
294     /* create a copy of the internal sequence of items */
295     Item *item = NULL;
296     OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
297     const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
298     while (current != last)
299     {
300         item = new Item(**current);
301         if (item != NULL)
302         {
303             SequenceOfItems.push_back(item);
304         } else {
305             /* memory exhausted, there is nothing we can do about it */
306             break;
307         }
308         ++current;
309     }
310     CurrentItem = SequenceOfItems.begin();
311 }
312 
313 
operator =(const DRTRangeModulatorSequence & copy)314 DRTRangeModulatorSequence &DRTRangeModulatorSequence::operator=(const DRTRangeModulatorSequence &copy)
315 {
316     if (this != &copy)
317     {
318         clear();
319         EmptyDefaultSequence = copy.EmptyDefaultSequence;
320         /* create a copy of the internal sequence of items */
321         Item *item = NULL;
322         OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
323         const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
324         while (current != last)
325         {
326             item = new Item(**current);
327             if (item != NULL)
328             {
329                 SequenceOfItems.push_back(item);
330             } else {
331                 /* memory exhausted, there is nothing we can do about it */
332                 break;
333             }
334             ++current;
335         }
336         CurrentItem = SequenceOfItems.begin();
337     }
338     return *this;
339 }
340 
341 
~DRTRangeModulatorSequence()342 DRTRangeModulatorSequence::~DRTRangeModulatorSequence()
343 {
344     clear();
345 }
346 
347 
clear()348 void DRTRangeModulatorSequence::clear()
349 {
350     if (!EmptyDefaultSequence)
351     {
352         CurrentItem = SequenceOfItems.begin();
353         const OFListConstIterator(Item *) last = SequenceOfItems.end();
354         /* delete all items and free memory */
355         while (CurrentItem != last)
356         {
357             delete (*CurrentItem);
358             CurrentItem = SequenceOfItems.erase(CurrentItem);
359         }
360         /* make sure that the list is empty */
361         SequenceOfItems.clear();
362         CurrentItem = SequenceOfItems.end();
363     }
364 }
365 
366 
isEmpty()367 OFBool DRTRangeModulatorSequence::isEmpty()
368 {
369     return SequenceOfItems.empty();
370 }
371 
372 
isValid() const373 OFBool DRTRangeModulatorSequence::isValid() const
374 {
375     return !EmptyDefaultSequence;
376 }
377 
378 
getNumberOfItems() const379 size_t DRTRangeModulatorSequence::getNumberOfItems() const
380 {
381     return SequenceOfItems.size();
382 }
383 
384 
gotoFirstItem()385 OFCondition DRTRangeModulatorSequence::gotoFirstItem()
386 {
387     OFCondition result = EC_IllegalCall;
388     if (!SequenceOfItems.empty())
389     {
390         CurrentItem = SequenceOfItems.begin();
391         result = EC_Normal;
392     }
393     return result;
394 }
395 
396 
gotoNextItem()397 OFCondition DRTRangeModulatorSequence::gotoNextItem()
398 {
399     OFCondition result = EC_IllegalCall;
400     if (CurrentItem != SequenceOfItems.end())
401     {
402         ++CurrentItem;
403         result = EC_Normal;
404     }
405     return result;
406 }
407 
408 
gotoItem(const size_t num,OFListIterator (Item *)& iterator)409 OFCondition DRTRangeModulatorSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator)
410 {
411     OFCondition result = EC_IllegalCall;
412     if (!SequenceOfItems.empty())
413     {
414         size_t idx = num + 1;
415         iterator = SequenceOfItems.begin();
416         const OFListConstIterator(Item *) last = SequenceOfItems.end();
417         while ((--idx > 0) && (iterator != last))
418             ++iterator;
419         /* specified list item found? */
420         if ((idx == 0) && (iterator != last))
421             result = EC_Normal;
422         else
423             result = EC_IllegalParameter;
424     }
425     return result;
426 }
427 
428 
gotoItem(const size_t num,OFListConstIterator (Item *)& iterator) const429 OFCondition DRTRangeModulatorSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const
430 {
431     OFCondition result = EC_IllegalCall;
432     if (!SequenceOfItems.empty())
433     {
434         size_t idx = num + 1;
435         iterator = SequenceOfItems.begin();
436         const OFListConstIterator(Item *) last = SequenceOfItems.end();
437         while ((--idx > 0) && (iterator != last))
438             ++iterator;
439         /* specified list item found? */
440         if ((idx == 0) && (iterator != last))
441             result = EC_Normal;
442         else
443             result = EC_IllegalParameter;
444     }
445     return result;
446 }
447 
448 
gotoItem(const size_t num)449 OFCondition DRTRangeModulatorSequence::gotoItem(const size_t num)
450 {
451     return gotoItem(num, CurrentItem);
452 }
453 
454 
getCurrentItem(Item * & item) const455 OFCondition DRTRangeModulatorSequence::getCurrentItem(Item *&item) const
456 {
457     OFCondition result = EC_IllegalCall;
458     if (CurrentItem != SequenceOfItems.end())
459     {
460         item = *CurrentItem;
461         result = EC_Normal;
462     }
463     return result;
464 }
465 
466 
getCurrentItem()467 DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getCurrentItem()
468 {
469     if (CurrentItem != SequenceOfItems.end())
470         return **CurrentItem;
471     else
472         return EmptyItem;
473 }
474 
475 
getCurrentItem() const476 const DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getCurrentItem() const
477 {
478     if (CurrentItem != SequenceOfItems.end())
479         return **CurrentItem;
480     else
481         return EmptyItem;
482 }
483 
484 
getItem(const size_t num,Item * & item)485 OFCondition DRTRangeModulatorSequence::getItem(const size_t num, Item *&item)
486 {
487     OFListIterator(Item *) iterator;
488     OFCondition result = gotoItem(num, iterator);
489     if (result.good())
490         item = *iterator;
491     return result;
492 }
493 
494 
getItem(const size_t num)495 DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getItem(const size_t num)
496 {
497     OFListIterator(Item *) iterator;
498     if (gotoItem(num, iterator).good())
499         return **iterator;
500     else
501         return EmptyItem;
502 }
503 
504 
getItem(const size_t num) const505 const DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getItem(const size_t num) const
506 {
507     OFListConstIterator(Item *) iterator;
508     if (gotoItem(num, iterator).good())
509         return **iterator;
510     else
511         return EmptyItem;
512 }
513 
514 
operator [](const size_t num)515 DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::operator[](const size_t num)
516 {
517     return getItem(num);
518 }
519 
520 
operator [](const size_t num) const521 const DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::operator[](const size_t num) const
522 {
523     return getItem(num);
524 }
525 
526 
addItem(Item * & item)527 OFCondition DRTRangeModulatorSequence::addItem(Item *&item)
528 {
529     OFCondition result = EC_IllegalCall;
530     if (!EmptyDefaultSequence)
531     {
532         item = new Item();
533         if (item != NULL)
534         {
535             SequenceOfItems.push_back(item);
536             result = EC_Normal;
537         } else
538             result = EC_MemoryExhausted;
539     }
540     return result;
541 }
542 
543 
insertItem(const size_t pos,Item * & item)544 OFCondition DRTRangeModulatorSequence::insertItem(const size_t pos, Item *&item)
545 {
546     OFCondition result = EC_IllegalCall;
547     if (!EmptyDefaultSequence)
548     {
549         OFListIterator(Item *) iterator;
550         result = gotoItem(pos, iterator);
551         if (result.good())
552         {
553             item = new Item();
554             if (item != NULL)
555             {
556                 SequenceOfItems.insert(iterator, 1, item);
557                 result = EC_Normal;
558             } else
559                 result = EC_MemoryExhausted;
560         } else
561             result = addItem(item);
562     }
563     return result;
564 }
565 
566 
removeItem(const size_t pos)567 OFCondition DRTRangeModulatorSequence::removeItem(const size_t pos)
568 {
569     OFCondition result = EC_IllegalCall;
570     if (!EmptyDefaultSequence)
571     {
572         OFListIterator(Item *) iterator;
573         if (gotoItem(pos, iterator).good())
574         {
575             delete *iterator;
576             iterator = SequenceOfItems.erase(iterator);
577             result = EC_Normal;
578         } else
579             result = EC_IllegalParameter;
580     }
581     return result;
582 }
583 
584 
read(DcmItem & dataset,const OFString & card,const OFString & type,const char * moduleName)585 OFCondition DRTRangeModulatorSequence::read(DcmItem &dataset,
586                                             const OFString &card,
587                                             const OFString &type,
588                                             const char *moduleName)
589 {
590     OFCondition result = EC_IllegalCall;
591     if (!EmptyDefaultSequence)
592     {
593         /* re-initialize object */
594         clear();
595         /* retrieve sequence element from dataset */
596         DcmSequenceOfItems *sequence;
597         result = dataset.findAndGetSequence(DCM_RangeModulatorSequence, sequence);
598         if (sequence != NULL)
599         {
600             if (checkElementValue(*sequence, card, type, result, moduleName))
601             {
602                 DcmStack stack;
603                 OFBool first = OFTrue;
604                 /* iterate over all sequence items */
605                 while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
606                 {
607                     DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
608                     if (ditem != NULL)
609                     {
610                         Item *item = new Item();
611                         if (item != NULL)
612                         {
613                             result = item->read(*ditem);
614                             if (result.good())
615                             {
616                                 /* append new item to the end of the list */
617                                 SequenceOfItems.push_back(item);
618                                 first = OFFalse;
619                             }
620                         } else
621                             result = EC_MemoryExhausted;
622                     } else
623                         result = EC_CorruptedData;
624                 }
625             }
626         } else {
627             DcmSequenceOfItems element(DCM_RangeModulatorSequence);
628             checkElementValue(element, card, type, result, moduleName);
629         }
630     }
631     return result;
632 }
633 
634 
write(DcmItem & dataset,const OFString & card,const OFString & type,const char * moduleName)635 OFCondition DRTRangeModulatorSequence::write(DcmItem &dataset,
636                                              const OFString &card,
637                                              const OFString &type,
638                                              const char *moduleName)
639 {
640     OFCondition result = EC_IllegalCall;
641     if (!EmptyDefaultSequence)
642     {
643         result = EC_MemoryExhausted;
644         DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_RangeModulatorSequence);
645         if (sequence != NULL)
646         {
647             result = EC_Normal;
648             /* an empty optional sequence is not written */
649             if ((type == "2") || !SequenceOfItems.empty())
650             {
651                 OFListIterator(Item *) iterator = SequenceOfItems.begin();
652                 const OFListConstIterator(Item *) last = SequenceOfItems.end();
653                 /* iterate over all sequence items */
654                 while (result.good() && (iterator != last))
655                 {
656                     DcmItem *item = new DcmItem();
657                     if (item != NULL)
658                     {
659                         /* append new item to the end of the sequence */
660                         result = sequence->append(item);
661                         if (result.good())
662                         {
663                             result = (*iterator)->write(*item);
664                             ++iterator;
665                         } else
666                             delete item;
667                     } else
668                         result = EC_MemoryExhausted;
669                 }
670                 if (result.good())
671                 {
672                     /* insert sequence element into the dataset */
673                     result = dataset.insert(sequence, OFTrue /*replaceOld*/);
674                 }
675                 if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
676                     checkElementValue(*sequence, card, type, result, moduleName);
677                 if (result.good())
678                 {
679                     /* forget reference to sequence object (avoid deletion below) */
680                     sequence = NULL;
681                 }
682             }
683             else if (type == "1")
684             {
685                 /* empty type 1 sequence not allowed */
686                 result = RT_EC_InvalidValue;
687                 if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
688                     checkElementValue(*sequence, card, type, result, moduleName);
689             }
690             /* delete sequence (if not inserted into the dataset) */
691             delete sequence;
692         }
693     }
694     return result;
695 }
696 
697 
698 // end of source file
699