/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package beans.doctor.recommendation;
import framework.beans.EntityDetails;
import beans.doctor.MedicalDataBean;
import beans.service.ServiceRender;
import framework.audit.AuditDoc;
import framework.generic.ClipsServerException;
import framework.generic.ESecurity;
import java.util.Date;
import java.util.List;
import javax.ejb.EJBException;
import javax.ejb.Stateful;
/**
* @security - Ok.
* Integrity - may be Ok.
* @author axe
*/
@Stateful(mappedName="clips-beans/RecommendationBean")
public class RecommendationBean extends MedicalDataBean<Recommendation>
implements RecommendationBeanRemote {
public RecommendationBean() {
super(Recommendation.class);
}
/**
* Обновляет данные сущности.
* @param details новые детали сущности
* @throws EJBException в случае если обновление отвергнуто системой
* безопастности либо произошла ошибка
* @return идентификатор сущности
* Безопасность.
* Установка прав для мед. данных Рецептов, рекоммендаций, направлений, противопоказаний,
* диагнозов и осмотров. Читать можно только по READ_MEDICAL_DATA.
* Изменять и удалять по WRITE_MEDICAL_DATA_DURING_DAY и WRITE_MEDICAL_DATA_ANY_TIME.
* Для осмотров ещё два, менее мощных права WRITE_CHECKUP_DURING_DAY и WRITE_CHECKUP_ANY_TIME.
* XXX_DURING_DAY - позволяет писать данные, если услуга не выполнена или выполнена в течении
* текущего дня, изменять данные может только сотрудник, создавший запись.
* XXX_ANY_TIME - позволяет редактировать любую запись, без ограничений.
*/
@Override
protected void onUpdate(Recommendation entity, EntityDetails details,
AuditDoc auditDoc, List<AuditDoc> auditDocList)
throws ClipsServerException {
super.onUpdate(entity, details, auditDoc, auditDocList);
RecommendationDetails d = (RecommendationDetails) details;
if(entity.getId() != 0) {
if(entity.getServiceRender().getId() != d.serviceRenderID) {
throw new ESecurity("Cмена услуги недопустима");
}
} else {
//never use client date +
entity.setDate(new Date());
entity.setServiceRender(findEntity(ServiceRender.class, d.serviceRenderID));
}
entity.setRegimen(d.regimen);
entity.setFood(d.food);
entity.setPhysical(d.physical);
entity.setImmune(d.immune);
entity.setDispensary(d.dispensary);
entity.setExtracheckup(d.extracheckup);
}
}