/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package open.dolphin.session;
import java.util.Collection;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.inject.Named;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import open.dolphin.infomodel.*;
/**
* バイタル対応
*
* @author Life Sciences Computing Corporation.
*/
@Named
@Stateless
public class VitalServiceBean {
private static final String QUERY_VITAL_BY_FPID = "from VitalModel v where v.facilityPatId=:fpid";
private static final String QUERY_VITAL_BY_ID = "from VitalModel v where v.id=:id";
private static final String ID = "id";
private static final String FPID = "fpid";
@Resource
private SessionContext ctx;
@PersistenceContext
private EntityManager em;
/**
* バイタルを登録する。
* @param add 登録するバイタル
*/
public int addVital(VitalModel add) {
em.persist(add);
return 1;
}
/**
* バイタル情報を更新する。
* @param update 更新するVital detuched
*/
public int updateVital(VitalModel update) {
VitalModel current = (VitalModel) em.find(VitalModel.class, update.getId());
if(current == null) {
return 0;
}
em.merge(update);
return 1;
}
/**
* バイタルを検索する。
* @param id 検索するバイタルID
* @return 該当するバイタル
*/
public VitalModel getVital(String id) {
VitalModel vital
= (VitalModel)em.createQuery(QUERY_VITAL_BY_ID)
.setParameter(ID, Long.parseLong(id))
.getSingleResult();
return vital;
}
/**
* バイタルを検索する。
* @param fpid 検索する施設ID:患者ID
* @return 該当するバイタル
*/
public List<VitalModel> getPatVital(String fpid) {
List<VitalModel> results
= (List<VitalModel>)em.createQuery(QUERY_VITAL_BY_FPID)
.setParameter(FPID, fpid)
.getResultList();
return results;
}
/**
* バイタルを削除する。
* @param id 削除するバイタルのID
*/
public int removeVital(String id) {
VitalModel remove = getVital(id);
em.remove(remove);
return 1;
}
public PatientModel getPatientByFpid(String fpid){
String[] vals = fpid.split(":");
PatientModel p = (PatientModel)em.createQuery("from PatientModel p where p.facilityId=:facilityId and p.patientId=:patientId")
.setParameter("facilityId",vals[0])
.setParameter("patientId", vals[1])
.getSingleResult();
return p;
}
}