Package beans.directory.vidal

Source Code of beans.directory.vidal.DirectoryVidalBean

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package beans.directory.vidal;

import framework.beans.directory.DirectoryBean;
import framework.beans.directory.DirectoryItemDetails;
import beans.directory.vidal.entities.Vidal;
import beans.directory.vidal.entities.atc.VidalAtc;
import beans.directory.vidal.entities.farm.VidalFarm;
import beans.directory.vidal.entities.matter.VidalMatter;
import beans.directory.vidal.entities.matter.VidalMatterPK;
import beans.doctor.contraindication.Contraindication;
import beans.doctor.prescription.PrescriptionItem;
import framework.generic.ClipsServerException;
import framework.generic.EDataIntegrity;
import framework.generic.EMoveToTrash;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.ejb.Stateful;
import beans.UserRightsSet;
import framework.security.UserRight;

/**
* @security ok.
* @author axe
*/
@Stateful(mappedName="clips-beans/DirectoryVidalBean")
public class DirectoryVidalBean extends DirectoryBean<Vidal, DirectoryItemDetails>
        implements DirectoryVidalBeanRemote {

    public DirectoryVidalBean() {
        super(Vidal.class, "препарат");               
    }

    @Override
    protected UserRight getRightForCreateDirectoryItem() {
        return UserRightsSet.WRITE_REGION_ADMIN_DIRECTORY;
    }

    @Override
    protected UserRight getRightForWriteToDirectory() {
        return UserRightsSet.WRITE_REGION_ADMIN_DIRECTORY;
    }
   
    @Override
    protected void set(Vidal vidal, DirectoryItemDetails item) throws ClipsServerException {
        vidal.setTitle(item.title);
        vidal.setDirty(item.dirty);
        vidal.setTrash(item.hidden);
    }

    /**
     * Активные вещества, содержащиеся в препарате
     * @param vidal
     * @return
     * @throws generic.ClipsServerException
     */
    @Override
    public Set<Integer> getMatters(int vidal) throws ClipsServerException {
        if(vidal == 0) {
            throw new EDataIntegrity("");
        }

        Iterator<VidalMatter> list = findEntityList(VidalMatter.class, "key.vidal", vidal).iterator();
        Set<Integer> res = new HashSet<Integer>();
        while (list.hasNext()) {
            VidalMatter matter = list.next();
            res.add(matter.getKey().getMatter());
        }

        return res;
    }
   
    /**
     * Активные вещества, содержащиеся в препарате
     * @param vidal
     * @param matters
     * @throws generic.ClipsServerException
     */
    @Override
    public void setMatters(int vidal, Set<Integer> matters) throws ClipsServerException {
        checkCommandAccessibility(COMMAND_WRITE);
        Set<Integer> backup = new HashSet<Integer>(matters);
        Set<Integer> oldMatters = getMatters(vidal);
       
        matters.removeAll(oldMatters);
       
        oldMatters.removeAll(backup);
       
        if(oldMatters.size() > 0) {
            @SuppressWarnings("unchecked")

            Field f[] = {
                new Field("key.vidal", vidal),
                new Field("key.matter", oldMatters, Field.OPERATOR_IN)
            };
            deleteEntityList(VidalMatter.class, f);
        }

        Iterator<Integer> addNew = matters.iterator();
        while(addNew.hasNext()) {
            VidalMatter r = new VidalMatter();
            r.setKey(new VidalMatterPK(vidal, addNew.next()));
            System.out.println("Added new:" + r);
            manager.persist(r);
        }
    }
   
    @Override
    protected void onRemove(Vidal entity) throws ClipsServerException {
        Field f[] = { new Field("vidal", entity) };
       
        if(getEntityCount(VidalFarm.class, f, "") > 0) {
            throw new EMoveToTrash("Данному классификатору соотвествует "
                    + "один или несколько элементов фармакологического классификатора, удаление невозможно");
        }
        if(getEntityCount(VidalAtc.class, f, "") > 0) {
            throw new EMoveToTrash("Данному классификатору соотвествует "
                    + "один или несколько элементов АТХ классификатора, удаление невозможно");
        }   
        if(getEntityCount(VidalMatter.class, f, "") > 0) {
            throw new EMoveToTrash("Данному классификатору соотвествует "
                    + "один или несколько элементов классификатора активных веществ, удаление невозможно");
        }   
        if(getEntityCount(Contraindication.class, f) > 0) {
            throw new EMoveToTrash("Данный классификатор использован при назначении противопоказания, удаление невозможно");
        }         
        if(getEntityCount(PrescriptionItem.class, f) > 0) {
            throw new EMoveToTrash("Данный классификатор использован при выписке рецепта, удаление невозможно");
        }         
    }

   
}
TOP

Related Classes of beans.directory.vidal.DirectoryVidalBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.