Skip to content

Commit

Permalink
Merge pull request #742 from cbrianbet/feat/new-reporting-layer
Browse files Browse the repository at this point in the history
Get Facility Keph level Txcurr api
  • Loading branch information
cbrianbet authored Jun 12, 2024
2 parents d27695f + 711feaf commit e82af1b
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 1 deletion.
29 changes: 29 additions & 0 deletions src/common/common.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { GetFacilityLevelByOwnershipPartnerQuery } from './queries/impl/get-faci
import { GetFacilityLevelByOwnershipCountyQuery } from './queries/impl/get-facility-level-by-ownership-county.query';
import { GetFacilityByInfrastructureQuery } from './queries/impl/get-facility-by-infrastructure.query';
import { GetFacilityLinelistQuery } from './queries/impl/get-facility-linelist.query';
import { GetFacilityTxcurrQuery } from './queries/impl/get-facility-txcurr.query';

@Controller('common')
export class CommonController {
Expand Down Expand Up @@ -367,6 +368,34 @@ export class CommonController {
return this.queryBus.execute(query);
}


@Get('facilityTxcurr')
async getFacilityTxCurr(
@Query('county') county,
@Query('subCounty') subCounty,
@Query('facility') facility,
@Query('partner') partner,
@Query('agency') agency,
): Promise<any> {
const query = new GetFacilityTxcurrQuery();
if(county) {
query.county = county;
}
if(subCounty) {
query.subCounty = subCounty;
}
if(facility) {
query.facility = facility;
}
if(partner) {
query.partner = partner;
}
if(agency) {
query.agency = agency;
}
return this.queryBus.execute(query);
}

@Get('sites')
async getSites(): Promise<any> {
return this.queryBus.execute(new GetSitesQuery());
Expand Down
5 changes: 4 additions & 1 deletion src/common/common.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,16 @@ import { GetFacilityLevelByOwnershipPartnerHandler } from './queries/handlers/ge
import { GetFacilityLevelByOwnershipCountyHandler } from './queries/handlers/get-facility-level-by-ownership-county.handler';
import { GetFacilityByInfrastructureHandler } from './queries/handlers/get-facility-by-infrastructure.handler';
import { GetFacilityLinelistHandler } from './queries/handlers/get-facility-linelist.handler';
import { GetFacilityTxcurrHandler } from './queries/handlers/get-facility-txcurr.handler';
import { CommonController } from './common.controller';
import { AllEmrSites } from '../care-treatment/common/entities/all-emr-sites.model';
import { LinelistFACTART } from '../care-treatment/common/entities/linelist-fact-art.model';

@Module({
imports: [
CqrsModule,
ConfigurationModule,
TypeOrmModule.forFeature([AllEmrSites], 'mssql')
TypeOrmModule.forFeature([AllEmrSites, LinelistFACTART], 'mssql')
],
providers: [
GetCountiesHandler,
Expand All @@ -36,6 +38,7 @@ import { AllEmrSites } from '../care-treatment/common/entities/all-emr-sites.mod
GetFacilityLevelByOwnershipCountyHandler,
GetFacilityByInfrastructureHandler,
GetFacilityLinelistHandler,
GetFacilityTxcurrHandler,
],
controllers: [CommonController],
})
Expand Down
38 changes: 38 additions & 0 deletions src/common/queries/handlers/get-facility-txcurr.handler.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { IQueryHandler, QueryHandler } from '@nestjs/cqrs';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { GetFacilityTxcurrQuery } from '../impl/get-facility-txcurr.query';
import { LinelistFACTART } from '../../../care-treatment/common/entities/linelist-fact-art.model';

@QueryHandler(GetFacilityTxcurrQuery)
export class GetFacilityTxcurrHandler implements IQueryHandler<GetFacilityTxcurrQuery> {
constructor(
@InjectRepository(LinelistFACTART, 'mssql')
private readonly repository: Repository<LinelistFACTART>,
) {}

async execute(query: GetFacilityTxcurrQuery): Promise<any> {
const facilities = this.repository
.createQueryBuilder('q')
.select('count (*) TxCurr, KEPH_Level')
.leftJoin('all_EMRSites', 'e', 'e.MFLCode = q.SiteCode')
.where(`ARTOutcomeDescription='Active'`);

if (query.county) {
facilities.andWhere('q.County IN (:...county)', {
county: [query.county],
});
}

if (query.subCounty) {
facilities.andWhere('q.SubCounty IN (:...subCounty)', {
subCounty: [query.subCounty],
});
}


return await facilities
.groupBy('KEPH_Level')
.getRawMany();
}
}
7 changes: 7 additions & 0 deletions src/common/queries/impl/get-facility-txcurr.query.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export class GetFacilityTxcurrQuery {
county?: string[];
subCounty?: string[];
facility?: string[];
partner?: string[];
agency?: string[];
}

0 comments on commit e82af1b

Please sign in to comment.