package com.jasamedika.medifirst2000.entities;

import java.util.Date;

import javax.persistence.*;


import com.jasamedika.medifirst2000.base.BaseTransaction;


import javax.validation.constraints.NotNull;
import com.jasamedika.medifirst2000.helper.Caption;
import com.jasamedika.medifirst2000.vo.StatusPerawatanVO;

import org.hibernate.envers.Audited;

/**
 *  class SuratPermintaanMasuk
 * 
 * @author Generator
 */
@Entity //@Audited
@Table(name = "SuratPermintaanMasuk_T")
public class SuratPermintaanMasuk  extends MedicalRecordTransaction{
	
	@Caption(value="Tanggal Masuk Ruagana")
	@Column(name = "TglMasukRuangan", nullable = true )
	private Date tglMasukRuangan;
	
	

	public Date getTglMasukRuangan() {
		return tglMasukRuangan;
	}

	public void setTglMasukRuangan(Date tglMasukRuangan) {
		this.tglMasukRuangan = tglMasukRuangan;
	}

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "NoMasukTujuanFk")	
	@Caption(value = "No Masuk Tujuan")
	private RegistrasiPelayananPasien noMasukTujuan;
	public RegistrasiPelayananPasien getNoMasukTujuan() {
		return noMasukTujuan;
	}

	public void setNoMasukTujuan(RegistrasiPelayananPasien noMasukTujuan) {
		this.noMasukTujuan = noMasukTujuan;
	}

	@Column(name = "StatusRegistrasi", nullable = true, length = 500)
	@Caption(value = "statusRegistrasi")
	private Boolean statusRegistrasi;

	public Boolean getStatusRegistrasi() {
		return statusRegistrasi;
	}

	public void setStatusRegistrasi(Boolean statusRegistrasi) {
		this.statusRegistrasi = statusRegistrasi;
	}

	@Column(name = "NoMasukTujuanFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String noMasukTujuanId;
	
	
	private String instruksi ;
	public String getInstruksi() {
		return instruksi ;
	}
	public void setInstruksi(String instruksi ) {
		this.instruksi  = instruksi ;
	}

	private String pertolongan ;
	public String getPertolongan() {
		return pertolongan ;
	}
	public void setPertolongan(String pertolongan ) {
		this.pertolongan  = pertolongan ;
	}

@ManyToOne(fetch=FetchType.LAZY)
	 @JoinColumn(name = "PetugasFk")
	 //@NotNull(message = "Petugas Harus Diisi")
	 @Caption(value = "Petugas")
	private Pegawai petugas;
	public Pegawai getPetugas() {
		return petugas;
	}
	public void setPetugas(Pegawai petugas) {
		this.petugas = petugas;
	}
	@Column(name = "PetugasFk", insertable=false,updatable=false)
	private Integer petugasId;

@ManyToOne(fetch=FetchType.LAZY)
	 @JoinColumn(name = "CaraMasukFk")
	 @NotNull(message = "Cara Masuk Harus Diisi")
	 @Caption(value = "Cara Masuk")
	private CaraMasuk caraMasuk;
	public CaraMasuk getCaraMasuk() {
		return caraMasuk;
	}
	public void setCaraMasuk(CaraMasuk caraMasuk) {
		this.caraMasuk = caraMasuk;
	}
	@Column(name = "CaraMasukFk", insertable=false,updatable=false)
	private Integer caraMasukId;

@ManyToOne(fetch=FetchType.LAZY)
	 @JoinColumn(name = "UnitFk")
//	 @NotNull(message = "Unit Harus Diisi")
	 @Caption(value = "Unit")
	private Ruangan unit;
	public Ruangan getUnit() {
		return unit;
	}
	public void setUnit(Ruangan unit) {
		this.unit = unit;
	}
	@Column(name = "UnitFk", insertable=false,updatable=false)
	private Integer unitId;

@ManyToOne(fetch=FetchType.LAZY)
	 @JoinColumn(name = "DokterPenanggungJawabFk")
	 @NotNull(message = "Dokter Penanggung Jawab Harus Diisi")
	 @Caption(value = "Dokter Penanggung Jawab")
	private Pegawai dokterPenanggungJawab;
	public Pegawai getDokterPenanggungJawab() {
		return dokterPenanggungJawab;
	}
	public void setDokterPenanggungJawab(Pegawai dokterPenanggungJawab) {
		this.dokterPenanggungJawab = dokterPenanggungJawab;
	}
	@Column(name = "DokterPenanggungJawabFk", insertable=false,updatable=false)
	private Integer dokterPenanggungJawabId;

	private String pemberiInformasi ;
	public String getPemberiInformasi() {
		return pemberiInformasi ;
	}
	public void setPemberiInformasi(String pemberiInformasi ) {
		this.pemberiInformasi  = pemberiInformasi ;
	}
/*
@ManyToOne(fetch=FetchType.LAZY)
	 @JoinColumn(name = "PerawatanFk")
	 @NotNull(message = "Perawatan Harus Diisi")
	 @Caption(value = "Perawatan")
	private Pegawai perawatan;
	public Pegawai getPerawatan() {
		return perawatan;
	}
	public void setPerawatan(Pegawai perawatan) {
		this.perawatan = perawatan;
	}
	@Column(name = "PerawatanFk", insertable=false,updatable=false)
	private Integer perawatanId;
*/
	
	@ManyToOne
	 @JoinColumn(name = "PerawatanFk")
	 @NotNull(message = "Perawatan Harus Diisi")
	 @Caption(value = "Perawatan")
	private StatusPerawatan perawatan;
	
	@Column(name = "PerawatanFk", insertable=false,updatable=false)
	private Integer perawatanId;
	
	public StatusPerawatan getPerawatan() {
		return perawatan;
	}

	public void setPerawatan(StatusPerawatan perawatan) {
		this.perawatan = perawatan;
	}

@ManyToOne(fetch=FetchType.LAZY)
	 @JoinColumn(name = "DokterPengirimFk")
	 @NotNull(message = "Dokter Pengirim Harus Diisi")
	 @Caption(value = "Dokter Pengirim")
	private Pegawai dokterPengirim;
	public Pegawai getDokterPengirim() {
		return dokterPengirim;
	}
	public void setDokterPengirim(Pegawai dokterPengirim) {
		this.dokterPengirim = dokterPengirim;
	}
	@Column(name = "DokterPengirimFk", insertable=false,updatable=false)
	private Integer dokterPengirimId;


}