<?php
namespace App\Entity;
use App\Repository\CaseRepository;
use Doctrine\Common\Collections\{ArrayCollection, Collection};
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Entity(repositoryClass: CaseRepository::class), ORM\Table(name: 'cases')]
class Cases implements \Stringable
{
#[ORM\Id, ORM\GeneratedValue, ORM\Column(type: 'integer')]
private $id;
#[ORM\Column(type: 'string', length: 40)]
private string $mrdId = 'MRD-0001';
#[ORM\ManyToOne(targetEntity: Hospital::class), ORM\JoinColumn(nullable: false)]
private $hospital;
#[ORM\ManyToOne(targetEntity: Patient::class), ORM\JoinColumn(nullable: false)]
private $patient;
#[ORM\ManyToOne(targetEntity: User::class), ORM\JoinColumn(name: 'doctor_id')]
private $doctor;
#[ORM\ManyToOne(targetEntity: Cases::class)]
private $prevCase;
#[ORM\Column(type: 'string', length: 255), Assert\NotBlank]
private $patientCategory;
#[ORM\Column(type: 'text', nullable: true)]
private $familyHistory;
#[ORM\Column(type: 'text', nullable: true)]
private $medicalHistory;
#[ORM\Column(type: 'text', nullable: true)]
private $medicineHistory;
#[ORM\Column(type: 'text', nullable: true)]
private $abha_number;
#[ORM\ManyToOne(targetEntity: DiseaseCategory::class)]
private $diseaseCategory;
#[ORM\ManyToOne(targetEntity: Icd10CauseGroup::class)]
private $icd10CauseGroup;
#[ORM\ManyToOne(targetEntity: Icd10CauseSubGroup::class)]
private $icd10CauseSubGroup;
#[ORM\ManyToOne(targetEntity: Icd10Disease::class)]
private $icd10Disease;
#[ORM\Column(type: 'text', nullable: true)]
private $currentDiseaseHistory;
#[ORM\Column(type: 'boolean')]
private bool $isLab = true;
#[ORM\Column(type: 'text', nullable: true)]
private $confirmedDiagnosis;
#[ORM\Column(type: 'string', length: 7, nullable: true)]
private $temparature;
#[ORM\Column(type: 'string', length: 7, nullable: true)]
private $cns;
#[ORM\Column(type: 'string', length: 7, nullable: true)]
private $endrocine;
#[ORM\Column(type: 'string', length: 7, nullable: true)]
private $excretory;
#[ORM\Column(type: 'string', length: 7, nullable: true)]
private $pulse;
#[ORM\Column(type: 'string', length: 7, nullable: true)]
#[Assert\Length(
min: 2,
max: 3,
minMessage: 'BP Sys must be at least {{ limit }} characters long',
maxMessage: 'BP Sys cannot be longer than {{ limit }} characters'
)]
#[Assert\Regex(pattern: '/^[0-9]*$/', message: 'BP Sys cannot contain a Characters')]
private $bpUpper;
#[ORM\Column(type: 'string', length: 7, nullable: true)]
#[Assert\Length(
min: 2,
max: 3,
minMessage: 'BP Dia must be at least {{ limit }} characters long',
maxMessage: 'BP Dia cannot be longer than {{ limit }} characters'
)]
#[Assert\Regex(pattern: '/^[0-9]*$/', message: 'BP Dia cannot contain a Characters')]
private $bpLower;
#[ORM\Column(type: 'string', length: 7, nullable: true)]
#[Assert\Length(
min: 2,
max: 3,
minMessage: 'Respiration must be at least {{ limit }} characters long',
maxMessage: 'Respiration cannot be longer than {{ limit }} characters'
)]
#[Assert\Regex(pattern: '/^[0-9]*$/', message: 'Respiration cannot contain a Characters')]
private $respiration;
#[ORM\Column(type: 'string', length: 7, nullable: true)]
private $auscultation;
#[ORM\Column(type: 'text', nullable: true)]
private $localExamination;
#[ORM\OneToMany(targetEntity: CaseClinicalPattern::class, mappedBy: 'case', orphanRemoval: true)]
private $clinicalPatterns;
#[ORM\OneToMany(targetEntity: CaseProvisionalExamination::class, mappedBy: 'case', orphanRemoval: true)]
private $provisionalExaminations;
#[ORM\OneToMany(targetEntity: CaseProvisionalDiagnosis::class, mappedBy: 'case', orphanRemoval: true)]
private $provisionalDiagnosis;
#[ORM\OneToMany(targetEntity: CaseSymptom::class, mappedBy: 'case', orphanRemoval: true)]
#[ORM\JoinColumn(nullable: true)]
private $symptoms;
#[ORM\OneToMany(targetEntity: CaseNcd::class, mappedBy: 'case', orphanRemoval: true)]
#[ORM\JoinColumn(nullable: true)]
private $ncds;
#[ORM\OneToMany(targetEntity: CaseReferral::class, mappedBy: 'case', orphanRemoval: true)]
private $referrals;
#[ORM\OneToMany(targetEntity: CaseLaboratory::class, mappedBy: 'case', orphanRemoval: true)]
private $labTests;
#[ORM\Column(type: 'boolean')]
private bool $isMedicine = false;
#[ORM\Column(type: 'boolean')]
private bool $isWard = false;
#[ORM\Column(type: 'date', nullable: true)]
private $followUpDate;
#[ORM\Column(type: 'boolean')]
private bool $isPmDone = false;
#[ORM\Column(type: 'boolean')]
private bool $isDeathCertGen = false;
#[ORM\Column(type: 'boolean')]
private bool $isBirthCertGen = false;
#[ORM\Column(type: 'boolean')]
private bool $isClosed = false;
#[ORM\Column(type: 'boolean')]
private bool $isReopened = false;
#[ORM\Column(type: 'boolean')]
private bool $isOpinion = false;
#[ORM\Column(type: 'boolean')]
private bool $isReferral = false;
#[ORM\Column(type: 'text', nullable: true)]
private $emergencyStaffNotes;
#[ORM\Column(type: 'text', nullable: true)]
private $pharmacyStaffNotes;
#[ORM\Column(type: 'text', nullable: true)]
private $wardStaffNotes;
#[ORM\OneToOne(targetEntity: WardBed::class, mappedBy: 'case', cascade: ['persist', 'remove'])]
private $wardBed;
#[ORM\Column(type: 'text', nullable: true)]
private $pharmacyPatientNotes;
#[ORM\Column(type: 'string', length: 100, nullable: true)]
private $closureReason;
#[Gedmo\Timestampable(on: 'create'), ORM\Column(type: 'datetime')]
private $createdAt;
#[Gedmo\Timestampable(on: 'update'), ORM\Column(type: 'datetime')]
private $updatedAt;
#[ORM\Column(name: 'lab_test_status', type: 'string', nullable: true, columnDefinition: "enum('Pending', 'Sample taken', 'Completed')")]
private $labTestStatus;
#[ORM\Column(name: 'case_medicine_status', type: 'string', nullable: true, columnDefinition: "enum('Pending', 'Completed')")]
private $caseMedicineStatus;
#[ORM\Column(name: 'ward_medicine_status', type: 'string', nullable: true, columnDefinition: "enum('Pending', 'Completed')")]
private $wardMedicineStatus;
#[Gedmo\Blameable(on: 'create'), ORM\ManyToOne(targetEntity: User::class), ORM\JoinColumn(name: 'created_by')]
private $createdBy;
#[Gedmo\Blameable(on: 'update'), ORM\ManyToOne(targetEntity: User::class), ORM\JoinColumn(name: 'updated_by')]
private $updatedBy;
#[ORM\OneToOne(targetEntity: DeliveryDetail::class, mappedBy: 'case', cascade: ['persist', 'remove'])]
private $deliveryDetail;
#[ORM\OneToOne(mappedBy: 'case', targetEntity: InjuredInfo::class, cascade: ['persist', 'remove'])]
private $injuredInfo;
#[ORM\OneToOne(mappedBy: 'case', targetEntity: PostMortemReport::class, cascade: ['persist', 'remove'])]
private $postMortemReport;
#[ORM\OneToOne(mappedBy: 'case', targetEntity: DeathCertificate::class, cascade: ['persist', 'remove'])]
private $deathCertificate;
#[ORM\OneToOne(mappedBy: 'case', targetEntity: BirthCertificate::class, cascade: ['persist', 'remove'])]
private $birthCertificate;
public function __construct()
{
$this->clinicalPatterns = new ArrayCollection();
$this->provisionalExaminations = new ArrayCollection();
$this->provisionalDiagnosis = new ArrayCollection();
$this->symptoms = new ArrayCollection();
$this->ncds = new ArrayCollection();
$this->referrals = new ArrayCollection();
$this->labTests = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getMrdId(): ?string
{
return $this->mrdId;
}
public function setMrdId(string $mrdId): self
{
$this->mrdId = $mrdId;
return $this;
}
public function getHospital(): ?Hospital
{
return $this->hospital;
}
public function setHospital(Hospital $hospital): self
{
$this->hospital = $hospital;
return $this;
}
public function getPatient(): ?Patient
{
return $this->patient;
}
public function setPatient(Patient $patient): self
{
$this->patient = $patient;
return $this;
}
public function getDoctor(): ?User
{
return $this->doctor;
}
public function setDoctor(User $doctor): self
{
$this->doctor = $doctor;
return $this;
}
public function getPrevCase(): ?Cases
{
return $this->prevCase;
}
public function setPrevCase(Cases $prevCase): self
{
$this->prevCase = $prevCase;
return $this;
}
public function getTemparature(): ?string
{
return $this->temparature;
}
public function setTemparature(?string $temparature): self
{
$this->temparature = $temparature;
return $this;
}
public function getCns(): ?string
{
return $this->cns;
}
public function setCns(?string $cns): self
{
$this->cns = strip_tags($cns);
return $this;
}
public function getEndrocine(): ?string
{
return $this->endrocine;
}
public function setEndrocine(?string $endrocine): self
{
$this->endrocine = strip_tags($endrocine);
return $this;
}
public function getExcretory(): ?string
{
return $this->excretory;
}
public function setExcretory(?string $excretory): self
{
$this->excretory = strip_tags($excretory);
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function getDiseaseCategory(): ?DiseaseCategory
{
return $this->diseaseCategory;
}
public function setDiseaseCategory(?DiseaseCategory $diseaseCategory): self
{
$this->diseaseCategory = $diseaseCategory;
return $this;
}
public function getIcd10CauseGroup(): ?Icd10CauseGroup
{
return $this->icd10CauseGroup;
}
public function setIcd10CauseGroup(?Icd10CauseGroup $icd10CauseGroup): self
{
$this->icd10CauseGroup = $icd10CauseGroup;
return $this;
}
public function getIcd10CauseSubGroup(): ?Icd10CauseSubGroup
{
return $this->icd10CauseSubGroup;
}
public function setIcd10CauseSubGroup(?Icd10CauseSubGroup $icd10CauseSubGroup): self
{
$this->icd10CauseSubGroup = $icd10CauseSubGroup;
return $this;
}
public function getIcd10Disease(): ?Icd10Disease
{
return $this->icd10Disease;
}
public function setIcd10Disease(?Icd10Disease $icd10Disease): self
{
$this->icd10Disease = $icd10Disease;
return $this;
}
public function getPatientCategory(): ?string
{
return $this->patientCategory;
}
public function setPatientCategory(?string $patientCategory): self
{
$this->patientCategory = $patientCategory;
return $this;
}
public function getFamilyHistory(): ?string
{
return $this->familyHistory;
}
public function setFamilyHistory(?string $familyHistory): self
{
$this->familyHistory = strip_tags($familyHistory);
return $this;
}
public function getMedicalHistory(): ?string
{
return $this->medicalHistory;
}
public function setMedicalHistory(?string $medicalHistory): self
{
$this->medicalHistory = strip_tags($medicalHistory);
return $this;
}
public function getMedicineHistory(): ?string
{
return $this->medicineHistory;
}
public function setMedicineHistory(?string $medicineHistory): self
{
$this->medicineHistory = strip_tags($medicineHistory);
return $this;
}
public function getCurrentDiseaseHistory(): ?string
{
return $this->currentDiseaseHistory;
}
public function setCurrentDiseaseHistory(?string $currentDiseaseHistory): self
{
$this->currentDiseaseHistory = strip_tags($currentDiseaseHistory);
return $this;
}
public function getIsLab(): ?bool
{
return $this->isLab;
}
public function setIsLab(bool $isLab): self
{
$this->isLab = $isLab;
return $this;
}
public function getAbhanumber(): ?string
{
return $this->abha_number;
}
public function setAbhanumber(string $AbhaNumber): self
{
$this->abha_number = $AbhaNumber;
return $this;
}
public function getConfirmedDiagnosis(): ?string
{
return $this->confirmedDiagnosis;
}
public function setConfirmedDiagnosis(?string $confirmedDiagnosis): self
{
$this->confirmedDiagnosis = strip_tags($confirmedDiagnosis);
return $this;
}
public function getPulse(): ?string
{
return $this->pulse;
}
public function setPulse(?string $pulse): self
{
$this->pulse = $pulse;
return $this;
}
public function getBpUpper(): ?string
{
return $this->bpUpper;
}
public function setBpUpper(?string $bpUpper): self
{
$this->bpUpper = $bpUpper;
return $this;
}
public function getBpLower(): ?string
{
return $this->bpLower;
}
public function setBpLower(?string $bpLower): self
{
$this->bpLower = $bpLower;
return $this;
}
public function getRespiration(): ?string
{
return $this->respiration;
}
public function setRespiration(?string $respiration): self
{
$this->respiration = $respiration;
return $this;
}
public function getAuscultation(): ?string
{
return $this->auscultation;
}
public function setAuscultation(?string $auscultation): self
{
$this->auscultation = $auscultation;
return $this;
}
public function getLocalExamination(): ?string
{
return $this->localExamination;
}
public function setLocalExamination(string $localExamination): self
{
$this->localExamination = strip_tags($localExamination);
return $this;
}
public function getIsMedicine(): ?bool
{
return $this->isMedicine;
}
public function setIsMedicine(bool $isMedicine): self
{
$this->isMedicine = $isMedicine;
return $this;
}
public function getIsWard(): ?bool
{
return $this->isWard;
}
public function setIsWard(bool $isWard): self
{
$this->isWard = $isWard;
return $this;
}
public function getFollowUpDate(): ?\DateTimeInterface
{
return $this->followUpDate;
}
public function setFollowUpDate(?\DateTimeInterface $followUpDate): self
{
$this->followUpDate = $followUpDate;
return $this;
}
public function getIsDeathCertGen(): ?bool
{
return $this->isDeathCertGen;
}
public function setIsDeathCertGen(bool $isDeathCertGen): self
{
$this->isDeathCertGen = $isDeathCertGen;
return $this;
}
public function getIsBirthCertGen(): ?bool
{
return $this->isBirthCertGen;
}
public function setIsBirthCertGen(bool $isBirthCertGen): self
{
$this->isBirthCertGen = $isBirthCertGen;
return $this;
}
public function getIsPmDone(): ?bool
{
return $this->isPmDone;
}
public function setIsPmDone(bool $isPmDone): self
{
$this->isPmDone = $isPmDone;
return $this;
}
public function getIsClosed(): ?bool
{
return $this->isClosed;
}
public function setIsClosed(bool $isClosed): self
{
$this->isClosed = $isClosed;
return $this;
}
public function getIsReopened(): ?bool
{
return $this->isReopened;
}
public function setIsReopened(bool $isReopened): self
{
$this->isReopened = $isReopened;
return $this;
}
public function getIsOpinion(): ?bool
{
return $this->isOpinion;
}
public function setIsOpinion(bool $isOpinion): self
{
$this->isOpinion = $isOpinion;
return $this;
}
public function getIsReferral(): ?bool
{
return $this->isReferral;
}
public function setIsReferral(bool $isReferral): self
{
$this->isReferral = $isReferral;
return $this;
}
public function getEmergencyStaffNotes(): ?string
{
return $this->emergencyStaffNotes;
}
public function setEmergencyStaffNotes(?string $emergencyStaffNotes): self
{
$this->emergencyStaffNotes = $emergencyStaffNotes;
return $this;
}
public function getPharmacyStaffNotes(): ?string
{
return $this->pharmacyStaffNotes;
}
public function setPharmacyStaffNotes(?string $pharmacyStaffNotes): self
{
$this->pharmacyStaffNotes = $pharmacyStaffNotes;
return $this;
}
public function getWardStaffNotes(): ?string
{
return $this->wardStaffNotes;
}
public function setWardStaffNotes(?string $wardStaffNotes): self
{
$this->wardStaffNotes = $wardStaffNotes;
return $this;
}
public function getWardBed(): ?WardBed
{
return $this->wardBed;
}
public function setWardBed(WardBed $wardBed): self
{
$this->wardBed = $wardBed;
return $this;
}
public function getPharmacyPatientNotes(): ?string
{
return $this->pharmacyPatientNotes;
}
public function setPharmacyPatientNotes(?string $pharmacyPatientNotes): self
{
$this->pharmacyPatientNotes = $pharmacyPatientNotes;
return $this;
}
public function getClosureReason(): ?string
{
return $this->closureReason;
}
public function setClosureReason(?string $closureReason): self
{
$this->closureReason = $closureReason;
return $this;
}
public function getCreatedBy(): ?User
{
return $this->createdBy;
}
public function getUpdatedBy(): ?User
{
return $this->updatedBy;
}
public function getLabTestStatus(): ?string
{
return $this->labTestStatus;
}
public function setLabTestStatus(?string $labTestStatus): self
{
$this->labTestStatus = $labTestStatus;
return $this;
}
public function getCaseMedicineStatus(): ?string
{
return $this->caseMedicineStatus;
}
public function setCaseMedicineStatus(?string $caseMedicineStatus): self
{
$this->caseMedicineStatus = $caseMedicineStatus;
return $this;
}
public function getWardMedicineStatus(): ?string
{
return $this->wardMedicineStatus;
}
public function setWardMedicineStatus(?string $wardMedicineStatus): self
{
$this->wardMedicineStatus = $wardMedicineStatus;
return $this;
}
/**
* @return Collection|CaseClinicalPattern[]
*/
public function getClinicalPatterns(): Collection
{
return $this->clinicalPatterns;
}
public function addClinicalPattern(CaseClinicalPattern $clinicalPattern): self
{
if (!$this->clinicalPatterns->contains($clinicalPattern)) {
$this->clinicalPatterns[] = $clinicalPattern;
$clinicalPattern->setCase($this);
}
return $this;
}
/**
* @return Collection|CaseProvisionalExamination[]
*/
public function getProvisionalExaminations(): Collection
{
return $this->provisionalExaminations;
}
public function addProvisionalExamination(CaseProvisionalExamination $provisionalExamination): self
{
if (!$this->provisionalExaminations->contains($provisionalExamination)) {
$this->provisionalExaminations[] = $provisionalExamination;
$provisionalExamination->setCase($this);
}
return $this;
}
/**
* @return Collection|CaseProvisionalDiagnosis[]
*/
public function getProvisionalDiagnosis(): Collection
{
return $this->provisionalDiagnosis;
}
public function addProvisionalDiagnosis(CaseProvisionalDiagnosis $provisionalDiagnosis): self
{
if (!$this->provisionalDiagnosis->contains($provisionalDiagnosis)) {
$this->provisionalDiagnosis[] = $provisionalDiagnosis;
$provisionalDiagnosis->setCase($this);
}
return $this;
}
/**
* @return Collection|CaseSymptom[]
*/
public function getSymptoms(): Collection
{
return $this->symptoms;
}
public function addSymptom(CaseSymptom $symptom): self
{
if (!$this->symptoms->contains($symptom)) {
$this->symptoms[] = $symptom;
$symptom->setCase($this);
}
return $this;
}
/**
* @return Collection|CaseNcd[]
*/
public function getNcds(): Collection
{
return $this->ncds;
}
public function addNcd(CaseNcd $ncd): self
{
if (!$this->ncds->contains($ncd)) {
$this->ncds[] = $ncd;
$ncd->setCase($this);
}
return $this;
}
/**
* @return Collection|CaseReferral[]
*/
public function getReferrals(): Collection
{
return $this->referrals;
}
public function addReferral(CaseReferral $referral): self
{
if (!$this->referrals->contains($referral)) {
$this->referrals[] = $referral;
$referral->setCase($this);
}
return $this;
}
/**
* @return Collection|CaseLaboratory[]
*/
public function getLabTests(): Collection
{
return $this->labTests;
}
public function addLabTest(CaseLaboratory $labTest): self
{
if (!$this->labTests->contains($labTest)) {
$this->labTests[] = $labTest;
$labTest->setCase($this);
}
return $this;
}
public function hasOpinion(): bool
{
foreach ($this->referrals as $referral) {
if ($referral->getIsOpinion()) {
return true;
}
}
return false;
}
public function getDeliveryDetail(): ?DeliveryDetail
{
return $this->deliveryDetail;
}
public function setDeliveryDetail(DeliveryDetail $deliveryDetail): self
{
if ($deliveryDetail->getCase() !== $this) {
$deliveryDetail->setCase($this);
}
$this->deliveryDetail = $deliveryDetail;
return $this;
}
public function __toString(): string
{
return $this->getMrdId();
}
public function removeClinicalPattern(CaseClinicalPattern $clinicalPattern): self
{
if ($this->clinicalPatterns->removeElement($clinicalPattern)) {
if ($clinicalPattern->getCase() === $this) {
$clinicalPattern->setCase(null);
}
}
return $this;
}
public function removeProvisionalExamination(CaseProvisionalExamination $provisionalExamination): self
{
if ($this->provisionalExaminations->removeElement($provisionalExamination)) {
if ($provisionalExamination->getCase() === $this) {
$provisionalExamination->setCase(null);
}
}
return $this;
}
public function addProvisionalDiagnosi(CaseProvisionalDiagnosis $provisionalDiagnosi): self
{
if (!$this->provisionalDiagnosis->contains($provisionalDiagnosi)) {
$this->provisionalDiagnosis[] = $provisionalDiagnosi;
$provisionalDiagnosi->setCase($this);
}
return $this;
}
public function removeProvisionalDiagnosi(CaseProvisionalDiagnosis $provisionalDiagnosi): self
{
if ($this->provisionalDiagnosis->removeElement($provisionalDiagnosi)) {
if ($provisionalDiagnosi->getCase() === $this) {
$provisionalDiagnosi->setCase(null);
}
}
return $this;
}
public function removeSymptom(CaseSymptom $symptom): self
{
if ($this->symptoms->removeElement($symptom)) {
if ($symptom->getCase() === $this) {
$symptom->setCase(null);
}
}
return $this;
}
public function removeNcd(CaseNcd $ncd): self
{
if ($this->ncds->removeElement($ncd)) {
if ($ncd->getCase() === $this) {
$ncd->setCase(null);
}
}
return $this;
}
public function removeReferral(CaseReferral $referral): self
{
if ($this->referrals->removeElement($referral)) {
if ($referral->getCase() === $this) {
$referral->setCase(null);
}
}
return $this;
}
public function removeLabTest(CaseLaboratory $labTest): self
{
if ($this->labTests->removeElement($labTest)) {
if ($labTest->getCase() === $this) {
$labTest->setCase(null);
}
}
return $this;
}
public function getInjuredInfo(): ?InjuredInfo
{
return $this->injuredInfo;
}
public function setInjuredInfo(InjuredInfo $injuredInfo): self
{
if ($injuredInfo->getCase() !== $this) {
$injuredInfo->setCase($this);
}
$this->injuredInfo = $injuredInfo;
return $this;
}
public function getPostMortemReport(): ?PostMortemReport
{
return $this->postMortemReport;
}
public function setPostMortemReport(?PostMortemReport $postMortemReport): self
{
if ($postMortemReport === null && $this->postMortemReport !== null) {
$this->postMortemReport->setCase(null);
}
if ($postMortemReport !== null && $postMortemReport->getCase() !== $this) {
$postMortemReport->setCase($this);
}
$this->postMortemReport = $postMortemReport;
return $this;
}
public function getDeathCertificate(): ?DeathCertificate
{
return $this->deathCertificate;
}
public function setDeathCertificate(DeathCertificate $deathCertificate): self
{
if ($deathCertificate->getCase() !== $this) {
$deathCertificate->setCase($this);
}
$this->deathCertificate = $deathCertificate;
return $this;
}
public function getBirthCertificate(): ?BirthCertificate
{
return $this->birthCertificate;
}
public function setBirthCertificate(BirthCertificate $birthCertificate): self
{
if ($birthCertificate->getCase() !== $this) {
$birthCertificate->setCase($this);
}
$this->birthCertificate = $birthCertificate;
return $this;
}
}