package com.jasamedika.medifirst2000.service;

import java.util.List;
import java.util.Map;

import com.jasamedika.medifirst2000.entities.Pasien;
import com.jasamedika.medifirst2000.vo.PasienVO;
import com.jasamedika.medifirst2000.vo.RegistrasiPasienGawatDaruratVO;

/**
 * Pasien Service
 * 
 * @author Roberto
 */
public interface PasienService<T> extends BaseVoService<Pasien, PasienVO, Integer> {

	String generatePasienCM();

	PasienVO add(PasienVO vo);

	PasienVO update(PasienVO vo);

	void updateTanggalMeninggal(Pasien p);

	PasienVO findById(Integer key);

	PasienVO findByNoCm(String key);

	List<Map<String, Object>> findByNoRM(String noCm);

	PasienVO findByNoBpjs(String noBpjs);

	PasienVO findByNorecAntrian(String noRec);

	List<PasienVO> findAll();

	Map<String, Object> findByNameAndNoCm(Integer page, Integer limit, String sort, String dir, String nama);

	Map<String, Object> findByNoCmAndTglLahir(Integer page, Integer limit, String sort, String dir, String noCm,
			String dateStart, String dateEnd, String tanggalLahir, String namaIbu);

	Map<String, Object> savePasienFromRegistrasiPasienGawatDarurat(RegistrasiPasienGawatDaruratVO vo);

	Pasien findPasienById(Integer key);

	List<Map<String, Object>> findIbuAnak(Long tglAwal, Long tglAkhir);

}
