package com.jasamedika.medifirst2000.service;

import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.jasamedika.medifirst2000.entities.Pasien;
import com.jasamedika.medifirst2000.entities.PasienDaftar;
import com.jasamedika.medifirst2000.entities.SkalaNyeri;
import com.jasamedika.medifirst2000.vo.MasukKamarVO;
import com.jasamedika.medifirst2000.vo.PasienDaftarVO;
import com.jasamedika.medifirst2000.vo.RegistrasiPasienGawatDaruratVO;

public interface PasienDaftarService extends BaseVoService<PasienDaftar, PasienDaftarVO, String> {
	String getFormatNumberByMonthYear();

	List<PasienDaftar> findPelayananRawatJalan(Short kdProfile, String noCm);

	Map<String, Object> savePasienDaftarFromRegistrasiPasienGawatDarurat(Pasien pasien,
			RegistrasiPasienGawatDaruratVO vo);

	String getFormatNumberByMonthYearByParameter(Date tglRegistrasi);

	Map<String, Object> updatePasienDaftarFromMasukKamar(MasukKamarVO pasienDaftar);

	PasienDaftar findbyNoCmAndTglRegistrasi(Integer id, Date tglRegistrasi);

	PasienDaftar findbyNoCmLast(String noCm);

	void updateTanggalMeninggal(PasienDaftar pasienDaftar);

	List<PasienDaftar> findAllPasienDaftar(String startDate, String endDate);

	Boolean checkStatusPasien(Integer pasienId);

	List<PasienDaftar> getFindSchedule(Integer idRuangan);

	public List<SkalaNyeri> getSkalaNyeri();

	Map<String, Object> calculateIndikatorPelayanan(String tglAwal, String tglAkhir);

	List<Map<String, Object>> findIndikatorPelayanan(String tahun);

	List<Map<String, Object>> findKunjunganHarianPasienRuangan(String tglAwal, String tglAkhir, Integer idDepartemen,
			Integer idRuangan) throws ParseException;

	List<Map<String, Object>> findRekapDiskon(Long periode);

	List<Map<String, Object>> findLogRekapDiskon(String norecPd, String norecSp);
}
