package com.jasamedika.medifirst2000.vo;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.Agama;
import com.jasamedika.medifirst2000.entities.JenisAlamat;
import com.jasamedika.medifirst2000.entities.JenisKartu;
import com.jasamedika.medifirst2000.entities.JenisKartuDetail;
import com.jasamedika.medifirst2000.entities.JenisKelamin;
import com.jasamedika.medifirst2000.entities.KelompokUmur;
import com.jasamedika.medifirst2000.entities.Negara;
import com.jasamedika.medifirst2000.entities.PasienDaftar;
import com.jasamedika.medifirst2000.entities.Pekerjaan;
import com.jasamedika.medifirst2000.entities.Pendidikan;
import com.jasamedika.medifirst2000.entities.Propinsi;
import com.jasamedika.medifirst2000.entities.StatusPerkawinan;
import com.jasamedika.medifirst2000.entities.TitlePasien;
import com.jasamedika.medifirst2000.helper.Caption;

public class ReservasiPasienVO extends BaseTransactionVO{
	@ManyToOne
	@JoinColumn(name = "ObjectAntrianPasienRegistrasiFk")
	@Caption(value="Object AntrianPasienRegistrasi")
	private AntrianPasienRegistrasiVO antrianPasienRegistrasi;
	
	@ManyToOne
	@JoinColumn(name = "ObjectPasienFk")
	@Caption(value="Object Pasien")
	private PasienVO pasien;
	
	@ManyToOne
	@JoinColumn(name = "ObjectPasienFk")
	@Caption(value="Object Pasien")
	private PasienDaftarVO pasienDaftar;

	@ManyToOne
	@JoinColumn(name = "ObjectAlamatFk")
	@Caption(value="Object Alamat")
	private AlamatVO alamat;
	
	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiFk")
	@Caption(value="Object Pegawai")
	private PegawaiVO dokter;
	
	@ManyToOne
	@JoinColumn(name = "ObjectRuanganFk")
	@Caption(value="Object Ruangan")
	private RuanganVO ruangan;
	
	@ManyToOne
	@JoinColumn(name = "ObjectCaraBayarFk")
	@Caption(value="Object CaraBayar")
	private CaraBayarVO caraBayar;
	
	@ManyToOne
	@JoinColumn(name = "ObjectPendidikanFk")
	@Caption(value="Object Pendidikan")
	private PendidikanVO pendidikan;
	
	@ManyToOne
	@JoinColumn(name = "ObjectPekerjaanFk")
	@Caption(value="Object Pekerjaan")
	private PekerjaanVO pekerjaan;
	
	@ManyToOne
	@JoinColumn(name = "ObjectStatusPerkawinanFk")
	@Caption(value="Object StatusPerkawinan")
	private StatusPerkawinanVO statusPerkawinan;
	
	@ManyToOne
	@JoinColumn(name = "ObjectNegaraFk")
	@Caption(value="Object Negara")
	private NegaraVO negara;
	
	@ManyToOne
	@JoinColumn(name = "ObjectKelompokUmurFk")
	@Caption(value="Object KelompokUmur")
	private KelompokUmurVO kelompokUmur;
	
	@ManyToOne
	@JoinColumn(name = "ObjectTitlePasienFk")
	@Caption(value="Object TitlePasien")
	private TitlePasienVO titlePasien;
	
	@ManyToOne
	@JoinColumn(name = "ObjectJenisKelaminFk")
	@Caption(value="Object JenisKelamin")
	private JenisKelaminVO jenisKelamin;
	
	@ManyToOne
	@JoinColumn(name = "ObjectAgamaFk")
	@Caption(value="Object Agama")
	private AgamaVO agama;
	
	@ManyToOne
	@JoinColumn(name = "ObjectJenisAlamatFk")
	@Caption(value="Object JenisAlamat")
	private JenisAlamatVO jenisAlamat;
	
	@ManyToOne
	@JoinColumn(name = "ObjectPropinsiFk")
	@Caption(value="Object Propinsi")
	private PropinsiVO propinsi;
	
