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.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.jasamedika.medifirst2000.base.BaseTransaction;
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
import com.jasamedika.medifirst2000.entities.PengkajianAwalBaru;
import com.jasamedika.medifirst2000.entities.SkalaNyeri;
import com.jasamedika.medifirst2000.helper.Caption;

public class PapSkriningNyeriVO extends BaseTransactionVO {


	@ManyToOne
	@Caption(value = "Object RegistrasiPelayananPasien")
	private RegistrasiPelayananPasienVO registrasiPelayananPasien;

	@ManyToOne
	@NotNull(message = "Pasien tidak boleh kosong")
	@Caption(value = "Object Pasien")
	private AntrianPasienDiPeriksaVO pasien;

	@NotNull(message = "tglInput tidak boleh kosong")
	@Caption(value = "tglInput")
	private Date tglInput;

	@ManyToOne
	@NotNull(message = "Rasa Nyeri tidak boleh kosong")
	@Caption(value = "Object Rasa Nyeri")
	private StatusAdaTidakAdaVO rasaNyeri;

	@ManyToOne
	@Caption(value = "Lokasi Nyeri Pasien")
	private DataLokasiNyeriVO lokasiNyeri;
	
	@Caption(value = "frekuensi")
	private String frekuensi;
	
	@Caption(value = "durasi")
	private String durasi;
	
	@ManyToOne
	@Caption(value = "TypeNyeri Pasien")
	private DataTipeNyeriVO typeNyeri;
	
	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "papSkriningNyeri")
	@Caption(value = "karakteristikNyeriSet")
	Set<PapKarakteristikNyeriVO> karakteristikNyeriSet=new HashSet<PapKarakteristikNyeriVO>();
	
	@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "papSkriningNyeri")
	@Caption(value = "pengaruhNyeriSet")
	Set<PapPengaruhNyeriVO> pengaruhNyeriSet=new HashSet<PapPengaruhNyeriVO>();
	
	@ManyToOne
	@Caption(value = "Object Skala Nyeri")
	private SkalaNyeriVO skalaNyeri;
	
	@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 pasien;
	}

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

	public Date getTglInput() {
		return tglInput;
	}

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

	public StatusAdaTidakAdaVO getRasaNyeri() {
		return rasaNyeri;
	}

	public void setRasaNyeri(StatusAdaTidakAdaVO rasaNyeri) {
		this.rasaNyeri = rasaNyeri;
	}

	public DataLokasiNyeriVO getLokasiNyeri() {
		return lokasiNyeri;
	}

	public void setLokasiNyeri(DataLokasiNyeriVO lokasiNyeri) {
		this.lokasiNyeri = lokasiNyeri;
	}

	public String getFrekuensi() {
		return frekuensi;
	}

	public void setFrekuensi(String frekuensi) {
		this.frekuensi = frekuensi;
	}

	public String getDurasi() {
		return durasi;
	}

	public void setDurasi(String durasi) {
		this.durasi = durasi;
	}

	public DataTipeNyeriVO getTypeNyeri() {
		return typeNyeri;
	}

	public void setTypeNyeri(DataTipeNyeriVO typeNyeri) {
		this.typeNyeri = typeNyeri;
	}

	public Set<PapKarakteristikNyeriVO> getKarakteristikNyeriSet() {
		return karakteristikNyeriSet;
	}

	public void setKarakteristikNyeriSet(Set<PapKarakteristikNyeriVO> karakteristikNyeriSet) {
		this.karakteristikNyeriSet = karakteristikNyeriSet;
	}

	public Set<PapPengaruhNyeriVO> getPengaruhNyeriSet() {
		return pengaruhNyeriSet;
	}

	public void setPengaruhNyeriSet(Set<PapPengaruhNyeriVO> pengaruhNyeriSet) {
		this.pengaruhNyeriSet = pengaruhNyeriSet;
	}

	public SkalaNyeriVO getSkalaNyeri() {
		return skalaNyeri;
	}

	public void setSkalaNyeri(SkalaNyeriVO skalaNyeri) {
		this.skalaNyeri = skalaNyeri;
	}

	public PengkajianAwalBaruVO getPengkajianAwalBaru() {
		return pengkajianAwalBaru;
	}

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