]> Creatis software - creaMiniTools.git/blob - bbtk_package_creaMiniTools/src/bbcreaMiniToolsCreateReport01.cxx
#3421 template_creaPatientsSystem
[creaMiniTools.git] / bbtk_package_creaMiniTools / src / bbcreaMiniToolsCreateReport01.cxx
1 //===== 
2 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
3 //===== 
4 #include "bbcreaMiniToolsCreateReport01.h"
5 #include "bbcreaMiniToolsPackage.h"
6 namespace bbcreaMiniTools
7 {
8
9 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMiniTools,CreateReport01)
10 BBTK_BLACK_BOX_IMPLEMENTATION(CreateReport01,bbtk::AtomicBlackBox);
11 //===== 
12 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
13 //===== 
14 void CreateReport01::Process()
15 {
16
17 // THE MAIN PROCESSING METHOD BODY
18 //   Here we simply set the input 'In' value to the output 'Out'
19 //   And print out the output value
20 // INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
21 //    void bbSet{Input|Output}NAME(const TYPE&)
22 //    const TYPE& bbGet{Input|Output}NAME() const 
23 //    Where :
24 //    * NAME is the name of the input/output
25 //      (the one provided in the attribute 'name' of the tag 'input')
26 //    * TYPE is the C++ type of the input/output
27 //      (the one provided in the attribute 'type' of the tag 'input')
28 //    bbSetOutputOut( bbGetInputIn() );
29 //    std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
30       
31     bbSetOutputLstTitles( bbGetInputLstTitles1() );
32     
33     std::vector<std::string> lstPatients    = bbGetInputLstPatientsID();
34     std::vector<std::string> lstTitles1     = bbGetInputLstTitles1();
35     std::vector<std::string> lstTitles2     = bbGetInputLstTitles2();
36     std::vector<std::string> lstStepsPath   = bbGetInputLstStepsPath();
37     std::vector<std::string> lstCommentsPath= bbGetInputLstCommentsPath();
38
39     std::vector<std::string> lstOut00;
40     std::vector<std::string> lstOut01;
41     std::vector<std::string> lstOut02;
42     std::vector<std::string> lstOut03;
43     std::vector<std::string> lstOut04;
44     std::vector<std::string> lstOut05;
45     std::vector<std::string> lstOut06;
46     std::vector<std::string> lstOut07;
47     std::vector<std::string> lstOut08;
48     std::vector<std::string> lstOut09;
49     std::vector<std::string> lstOut10;
50
51     std::vector< std::vector<std::string>* > pLstOut;
52     
53     pLstOut.push_back( &lstOut00 );
54     pLstOut.push_back( &lstOut01 );
55     pLstOut.push_back( &lstOut02 );
56     pLstOut.push_back( &lstOut03 );
57     pLstOut.push_back( &lstOut04 );
58     pLstOut.push_back( &lstOut05 );
59     pLstOut.push_back( &lstOut06 );
60     pLstOut.push_back( &lstOut07 );
61     pLstOut.push_back( &lstOut08 );
62     pLstOut.push_back( &lstOut09 );
63     pLstOut.push_back( &lstOut10 );
64
65
66     int iTitle2,sizeTitles2     = lstTitles2.size();
67     for (iTitle2=0 ; iTitle2<sizeTitles2 ; iTitle2++ )
68     {
69         pLstOut[iTitle2]->push_back( lstTitles2[iTitle2]  );
70         pLstOut[iTitle2]->push_back( " " );
71     } // for iTitle2
72     
73
74     int id;
75     int i,sizeLstPatientsID     = lstPatients.size();
76     int j,sizeLstStepsPath      = lstStepsPath.size();
77     int jj,sizeLstCommentsPath  = lstCommentsPath.size();
78     std::string stdPATIENT("<PATIENT>");
79     std::string pathFile;
80     FILE *ff;
81     char tmpTitle[255];
82     char tmpValue[255];
83     for ( i=0 ;  i<sizeLstPatientsID ; i++ )
84     {
85         pLstOut[0]->push_back( lstPatients[i] );
86         pLstOut[0]->push_back( " " );
87         pLstOut[0]->push_back( " " );
88         pLstOut[0]->push_back( " " );
89         pLstOut[0]->push_back( " " );
90
91         for (j=0; j<sizeLstStepsPath;j++)
92         {
93             id=j+1;
94             pathFile    = lstStepsPath[j];
95             size_t pos  = 0;
96             pos         = pathFile.find( stdPATIENT , pos);
97             pathFile.replace(pos, stdPATIENT.length(), lstPatients[i] );
98             printf("CreateReport01::Process %s \n", pathFile.c_str() );
99             ff=fopen(pathFile.c_str(), "r");
100             strcpy(tmpValue,"?EED?");
101             if (ff!=NULL)
102             {
103                 fscanf(ff,"%s ",tmpTitle);                 // User
104                 fscanf(ff,"%s ",tmpValue);                 //
105                 pLstOut[id]->push_back( tmpValue );
106                 fscanf(ff,"%s ",tmpTitle);                 // State
107                 fscanf(ff,"%s ",tmpValue);                 //
108                 pLstOut[id]->push_back( tmpValue );
109                 fscanf(ff,"%s ",tmpTitle);                 // Date
110                 fscanf(ff,"%s ",tmpValue);                 //
111                 pLstOut[id]->push_back( tmpValue );
112                 fscanf(ff,"%s ",tmpTitle);                 // Time
113                 fscanf(ff,"%s ",tmpValue);                 //
114                 pLstOut[id]->push_back( tmpValue );
115                 pLstOut[id]->push_back( " " );
116                 fclose(ff);
117             } else {
118                 pLstOut[id]->push_back( " " );
119                 pLstOut[id]->push_back( " " );
120                 pLstOut[id]->push_back( " " );
121                 pLstOut[id]->push_back( " " );
122                 pLstOut[id]->push_back( " " );
123             }// if ff
124         } // for j
125
126         for ( jj=0; jj<sizeLstCommentsPath ; jj++ )
127         {
128             id=jj+1+sizeLstStepsPath;
129
130             pathFile    = lstCommentsPath[jj];
131             size_t pos  = 0;
132             pos         = pathFile.find( stdPATIENT , pos);
133             pathFile.replace(pos, stdPATIENT.length(), lstPatients[i] );
134             printf("CreateReport01::Process %s \n", pathFile.c_str() );
135             ff=fopen(pathFile.c_str(), "r");
136             strcpy(tmpValue,"?EED?");
137             if (ff!=NULL)
138             {
139                 fgets(tmpValue,255,ff);
140                 pLstOut[id]->push_back( tmpValue );
141                 pLstOut[id]->push_back( " " );
142                 pLstOut[id]->push_back( " " );
143                 pLstOut[id]->push_back( " " );
144                 pLstOut[id]->push_back( " " );
145                 fclose(ff);
146             } else {
147                 pLstOut[id]->push_back( " " );
148                 pLstOut[id]->push_back( " " );
149                 pLstOut[id]->push_back( " " );
150                 pLstOut[id]->push_back( " " );
151                 pLstOut[id]->push_back( " " );
152             }// if ff
153         } // for j
154
155     } // for i
156     
157     bbSetOutputOut00( lstOut00 );
158     bbSetOutputOut01( lstOut01 );
159     bbSetOutputOut02( lstOut02 );
160     bbSetOutputOut03( lstOut03 );
161     bbSetOutputOut04( lstOut04 );
162     bbSetOutputOut05( lstOut05 );
163     bbSetOutputOut06( lstOut06 );
164     bbSetOutputOut07( lstOut07 );
165     bbSetOutputOut08( lstOut08 );
166     bbSetOutputOut09( lstOut09 );
167     bbSetOutputOut10( lstOut10 );
168 }
169 //===== 
170 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
171 //===== 
172 void CreateReport01::bbUserSetDefaultValues()
173 {
174
175 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
176 //    Here we initialize the input 'In' to 0
177 //   bbSetInputIn(0);
178   
179 }
180 //===== 
181 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
182 //===== 
183 void CreateReport01::bbUserInitializeProcessing()
184 {
185
186 //  THE INITIALIZATION METHOD BODY :
187 //    Here does nothing 
188 //    but this is where you should allocate the internal/output pointers 
189 //    if any 
190
191   
192 }
193 //===== 
194 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
195 //===== 
196 void CreateReport01::bbUserFinalizeProcessing()
197 {
198
199 //  THE FINALIZATION METHOD BODY :
200 //    Here does nothing 
201 //    but this is where you should desallocate the internal/output pointers 
202 //    if any
203   
204 }
205 }
206 // EO namespace bbcreaMiniTools
207
208