package com.jasamedika.medifirst2000.entities;

import java.util.Date;
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 javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.jasamedika.medifirst2000.helper.Caption;

@Entity 
@Table(name="PapMata_T")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class PapMata extends MedicalRecordTransaction{

	@NotNull(message = "Tgl Input tidak boleh kosong")
	@Column(name = "tglInput", nullable = false)
	@Caption(value = "Tgl Input")
	private Date tglInput;
	
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "papMata")
	private Set<PapKategoriMata> kategoriKlinikMataSet = new HashSet<PapKategoriMata>();	

	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "papMata")
	@Caption(value = "PapDataMataSet")
	private Set<PapDataMata> dataKacamataSet=new HashSet<PapDataMata>();
	
	@ManyToOne
	@JoinColumn(name = "ObjectdokterKonsulenFk")
	@NotNull(message = "dokterKonsulen tidak boleh kosong")
	private Pegawai dokterKonsulen;
	
	@Column(name = "ObjectdokterKonsulenFk", insertable = false, updatable = false, nullable = false)
	private Integer dokterKonsulenId;
	
	@NotNull(message = "Kedudukan Bola Mata tidak boleh kosong")
	@Column(name = "KedudukanBolaMataOD" )
	@Caption(value = "KedudukanBolaMataOD")
	private String kedudukanBolaMataOD;
	
	@NotNull(message = "Kedudukan Bola Mata tidak boleh kosong")
	@Column(name = "KedudukanBolaMataOS")
	@Caption(value = "KedudukanBolaMataOS")
	private String kedudukanBolaMataOS;
	
	@NotNull(message = "VisusOD tidak boleh kosong")
	@Column(name = "VisusOD" )
	@Caption(value = "VisusOD")
	private String visusOD;
	
	@NotNull(message = "visusOS tidak boleh kosong")
	@Column(name = "visusOS")
	@Caption(value = "visusOS")
	private String visusOS;
	
	@NotNull(message = "KoreksiOS tidak boleh kosong")
	@Column(name = "KoreksiOS" )
	@Caption(value = "KoreksiOS")
	private String koreksiOS;
	
	@NotNull(message = "KoreksiOD tidak boleh kosong")
	@Column(name = "KoreksiOD")
	@Caption(value = "KoreksiOD")
	private String koreksiOD;
	
	@NotNull(message = "kacamataLamaOD tidak boleh kosong")
	@Column(name = "kacamataLamaOD" )
	@Caption(value = "kacamataLamaOD")
	private String kacamataLamaOD;
	
	@NotNull(message = "kacamataLamaOS tidak boleh kosong")
	@Column(name = "kacamataLamaOS")
	@Caption(value = "kacamataLamaOS")
	private String kacamataLamaOS;
	
	@NotNull(message = "kacamataLamaBaca tidak boleh kosong")
	@Column(name = "kacamataLamaBaca" )
	@Caption(value = "kacamataLamaBaca")
	private String kacamataLamaBaca;
	
	@NotNull(message = "tonometriOS tidak boleh kosong")
	@Column(name = "tonometriOS")
	@Caption(value = "tonometriOS")
	private String tonometriOS;
	
	@NotNull(message = "tonometriOD tidak boleh kosong")
	@Column(name = "tonometriOD" )
	@Caption(value = "tonometriOD")
	private String tonometriOD;
	
	@NotNull(message = "aplanasiOD tidak boleh kosong")
	@Column(name = "aplanasiOD")
	@Caption(value = "aplanasiOD")
	private String aplanasiOD;
	
	@NotNull(message = "aplanasiOS tidak boleh kosong")
	@Column(name = "aplanasiOS" )
	@Caption(value = "aplanasiOS")
	private String aplanasiOS;
	
	@NotNull(message = "anelOS tidak boleh kosong")
	@Column(name = "anelOS")
	@Caption(value = "anelOS")
	private String anelOS;
	
	@NotNull(message = "anelOD tidak boleh kosong")
	@Column(name = "anelOD" )
	@Caption(value = "anelOD")
	private String anelOD;
	
	@NotNull(message = "sistemLacrimal tidak boleh kosong")
	@Column(name = "sistemLacrimal")
	@Caption(value = "sistemLacrimal")
	private String sistemLacrimal;
	
	@NotNull(message = "diagnosaKlinik tidak boleh kosong")
	@Column(name = "diagnosaKlinik" )
	@Caption(value = "diagnosaKlinik")
	private String diagnosaKlinik;
	
	@NotNull(message = "kodePenyakit tidak boleh kosong")
	@Column(name = "kodePenyakit")
	@Caption(value = "kodePenyakit")
	private String kodePenyakit;
	
	@NotNull(message = "pengobatanPoliklinik tidak boleh kosong")
	@Column(name = "pengobatanPoliklinik" )
	@Caption(value = "pengobatanPoliklinik")
	private String pengobatanPoliklinik;
	
	@NotNull(message = "pengobatanDiRumah tidak boleh kosong")
	@Column(name = "pengobatanDiRumah")
	@Caption(value = "pengobatanDiRumah")
	private String pengobatanDiRumah;

	public Date getTglInput() {
		return tglInput;
	}

	public void setTglInput(Date tglInput) {
		this.tglInput = tglInput;
	}
	
	public Set<PapKategoriMata> getKategoriKlinikMataSet() {
		return kategoriKlinikMataSet;
	}

	public void setKategoriKlinikMataSet(Set<PapKategoriMata> kategoriKlinikMataSet) {
		this.kategoriKlinikMataSet = kategoriKlinikMataSet;
	}

	public Pegawai getDokterKonsulen() {
		return dokterKonsulen;
	}

	public void setDokterKonsulen(Pegawai dokterKonsulen) {
		this.dokterKonsulen = dokterKonsulen;
	}

	public Integer getDokterKonsulenId() {
		return dokterKonsulenId;
	}

	public void setDokterKonsulenId(Integer dokterKonsulenId) {
		this.dokterKonsulenId = dokterKonsulenId;
	}

	public String getKedudukanBolaMataOD() {
		return kedudukanBolaMataOD;
	}

	public void setKedudukanBolaMataOD(String kedudukanBolaMataOD) {
		this.kedudukanBolaMataOD = kedudukanBolaMataOD;
	}

	public String getKedudukanBolaMataOS() {
		return kedudukanBolaMataOS;
	}

	public void setKedudukanBolaMataOS(String kedudukanBolaMataOS) {
		this.kedudukanBolaMataOS = kedudukanBolaMataOS;
	}

	public String getVisusOD() {
		return visusOD;
	}

	public void setVisusOD(String visusOD) {
		this.visusOD = visusOD;
	}

	public String getVisusOS() {
		return visusOS;
	}

	public void setVisusOS(String visusOS) {
		this.visusOS = visusOS;
	}

	public String getKoreksiOS() {
		return koreksiOS;
	}

	public void setKoreksiOS(String koreksiOS) {
		this.koreksiOS = koreksiOS;
	}

	public String getKoreksiOD() {
		return koreksiOD;
	}

	public void setKoreksiOD(String koreksiOD) {
		this.koreksiOD = koreksiOD;
	}

	public String getKacamataLamaOD() {
		return kacamataLamaOD;
	}

	public void setKacamataLamaOD(String kacamataLamaOD) {
		this.kacamataLamaOD = kacamataLamaOD;
	}

	public String getKacamataLamaOS() {
		return kacamataLamaOS;
	}

	public void setKacamataLamaOS(String kacamataLamaOS) {
		this.kacamataLamaOS = kacamataLamaOS;
	}

	public String getKacamataLamaBaca() {
		return kacamataLamaBaca;
	}

	public void setKacamataLamaBaca(String kacamataLamaBaca) {
		this.kacamataLamaBaca = kacamataLamaBaca;
	}

	public String getTonometriOS() {
		return tonometriOS;
	}

	public void setTonometriOS(String tonometriOS) {
		this.tonometriOS = tonometriOS;
	}

	public String getTonometriOD() {
		return tonometriOD;
	}

	public void setTonometriOD(String tonometriOD) {
		this.tonometriOD = tonometriOD;
	}

	public String getAplanasiOD() {
		return aplanasiOD;
	}

	public void setAplanasiOD(String aplanasiOD) {
		this.aplanasiOD = aplanasiOD;
	}

	public String getAplanasiOS() {
		return aplanasiOS;
	}

	public void setAplanasiOS(String aplanasiOS) {
		this.aplanasiOS = aplanasiOS;
	}

	public String getAnelOS() {
		return anelOS;
	}

	public void setAnelOS(String anelOS) {
		this.anelOS = anelOS;
	}

	public String getAnelOD() {
		return anelOD;
	}

	public void setAnelOD(String anelOD) {
		this.anelOD = anelOD;
	}

	public String getSistemLacrimal() {
		return sistemLacrimal;
	}

	public void setSistemLacrimal(String sistemLacrimal) {
		this.sistemLacrimal = sistemLacrimal;
	}

	public String getDiagnosaKlinik() {
		return diagnosaKlinik;
	}

	public void setDiagnosaKlinik(String diagnosaKlinik) {
		this.diagnosaKlinik = diagnosaKlinik;
	}

	public String getKodePenyakit() {
		return kodePenyakit;
	}

	public void setKodePenyakit(String kodePenyakit) {
		this.kodePenyakit = kodePenyakit;
	}

	public String getPengobatanPoliklinik() {
		return pengobatanPoliklinik;
	}

	public void setPengobatanPoliklinik(String pengobatanPoliklinik) {
		this.pengobatanPoliklinik = pengobatanPoliklinik;
	}

	public String getPengobatanDiRumah() {
		return pengobatanDiRumah;
	}

	public void setPengobatanDiRumah(String pengobatanDiRumah) {
		this.pengobatanDiRumah = pengobatanDiRumah;
	}

	public Set<PapDataMata> getDataKacamataSet() {
		return dataKacamataSet;
	}

	public void setDataKacamataSet(Set<PapDataMata> dataKacamataSet) {
		this.dataKacamataSet = dataKacamataSet;
	}
}
