Add populateNotes method to populate the appropriate notes within a referral
This commit is contained in:
parent
de08885e0b
commit
f6addcc199
@ -4,7 +4,9 @@ namespace App\Repository;
|
|||||||
|
|
||||||
use App\Entity\MemberCase;
|
use App\Entity\MemberCase;
|
||||||
use App\Entity\Referral;
|
use App\Entity\Referral;
|
||||||
|
use App\Enums\ReferralServiceType;
|
||||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||||
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
use Doctrine\Persistence\ManagerRegistry;
|
use Doctrine\Persistence\ManagerRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -19,7 +21,7 @@ class ReferralRepository extends ServiceEntityRepository
|
|||||||
|
|
||||||
public function getActiveReferrals(MemberCase $case): array
|
public function getActiveReferrals(MemberCase $case): array
|
||||||
{
|
{
|
||||||
return $this->createQueryBuilder('r')
|
$referrals = $this->createQueryBuilder('r')
|
||||||
->andWhere('r.dischargeDate IS NULL')
|
->andWhere('r.dischargeDate IS NULL')
|
||||||
->andWhere('r.memberCase = :case')
|
->andWhere('r.memberCase = :case')
|
||||||
->setParameter('case', $case->getId()->toBinary())
|
->setParameter('case', $case->getId()->toBinary())
|
||||||
@ -27,11 +29,17 @@ class ReferralRepository extends ServiceEntityRepository
|
|||||||
->getQuery()
|
->getQuery()
|
||||||
->getResult()
|
->getResult()
|
||||||
;
|
;
|
||||||
|
|
||||||
|
foreach ($referrals as $idx => $ref) {
|
||||||
|
$this->populateNotes($referrals[$idx]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $referrals;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getClosedReferrals(MemberCase $case): array
|
public function getClosedReferrals(MemberCase $case): array
|
||||||
{
|
{
|
||||||
return $this->createQueryBuilder('r')
|
$referrals = $this->createQueryBuilder('r')
|
||||||
->andWhere('r.dischargeDate IS NOT NULL')
|
->andWhere('r.dischargeDate IS NOT NULL')
|
||||||
->andWhere('r.memberCase = :case')
|
->andWhere('r.memberCase = :case')
|
||||||
->setParameter('case', $case->getId()->toBinary())
|
->setParameter('case', $case->getId()->toBinary())
|
||||||
@ -39,6 +47,35 @@ class ReferralRepository extends ServiceEntityRepository
|
|||||||
->getQuery()
|
->getQuery()
|
||||||
->getResult()
|
->getResult()
|
||||||
;
|
;
|
||||||
|
|
||||||
|
foreach ($referrals as $idx => $ref) {
|
||||||
|
$this->populateNotes($referrals[$idx]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $referrals;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function populateNotes(Referral &$referral): void
|
||||||
|
{
|
||||||
|
$noteType = 'App\Entity\StandardNote';
|
||||||
|
|
||||||
|
if ($referral->getServiceCode() == ReferralServiceType::VS_THBB) {
|
||||||
|
$noteType = 'App\Entity\VisitNote';
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = $this->getEntityManager()->createQuery("
|
||||||
|
SELECT n
|
||||||
|
FROM $noteType n
|
||||||
|
WHERE n.referral = :referral
|
||||||
|
");
|
||||||
|
$query->setParameter('referral', $referral->getId()->toBinary());
|
||||||
|
$res = $query->getResult();
|
||||||
|
|
||||||
|
if (!count($res)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$referral->setNotes(new ArrayCollection($res));
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
|
Loading…
Reference in New Issue
Block a user