2
* Copyright (c) 2004-2009, University of Oslo
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
* * Redistributions of source code must retain the above copyright notice, this
8
* list of conditions and the following disclaimer.
9
* * Redistributions in binary form must reproduce the above copyright notice,
10
* this list of conditions and the following disclaimer in the documentation
11
* and/or other materials provided with the distribution.
12
* * Neither the name of the HISP project nor the names of its contributors may
13
* be used to endorse or promote products derived from this software without
14
* specific prior written permission.
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
20
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
23
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
package org.hisp.dhis.caseentry.action.report;
30
import java.util.ArrayList;
31
import java.util.Collection;
32
import java.util.Date;
33
import java.util.HashMap;
36
import org.hisp.dhis.i18n.I18nFormat;
37
import org.hisp.dhis.organisationunit.OrganisationUnit;
38
import org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager;
39
import org.hisp.dhis.paging.ActionPagingSupport;
40
import org.hisp.dhis.program.Program;
41
import org.hisp.dhis.program.ProgramInstance;
42
import org.hisp.dhis.program.ProgramInstanceService;
43
import org.hisp.dhis.program.ProgramService;
44
import org.hisp.dhis.program.ProgramStageInstance;
45
import org.hisp.dhis.program.ProgramStageInstanceService;
48
* @author Abyot Asalefew Gizaw
51
public class GenerateReportAction
52
extends ActionPagingSupport<ProgramInstance>
55
* Determines if a de-serialized file is compatible with this class.
57
private static final long serialVersionUID = 3785792832775238394L;
59
public static final String RED = "#ff0000";
61
public static final String YELLOW = "#ffff00";
63
// -------------------------------------------------------------------------
65
// -------------------------------------------------------------------------
67
private OrganisationUnitSelectionManager selectionManager;
69
public void setSelectionManager( OrganisationUnitSelectionManager selectionManager )
71
this.selectionManager = selectionManager;
74
private ProgramService programService;
76
public void setProgramService( ProgramService programService )
78
this.programService = programService;
81
private ProgramInstanceService programInstanceService;
83
public void setProgramInstanceService( ProgramInstanceService programInstanceService )
85
this.programInstanceService = programInstanceService;
88
private ProgramStageInstanceService programStageInstanceService;
90
public void setProgramStageInstanceService( ProgramStageInstanceService programStageInstanceService )
92
this.programStageInstanceService = programStageInstanceService;
95
private I18nFormat format;
97
public void setFormat( I18nFormat format )
102
// -------------------------------------------------------------------------
104
// -------------------------------------------------------------------------
106
private Integer programId;
108
public void setProgramId( Integer programId )
110
this.programId = programId;
113
private String startDate;
115
public void setStartDate( String startDate )
117
this.startDate = startDate;
120
private String endDate;
122
public void setEndDate( String endDate )
124
this.endDate = endDate;
127
private OrganisationUnit organisationUnit;
129
public OrganisationUnit getOrganisationUnit()
131
return organisationUnit;
134
Collection<ProgramInstance> programInstances = new ArrayList<ProgramInstance>();
136
public Collection<ProgramInstance> getProgramInstances()
138
return programInstances;
141
private Map<Integer, String> colorMap = new HashMap<Integer, String>();
143
public Map<Integer, String> getColorMap()
148
private Program program;
150
public Program getProgram()
155
// -------------------------------------------------------------------------
156
// Action implementation
157
// -------------------------------------------------------------------------
159
public String execute()
162
organisationUnit = selectionManager.getSelectedOrganisationUnit();
164
program = programService.getProgram( programId );
166
Date sDate = format.parseDate( startDate );
168
Date eDate = format.parseDate( endDate );
170
// ---------------------------------------------------------------------
171
// Program instances for the selected program
172
// ---------------------------------------------------------------------
174
int total = programInstanceService.countProgramInstances( program, organisationUnit, sDate, eDate );
176
this.paging = createPaging( total );
178
programInstances = programInstanceService.getProgramInstances( program, organisationUnit, sDate, eDate, paging
179
.getStartPos(), paging.getPageSize() );
181
Collection<ProgramStageInstance> programStageInstances = new ArrayList<ProgramStageInstance>();
183
for ( ProgramInstance programInstance : programInstances )
185
programStageInstances.addAll( programInstance.getProgramStageInstances() );
188
colorMap = programStageInstanceService.colorProgramStageInstances( programStageInstances );