package com.jasamedika.medifirst2000.entities;

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

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity
@Table(name = "ResumeMedis_T")
public class ResumeMedis extends MedicalRecordTransaction{
	
	@Column(name = "penanggungPembayaran")
	@Caption(value = "penanggungPembayaran")
	private String penanggungPembayaran;
	
	@Column(name = "diagnosisAwal")
	@Caption(value = "diagnosisAwal")
	private String diagnosisAwal;
	
	@Column(name = "ringkasanRiwayatPenyakit")
	@Caption(value = "ringkasanRiwayatPenyakit")
	private String ringkasanRiwayatPenyakit;
	
	@Column(name = "pemeriksaanFisik")
	@Caption(value = "pemeriksaanFisik")
	private String pemeriksaanFisik;
	
	@Column(name = "pemeriksaanPenunjang")
	@Caption(value = "pemeriksaanPenunjang")
	private String pemeriksaanPenunjang;
	
	@Column(name = "hasilKonsultasi")
	@Caption(value = "hasilKonsultasi")
	private String hasilKonsultasi;
	
	@Column(name = "diet")
	@Caption(value = "diet")
	private String diet;
	
	@Column(name = "instruksiAnjuran")
	@Caption(value = "instruksiAnjuran")
	private String instruksiAnjuran;
	
	@Column(name = "hasilLab")
	@Caption(value = "hasilLab")
	private String hasilLab;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value = "ObjectkondisiWaktuKeluarFk")
	@JoinColumn(name = "ObjectkondisiWaktuKeluarFk")
	private StatusPulang kondisiWaktuKeluar;	
	
	@Column(name = "ObjectkondisiWaktuKeluarFk", insertable = false, updatable = false)
	private Integer kondisiWaktuKeluarId;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value = "ObjectpengobatanDilanjutkanFk")
	@JoinColumn(name = "ObjectpengobatanDilanjutkanFk")
	private LanjutanPengobatan pengobatanDilanjutkan;	
	
	@Column(name = "ObjectpengobatanDilanjutkanFk", insertable = false, updatable = false)
	private Integer pengobatanDilanjutkanId;
	
	@JsonBackReference
	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "resumeMedis")
	private Set<DetailTerapiPulang> detailTerapiPulang=new HashSet<DetailTerapiPulang>();

	public String getPenanggungPembayaran() {
		return penanggungPembayaran;
	}

	public void setPenanggungPembayaran(String penanggungPembayaran) {
		this.penanggungPembayaran = penanggungPembayaran;
	}

	public String getDiagnosisAwal() {
		return diagnosisAwal;
	}

	public void setDiagnosisAwal(String diagnosisAwal) {
		this.diagnosisAwal = diagnosisAwal;
	}

	public String getRingkasanRiwayatPenyakit() {
		return ringkasanRiwayatPenyakit;
	}

	public void setRingkasanRiwayatPenyakit(String ringkasanRiwayatPenyakit) {
		this.ringkasanRiwayatPenyakit = ringkasanRiwayatPenyakit;
	}

	public String getPemeriksaanFisik() {
		return pemeriksaanFisik;
	}

	public void setPemeriksaanFisik(String pemeriksaanFisik) {
		this.pemeriksaanFisik = pemeriksaanFisik;
	}

	public String getPemeriksaanPenunjang() {
		return pemeriksaanPenunjang;
	}

	public void setPemeriksaanPenunjang(String pemeriksaanPenunjang) {
		this.pemeriksaanPenunjang = pemeriksaanPenunjang;
	}

	public String getHasilKonsultasi() {
		return hasilKonsultasi;
	}

	public void setHasilKonsultasi(String hasilKonsultasi) {
		this.hasilKonsultasi = hasilKonsultasi;
	}

	public String getDiet() {
		return diet;
	}

	public void setDiet(String diet) {
		this.diet = diet;
	}

	public String getInstruksiAnjuran() {
		return instruksiAnjuran;
	}

	public void setInstruksiAnjuran(String instruksiAnjuran) {
		this.instruksiAnjuran = instruksiAnjuran;
	}

	public String getHasilLab() {
		return hasilLab;
	}

	public void setHasilLab(String hasilLab) {
		this.hasilLab = hasilLab;
	}

	public StatusPulang getKondisiWaktuKeluar() {
		return kondisiWaktuKeluar;
	}

	public void setKondisiWaktuKeluar(StatusPulang kondisiWaktuKeluar) {
		this.kondisiWaktuKeluar = kondisiWaktuKeluar;
	}

	public Integer getKondisiWaktuKeluarId() {
		return kondisiWaktuKeluarId;
	}

	public void setKondisiWaktuKeluarId(Integer kondisiWaktuKeluarId) {
		this.kondisiWaktuKeluarId = kondisiWaktuKeluarId;
	}	

	public LanjutanPengobatan getPengobatanDilanjutkan() {
		return pengobatanDilanjutkan;
	}

	public void setPengobatanDilanjutkan(LanjutanPengobatan pengobatanDilanjutkan) {
		this.pengobatanDilanjutkan = pengobatanDilanjutkan;
	}

	public Integer getPengobatanDilanjutkanId() {
		return pengobatanDilanjutkanId;
	}

	public void setPengobatanDilanjutkanId(Integer pengobatanDilanjutkanId) {
		this.pengobatanDilanjutkanId = pengobatanDilanjutkanId;
	}

	public Set<DetailTerapiPulang> getDetailTerapiPulang() {
		return detailTerapiPulang;
	}

	public void setDetailTerapiPulang(Set<DetailTerapiPulang> detailTerapiPulang) {
		this.detailTerapiPulang = detailTerapiPulang;
	}

}
