/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package beans.laboratory;
import framework.beans.SecuredBean;
import framework.beans.security.BeanRights;
import beans.directory.checkuptype.entity.CheckupType;
import framework.generic.ClipsServerException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.ejb.Stateful;
import beans.UserRightsSet;
/**
* Security - Ok.
* @author axe
*/
@Stateful(mappedName="clips-beans/LaboratoryBean")
public class LaboratoryBean extends SecuredBean implements LaboratoryBeanRemote {
public static int COMMAND_WRITE = 0;
@Override
protected void initBeanRights() {
int [] r = new int[1];
r[COMMAND_WRITE] = RightPresence(UserRightsSet.WRITE_CLINIC_ADMIN_DIRECTORY.id);
rights = new BeanRights(r);
}
/**
* Возврашает список идентификаторов checkup_types (типов анализов)
* @return
* @throws ClipsServerException
*/
@Override
public Set<Integer> getCheckupTypes(int laboratoryID) throws ClipsServerException {
Laboratory laboratory = findEntity(Laboratory.class, laboratoryID);
//Iterator list = findEntityList("LaborType", "laboratory", laboratory).iterator();
Iterator<CheckupType> list = laboratory.getCheckupTypes().iterator();
Set<Integer> res = new HashSet<Integer>();
while(list.hasNext()) {
CheckupType ct = list.next();
res.add(ct.getId());
}
return res;
}
/**
* Назанчает список идентификаторов checkup_types (типов анализов)
* @param laboratoryID
* @param types
* @throws ClipsServerException
*/
@Override
public void setCheckupTypes(int laboratoryID, Set<Integer> types) throws ClipsServerException {
checkCommandAccessibility(COMMAND_WRITE);
Laboratory laboratory = findEntity(Laboratory.class, laboratoryID);
Iterator<Integer> addNew = types.iterator();
Set<CheckupType> set = new HashSet<CheckupType>();
while (addNew.hasNext()) {
set.add(findEntity(CheckupType.class, addNew.next()));
}
laboratory.setCheckupTypes(set);
}
}