/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package systole.view.wizard.analysis;
import java.util.Date;
import java.util.Iterator;
import systole.domain.analysis.Analysis;
import systole.domain.clinicalInformation.ClinicalInformation;
import systole.domain.persons.Medic;
import systole.domain.persons.Patient;
import systole.domain.report.Report;
import systole.domain.signals.RawSignal;
import systole.domain.signals.SignalFrequency;
import systole.view.messages.EntityDescriptions;
import systole.view.wizard.WizardResult;
/**
*
* @author jmj
*/
public class WizardAnalysisResult extends WizardResult {
@Override
public Object generateResult() {
Analysis analisys = new Analysis();
analisys.setMedic((Medic) this.results.get("medic"));
RawSignal rawSignal = (RawSignal) this.results.get("rawSignal");
rawSignal.setInverted((Boolean) this.results.get("inverted"));
analisys.setRawSignal(rawSignal);
analisys.setCreationDay((Date) this.results.get("date"));
analisys.setFilePath((String) this.results.get("signal"));
analisys.setSignalFrequency((SignalFrequency) this.results.get("period"));
analisys.setFileName((String) this.results.get("filename"));
Patient patient = (Patient) this.results.get("patient");
patient.getRawsignals().add(rawSignal);
ClinicalInformation clinicalInformation = (ClinicalInformation) this.results.get("clinicalInfo");
clinicalInformation.setPatient(patient);
analisys.setPatient(patient);
analisys.setClinicalInformation(clinicalInformation);
Iterator<String> familyList = patient.getClinicalHistoryProxy().getFamilyBackground(2).iterator();
Iterator<String> medicinesList = patient.getClinicalHistoryProxy().getPatientMedicines(2).iterator();
Iterator<String> pathologiesList = patient.getClinicalHistoryProxy().getPatientPathologies(2).iterator();
Iterator<String> surgeriesList = patient.getClinicalHistoryProxy().getPatientSurgeries(2).iterator();
Report report = new Report();
String family = "";
while (familyList.hasNext()) {
family = family.concat((family.isEmpty() ? "" : ". ") + familyList.next());
}
report.setBackgroundFamily(family.isEmpty() ? "" : "Antecendentes Familiares: " + family);
String medicine = "";
while (medicinesList.hasNext()) {
medicine = medicine.concat((medicine.isEmpty() ? "" : ". ") + medicinesList.next());
}
report.setBackgroundMedicines(medicine.isEmpty() ? "" : "Medicamentos: " + medicine);
String pathology = "";
while (pathologiesList.hasNext()) {
pathology = pathology.concat((pathology.isEmpty() ? "" : ". ") + pathologiesList.next());
}
report.setBackgroundPathologies(pathology.isEmpty() ? "" : EntityDescriptions.PATHOLOGIES + ": " + pathology);
String surgeries = "";
while (surgeriesList.hasNext()) {
surgeries = surgeries.concat((surgeries.isEmpty() ? "" : ". ") + surgeriesList.next());
}
report.setBackgroundSurgeries(surgeries.isEmpty()?"":EntityDescriptions.SURGERIES + ": " +surgeries);
analisys.setReport(report);
return analisys;
}
@Override
public String[] generateSummary() {
String[] items = new String[3];
items[0] = "<html><b>" + EntityDescriptions.PATIENT + ":</b><br/> " + this.results.get("patient").toString() + "</html>";
items[1] = "<html><b>" + EntityDescriptions.MEDIC + ":</b><br/> " + this.results.get("medic").toString() + "</html>";
items[2] = "<html><b>Tren de Pulso:</b><br/> " + (this.results.get("signal")) + "</html>";
return items;
}
}