package ch.elexis.icpc.fire.model;
import java.util.List;
import java.util.Optional;
import ch.elexis.data.Konsultation;
import ch.elexis.data.Query;
import ch.elexis.icpc.Encounter;
import ch.elexis.icpc.IcpcCode;
import ch.elexis.icpc.fire.model.TConsultation.Diagnoses;
public class DiagnosesBuilder {
private Konsultation consultation;
private FireConfig config;
public DiagnosesBuilder(FireConfig config){
this.config = config;
}
public DiagnosesBuilder consultation(Konsultation consultation){
this.consultation = consultation;
return this;
}
public Optional<Diagnoses> build(){
Query<Encounter> qbe = new Query<Encounter>(Encounter.class);
qbe.add("KonsID", "=", consultation.getId());
List<Encounter> encounters = qbe.execute();
if(!encounters.isEmpty()) {
Diagnoses ret = config.getFactory().createTConsultationDiagnoses();
for (Encounter enc : encounters) {
IcpcCode diag = enc.getDiag();
if (diag != null) {
TDiagnose tDiag = config.getFactory().createTDiagnose();
tDiag.setIcpc(diag.getCode());
tDiag.setDescription(diag.getText());
ret.getDiagnose().add(tDiag);
}
}
return Optional.of(ret);
}
return Optional.empty();
}
}