package org.webcat.outcomesmeasurement.reports; import java.math.BigDecimal; import org.apache.log4j.Logger; import org.webcat.outcomesmeasurement.BasePage; import org.webcat.outcomesmeasurement.OutcomePairStatistic; import com.webobjects.appserver.WOComponent; import com.webobjects.appserver.WOContext; import com.webobjects.appserver.WOResponse; import com.webobjects.foundation.NSMutableArray; import com.webobjects.foundation.NSTimestamp; @SuppressWarnings("serial") public class ReportsPage extends BasePage { public BigDecimal excellentCutoff; public BigDecimal moderateCutoff; public String newExcellentCutoff = null; public String newModerateCutoff = null; public String errorMsg = ""; public String viewType = "Summary View"; public String reportType = "default"; public String newReportType; public boolean summaryView = true; public boolean detailView = false; public NSMutableArray<OutcomePairStatistic> outcomePairStats; public OutcomePairStatistic anOutcomeStat; public NSTimestamp endDate; public NSTimestamp startDate; public WOComponent updateCutoffs(){ if (newReportType != null) System.out.println("nrt: " + newReportType); if (reportType.equals("default")) calculateOutcomes(); if (reportType.equals("overTime")) viewOverTime(); return null; } public WOComponent viewOverTime(){ reportType = "overTime"; outcomePairStats = OutcomeReports.generateOutcomeOverTimeReport(localContext(), excellentCutoff, moderateCutoff, anOutcomeStat.getOutcomePair()); return null; } public WOComponent setViewToSummary(){ viewType = "Summary View"; summaryView = true; detailView = false; return null; } public WOComponent setViewToDetail(){ viewType = "Detailed View"; summaryView = false; detailView = true; return null; } public boolean isSummaryView(){ return summaryView; } public boolean isDetailView(){ return detailView; } @Override public void appendToResponse(WOResponse response, WOContext context) { if (outcomePairStats == null){ excellentCutoff = new BigDecimal(85.0); moderateCutoff = new BigDecimal(60.0); calculateOutcomes(); } super.appendToResponse(response, context); } public void calculateOutcomes() { errorMsg = ""; outcomePairStats = new NSMutableArray<OutcomePairStatistic>(); if (newExcellentCutoff != null){ try { excellentCutoff = new BigDecimal(newExcellentCutoff); } catch (Exception e){ errorMsg = "ERROR: You must enter a valid number for the cutoff values"; } } else { newExcellentCutoff = String.valueOf(excellentCutoff); } if (newModerateCutoff != null){ try { moderateCutoff = new BigDecimal(newModerateCutoff); } catch (Exception e){ errorMsg = "ERROR: You must enter a valid number for the cutoff values"; } } else { newModerateCutoff = String.valueOf(moderateCutoff); } if (reportType.equals("default")) outcomePairStats = OutcomeReports.generateDefaultReport(localContext(), excellentCutoff, moderateCutoff); } public ReportsPage(WOContext context) { super(context); } static Logger log = Logger.getLogger(ReportsPage.class); }