package com.jasamedika.medifirst2000.vo;

import java.util.Date;
import java.util.Dictionary;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonIdentityReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.Rekanan;
import com.jasamedika.medifirst2000.helper.Caption;

public class RegistrasiPelayananVO extends BaseTransactionVO{
	
	@Caption(value="Kasus Penyakit")
	public KasusPenyakitVO kasusPenyakit;
	
	@Caption(value="Jenis Pelayanan")
	private String jenisPelayanan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@NotNull(message="Ruangan Harus Diisi")
	@Caption(value="Ruangan")
	public RuanganVO ruangan;

	@ManyToOne(fetch=FetchType.LAZY)
	@NotNull(message="Ruangan Harus Diisi")
	@Caption(value="Pasien")
	public PasienVO pasien;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@NotNull(message="Asal Rujukan Harus Diisi")
	@Caption(value="Asal Rujukan")
	public AsalRujukanVO asalRujukan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Pegawai")
	public PegawaiVO pegawai;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@NotNull(message="Kelompok pasien Harus Diisi")
	@Caption(value="Kelompok Pasien")
	public KelompokPasienVO kelompokPasien;
	
	@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="Tanggal Registrasi")
	private Date tglRegistrasi;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Rekanan")
	private RekananVO rekanan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Kelas")
	private KelasVO kelas;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="Kamar")
	private KamarVO kamar;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value="nomorTempatTidur")
	private TempatTidurVO nomorTempatTidur;
	
	@Caption(value="emergensi")
	private Boolean emergensi;
	
	//----------------------------------------------------
	
	@Caption(value="status")
	private String status;
	
	@Caption(value="admisiRencanaPindahRuangan")
	private AdmisiRencanaPindahRuanganVO admisiRencanaPindahRuangan;
	
	@Caption(value="noRecPasienDaftar")
	private String noRecPasienDaftar;
	
	@Caption(value="noRecAntrianPasien")
	private String noRecAntrianPasien;
	
	private Boolean rawatGabung;

	public KasusPenyakitVO getKasusPenyakit() {
		return kasusPenyakit;
	}

	public void setKasusPenyakit(KasusPenyakitVO kasusPenyakit) {
		this.kasusPenyakit = kasusPenyakit;
	}

	public String getJenisPelayanan() {
		return jenisPelayanan;
	}

	public void setJenisPelayanan(String jenisPelayanan) {
		this.jenisPelayanan = jenisPelayanan;
	}

	public RuanganVO getRuangan() {
		return ruangan;
	}

	public void setRuangan(RuanganVO ruangan) {
		this.ruangan = ruangan;
	}

	public PasienVO getPasien() {
		return pasien;
	}

	public void setPasien(PasienVO pasien) {
		this.pasien = pasien;
	}

	public AsalRujukanVO getAsalRujukan() {
		return asalRujukan;
	}

	public void setAsalRujukan(AsalRujukanVO asalRujukan) {
		this.asalRujukan = asalRujukan;
	}

	public PegawaiVO getPegawai() {
		return pegawai;
	}

	public void setPegawai(PegawaiVO pegawai) {
		this.pegawai = pegawai;
	}

	public KelompokPasienVO getKelompokPasien() {
		return kelompokPasien;
	}

	public void setKelompokPasien(KelompokPasienVO kelompokPasien) {
		this.kelompokPasien = kelompokPasien;
	}

	public Byte getIsOnSiteService() {
		return isOnSiteService;
	}

	public void setIsOnSiteService(Byte isOnSiteService) {
		this.isOnSiteService = isOnSiteService;
	}

	public Byte getIsRegistrasiLengkap() {
		return isRegistrasiLengkap;
	}

	public void setIsRegistrasiLengkap(Byte isRegistrasiLengkap) {
		this.isRegistrasiLengkap = isRegistrasiLengkap;
	}

	public Date getTglRegistrasi() {
		return tglRegistrasi;
	}

	public void setTglRegistrasi(Date tglRegistrasi) {
		this.tglRegistrasi = tglRegistrasi;
	}

	public RekananVO getRekanan() {
		return rekanan;
	}

	public void setRekanan(RekananVO rekanan) {
		this.rekanan = rekanan;
	}

	public KelasVO getKelas() {
		return kelas;
	}

	public void setKelas(KelasVO kelas) {
		this.kelas = kelas;
	}

	public KamarVO getKamar() {
		return kamar;
	}

	public void setKamar(KamarVO kamar) {
		this.kamar = kamar;
	}

	public TempatTidurVO getNomorTempatTidur() {
		return nomorTempatTidur;
	}

	public void setNomorTempatTidur(TempatTidurVO nomorTempatTidur) {
		this.nomorTempatTidur = nomorTempatTidur;
	}

	public Boolean getEmergensi() {
		return emergensi;
	}

	public void setEmergensi(Boolean emergensi) {
		this.emergensi = emergensi;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public AdmisiRencanaPindahRuanganVO getAdmisiRencanaPindahRuangan() {
		return admisiRencanaPindahRuangan;
	}

	public void setAdmisiRencanaPindahRuangan(AdmisiRencanaPindahRuanganVO admisiRencanaPindahRuangan) {
		this.admisiRencanaPindahRuangan = admisiRencanaPindahRuangan;
	}

	public String getNoRecPasienDaftar() {
		return noRecPasienDaftar;
	}

	public void setNoRecPasienDaftar(String noRecPasienDaftar) {
		this.noRecPasienDaftar = noRecPasienDaftar;
	}

	public String getNoRecAntrianPasien() {
		return noRecAntrianPasien;
	}

	public void setNoRecAntrianPasien(String noRecAntrianPasien) {
		this.noRecAntrianPasien = noRecAntrianPasien;
	}

	public Boolean getRawatGabung() {
		return rawatGabung;
	}

	public void setRawatGabung(Boolean rawatGabung) {
		this.rawatGabung = rawatGabung;
	}


}
