package com.jasamedika.medifirst2000.service;

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

import com.jasamedika.medifirst2000.dto.BuktiPenerimaanBarangDto;
import com.jasamedika.medifirst2000.dto.HPSDto;
import com.jasamedika.medifirst2000.dto.HeadDto;
import com.jasamedika.medifirst2000.dto.HeadKasirDto;
import com.jasamedika.medifirst2000.dto.KartuPengendaliDto;
import com.jasamedika.medifirst2000.dto.KartuPulangPasienDto;
import com.jasamedika.medifirst2000.dto.KwitansiDto;
import com.jasamedika.medifirst2000.dto.LampiranSPPHDto;
import com.jasamedika.medifirst2000.dto.RekapPendapatanHarianPoliklinikDto;
import com.jasamedika.medifirst2000.dto.SuratPesananSementaraDto;
import com.jasamedika.medifirst2000.entities.Pasien;
import com.jasamedika.medifirst2000.vo.PasienVO;

public interface ReportService extends BaseVoService<Pasien, PasienVO, Integer> {

	public KwitansiDto generateKwitansi(String noKwitansi, String token);

	public KartuPulangPasienDto generateKartuPasienPulang(String noRegistrasi, String token);

	public List<RekapPendapatanHarianPoliklinikDto> generateRekapPendapatanHarianPoliklinik(String noRegistrasi);

	public KartuPengendaliDto generateKartuPengendali(String noRec);

	public HPSDto generateHPS(String noRec);

	public SuratPesananSementaraDto generateSPS(String noRecKartuPengendaliId, Integer supplierId);

	public LampiranSPPHDto generateLampiranSPPH(String noRec);

	public HeadKasirDto generateBilling(String noRegistrasi, String token);

	public BuktiPenerimaanBarangDto generateBuktiPenerimaan(String noRec);

	public BuktiPenerimaanBarangDto generateBuktiPengeluaranBarang(String noRec);

	public HeadDto generateQRCode(String noRec);

	public HeadDto generateQRCodeAset(String noRec);

	public Map<String, Object> generateSlipPenghasilan(Integer idPegawai, String periode);

	public List<Map<String, Object>> generateLapRekapitulasiKehadiran(Integer idRuangan, String startDate,
			String endDate);

	public Map<String, Object> generateRekapitulasiStok(Integer kelompokProdukId, Integer produkId,
			Integer asalProdukId, Integer ruanganId, Integer jenisProdukId);

	public Map<String, Object> generateSPMRS(String noRegistrasi);

	public Map<String, Object> generateSasaranMutuPoliklinik(String startDate, String endDate, Integer ruanganId,
			Integer dokterId);

	public Map<String, Object> pengkajianAwalNeonatusRawatJalan(String kdPap, String noRec);

	public Map<String, Object> pengkajianAwalNeonatusRawatInap(String kdPap, String noRec);

	public Map<String, Object> pengkajianAwalAnakRawatInap(String kdPap, String noRec);

	public Map<String, Object> pengkajianAwalAnakRawatJalan(String kdPap, String noRec);

	public Map<String, Object> pengkajianAwalDewasaRawatJalan(String kdPap, String noRec);

	public Map<String, Object> resumeMedis(String noRec);

	public Map<String, Object> tracer(String noRegistrasi);

	public Map<String, Object> ringkasanKeluarMasuk(String noRegistrasi);

	public Map<String, Object> labelPasien(String noRegistrasi);

	public List<Map<String, Object>> generateLapRekapitulasiIndexKehadiran(String periode);

	public List<Map<String, Object>> generateSuratPermohonanCuti(String noRec);

	public Map<String, Object> generateLapPermohonanCuti(String noRecPlanning, Integer idJabatan, Integer idAtasan1,
			Integer idAtasan2, Integer kaRu);

	public Map<String, Object> generateSuratIzinSementara(String noRecPlanning, Integer idJabatan, Integer idUnitKerja,
			Integer idAtasan1, Integer idAtasan2, Integer kaRu, Integer idJabatanAtasan1, Integer idJabatanAtasan2);

	public Map<String, Object> generateSuratIzinSementara(String noRecPlanning, Integer idJabatan, Integer idUnitKerja,
			Integer idAtasan1, Integer idJabatanAtasan1);

	public Map<String, Object> generateSuratTugas(String noRecPlanning, Integer idJabatan, Integer idUnitKerja,
			Integer idAtasan1, Integer idAtasan2, Integer kaRu, Integer idJabatanAtasan1, Integer idJabatanAtasan2);

	public Map<String, Object> generateLapPermohonanCuti(String noRecPlanning, Integer idJabatan, Integer idUnitKerja,
			Integer idAtasan1, Integer idAtasan2, Integer kaRu, Integer idJabatanAtasan1, Integer idJabatanAtasan2,
			String atasanDireksi);

	public Map<String, Object> generateLapPermohonanCuti(String noRecPlanning, String atasan1, String nipPnsAtasan1,
			String jabatanAtasan1, String atasan2, String nipPnsAtasan2, String jabatanAtasan2, Integer idKaRu);

	public Map<String, Object> generateLapSuratIzinCuti(String noRecPlanning, Integer idJabatan, Integer atasanId,
			Integer jabatanAtasanId);

	public Map<String, Object> generateLapPelayanan(String startDate, String endDate, Integer idproduk,
			Integer idRuangan, Integer jenisPasien);

	public Map<String, Object> generateLapPelayananByDokter(String startDate, String endDate, Integer idproduk,
			Integer idRuangan, Integer jenisPasien, Integer idDokter);

	public Map<String, Object> generateLapPelayananByDokterWithKarcis(String startDate, String endDate,
			Integer idproduk, Integer idRuangan, Integer jenisPasien, Integer idDokter, Integer idDepartemen);

	public Map<String, Object> generatelapLogbookLimbahB3Report(String startDate, String endDate);

	public Map<String, Object> generateFormulirLaporanKecelakaanKerja(String noRec);

	public Map<String, Object> generateJadwalPerUnitKerja(Integer ruangan, Integer tahun, Integer bulan);

	public Map<String, Object> generateRekapitulasiCorrectiveMaintenance(String startDate, String endDate,
			Integer idJenisProduk);

	public Map<String, Object> generateSuratPelimpahanTugas(String noRecPlanning, Integer idPegawaiPelimpah,
			Integer idJabatanPelimpah, Integer idPegawaiDilimpah);

	public Map<String, Object> generateReportPencatatanSuhuMesin(Integer idMesin, Integer idMappingMesin,
			String tglCatSuhuMesin, Integer idSupervisor);

	public List<Map<String, Object>> generateReportGrafikSuhuMesin(Integer idMesin, Integer idMappingMesin,
			String tglCatSuhuMesin);

	public Map<String, Object> findDataCetakLuarNegeri(String norec);

	public List<Map<String, Object>> getHistoriUsulanRincianKegiatan(Integer idPelaksanaanTugas,
			Integer idRincianKegiatan);

}
