/** * ----------------------------------------------------------------------------------- * (c) 2010-2014 OpenInfobutton Project, Biomedical Informatics, University of Utah * Contact: {@code <andrew.iskander@utah.edu>} * Biomedical Informatics * 421 Wakara Way, Ste 140 * Salt Lake City, UT 84108-3514 * Day Phone: 1-801-581-4080 * ----------------------------------------------------------------------------------- * * @author Andrew Iskander {@code <andrew.iskander@utah.edu>} * @version Jul 15, 2014 */ package edu.utah.further.subsetdb.service; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.HashSet; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import edu.utah.further.core.api.context.Implementation; import edu.utah.further.core.api.data.Dao; import edu.utah.further.subsetdb.domain.Concept; import edu.utah.further.subsetdb.domain.Subset; // TODO: Auto-generated Javadoc /** * The Class SubsetDbDaoImpl. */ @Implementation @Repository( "subsetDbDao" ) public class SubsetDbDaoImpl implements SubsetDbDao { /** * Handles generic DAO operations and searches. */ @Autowired @Qualifier( "subsetlogDao" ) private Dao dao;// =new DaoHibernateImpl(new // Configuration().configure("core-data-datasource-context.xml").buildSessionFactory()); /* * (non-Javadoc) * @see edu.utah.further.subsetdb.service.SubsetDbDao#isConceptInSubset(java.lang.Long, java.lang.Long) */ @Override @Transactional public Boolean isConceptInSubset( Long conceptid, Long subsetid ) { final Concept concept = dao.findById( Concept.class, conceptid ); final Subset subset = dao.findById( Subset.class, subsetid ); Set<Subset> subsets = new HashSet<Subset>(); subsets = concept.getSubsets(); return subsets.contains( subset ); } /* * (non-Javadoc) * @see edu.utah.further.subsetdb.service.SubsetDbDao#getConceptByCodeAndCodeSystem(java.lang.String, java.lang.String) */ @Override @Transactional public Concept getConceptByCodeAndCodeSystem( String code, String codeSystem ) { final Map<String, Object> properties = new HashMap<String, Object>(); properties.put( "codeSystem", codeSystem ); properties.put( "code", code ); final List concept = dao.findByProperties( Concept.class, properties ); if ( concept.size() == 1 ) { return (Concept) concept.get( 0 ); } return null; } /* * (non-Javadoc) * @see edu.utah.further.subsetdb.service.SubsetDbDao#getSubsetByName(java.lang.String) */ @Override @Transactional public Subset getSubsetByName( String subsetName ) { final List subset = dao.findByProperty( Subset.class, "name", subsetName ); if ( subset.size() == 1 ) { return (Subset) subset.get( 0 ); } return null; } }