/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package beans.doctor.medexam.search;
import beans.UserRightsSet;
import beans.service.medexam.Medexam;
import beans.service.medexam.MedexamClientChunk;
import beans.user.client.entity.Client;
import framework.beans.SecuredBean;
import framework.beans.security.BeanRights;
import framework.generic.ClipsServerException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.ejb.Stateful;
/**
* Бин поиска бильничных по заданным критериям
* @author petr
*/
@Stateful(mappedName="clips-beans/MedexamSearchBean")
public class MedexamSearchBean extends SecuredBean
implements MedexamSearchBeanRemote {
public static int COMMAND_READ = 0;
@Override
protected void initBeanRights() {
int[] r = new int[1];
r[COMMAND_READ] = RightPresence(UserRightsSet.READ_MEDICAL_DATA.id);
rights = new BeanRights(r);
}
@Override
public List<MedexamClientChunk> getFilteredDetailed(MedexamFilter filter) throws ClipsServerException {
checkCommandAccessibility(COMMAND_READ);
ArrayList<Field> fs = new ArrayList<Field>();
if (filter.dateOpenFrom != null){
fs.add(new Field("disease.created", filter.dateOpenFrom, Field.OPERATOR_EQUAL_OR_MORE));
}
if (filter.dateOpenTill != null){
fs.add(new Field("disease.created", filter.dateOpenTill, Field.OPERATOR_LESS));
}
if (filter.clientId > 0){
fs.add(new Field("disease.emc.client.id", filter.clientId));
}
if (filter.onlyOpened){
fs.add(new Field("result","", Field.OPERATOR_IS_NULL));
}
Iterator<Field> it = fs.iterator();
Field fields[] = new Field[fs.size()];
int i = 0;
while (it.hasNext()){
fields[i] = it.next();
i++;
}
List<Medexam> ml = findEntityList(Medexam.class, fields);
ArrayList<MedexamClientChunk> res = new ArrayList<MedexamClientChunk>();
for (int j = 0; j < ml.size(); j++) {
Medexam medexam = ml.get(j);
Client client = medexam.getDisease().getEmc().getClient();
res.add(new MedexamClientChunk(medexam.getDetails(this), client.getDetails(this)));
}
return res;
}
}