package edu.ualberta.med.biobank.server.applicationservice;
import edu.ualberta.med.biobank.common.action.Action;
import edu.ualberta.med.biobank.common.action.ActionResult;
import edu.ualberta.med.biobank.common.permission.Permission;
import edu.ualberta.med.biobank.common.reports.QueryCommand;
import edu.ualberta.med.biobank.common.reports.QueryHandle;
import edu.ualberta.med.biobank.model.Log;
import edu.ualberta.med.biobank.model.Report;
import edu.ualberta.med.biobank.server.query.BiobankSQLCriteria;
import gov.nih.nci.system.applicationservice.ApplicationException;
import gov.nih.nci.system.applicationservice.WritableApplicationService;
import java.util.List;
/**
* Application service interface obtained through
* "ApplicationServiceProvider.getApplicationServiceFromUrl" method. This
* replace the default WritableApplicationService interface to add our own
* methods.
*
* See build.properties of the sdk for the generator configuration +
* application-config*.xml for the generated files.
*/
public interface BiobankApplicationService extends WritableApplicationService {
public <E> List<E> query(BiobankSQLCriteria sqlCriteria,
String targetClassName) throws ApplicationException;
public void logActivity(String action, String site, String patientNumber,
String inventoryID, String locationLabel, String details, String type)
throws Exception;
public void logActivity(Log log) throws Exception;
/**
* csmUserId will help to check this method is called by the user itself.
*/
public void executeModifyPassword(Long csmUserId, String oldPassword,
String newPassword, Boolean bulkEmails) throws ApplicationException;
public void unlockUser(String userNameToUnlock) throws ApplicationException;
public List<Object> runReport(Report report, int maxResults, int firstRow,
int timeout) throws ApplicationException;
public void checkVersion(String clientVersion) throws ApplicationException;
public String getServerVersion();
public QueryHandle createQuery(QueryCommand qc) throws Exception;
public List<Object> startQuery(QueryHandle qh) throws Exception;
public void stopQuery(QueryHandle qh) throws Exception;
public List<String> executeGetSourceSpecimenUniqueInventoryIds(int numIds)
throws ApplicationException;
public String getUserPassword(String login) throws ApplicationException;
public boolean isUserLockedOut(Long csmUserId) throws ApplicationException;
public <T extends ActionResult> T doAction(Action<T> action)
throws ApplicationException;
public boolean isAllowed(Permission permission) throws ApplicationException;
}