From 3853581cfcd5bdd8e34cd356f743aa14c5850808 Mon Sep 17 00:00:00 2001 From: cbrianbet Date: Thu, 21 Mar 2024 14:19:13 +0300 Subject: [PATCH] added extra filter for pbfw u=u --- .../get-vl-categorization-U-to-U.handler.ts | 19 ++++++++++++++- .../handlers/get-vl-uptake-U-to-U.handler.ts | 23 ++++++++++++++++--- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/care-treatment/viral-load/queries/handlers/get-vl-categorization-U-to-U.handler.ts b/src/care-treatment/viral-load/queries/handlers/get-vl-categorization-U-to-U.handler.ts index d373ec8d..fba41101 100644 --- a/src/care-treatment/viral-load/queries/handlers/get-vl-categorization-U-to-U.handler.ts +++ b/src/care-treatment/viral-load/queries/handlers/get-vl-categorization-U-to-U.handler.ts @@ -68,9 +68,26 @@ export class GetVlCategorizationUToUHandler } if (query.pbfw) { + let pbfw = [] + let ispreg = [] + query.pbfw.forEach(cat => { + let splitCategories = cat.split('|'); + pbfw.push(splitCategories[0]) + ispreg.push(splitCategories[1]) + }) + vlUptake.andWhere('f.PBFWCategory IN (:...pbfws)', { - pbfws: query.pbfw, + pbfws: pbfw, }); + if (ispreg.includes("Yes") && ispreg.includes("No")) { + vlUptake.andWhere(`f.Pregnant = 'Yes' OR f.Breastfeeding = 'Yes'`); + } + else if (ispreg.includes("Yes")) { + vlUptake.andWhere(`f.Pregnant = 'Yes'`); + } + else if (ispreg.includes("No")) { + vlUptake.andWhere(`f.Breastfeeding = 'Yes'`); + } } return await vlUptake diff --git a/src/care-treatment/viral-load/queries/handlers/get-vl-uptake-U-to-U.handler.ts b/src/care-treatment/viral-load/queries/handlers/get-vl-uptake-U-to-U.handler.ts index 3c27fdac..ab790ca1 100644 --- a/src/care-treatment/viral-load/queries/handlers/get-vl-uptake-U-to-U.handler.ts +++ b/src/care-treatment/viral-load/queries/handlers/get-vl-uptake-U-to-U.handler.ts @@ -2,7 +2,7 @@ import { InjectRepository } from '@nestjs/typeorm'; import { IQueryHandler, QueryHandler } from '@nestjs/cqrs'; import { Repository } from 'typeorm'; import { GetVlUptakeUToUQuery } from '../impl/get-vl-uptake-U-to-U.query'; -import { AggregateVLDurable } from './../../entities/aggregate-vl-durable.model'; +import { AggregateVLDurable } from '../../entities/aggregate-vl-durable.model'; @QueryHandler(GetVlUptakeUToUQuery) export class GetVlUptakeUToUHandler @@ -27,7 +27,7 @@ export class GetVlUptakeUToUHandler if (query.county) { vlUptake.andWhere('f.County IN (:...counties)', { counties: query.county, - + }); } @@ -68,9 +68,26 @@ export class GetVlUptakeUToUHandler } if (query.pbfw) { + let pbfw = [] + let ispreg = [] + query.pbfw.forEach(cat => { + let splitCategories = cat.split('|'); + pbfw.push(splitCategories[0]) + ispreg.push(splitCategories[1]) + }) + vlUptake.andWhere('f.PBFWCategory IN (:...pbfws)', { - pbfws: query.pbfw, + pbfws: pbfw, }); + if (ispreg.includes("Yes") && ispreg.includes("No")) { + vlUptake.andWhere(`(f.Pregnant = 'Yes' OR f.Breastfeeding = 'Yes')`); + } + else if (ispreg.includes("Yes")) { + vlUptake.andWhere(`f.Pregnant = 'Yes'`); + } + else if (ispreg.includes("No")) { + vlUptake.andWhere(`f.Breastfeeding = 'Yes'`); + } } return await vlUptake.getRawOne();