AddRemoteMonitoringDataAction.java 2.32 KiB
package edu.ncsu.csc.itrust.action;
import java.util.List;
import edu.ncsu.csc.itrust.beans.RemoteMonitoringDataBean;
import edu.ncsu.csc.itrust.beans.TelemedicineBean;
import edu.ncsu.csc.itrust.dao.DAOFactory;
import edu.ncsu.csc.itrust.dao.mysql.AuthDAO;
import edu.ncsu.csc.itrust.dao.mysql.RemoteMonitoringDAO;
import edu.ncsu.csc.itrust.exception.DBException;
import edu.ncsu.csc.itrust.exception.FormValidationException;
import edu.ncsu.csc.itrust.exception.ITrustException;
import edu.ncsu.csc.itrust.validate.RemoteMonitoringDataBeanValidator;
/**
* Handles adding remote monitoring patient data to the database
*
*/
public class AddRemoteMonitoringDataAction {
private RemoteMonitoringDataBeanValidator validator = new RemoteMonitoringDataBeanValidator();
private RemoteMonitoringDAO rmDAO;
private AuthDAO authDAO;
private long loggedInMID;
private long patientMID;
/**
* Constructor
*
* @param factory The DAOFactory used to create the DAOs used in this action.
* @param loggedInMID The MID of the person recording the patient's data.
* @param patientMID The MID of the patient
*/
public AddRemoteMonitoringDataAction(DAOFactory factory, long loggedInMID, long patientMID) {
this.loggedInMID = loggedInMID;
this.rmDAO = factory.getRemoteMonitoringDAO();
this.authDAO = factory.getAuthDAO();
this.patientMID = patientMID;
}
public List<TelemedicineBean> getTelemedicineBean(long patientMID) throws DBException {
return rmDAO.getTelemedicineBean(patientMID);
}
/**
* Adds a patient's telemedicine data to the database.
*
* @param weight
* @param pedometerReading
* @throws DBException
*/
public void addRemoteMonitoringData(RemoteMonitoringDataBean rmdBean)
throws DBException, FormValidationException, ITrustException {
validator.validate(rmdBean);
String role;
if (loggedInMID == patientMID){
role = "self-reported";
} else if (authDAO.getUserRole(loggedInMID).getUserRolesString().equals("uap")){
role = "case-manager";
} else {
role = "patient representative";
}
//Store in DB
rmDAO.storePatientData(patientMID, rmdBean, role, loggedInMID);
}
/**
* returns the patient name
*
* @return patient name
* @throws DBException
* @throws ITrustException
*/
public String getPatientName(long pid) throws ITrustException {
return authDAO.getUserName(pid);
}
}