]> Creatis software - gdcm.git/blob - src/gdcmDicomDirPatient.cxx
2004-03-24 Jean-Pierre Roux
[gdcm.git] / src / gdcmDicomDirPatient.cxx
1 // gdcmDicomDirPatient.cxx
2 //-----------------------------------------------------------------------------
3 #include "gdcmDicomDirPatient.h"
4 #include "gdcmDicomDirElement.h"
5 #include "gdcmUtil.h"
6 //-----------------------------------------------------------------------------
7 // Constructor / Destructor
8 /**
9  * \ingroup gdcmDicomDirPatient
10  * \brief   Constructor
11  * @param  begin  iterator (inside the gdcmParser chained list)
12  *                on the first Header Entry (i.e Dicom Element)
13  *                related to this "PATIENT" part
14  * @param  end  iterator  (inside the gdcmParser chained list)
15  *              on the last Header Entry (i.e Dicom Element) 
16  *              related to this 'PATIENT' part
17  * @param ptagHT pointer to the HTable (gdcmObject needs it 
18  *               to build the gdcmHeaderEntries)
19  * @param plistEntries pointer to the chained List (gdcmObject needs it 
20  *               to build the gdcmHeaderEntries)
21  */
22 gdcmDicomDirPatient::gdcmDicomDirPatient(ListTag::iterator begin,
23                                          ListTag::iterator end,
24                                          TagHeaderEntryHT *ptagHT, 
25                                          ListTag *plistEntries):
26    gdcmObject(begin,end,ptagHT,plistEntries)
27 {
28 }
29
30 /**
31  * \ingroup gdcmDicomDirPatient
32  * \brief   Canonical destructor.
33  */
34 gdcmDicomDirPatient::~gdcmDicomDirPatient() 
35 {
36    for(ListDicomDirStudy::iterator cc = studies.begin();cc != studies.end();++cc)
37    {
38       delete *cc;
39    }
40 }
41
42 //-----------------------------------------------------------------------------
43 // Print
44 /**
45  * \ingroup gdcmDicomDirPatient
46  * \brief   Prints the Object
47  * @return
48  */ 
49 void gdcmDicomDirPatient::Print(std::ostream &os)
50 {
51    os<<"PATIENT"<<std::endl;
52    gdcmObject::Print(os);
53
54    for(ListDicomDirStudy::iterator cc = studies.begin();cc!=studies.end();++cc)
55    {
56       (*cc)->SetPrintLevel(printLevel);
57       (*cc)->Print(os);
58    }
59 }
60
61 //-----------------------------------------------------------------------------
62 // Public
63
64 /**
65  * \ingroup gdcmDicomDir
66  * \brief   adds a new Patient at the begining of the PatientList
67  *          of a partially created DICOMDIR
68  */
69 gdcmDicomDirStudy * gdcmDicomDirPatient::NewStudy(void) {
70    std::list<gdcmElement> elemList;   
71    elemList=gdcmGlobal::GetDicomDirElements()->GetDicomDirStudyElements();
72       
73    FillObject(elemList);
74    gdcmDicomDirStudy *st = new gdcmDicomDirStudy(i, j, ptagHT, plistEntries);
75    studies.push_front(st);
76    return st; 
77
78   
79 }   
80
81 //-----------------------------------------------------------------------------
82 // Protected
83
84 //-----------------------------------------------------------------------------
85 // Private
86
87 //-----------------------------------------------------------------------------