Skip to content
Snippets Groups Projects
EditLabProceduresAction.java 4.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • HMoss's avatar
    HMoss committed
    package edu.ncsu.csc.itrust.action;
    
    import java.util.ArrayList;
    import java.util.List;
    import edu.ncsu.csc.itrust.action.base.EditOfficeVisitBaseAction;
    import edu.ncsu.csc.itrust.beans.LOINCbean;
    import edu.ncsu.csc.itrust.beans.LabProcedureBean;
    import edu.ncsu.csc.itrust.beans.PersonnelBean;
    import edu.ncsu.csc.itrust.dao.DAOFactory;
    import edu.ncsu.csc.itrust.dao.mysql.LOINCDAO;
    import edu.ncsu.csc.itrust.dao.mysql.LabProcedureDAO;
    import edu.ncsu.csc.itrust.dao.mysql.PersonnelDAO;
    import edu.ncsu.csc.itrust.exception.DBException;
    import edu.ncsu.csc.itrust.exception.ITrustException;
    
    /**
     * Handles lab procedures
     * add lab procedure
     * Edit lab procedure
     * Remove lab procedure
     */
    public class EditLabProceduresAction extends EditOfficeVisitBaseAction {
    	
    	private LabProcedureDAO labProcedureDAO;
    	private PersonnelDAO personnelDAO;
    	private LOINCDAO loincDAO;
    	
    	/**
    	 * EditLabProceduresAction
    	 * @param factory factory
    	 * @param hcpid hcpid
    	 * @param pidString pidString
    	 * @param ovIDString ovIDString
    	 * @throws ITrustException
    	 */
    	public EditLabProceduresAction(DAOFactory factory, long hcpid, 
    			   	String pidString, String ovIDString) 
    		throws ITrustException {
    		super(factory, hcpid, pidString, ovIDString);
    		labProcedureDAO = factory.getLabProcedureDAO();
    		personnelDAO = factory.getPersonnelDAO();
    		loincDAO = factory.getLOINCDAO();
    	}
    	
    	/**
    	 * EditLabProceduresAction
    	 * @param factory factory
    	 * @param hcpid hcpid
    	 * @param pidString pidString
    	 * @throws ITrustException
    	 */
    	public EditLabProceduresAction(DAOFactory factory, long hcpid, 
    				String pidString) 
    		throws ITrustException {
    		super(factory, hcpid, pidString);
    		labProcedureDAO = factory.getLabProcedureDAO();
    		personnelDAO = factory.getPersonnelDAO();
    		loincDAO = factory.getLOINCDAO();
    		
    	}
    	
    	/**
    	 * getLabProcedures
    	 * @return list
    	 * @throws DBException
    	 */
    	public List<LabProcedureBean> getLabProcedures() throws DBException {
    		if (isUnsaved()) {
    			return new ArrayList<LabProcedureBean>();
    		} else {
    			return labProcedureDAO.getAllLabProceduresForDocOV(getOvID());
    		}
    	}
    	
    	/**
    	 * getLabProcedure
    	 * @param id id
    	 * @return lab procedure
    	 * @throws ITrustException
    	 */
    	public LabProcedureBean getLabProcedure(long id) throws ITrustException {
    		verifySaved();
    		return labProcedureDAO.getLabProcedure(id);
    	}
    	
    	/**
    	 * addLabProcedure
    	 * @param bean bean
    	 * @throws ITrustException
    	 */
    	public void addLabProcedure(LabProcedureBean bean) throws ITrustException {
    		verifySaved();
    		//choose lab tech if not assigned in bean
    		if ("".equals(bean.getStatus())) {
    			bean.setStatus(LabProcedureBean.In_Transit);
    		}
    		labProcedureDAO.addLabProcedure(bean);
    	}
    	
    	/**
    	 * editLabProcedure
    	 * @param bean bean
    	 * @throws ITrustException
    	 */
    	public void editLabProcedure(LabProcedureBean bean) throws ITrustException {
    		verifySaved();
    		labProcedureDAO.updateLabProcedure(bean);
    	}
    	
    	/**
    	 * deleteLabProcedure
    	 * @param bean bean
    	 * @throws ITrustException
    	 */
    	public void deleteLabProcedure(LabProcedureBean bean) throws ITrustException {
    		verifySaved();
    		labProcedureDAO.removeLabProcedure(bean.getProcedureID());
    	}
    	
    	/**
    	 * getLabTechs
    	 * @return lab techs
    	 * @throws ITrustException
    	 */
    	public List<PersonnelBean> getLabTechs() throws ITrustException {
    		return personnelDAO.getLabTechs();
    	}
    	
    	/**
    	 * getLabTechName
    	 * @param mid mid
    	 * @return ""
    	 * @throws ITrustException
    	 */
    	public String getLabTechName(long mid) throws ITrustException {
    		try {
    			return personnelDAO.getName(mid);
    		} catch (ITrustException e) {
    			return "";
    		}
    	}
    	
    	/**
    	 * getLabTechQueueSize
    	 * @param mid mid
    	 * @return lab tech queue size
    	 * @throws ITrustException
    	 */
    	public int getLabTechQueueSize(long mid) throws ITrustException {
    		return labProcedureDAO.getLabTechQueueSize(mid);
    	}
    	
    	/**
    	 * getLabTechQueueSizeByPriority
    	 * @param mid mid
    	 * @return lab tech queue size by priority
    	 * @throws ITrustException
    	 */
    	public int[] getLabTechQueueSizeByPriority(long mid) throws ITrustException {
    		return labProcedureDAO.getLabTechQueueSizeByPriority(mid);
    	}
    	
    	/**
    	 * getLabProcedureCodes
    	 * @return get all loinc
    	 * @throws DBException
    	 */
    	public List<LOINCbean> getLabProcedureCodes() throws DBException {
    		return loincDAO.getAllLOINC();
    	}
    	
    }