package org.msh.tb.resistpattern;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Transactional;
import org.msh.tb.entities.ResistancePattern;
import org.msh.tb.entities.TbCase;
import org.msh.tb.entities.enums.DstResult;
import org.msh.tb.entities.enums.XpertResult;
import org.msh.tb.entities.enums.XpertRifResult;
import org.msh.utils.date.DateUtils;
import javax.persistence.EntityManager;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Update the resistance pattern of an specific case. This service must be
* called every time a DST result or an Xpert result is posted, updated or deleted.
* When the method updateCase is called, the user defined resistance
* patterns will be updated based on the medicine resistances of the case.
*
* @author Ricardo Memoria
*
*/
@Name("resistancePatternService")
public class ResistancePatternService {
@In EntityManager entityManager;
private List patterns;
/**
* Update the resistance pattern of an specific case
* @param tbcase
*/
@Transactional
public void updateCase(TbCase tbcase) {
// delete resistance patterns
entityManager.createQuery("delete from CaseResistancePattern p where p.tbcase.id = :id")
.setParameter("id", tbcase.getId())
.executeUpdate();
// get resistances from DST
List