	@ManyToOne
	@JoinColumn(name = "ObjectJenisKartuFk")
	@Caption(value="Object JenisKartu")
	private JenisKartuVO jenisKartu;
	
	@ManyToOne
	@JoinColumn(name = "ObjectJenisKartuDetailFk")
	@Caption(value="Object JenisKartuDetail")
	private JenisKartuDetailVO jenisKartuDetail;

	@ManyToOne
	@JoinColumn(name = "ObjectLokasiFk")
	@Caption(value="Object Lokasi")
	private LokasiVO lokasiDokumenRM;
	
	@ManyToOne
	@JoinColumn(name = "ObjectPegawaiFk")
	@Caption(value="Object Pegawai")
	private LoginUserVO pegawai;
	
	@ManyToOne
	@JoinColumn(name = "ObjectRekananFk")
	@Caption(value="Object Rekanan")
	private RekananVO rekanan;

	@ManyToOne
	@JoinColumn(name = "ObjectKecamatanFk")
	@Caption(value="Object Kecamatan")
	private KecamatanVO kecamatan;

	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "nocm")
	@Caption(value="Object Alamats")
	private Set<AlamatVO> alamats=new HashSet<AlamatVO>();

	@ManyToOne
	@JoinColumn(name = "ObjectDesaKelurahanFk")
	@Caption(value="Object DesaKelurahan")
	private DesaKelurahanVO desaKelurahan;

	@ManyToOne
	@JoinColumn(name = "ObjectDesaKelurahanFk")
	@Caption(value="Object DesaKelurahan")
	private HubunganKeluargaVO hubunganKeluarga;

	@ManyToOne
	@JoinColumn(name = "ObjectKotaKabupatenFk")
	@Caption(value="Object KotaKabupaten")
	private KotaKabupatenVO kotaKabupaten;

	@ManyToOne
	@JoinColumn(name = "ObjectJabatanFk")
	@Caption(value="Object Jabatan")
	private JabatanVO jabatan;

	@ManyToOne
	@JoinColumn(name = "ObjectSukuFk")
	@Caption(value="Object Suku")
	private SukuVO suku;

	@ManyToOne
	@JoinColumn(name = "ObjectSukuFk")
	@Caption(value="Object Suku")
	private DetailKamarVO detailKamar;

	@ManyToOne
	@JoinColumn(name = "ObjectSukuFk")
	@Caption(value="Object Suku")
	private KamarVO kamar;


	@ManyToOne
	@JoinColumn(name = "ObjectSukuFk")
	@Caption(value="Object Suku")
	private KelompokPasienVO kelompokPasien;

	public PegawaiVO getDokter() {
		return dokter;
	}

	public void setDokter(PegawaiVO dokter) {
		this.dokter = dokter;
	}

	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 AlamatVO getAlamat() {
		return alamat;
	}

	public void setAlamat(AlamatVO alamat) {
		this.alamat = alamat;
	}

	public CaraBayarVO getCaraBayar() {
		return caraBayar;
	}

	public void setCaraBayar(CaraBayarVO caraBayar) {
		this.caraBayar = caraBayar;
	}

	public PendidikanVO getPendidikan() {
		return pendidikan;
	}

	public void setPendidikan(PendidikanVO pendidikan) {
		this.pendidikan = pendidikan;
	}

	public PekerjaanVO getPekerjaan() {
		return pekerjaan;
	}

	public void setPekerjaan(PekerjaanVO pekerjaan) {
		this.pekerjaan = pekerjaan;
	}

	public StatusPerkawinanVO getStatusPerkawinan() {
		return statusPerkawinan;
	}

	public void setStatusPerkawinan(StatusPerkawinanVO statusPerkawinan) {
		this.statusPerkawinan = statusPerkawinan;
	}

	public NegaraVO getNegara() {
		return negara;
	}

	public void setNegara(NegaraVO negara) {
		this.negara = negara;
	}

	public KelompokUmurVO getKelompokUmur() {
		return kelompokUmur;
	}

	public void setKelompokUmur(KelompokUmurVO kelompokUmur) {
		this.kelompokUmur = kelompokUmur;
	}

	public TitlePasienVO getTitlePasien() {
		return titlePasien;
	}

	public void setTitlePasien(TitlePasienVO titlePasien) {
		this.titlePasien = titlePasien;
	}

	public JenisKelaminVO getJenisKelamin() {
		return jenisKelamin;
	}

	public void setJenisKelamin(JenisKelaminVO jenisKelamin) {
		this.jenisKelamin = jenisKelamin;
	}

	public AgamaVO getAgama() {
		return agama;
	}

	public void setAgama(AgamaVO agama) {
		this.agama = agama;
	}

	public JenisAlamatVO getJenisAlamat() {
		return jenisAlamat;
	}

	public void setJenisAlamat(JenisAlamatVO jenisAlamat) {
		this.jenisAlamat = jenisAlamat;
	}

	public PropinsiVO getPropinsi() {
		return propinsi;
	}

	public void setPropinsi(PropinsiVO propinsi) {
		this.propinsi = propinsi;
	}

	public AntrianPasienRegistrasiVO getAntrianPasienRegistrasi() {
		return antrianPasienRegistrasi;
	}

	public void setAntrianPasienRegistrasi(AntrianPasienRegistrasiVO antrianPasienRegistrasi) {
		this.antrianPasienRegistrasi = antrianPasienRegistrasi;
	}

	public JenisKartuVO getJenisKartu() {
		return jenisKartu;
	}

	public void setJenisKartu(JenisKartuVO jenisKartu) {
		this.jenisKartu = jenisKartu;
	}

	public JenisKartuDetailVO getJenisKartuDetail() {
		return jenisKartuDetail;
	}

	public void setJenisKartuDetail(JenisKartuDetailVO jenisKartuDetail) {
		this.jenisKartuDetail = jenisKartuDetail;
	}

	public LokasiVO getLokasiDokumenRM() {
		return lokasiDokumenRM;
	}

	public void setLokasiDokumenRM(LokasiVO lokasiDokumenRM) {
		this.lokasiDokumenRM = lokasiDokumenRM;
	}

	public LoginUserVO getPegawai() {
		return pegawai;
	}

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

	public RekananVO getRekanan() {
		return rekanan;
	}

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

	public KecamatanVO getKecamatan() {
		return kecamatan;
	}

	public void setKecamatan(KecamatanVO kecamatan) {
		this.kecamatan = kecamatan;
	}

	public Set<AlamatVO> getAlamats() {
		return alamats;
	}

	public void setAlamats(Set<AlamatVO> alamats) {
		this.alamats = alamats;
	}

	public DesaKelurahanVO getDesaKelurahan() {
		return desaKelurahan;
	}

	public void setDesaKelurahan(DesaKelurahanVO desaKelurahan) {
		this.desaKelurahan = desaKelurahan;
	}

	public HubunganKeluargaVO getHubunganKeluarga() {
		return hubunganKeluarga;
	}

	public void setHubunganKeluarga(HubunganKeluargaVO hubunganKeluarga) {
		this.hubunganKeluarga = hubunganKeluarga;
	}

	public KotaKabupatenVO getKotaKabupaten() {
		return kotaKabupaten;
	}

	public void setKotaKabupaten(KotaKabupatenVO kotaKabupaten) {
		this.kotaKabupaten = kotaKabupaten;
	}

	public JabatanVO getJabatan() {
		return jabatan;
	}

	public void setJabatan(JabatanVO jabatan) {
		this.jabatan = jabatan;
	}

	public SukuVO getSuku() {
		return suku;
	}

	public void setSuku(SukuVO suku) {
		this.suku = suku;
	}

	public DetailKamarVO getDetailKamar() {
		return detailKamar;
	}

	public void setDetailKamar(DetailKamarVO detailKamar) {
		this.detailKamar = detailKamar;
	}

	public KamarVO getKamar() {
		return kamar;
	}

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

	public KelompokPasienVO getKelompokPasien() {
		return kelompokPasien;
	}

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

	public PasienDaftarVO getPasienDaftar() {
		return pasienDaftar;
	}

	public void setPasienDaftar(PasienDaftarVO pasienDaftar) {
		this.pasienDaftar = pasienDaftar;
	}

}
