package com.jasamedika.medifirst2000.entities;

import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.helper.Caption;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import javax.validation.constraints.NotNull;

import static javax.persistence.FetchType.LAZY;

@Getter
@Setter
@Entity
@Table(name = "KebutuhanDasar_t")
public class KebutuhanDasar extends BaseTransaction {

	@ManyToOne
	@JoinColumn(name = "ObjectantrianPasienDiPeriksaFk")
	@NotNull(message = "antrianPasienDiPeriksa tidak boleh kosong")
	private AntrianPasienDiPeriksa antrianPasienDiPeriksa;

	@Column(name = "ObjectantrianPasienDiPeriksaFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = false)
	private String antrianPasienDiPeriksaId;

	@ManyToOne
	@JoinColumn(name = "ObjectpolaNafasFk")
	@NotNull(message = "Oksigenasi Harus Diisi")
	@Caption(value = "polaNafas")
	private OksigenasiPolaNafas polaNafas;

	@Column(name = "ObjectpolaNafasFk", insertable = false, updatable = false, nullable = false)
	private Integer polaNafasId;

	@ManyToOne
	@JoinColumn(name = "ObjectbatukFk")
	@NotNull(message = "Oksigenasi Harus Diisi")
	@Caption(value = "batuk")
	private OksigenasiBatuk batuk;

	@Column(name = "ObjectbatukFk", insertable = false, updatable = false, nullable = false)
	private Integer batukId;

	@ManyToOne
	@JoinColumn(name = "ObjectsianosisFk")
	@NotNull(message = "Oksigenasi Harus Diisi")
	@Caption(value = "sianosis")
	private OksigenasiSianosis sianosis;

	@Column(name = "ObjectsianosisFk", insertable = false, updatable = false, nullable = false)
	private Integer sianosisId;

	@ManyToOne
	@JoinColumn(name = "ObjectnadiFk")
	@NotNull(message = "Kebutuhan Cairan Harus Diisi")
	@Caption(value = "nadi")
	private CairanNadi nadi;

	@Column(name = "ObjectnadiFk", insertable = false, updatable = false, nullable = false)
	private Integer nadiId;

	@ManyToOne
	@JoinColumn(name = "ObjectubunUbunFk")
	@NotNull(message = "Kebutuhan Cairan Harus Diisi")
	@Caption(value = "ubunUbun")
	private CairanUbunUbun ubunUbun;

	@Column(name = "ObjectubunUbunFk", insertable = false, updatable = false, nullable = false)
	private Integer ubunUbunId;

	@ManyToOne
	@JoinColumn(name = "ObjectturgorKulitFk")
	@NotNull(message = "Kebutuhan Cairan Harus Diisi")
	@Caption(value = "turgorKulit")
	private CairanTurgorKulit turgorKulit;

	@Column(name = "ObjectturgorKulitFk", insertable = false, updatable = false, nullable = false)
	private Integer turgorKulitId;

	@ManyToOne
	@JoinColumn(name = "ObjectcrtFk")
	@NotNull(message = "Kebutuhan Cairan Harus Diisi")
	@Caption(value = "crt")
	private CairanCrt crt;

	@Column(name = "ObjectcrtFk", insertable = false, updatable = false, nullable = false)
	private Integer crtId;

	@ManyToOne
	@JoinColumn(name = "ObjectedemaFk")
	@NotNull(message = "Kebutuhan Cairan Harus Diisi")
	@Caption(value = "edema")
	private CairanEdema edema;

	@Column(name = "ObjectedemaFk", insertable = false, updatable = false, nullable = false)
	private Integer edemaId;

	@ManyToOne
	@JoinColumn(name = "ObjectakralFk")
	@NotNull(message = "Kebutuhan Cairan Harus Diisi")
	@Caption(value = "akral")
	private CairanAkral akral;

	@Column(name = "ObjectakralFk", insertable = false, updatable = false, nullable = false)
	private Integer akralId;

	@ManyToOne
	@JoinColumn(name = "ObjectkomponenFk")
	@NotNull(message = "Neurologi Harus Diisi")
	@Caption(value = "komponen")
	private NeurologiKomponen komponen;

	@Column(name = "ObjectkomponenFk", insertable = false, updatable = false, nullable = false)
	private Integer komponenId;

	@ManyToOne
	@JoinColumn(name = "ObjectkejangFk")
	@NotNull(message = "Neurologi Harus Diisi")
	@Caption(value = "kejang")
	private NeurologiKejang kejang;

	@Column(name = "ObjectkejangFk", insertable = false, updatable = false, nullable = false)
	private Integer kejangId;

	@ManyToOne
	@JoinColumn(name = "ObjectmukosaFk")
	@NotNull(message = "Kebutuhan Nutrisi Harus Diisi")
	@Caption(value = "mukosa")
	private NutrisiMukosa mukosa;

	@Column(name = "ObjectmukosaFk", insertable = false, updatable = false, nullable = false)
	private Integer mukosaId;

	@ManyToOne
	@JoinColumn(name = "ObjectstomatitisFk")
	@NotNull(message = "Kebutuhan Nutrisi Harus Diisi")
	@Caption(value = "stomatitis")
	private NutrisiStomatitis stomatitis;

	@Column(name = "ObjectstomatitisFk", insertable = false, updatable = false, nullable = false)
	private Integer stomatitisId;

	@ManyToOne
	@JoinColumn(name = "ObjectmuntahFk")
	@NotNull(message = "Kebutuhan Nutrisi Harus Diisi")
	@Caption(value = "muntah")
	private NutrisiMuntah muntah;

	@Column(name = "ObjectmuntahFk", insertable = false, updatable = false, nullable = false)
	private Integer muntahId;

	@ManyToOne
	@JoinColumn(name = "ObjectmualFk")
	@NotNull(message = "Kebutuhan Nutrisi Harus Diisi")
	@Caption(value = "mual")
	private NutrisiMual mual;

	@Column(name = "ObjectmualFk", insertable = false, updatable = false, nullable = false)
	private Integer mualId;

	@ManyToOne
	@JoinColumn(name = "ObjectanusFk")
	@NotNull(message = "Eliminasi Defeaksi Harus Diisi")
	@Caption(value = "anus")
	private DefeaksiAnus anus;

	@Column(name = "ObjectanusFk", insertable = false, updatable = false, nullable = false)
	private Integer anusId;

	@ManyToOne
	@JoinColumn(name = "ObjectbabFk")
	@NotNull(message = "Eliminasi Defeaksi Harus Diisi")
	@Caption(value = "bab")
	private DefeaksiBab bab;

	@Column(name = "ObjectbabFk", insertable = false, updatable = false, nullable = false)
	private Integer babId;

	@ManyToOne
	@JoinColumn(name = "ObjectfesesFk")
	@NotNull(message = "Eliminasi Defeaksi Harus Diisi")
	@Caption(value = "feses")
	private DefeaksiFeses feses;

	@Column(name = "ObjectfesesFk", insertable = false, updatable = false, nullable = false)
	private Integer fesesId;

	@ManyToOne
	@JoinColumn(name = "ObjectbakFk")
	@NotNull(message = "Eliminasi Urin Harus Diisi")
	@Caption(value = "bak")
	private UrinBak bak;

	@Column(name = "ObjectbakFk", insertable = false, updatable = false, nullable = false)
	private Integer bakId;

	@ManyToOne
	@JoinColumn(name = "ObjectalatGenitaliaFk")
	@NotNull(message = "Eliminasi Urin Harus Diisi")
	@Caption(value = "alatGenitalia")
	private UrinAlatGenitalia alatGenitalia;

	@Column(name = "ObjectalatGenitaliaFk", insertable = false, updatable = false, nullable = false)
	private Integer alatGenitaliaId;

	@ManyToOne
	@JoinColumn(name = "ObjectwarnaFk")
	@NotNull(message = "Integumen Harus Diisi")
	@Caption(value = "warna")
	private IntegumenWarna warna;

	@Column(name = "ObjectwarnaFk", insertable = false, updatable = false, nullable = false)
	private Integer warnaId;

	@ManyToOne
	@JoinColumn(name = "ObjectkelainanKulitFk")
	@NotNull(message = "Integumen Harus Diisi")
	@Caption(value = "kelainanKulit")
	private IntegumenKelainanKulit kelainanKulit;

	@Column(name = "ObjectkelainanKulitFk", insertable = false, updatable = false, nullable = false)
	private Integer kelainanKulitId;

	@ManyToOne
	@JoinColumn(name = "ObjectkulitFk")
	@NotNull(message = "Integumen Harus Diisi")
	@Caption(value = "kulit")
	private IntegumenKulit kulit;

	@Column(name = "ObjectkulitFk", insertable = false, updatable = false, nullable = false)
	private Integer kulitId;

	@ManyToOne
	@JoinColumn(name = "ObjectaktifFk")
	@NotNull(message = "Aktifitas Anak Harus Diisi")
	@Caption(value = "aktif")
	private AnakAktif aktif;

	@Column(name = "ObjectaktifFk", insertable = false, updatable = false, nullable = false)
	private Integer aktifId;

	@ManyToOne
	@JoinColumn(name = "ObjectlelahFk")
	@NotNull(message = "Aktifitas Anak Harus Diisi")
	@Caption(value = "lelah")
	private AnakLelah lelah;

	@Column(name = "ObjectlelahFk", insertable = false, updatable = false, nullable = false)
	private Integer lelahId;

	@ManyToOne
	@JoinColumn(name = "ObjectpenglihatanFk")
	@NotNull(message = "Persepsi Kognisi Harus Diisi")
	@Caption(value = "penglihatan")
	private KognisiPenglihatan penglihatan;

	@Column(name = "ObjectpenglihatanFk", insertable = false, updatable = false, nullable = false)
	private Integer penglihatanId;

	@ManyToOne
	@JoinColumn(name = "ObjectpendengaranFk")
	@NotNull(message = "Persepsi Kognisi Harus Diisi")
	@Caption(value = "pendengaran")
	private KognisiPendengaran pendengaran;

	@Column(name = "ObjectpendengaranFk", insertable = false, updatable = false, nullable = false)
	private Integer pendengaranId;

	@ManyToOne
	@JoinColumn(name = "ObjectdayaIngatFk")
	@NotNull(message = "Persepsi Kognisi Harus Diisi")
	@Caption(value = "dayaIngat")
	private KognisiDayaIngat dayaIngat;

	@Column(name = "ObjectdayaIngatFk", insertable = false, updatable = false, nullable = false)
	private Integer dayaIngatId;

	@ManyToOne
	@JoinColumn(name = "ObjectlamaTidurFk")
	@NotNull(message = "Tidur Istirahat Harus Diisi")
	@Caption(value = "lamaTidur")
	private StatusLamaTidur lamaTidur;

	@Column(name = "ObjectlamaTidurFk", insertable = false, updatable = false, nullable = false)
	private Integer lamaTidurId;

	@ManyToOne
	@JoinColumn(name = "ObjectgambaranFk")
	@NotNull(message = "Konsep Diri Harus Diisi")
	@Caption(value = "gambaran")
	private KonsepDiriGambaran gambaran;

	@Column(name = "ObjectgambaranFk", insertable = false, updatable = false, nullable = false)
	private Integer gambaranId;

	@ManyToOne
	@JoinColumn(name = "ObjectmasalahFk")
	@NotNull(message = "Peran Hubungan Harus Diisi")
	@Caption(value = "masalah")
	private PeranMasalah masalah;

	@Column(name = "ObjectmasalahFk", insertable = false, updatable = false, nullable = false)
	private Integer masalahId;

	@ManyToOne
	@JoinColumn(name = "ObjectpengaruhPenyakitFk")
	@NotNull(message = "Peran Hubungan Harus Diisi")
	@Caption(value = "pengaruhPenyakit")
	private PeranPengaruhPenyakit pengaruhPenyakit;

	@Column(name = "ObjectpengaruhPenyakitFk", insertable = false, updatable = false, nullable = false)
	private Integer pengaruhPenyakitId;

	@ManyToOne
	@JoinColumn(name = "ObjectkopingFk")
	@NotNull(message = "Koping Harus Diisi")
	@Caption(value = "koping")
	private KopingEfektif koping;

	@Column(name = "ObjectkopingFk", insertable = false, updatable = false, nullable = false)
	private Integer kopingId;

	@ManyToOne
	@JoinColumn(name = "ObjectpertolonganFk")
	@NotNull(message = "Nilai Nilai Harus Diisi")
	@Caption(value = "pertolongan")
	private NilaiPertolongan pertolongan;

	@Column(name = "ObjectpertolonganFk", insertable = false, updatable = false, nullable = false)
	private Integer pertolonganId;

	@ManyToOne
	@JoinColumn(name = "ObjectharapanFk")
	@NotNull(message = "Nilai Nilai Harus Diisi")
	@Caption(value = "harapan")
	private NilaiHarapan harapan;

	@Column(name = "ObjectharapanFk", insertable = false, updatable = false, nullable = false)
	private Integer harapanId;

	@ManyToOne
	@JoinColumn(name = "ObjectsehatFk")
	@NotNull(message = "Persepsi Pasien Harus Diisi")
	@Caption(value = "sehat")
	private PersepsiSehat sehat;

	@Column(name = "ObjectsehatFk", insertable = false, updatable = false, nullable = false)
	private Integer sehatId;

	@ManyToOne
	@JoinColumn(name = "ObjectpenyakitFk")
	@NotNull(message = "Persepsi Pasien Harus Diisi")
	@Caption(value = "penyakit")
	private PersepsiPenyakit penyakit;

	@Column(name = "ObjectpenyakitFk", insertable = false, updatable = false, nullable = false)
	private Integer penyakitId;

	@ManyToOne
	@JoinColumn(name = "ObjectkegiatanFk")
	@NotNull(message = "Persepsi Pasien Harus Diisi")
	@Caption(value = "kegiatan")
	private PersepsiKegiatan kegiatan;

	@Column(name = "ObjectkegiatanFk", insertable = false, updatable = false, nullable = false)
	private Integer kegiatanId;

	@Column(name = "isNormalOksigenasi", nullable = false)
	@Caption(value = "isNormalOksigenasi")
	private Boolean isNormalOksigenasi;

	@Column(name = "isNormalKebutuhanCairan", nullable = false)
	@Caption(value = "isNormalKebutuhanCairan")
	private Boolean isNormalKebutuhanCairan;

	@Column(name = "isNormalNeurologi", nullable = false)
	@Caption(value = "isNormalNeurologi")
	private Boolean isNormalNeurologi;

	@Column(name = "isNormalKebutuhanNutrisi", nullable = false)
	@Caption(value = "isNormalKebutuhanNutrisi")
	private Boolean isNormalKebutuhanNutrisi;

	@Column(name = "isNormalDefeaksi", nullable = false)
	@Caption(value = "isNormalDefeaksi")
	private Boolean isNormalDefeaksi;

	@Column(name = "isNormalUrin", nullable = false)
	@Caption(value = "isNormalUrin")
	private Boolean isNormalUrin;

	@Column(name = "isNormalIntegumen", nullable = false)
	@Caption(value = "isNormalIntegumen")
	private Boolean isNormalIntegumen;

	@Column(name = "isNormalAktifitasAnak", nullable = false)
	@Caption(value = "isNormalAktifitasAnak")
	private Boolean isNormalAktifitasAnak;

	@Column(name = "isNormalPersepsiKognisi", nullable = false)
	@Caption(value = "isNormalPersepsiKognisi")
	private Boolean isNormalPersepsiKognisi;

	@Column(name = "isNormalTidurIstirahat", nullable = false)
	@Caption(value = "isNormalTidurIstirahat")
	private Boolean isNormalTidurIstirahat;

	@Column(name = "isNormalKonsepDiri", nullable = false)
	@Caption(value = "isNormalKonsepDiri")
	private Boolean isNormalKonsepDiri;

	@Column(name = "isNormalPeranHubungan", nullable = false)
	@Caption(value = "isNormalPeranHubungan")
	private Boolean isNormalPeranHubungan;

	@Column(name = "isNormalKoping", nullable = false)
	@Caption(value = "isNormalKoping")
	private Boolean isNormalKoping;

	@Column(name = "isNormalNilaiNilai", nullable = false)
	@Caption(value = "isNormalNilaiNilai")
	private Boolean isNormalNilaiNilai;

	@Column(name = "isNormalPersepsiPasien", nullable = false)
	@Caption(value = "isNormalPersepsiPasien")
	private Boolean isNormalPersepsiPasien;

	@Column(name = "KeteranganPolaNafas")
	@Caption(value = "KeteranganPolaNafas")
	private String keteranganPolaNafas;

	@Column(name = "KeteranganBatuk")
	@Caption(value = "KeteranganBatuk")
	private String keteranganBatuk;

	@Column(name = "KeteranganSianosis")
	@Caption(value = "KeteranganSianosis")
	private String keteranganSianosis;

	@Column(name = "KeteranganNadi")
	@Caption(value = "KeteranganNadi")
	private String keteranganNadi;

	@Column(name = "KeteranganUbun")
	@Caption(value = "KeteranganUbun")
	private String keteranganUbun;

	@Column(name = "KeteranganTurgorKulit")
	@Caption(value = "KeteranganTurgorKulit")
	private String keteranganTurgorKulit;

	@Column(name = "KeteranganCrt")
	@Caption(value = "KeteranganCrt")
	private String keteranganCrt;

	@Column(name = "KeteranganEdema")
	@Caption(value = "KeteranganEdema")
	private String keteranganEdema;

	@Column(name = "KeteranganAkral")
	@Caption(value = "KeteranganAkral")
	private String keteranganAkral;

	@Column(name = "KeteranganKomponen")
	@Caption(value = "KeteranganKomponen")
	private String keteranganKomponen;

	@Column(name = "KeteranganKejang")
	@Caption(value = "KeteranganKejang")
	private String keteranganKejang;

	@Column(name = "KeteranganMukosa")
	@Caption(value = "KeteranganMukosa")
	private String keteranganMukosa;

	@Column(name = "KeteranganStomatitis")
	@Caption(value = "KeteranganStomatitis")
	private String keteranganStomatitis;

	@Column(name = "KeteranganMuntah")
	@Caption(value = "KeteranganMuntah")
	private String keteranganMuntah;

	@Column(name = "KeteranganMual")
	@Caption(value = "KeteranganMual")
	private String keteranganMual;

	@Column(name = "KeteranganAnus")
	@Caption(value = "KeteranganAnus")
	private String keteranganAnus;

	@Column(name = "KeteranganBab")
	@Caption(value = "KeteranganBab")
	private String keteranganBab;

	@Column(name = "KeteranganFeses")
	@Caption(value = "KeteranganFeses")
	private String keteranganFeses;

	@Column(name = "KeteranganBak")
	@Caption(value = "KeteranganBak")
	private String keteranganBak;

	@Column(name = "KeteranganAlatGenitalia")
	@Caption(value = "KeteranganAlatGenitalia")
	private String keteranganAlatGenitalia;

	@Column(name = "KeteranganWarna")
	@Caption(value = "KeteranganWarna")
	private String keteranganWarna;

	@Column(name = "KeteranganKelainanKulit")
	@Caption(value = "KeteranganKelainanKulit")
	private String keteranganKelainanKulit;

	@Column(name = "KeteranganKulit")
	@Caption(value = "KeteranganKulit")
	private String keteranganKulit;

	@Column(name = "KeteranganAktif")
	@Caption(value = "KeteranganAktif")
	private String keteranganAktif;

	@Column(name = "KeteranganLelah")
	@Caption(value = "KeteranganLelah")
	private String keteranganLelah;

	@Column(name = "KeteranganPenglihatan")
	@Caption(value = "KeteranganPenglihatan")
	private String keteranganPenglihatan;

	@Column(name = "KeteranganPendengaran")
	@Caption(value = "KeteranganPendengaran")
	private String keteranganPendengaran;

	@Column(name = "KeteranganDayaIngat")
	@Caption(value = "KeteranganDayaIngat")
	private String keteranganDayaIngat;

	@Column(name = "KeteranganGambaran")
	@Caption(value = "KeteranganGambaran")
	private String keteranganGambaran;

	@Column(name = "KeteranganLamaTidur")
	@Caption(value = "KeteranganLamaTidur")
	private String keteranganLamaTidur;

	@Column(name = "KeteranganMasalah")
	@Caption(value = "KeteranganMasalah")
	private String keteranganMasalah;

	@Column(name = "KeteranganPengaruhPenyakit")
	@Caption(value = "KeteranganPengaruhPenyakit")
	private String keteranganPengaruhPenyakit;

	@Column(name = "KeteranganKoping")
	@Caption(value = "KeteranganKoping")
	private String keteranganKoping;

	@Column(name = "KeteranganPertolongan")
	@Caption(value = "KeteranganPertolongan")
	private String keteranganPertolongan;

	@Column(name = "KeteranganHarapan")
	@Caption(value = "KeteranganHarapan")
	private String keteranganHarapan;

	@Column(name = "KeteranganSehat")
	@Caption(value = "KeteranganSehat")
	private String keteranganSehat;

	@Column(name = "KeteranganPenyakit")
	@Caption(value = "KeteranganPenyakit")
	private String keteranganPenyakit;

	@ManyToOne(fetch = LAZY)
	@Caption(value = "pengkajianAwalBaru")
	@JoinColumn(name = "ObjectPengkajianAwalBaruFk")
	private PengkajianAwalBaru pengkajianAwalBaru;

	@Column(name = "ObjectPengkajianAwalBaruFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
	private String pengkajianAwalBaruId;

}
