/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clips.delegate.doctor;
import beans.doctor.recommendation.RecommendationBean;
import beans.doctor.recommendation.RecommendationBeanRemote;
import clips.delegate.DEC.DECServiceRender;
import cli_fmw.delegate.DelegateLine2;
import beans.doctor.recommendation.RecommendationDetails;
import cli_fmw.delegate.AuditListener;
import clips.delegate.service.SerRenLocal;
import cli_fmw.delegate.utils.TimeLocal;
import cli_fmw.main.ClipsException;
import cli_fmw.main.DelegatePrintable;
import cli_fmw.report.CombinedReportCreator;
import cli_fmw.report.FormReportCreator;
import clips.doctor.newEMC.init.generic.DelegateNodeLeaf;
import clips.delegate.directory.ro.DirectoryCollaboratorItem;
import java.util.Date;
import java.util.HashMap;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import framework.utils.Converter;
/**
* Делегат - рекомендация врача.
* @author ViP
*/
public class RecommendationLocal extends
DelegateNodeLeaf<RecommendationBeanRemote, RecommendationDetails>
implements Iconable, DelegatePrintable, HasSerrenLocal, Signable {
private DECServiceRender serviceRender = new DECServiceRender(this, "информацию об услуге, в рамках которой выписана рекомендация", getAuditListener());
public static ImageIcon icon = null;
/**
* Создает новую рекомендацию в рамках указанной услуги
* @param serRen услуга, в рамках которой будет действовать данная рекоммендация
* @throws ClipsException
*/
public RecommendationLocal(SerRenLocal serRen) throws ClipsException {
super(serRen.getAuditListener());
serviceRender.initBy(serRen);
getDetails().date = TimeLocal.getCurrentTime().getTime();
}
/**
* Создает рекомендацию в рамках указанной услуги, с заданным идентифкатором
* @param serRen услуга, в рамках которой будет действовать данная рекоммендация
* @param id идентифкатор рекомендации
* @throws ClipsException
*/
public RecommendationLocal(int id, SerRenLocal serRen, AuditListener al) throws ClipsException {
super(id, al);
serviceRender.initBy(serRen);
}
/**
* Конструктор пакетной загрузки
* @param serRen услуга, в рамках которой будет действовать данная рекоммендация (для кеша)
* @param details предварительно загруженные данные рекоммендации
* @throws ClipsException
*/
public RecommendationLocal(RecommendationDetails details, SerRenLocal serRen, AuditListener al) throws ClipsException {
super(details, al);
serviceRender.initBy(serRen);
}
@Override
protected RecommendationDetails getNewDetails() {
return new RecommendationDetails();
}
@Override
public SerRenLocal getSerrenLocal() throws ClipsException {
return serviceRender.get();
}
public Date getDate() throws ClipsException {
return getDetails().date;
}
//never use client date
@Deprecated
public void setDate(Date date) throws ClipsException {
getDetails().date = date;
fireContentStateEvent();
}
//блок сеттеров и геттеров полей рекомендации
public String getRegimen() throws ClipsException {
return getDetails().regimen;
}
public void setRegimen(String regimen) throws ClipsException {
getDetails().regimen = regimen;
fireContentStateEvent();
}
public String getFood() throws ClipsException {
return getDetails().food;
}
public void setFood(String food) throws ClipsException {
getDetails().food = food;
fireContentStateEvent();
}
public String getPhysical() throws ClipsException {
return getDetails().physical;
}
public void setPhysical(String physical) throws ClipsException {
getDetails().physical = physical;
fireContentStateEvent();
}
public String getImmune() throws ClipsException {
return getDetails().immune;
}
public void setImmune(String immune) throws ClipsException {
getDetails().immune = immune;
fireContentStateEvent();
}
public String getDispensary() throws ClipsException {
return getDetails().dispensary;
}
public void setDispensary(String dispensary) throws ClipsException {
getDetails().dispensary = dispensary;
fireContentStateEvent();
}
public String getExtracheckup() throws ClipsException {
return getDetails().extracheckup;
}
public void setExtracheckup(String extracheckup) throws ClipsException {
getDetails().extracheckup = extracheckup;
fireContentStateEvent();
}
//конец блока геттеров и сеттеров полей рекомендации
public String getAllValue() throws ClipsException {
String value = new String();
String str = getRegimen();
if (str != null && !str.isEmpty()) {
value += str + "\n";
}
str = getFood();
if (str != null && !str.isEmpty()) {
value += str + "\n";
}
str = getPhysical();
if (str != null && !str.isEmpty()) {
value += str + "\n";
}
str = getImmune();
if (str != null && !str.isEmpty()) {
value += str + "\n";
}
str = getDispensary();
if (str != null && !str.isEmpty()) {
value += str + "\n";
}
str = getExtracheckup();
if (str != null && !str.isEmpty()) {
value += str + "\n";
}
if (!value.isEmpty()) {
value = value.substring(0, value.length() - 1);
}
return value;
}
@Override
public void print(CombinedReportCreator cCreator) throws ClipsException {
String value = getAllValue();
DirectoryCollaboratorItem serDirector = getSerrenLocal().getSerRenDirector();
FormReportCreator creater = cCreator.createFormReporter(getClass(), 1);
HashMap<String, Object> data = new HashMap<String, Object>();
data.put("recDate", Converter.dateToString(getDate()));
data.put("recClient", getSerrenLocal().getPolisData().getClient(getAuditListener()).toString());
data.put("recValue", value);
data.put("recCollab", " " + serDirector.getTitle());
creater.createReport(null, null, data.entrySet(), null);
creater.finish();
}
@Override
public Icon getIcon() {
return icon;
}
@Override
public String toString() {
return "Рекомендации";
}
@Override
protected String getBeanName() {
return RecommendationBean.class.getSimpleName();
}
@Override
public boolean isSignCorrect() throws ClipsException{
//STUB
return (getID() != -1 );
//END STUB
}
@Override
public String getSignMessage() throws ClipsException {
if (getID() == 0) {
return "Подпись отсутствует";
}
//STUB
String coll;
if (getSerrenLocal().getCollaboratorFunctions() != null) {
coll = getSerrenLocal().getCollaboratorFunctions().getTitle();
} else {
coll = getSerrenLocal().getSerRenDirector().getTitle();
}
String s = "Подписано " + Converter.dateToString(getDate())
+ " - " + coll;
if (isSignCorrect() ) {
return s;
} else {
return "Подпись не соответствует данным!";
}
//END STUB
}
}