package com.jasamedika.medifirst2000.entities;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity
@Table(name = "AntrianPasienDiPeriksa_T")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class AntrianPasienDiPeriksa extends BaseTransaction {
	private static final long serialVersionUID = 1243474652074108524L;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectKelasFk")
	@Caption(value="Object Kelas")
	private Kelas kelas;
	
	@Column(name = "ObjectKelasFk", insertable=false,updatable=false,nullable=true)
	private Integer kelasId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectStrukOrderFk")
	@Caption(value="Object Struk OrderFk")
	private StrukOrder strukOrder;

	@Column(name = "ObjectStrukOrderFk", insertable=false,updatable=false,nullable=true)
	private String strukOrderId;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectAsalRujukanFk")
	@Caption(value="Object Asal Rujukan")
	private AsalRujukan asalRujukan;

	@Column(name = "ObjectAsalRujukanFk", insertable=false,updatable=false)
	private Integer asalRujuakanId;
	
	@Column(name = "statusKunjungan")
	private String statusKunjungan;
	
	@Column(name = "isRawatGabung")
	private Boolean isRawatGabung;
	
	@Column(name = "statusPenyakit")
	private String statusPenyakit;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectPegawaiFk")
	@Caption(value="Object Pegawai")
	private Pegawai pegawai;
	
	@Column(name = "ObjectPegawaiFk", insertable=false, updatable=false, nullable=true)
	private Integer pegawaiId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectStrukReturFk")
	@Caption(value="Object Struk Retur")
	private StrukRetur strukRetur;
	
	@Column(name = "ObjectStrukReturFk", insertable=false,updatable=false)
	private String strukReturId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectKamarFk")
	@Caption(value="Object Kamar")
	private Kamar kamar;

	@Column(name = "ObjectKamarFk", insertable=false,updatable=false)
	private Integer kamarId;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectKasusPenyakitFk")
	@Caption(value="Object Kasus Penyakit")
	private KasusPenyakit kasusPenyakit;
	
	@Column(name = "ObjectKasusPenyakitFk", insertable=false,updatable=false)
	private Integer kasusPeyakitId;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectRuanganFk")
	@Caption(value="Object Ruangan")
	private Ruangan ruangan;

	@Column(name = "ObjectRuanganFk", insertable=false,updatable=false,nullable=true)
	private Integer ruanganId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "ObjectRuanganAsalFk")
	@Caption(value="Object RuanganAsal")
	private Ruangan ruanganAsal;

	@Column(name = "ObjectRuanganAsalFk", insertable=false,updatable=false,nullable=true)
	private Integer ruanganAsalId;

	@Caption(value="No Antrian")
	@Column(name = "NoAntrian", nullable = false )
	private Integer noAntrian;

	@Caption(value="No Bed")
	@Column(name = "NoBed", nullable = true )
	private Integer noBed;
   
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "NoRegistrasiFk")
	@NotNull(message="No Registrasi Harus Diisi")
	@Caption(value="No Registrasi")
	private PasienDaftar pasienDaftar;

	@Column(name = "NoRegistrasiFk", insertable=false,updatable=false,nullable=false)
	private String pasienDaftarId;

	@Caption(value="Prefix No Antrian")
	@Column(name = "PrefixNoAntrian", nullable = true , length = 4)
	private String prefixNoAntrian;

	@Caption(value="Status Pasien")
	@Column(name = "StatusPasien", nullable = false )
	private Byte statusPasien;

	@Caption(value="Tanggal Registrasi")
	@Column(name = "TglRegistrasi", nullable = false )
	private Date tglRegistrasi;
	
	@Caption(value="Tanggal Masuk")
	@Column(name = "tglMasuk", nullable = true )
	private Date tglMasuk;
	
	@Caption(value="Tanggal Keluar")
	@Column(name = "tglKeluar", nullable = true )
	private Date tglKeluar;
	
	@Caption(value="Tanggal Dipanggil Suster")
	@Column(name = "TglDipanggilSuster", nullable = true )
	private Date tglDipanggilSuster;
	
	@Caption(value="Tanggal Dipanggil Dokter")
	@Column(name = "TglDipanggilDokter", nullable = true )
	private Date tglDipanggilDokter;
	
	@Column(name = "noMasuk", nullable = true , length = 200)
	@Caption(value="No Masuk ")
	private String noMasuk;
	
	@Column(name = "statusAntrian", nullable = true , length = 200)
	@Caption(value="Status Antrian ")
	private String statusAntrian; 

	public Kelas getKelas() {
		return kelas;
	}

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

	public Integer getKelasId() {
		return kelasId;
	}

	public void setKelasId(Integer kelasId) {
		this.kelasId = kelasId;
	}

	public StrukOrder getStrukOrder() {
		return strukOrder;
	}

	public void setStrukOrder(StrukOrder strukOrder) {
		this.strukOrder = strukOrder;
	}

	public String getStrukOrderId() {
		return strukOrderId;
	}

	public void setStrukOrderId(String strukOrderId) {
		this.strukOrderId = strukOrderId;
	}

	public AsalRujukan getAsalRujukan() {
		return asalRujukan;
	}

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

	public Integer getAsalRujuakanId() {
		return asalRujuakanId;
	}

	public void setAsalRujuakanId(Integer asalRujuakanId) {
		this.asalRujuakanId = asalRujuakanId;
	}

	public String getStatusKunjungan() {
		return statusKunjungan;
	}

	public void setStatusKunjungan(String statusKunjungan) {
		this.statusKunjungan = statusKunjungan;
	}

	public String getStatusPenyakit() {
		return statusPenyakit;
	}

	public void setStatusPenyakit(String statusPenyakit) {
		this.statusPenyakit = statusPenyakit;
	}

	public Pegawai getPegawai() {
		return pegawai;
	}

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

	public Integer getPegawaiId() {
		return pegawaiId;
	}

	public void setPegawaiId(Integer pegawaiId) {
		this.pegawaiId = pegawaiId;
	}

	public StrukRetur getStrukRetur() {
		return strukRetur;
	}

	public void setStrukRetur(StrukRetur strukRetur) {
		this.strukRetur = strukRetur;
	}

	public String getStrukReturId() {
		return strukReturId;
	}

	public void setStrukReturId(String strukReturId) {
		this.strukReturId = strukReturId;
	}

	public Kamar getKamar() {
		return kamar;
	}

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

	public Integer getKamarId() {
		return kamarId;
	}

	public void setKamarId(Integer kamarId) {
		this.kamarId = kamarId;
	}

	public KasusPenyakit getKasusPenyakit() {
		return kasusPenyakit;
	}

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

	public Integer getKasusPeyakitId() {
		return kasusPeyakitId;
	}

	public void setKasusPeyakitId(Integer kasusPeyakitId) {
		this.kasusPeyakitId = kasusPeyakitId;
	}

	public Ruangan getRuangan() {
		return ruangan;
	}

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

	public Integer getRuanganId() {
		return ruanganId;
	}

	public void setRuanganId(Integer ruanganId) {
		this.ruanganId = ruanganId;
	}

	public Integer getNoAntrian() {
		return noAntrian;
	}

	public void setNoAntrian(Integer noAntrian) {
		this.noAntrian = noAntrian;
	}

	public Integer getNoBed() {
		return noBed;
	}

	public void setNoBed(Integer noBed) {
		this.noBed = noBed;
	}

	public PasienDaftar getPasienDaftar() {
		return pasienDaftar;
	}

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

	public String getPasienDaftarId() {
		return pasienDaftarId;
	}

	public void setPasienDaftarId(String pasienDaftarId) {
		this.pasienDaftarId = pasienDaftarId;
	}

	public String getPrefixNoAntrian() {
		return prefixNoAntrian;
	}

	public void setPrefixNoAntrian(String prefixNoAntrian) {
		this.prefixNoAntrian = prefixNoAntrian;
	}

	public Byte getStatusPasien() {
		return statusPasien;
	}

	public void setStatusPasien(Byte statusPasien) {
		this.statusPasien = statusPasien;
	}

	public Date getTglRegistrasi() {
		return tglRegistrasi;
	}

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

	public String getNoMasuk() {
		return noMasuk;
	}

	public void setNoMasuk(String noMasuk) {
		this.noMasuk = noMasuk;
	}

	public String getStatusAntrian() {
		return statusAntrian;
	}

	public void setStatusAntrian(String statusAntrian) {
		this.statusAntrian = statusAntrian;
	}

	public Date getTglDipanggilSuster() {
		return tglDipanggilSuster;
	}

	public void setTglDipanggilSuster(Date tglDipanggilSuster) {
		this.tglDipanggilSuster = tglDipanggilSuster;
	}

	public Date getTglDipanggilDokter() {
		return tglDipanggilDokter;
	}

	public void setTglDipanggilDokter(Date tglDipanggilDokter) {
		this.tglDipanggilDokter = tglDipanggilDokter;
	}

	public Ruangan getRuanganAsal() {
		return ruanganAsal;
	}

	public void setRuanganAsal(Ruangan ruanganAsal) {
		this.ruanganAsal = ruanganAsal;
	}

	public Integer getRuanganAsalId() {
		return ruanganAsalId;
	}

	public void setRuanganAsalId(Integer ruanganAsalId) {
		this.ruanganAsalId = ruanganAsalId;
	}

	public Date getTglMasuk() {
		return tglMasuk;
	}

	public void setTglMasuk(Date tglMasuk) {
		this.tglMasuk = tglMasuk;
	}

	public Date getTglKeluar() {
		return tglKeluar;
	}

	public void setTglKeluar(Date tglKeluar) {
		this.tglKeluar = tglKeluar;
	}

	public Boolean getIsRawatGabung() {
		return isRawatGabung;
	}

	public void setIsRawatGabung(Boolean isRawatGabung) {
		this.isRawatGabung = isRawatGabung;
	}
}

