package com.jasamedika.medifirst2000.vo;

import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.helper.Caption;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

@Getter
@Setter
public class PasienDaftarVO extends BaseTransactionVO {
	@Caption(value = "Object Rekanan")
	private RekananVO rekanan;

	@Caption(value = "Total Biaya")
	private Double totalBiaya;

	@Caption(value = "Object Status Keluar")
	private StatusKeluarVO statusKeluar;

	@Caption(value = "Status Kasus Penyakit")
	private Boolean statusKasusPenyakit;

	@Caption(value = "Kajian Awal")
	private Boolean isKajianAwal;

	@NotNull(message = "No Registrasi Harus Diisi")
	@Caption(value = "No registrasi ")
	private String noRegistrasi;

	@NotNull(message = "Is On Site Service tidak boleh kosong")
	@Caption(value = "Is On Site Service")
	private Byte isOnSiteService;

	@NotNull(message = "Is Registrasi Lengkap tidak boleh kosong")
	@Caption(value = "Is Registrasi Lengkap")
	private Byte isRegistrasiLengkap;

	@Caption(value = "Object Kasus Penyakit Last")
	private KasusPenyakitVO kasusPenyakit;

	@Caption(value = "Penanggung Jawab pasien")
	private PegawaiVO dokterPenanggungJawab;

	@NotNull(message = "Kd Kelompok Pasien Last tidak boleh kosong")
	@Caption(value = "Object Kelompok Pasien Last")
	private KelompokPasienVO kelompokPasien;

	@Caption(value = "Object Ruangan Last")
	private RuanganVO ruangan;

	@Caption(value = "RuanganNextSchedule")
	private RuanganVO ruanganNextSchedule;

	@Caption(value = "StatusSchedule")
	private String statusSchedule;

	@NotNull(message = "No C M Harus Diisi")
	@Caption(value = "No C M")
	private PasienVO pasien;

	@Caption(value = "No Registrasi")
	private PenanggungJawabPasienVO penanggungJawabPasien;

	@Caption(value = "StatusPasien")
	private String statusPasien;

	@NotNull(message = "Tgl Registrasi tidak boleh kosong")
	@Caption(value = "Tanggal Registrasi")
	private Date tglRegistrasi;

	@Caption(value = "Object Status Pulang")
	private StatusPulangVO statusPulang;

	@Caption(value = "Object Kondisi Pasien")
	private KondisiPasienVO kondisiPasien;

	@Caption(value = "Tanggal Pulang")
	private Date tglPulang;

	@Caption(value = "Tanggal Meninggal")
	private Date tanggalMeninggal;

	@Caption(value = "Jenis Pelayanan")
	private String jenisPelayanan;

	@Caption(value = "Nama Lengkap Ambil Pasien")
	private String namaLengkapAmbilPasien;

	@Caption(value = "Object Hubungan Keluarga Ambil Pasien")
	private HubunganKeluargaVO hubunganKeluarga;

	private Set<AntrianPasienDiPeriksaVO> antrianPasienDiPeriksaSet = new HashSet<>();

	private Set<DiputuskanDetailVO> diputuskanDetailSet = new HashSet<>();

	@Caption(value = "Object Kelas")
	private KelasVO kelas;

	@Caption(value = "Penyebab Kematian")
	private PenyebabKematianVO penyebabKematian;

	@Caption(value = "Dokter Pemeriksa")
	private PegawaiVO dokterPemeriksa;

	private Integer dokterPemeriksaId;

	private Set<MapPasienDpjpToPasienDaftarVO> mapPasienDpjpToPasienDaftar = new HashSet<>();

	@Caption(value = "emergensi")
	private Boolean emergensi;

	@Caption(value = "Kode Status Diskon Pegawai")
	private Integer diskonPegawai;

	@Caption(value = "Voucher Paket")
	private VoucherPaketVO voucherPaket;

	private String voucherPaketId;

	private Boolean isBatalPaket;

	@Caption(value = "DPJP")
	private DpjpPasienVO dpjpPasien;
}
