All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.molgenis.studymanager.StudyManagerService Maven / Gradle / Ivy

The newest version!
package org.molgenis.studymanager;

import java.util.List;

import org.molgenis.catalog.UnknownCatalogException;
import org.molgenis.study.StudyDefinition;
import org.molgenis.study.UnknownStudyDefinitionException;

/**
 * Find, retrieve and persist study definitions
 * 
 * @author erwin
 * 
 */
public interface StudyManagerService
{
	/**
	 * Find all study definitions
	 * 
	 * @return
	 */
	List getStudyDefinitions();

	/**
	 * Find all study definition with the given status
	 * 
	 * @param status
	 * @return
	 */
	List getStudyDefinitions(StudyDefinition.Status status);

	/**
	 * Search study definitions
	 * 
	 * @param status
	 * @param search
	 * @return
	 */
	List findStudyDefinitions(StudyDefinition.Status status, String search);

	/**
	 * Find all studydefinitions of a user
	 * 
	 * @param username
	 * @return
	 */
	List getStudyDefinitions(String username);

	/**
	 * Find the study definition with the given id
	 * 
	 * @param id
	 *            study definition id
	 * @return
	 * @throws UnknownStudyDefinitionException
	 */
	StudyDefinition getStudyDefinition(String id) throws UnknownStudyDefinitionException;

	/**
	 * Returns whether study data loading is enabled
	 * 
	 * @return
	 */
	boolean canLoadStudyData();

	/**
	 * Retrieve a study definition and save it in the database
	 * 
	 * @param id
	 *            study definition id
	 * @throws UnknownStudyDefinitionException
	 */
	void loadStudyData(String id) throws UnknownStudyDefinitionException;

	/**
	 * Returns whether study definition data is loaded
	 * 
	 * @param id
	 *            study definition id
	 * @return
	 * @throws UnknownStudyDefinitionException
	 */
	boolean isStudyDataLoaded(String id) throws UnknownStudyDefinitionException;

	/**
	 * Returns whether study definition data is loaded
	 * 
	 * @param id
	 *            study definition id
	 * @return
	 * @throws UnknownStudyDefinitionException
	 * @throws UnknownCatalogException
	 */
	boolean isStudyDataActivated(String id) throws UnknownStudyDefinitionException, UnknownCatalogException;

	/**
	 * Creates a new study definition for the given user based on a catalog
	 * 
	 * @param username
	 * @param catalogId
	 * @return study definition for the given user
	 */
	StudyDefinition createStudyDefinition(String username, String catalogId) throws UnknownCatalogException;

	/**
	 * Updates an existing study definition
	 * 
	 * @param studyDefinition
	 * @throws UnknownStudyDefinitionException
	 */
	void updateStudyDefinition(StudyDefinition studyDefinition) throws UnknownStudyDefinitionException;

	/**
	 * Submit the draft study definition for the given catalog
	 * 
	 * @param id
	 *            study definition id
	 * @throws UnknownStudyDefinitionException
	 */
	void submitStudyDefinition(String id, String catalogId) throws UnknownStudyDefinitionException,
			UnknownCatalogException;

    /**
     * Submit the draft study definition for the given catalog
     *
     * @param id
     *            study definition id
     * @throws UnknownStudyDefinitionException
     */
    void exportStudyDefinition(String id, String catalogId) throws UnknownStudyDefinitionException,
            UnknownCatalogException;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy