package com.jasamedika.medifirst2000.vo;

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.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.PapStatusMental;
import com.jasamedika.medifirst2000.helper.Caption;

public class PapRiwayatPsikososialVO extends BaseTransactionVO{

	@ManyToOne
	private RegistrasiPelayananPasienVO registrasiPelayananPasien;	
	
	@ManyToOne
	@NotNull(message = "Pasien tidak boleh kosong")
	private AntrianPasienDiPeriksaVO pasienDaftar;	
	
	@NotNull(message = "Tgl Input tidak boleh kosong")
	@Caption(value = "Tgl Input")
	private Date tglInput;

	@Caption(value="keteranganStatusPsikologiLainnya")
	private String keteranganStatusPsikologiLainnya;
	
	@ManyToOne
	@Caption(value="Object HubunganPasien")
	private StatusBaikTidakBaikVO hubunganPasien;
	
	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "papRiwayatPsikososial")
	@Caption(value = "papStatusPsikologiSet")
	private Set<PapStatusPsikososialVO> papStatusPsikososialSet=new HashSet<PapStatusPsikososialVO>();
	
	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "papRiwayatPsikososial")
	@Caption(value = "papTempatTinggalSet")
	private Set<PapTempatTinggalVO> papTempatTinggalSet=new HashSet<PapTempatTinggalVO>();
		
	@Caption(value="keteranganStatusSosialLainnya")
	private String keteranganStatusSosialLainnya;

	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "papRiwayatPsikososial")
	@Caption(value = "papStatusMentalSet")
	private Set<PapStatusMentalVO> papStatusMentalSet=new HashSet<PapStatusMentalVO>();

	@Caption(value="adaMasalahPerilaku")
	private String adaMasalahPerilaku;
	
	@Caption(value="perilakuKekekerasan")
	private String perilakuKekekerasan;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@Caption(value = "pengkajianAwalBaru")
	private PengkajianAwalBaruVO pengkajianAwalBaru;

	public RegistrasiPelayananPasienVO getRegistrasiPelayananPasien() {
		return registrasiPelayananPasien;
	}

	public void setRegistrasiPelayananPasien(RegistrasiPelayananPasienVO registrasiPelayananPasien) {
		this.registrasiPelayananPasien = registrasiPelayananPasien;
	}

	public AntrianPasienDiPeriksaVO getPasien() {
		return pasienDaftar;
	}

	public void setPasien(AntrianPasienDiPeriksaVO pasien) {
		this.pasienDaftar = pasien;
	}

	public Date getTglInput() {
		return tglInput;
	}

	public void setTglInput(Date tglInput) {
		this.tglInput = tglInput;
	}

	public String getKeteranganStatusPsikologiLainnya() {
		return keteranganStatusPsikologiLainnya;
	}

	public void setKeteranganStatusPsikologiLainnya(String keteranganStatusPsikologiLainnya) {
		this.keteranganStatusPsikologiLainnya = keteranganStatusPsikologiLainnya;
	}

	public StatusBaikTidakBaikVO getHubunganPasien() {
		return hubunganPasien;
	}

	public void setHubunganPasien(StatusBaikTidakBaikVO hubunganPasien) {
		this.hubunganPasien = hubunganPasien;
	}

	public Set<PapTempatTinggalVO> getPapTempatTinggalSet() {
		return papTempatTinggalSet;
	}

	public void setPapTempatTinggalSet(Set<PapTempatTinggalVO> papTempatTinggalSet) {
		this.papTempatTinggalSet = papTempatTinggalSet;
	}

	public String getKeteranganStatusSosialLainnya() {
		return keteranganStatusSosialLainnya;
	}

	public void setKeteranganStatusSosialLainnya(String keteranganStatusSosialLainnya) {
		this.keteranganStatusSosialLainnya = keteranganStatusSosialLainnya;
	}

	public Set<PapStatusPsikososialVO> getPapStatusPsikososialSet() {
		return papStatusPsikososialSet;
	}

	public void setPapStatusPsikososialSet(Set<PapStatusPsikososialVO> papStatusPsikososialSet) {
		this.papStatusPsikososialSet = papStatusPsikososialSet;
	}

	public AntrianPasienDiPeriksaVO getPasienDaftar() {
		return pasienDaftar;
	}

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

	public Set<PapStatusMentalVO> getPapStatusMentalSet() {
		return papStatusMentalSet;
	}

	public void setPapStatusMentalSet(Set<PapStatusMentalVO> papStatusMentalSet) {
		this.papStatusMentalSet = papStatusMentalSet;
	}

	public String getAdaMasalahPerilaku() {
		return adaMasalahPerilaku;
	}

	public void setAdaMasalahPerilaku(String adaMasalahPerilaku) {
		this.adaMasalahPerilaku = adaMasalahPerilaku;
	}

	public String getPerilakuKekekerasan() {
		return perilakuKekekerasan;
	}

	public void setPerilakuKekekerasan(String perilakuKekekerasan) {
		this.perilakuKekekerasan = perilakuKekekerasan;
	}

	public PengkajianAwalBaruVO getPengkajianAwalBaru() {
		return pengkajianAwalBaru;
	}

	public void setPengkajianAwalBaru(PengkajianAwalBaruVO pengkajianAwalBaru) {
		this.pengkajianAwalBaru = pengkajianAwalBaru;
	}
	
}
