From d0cded1879b969f7d9fc63cca54cc1b7cb153644 Mon Sep 17 00:00:00 2001
From: Henry Korir <5462699+henrykorir@users.noreply.github.com>
Date: Fri, 29 Sep 2023 07:59:15 +0300
Subject: [PATCH 1/4] POC-539: Display latest PCR and Infant feeding method
under HEI Snapshot (#1669)
---
.../hiv-program-snapshot.component.html | 52 +++++++----
.../hiv-program-snapshot.component.ts | 88 +++++++++++++++++++
2 files changed, 123 insertions(+), 17 deletions(-)
diff --git a/src/app/patient-dashboard/hiv/program-snapshot/hiv-program-snapshot.component.html b/src/app/patient-dashboard/hiv/program-snapshot/hiv-program-snapshot.component.html
index 7cbc151b5..f0c1f2de4 100644
--- a/src/app/patient-dashboard/hiv/program-snapshot/hiv-program-snapshot.component.html
+++ b/src/app/patient-dashboard/hiv/program-snapshot/hiv-program-snapshot.component.html
@@ -93,24 +93,12 @@
-
+
Date: {{ patientData?.encounter_datetime | date: 'dd-MM-yyyy' }}
-
+
Type:
{{
@@ -125,8 +113,11 @@
Last Encounter
ARV Regimen: {{ patientData?.cur_arv_meds }}
-
-
+
+
Last Viral Load: {{ patientData?.latest_vl | zeroVl }}
({{
@@ -135,6 +126,12 @@ Last Encounter
>)
+
+ Age PCR Done: {{ age_of_ped_on_last_pcr }}M
+
Last Encounter
-
RTC Date: {{ patientData?.rtc_date | date: 'dd-MM-yyyy' }}
+
+ RTC Date: {{ patientData?.rtc_date | date: 'dd-MM-yyyy' }}
+
+
+ Infant Feeding Method: {{ infant_feeding_method }}
+
Disclosure Status:
@@ -211,6 +213,14 @@
Last Encounter
+
+
+ PCR Results:
+
+ {{ 'NEGATIVE' }}
+
+
+
Last Encounter
+
+
+
RTC Date: {{ patientData?.rtc_date | date: 'dd-MM-yyyy' }}
+
+
+
Date of PCR: {{ last_pcr_date | date: 'dd-MM-yyyy' }}
+
+
diff --git a/src/app/patient-dashboard/hiv/program-snapshot/hiv-program-snapshot.component.ts b/src/app/patient-dashboard/hiv/program-snapshot/hiv-program-snapshot.component.ts
index 9a2d15ad2..b07e0bb40 100644
--- a/src/app/patient-dashboard/hiv/program-snapshot/hiv-program-snapshot.component.ts
+++ b/src/app/patient-dashboard/hiv/program-snapshot/hiv-program-snapshot.component.ts
@@ -124,6 +124,10 @@ export class HivProgramSnapshotComponent implements OnInit {
public prediction: any;
public isHEIActive = false;
+ public age_of_ped_on_last_pcr: number;
+ public last_pcr_status: string;
+ public last_pcr_date: string;
+ public infant_feeding_method: string;
constructor(
private hivSummaryResourceService: HivSummaryResourceService,
@@ -251,6 +255,15 @@ export class HivProgramSnapshotComponent implements OnInit {
this.resolveLastEncounterLocation(this.patientData.location_uuid);
}
}
+ if (this.isHEIActive) {
+ this.last_pcr_date = this.getLastPCRDate();
+ this.last_pcr_status = this.getLastPCRStatus();
+ this.infant_feeding_method = this.getInfantFeedingMethod();
+ this.age_of_ped_on_last_pcr = moment(this.last_pcr_date).diff(
+ moment(this.patientData.birth_date),
+ 'months'
+ );
+ }
});
}
@@ -725,4 +738,79 @@ export class HivProgramSnapshotComponent implements OnInit {
return latestStatus[0];
}
+
+ public getLastPCRDate(): string {
+ let last_pcr_date = '';
+
+ if (this.patientData.hiv_dna_pcr_4_date !== null) {
+ last_pcr_date = this.patientData.hiv_dna_pcr_4_date;
+ } else if (this.patientData.hiv_dna_pcr_3_date !== null) {
+ last_pcr_date = this.patientData.hiv_dna_pcr_3_date;
+ } else if (this.patientData.hiv_dna_pcr_2_date !== null) {
+ last_pcr_date = this.patientData.hiv_dna_pcr_2_date;
+ } else if (this.patientData.hiv_dna_pcr_1_date !== null) {
+ last_pcr_date = this.patientData.hiv_dna_pcr_1_date;
+ } else {
+ return '';
+ }
+
+ return last_pcr_date;
+ }
+
+ public getLastPCRStatus(): string {
+ let last_pcr_status: number;
+
+ if (this.patientData.hiv_dna_pcr_resulted !== null) {
+ last_pcr_status = this.patientData.hiv_dna_pcr_resulted;
+ } else if (this.patientData.hiv_dna_pcr_4 !== null) {
+ last_pcr_status = this.patientData.hiv_dna_pcr_4;
+ } else if (this.patientData.hiv_dna_pcr_3 !== null) {
+ last_pcr_status = this.patientData.hiv_dna_pcr_3;
+ } else if (this.patientData.hiv_dna_pcr_2 !== null) {
+ last_pcr_status = this.patientData.hiv_dna_pcr_2;
+ } else if (this.patientData.hiv_dna_pcr_1 !== null) {
+ last_pcr_status = this.patientData.hiv_dna_pcr_1;
+ } else {
+ last_pcr_status = null;
+ }
+ if (last_pcr_status === 664) {
+ return 'NEGATIVE';
+ } else if (last_pcr_status === 703) {
+ return 'POSITIVE';
+ } else if (last_pcr_status === 1118) {
+ return 'NOT DONE';
+ } else if (last_pcr_status === 1138) {
+ return 'INDETERMINATE';
+ } else if (last_pcr_status === 1304) {
+ return 'POOR SAMPLE QUALITY';
+ } else {
+ return 'NONE';
+ }
+ }
+
+ public getInfantFeedingMethod(): string {
+ const INFANT_FEEDING_METHODS = [
+ 'NONE',
+ 'EXPRESSED BREASTMILK',
+ 'WEANED',
+ 'INFANT FORMULA',
+ 'BREASTFEEDING PREDOMINATELY',
+ 'MIXED FEEDING',
+ 'BREASTFEEDING EXCLUSIVELY',
+ 'COW MILK',
+ 'REGULAR FOOD',
+ 'BREASTFEEDING',
+ 'LIQUID FOODS OTHER THAN BREAST MILK',
+ 'WATER',
+ 'SOLID FOOD',
+ 'UJI',
+ 'OTHER NON-CODED',
+ 'COMPLEMENTARY FEEDING',
+ 'PLUMPY NUT',
+ 'NEVER BREASTFED',
+ 'CHILD ON REPLACEMENT FEEDING'
+ ];
+
+ return INFANT_FEEDING_METHODS[this.patientData.infant_feeding_method];
+ }
}
From 662bff358f0b3c55cc0526881352fd4f32f15192 Mon Sep 17 00:00:00 2001
From: Drizzentic
Date: Fri, 29 Sep 2023 09:13:06 +0300
Subject: [PATCH 2/4] Poc 535 (#1671)
* 2.17.1
* POC-535
---
package-lock.json | 4 ++--
package.json | 2 +-
.../visit-details.component.html | 10 ++++++++
.../visit-details/visit-details.component.ts | 24 ++++++++++++++++++-
4 files changed, 36 insertions(+), 4 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 0b683431e..f5d2e1c78 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "ngx-amrs",
- "version": "2.16.5-SNAPSHOT",
+ "version": "2.17.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "ngx-amrs",
- "version": "2.16.5-SNAPSHOT",
+ "version": "2.17.1",
"dependencies": {
"@ampath-kenya/ngx-openmrs-formentry": "2.12.23",
"@angular/animations": "^6.1.0",
diff --git a/package.json b/package.json
index 84c18ba32..dd1b7ba4a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ngx-amrs",
- "version": "2.17.0",
+ "version": "2.17.1",
"scripts": {
"ng": "ng",
"start": "ng serve --host 0.0.0.0 --port 3000",
diff --git a/src/app/patient-dashboard/common/visit/visit-details/visit-details.component.html b/src/app/patient-dashboard/common/visit/visit-details/visit-details.component.html
index 0ab13d8c5..2fd834a8e 100644
--- a/src/app/patient-dashboard/common/visit/visit-details/visit-details.component.html
+++ b/src/app/patient-dashboard/common/visit/visit-details/visit-details.component.html
@@ -164,6 +164,16 @@
>To access clinical forms kindly fill Covid 19 Assessment Form
+
+ To access clinical forms kindly fill Enhanced Adherence Encounter
+ Form
+
---
.../hiv-summary-latest.component.html | 38 +++++++++++--
.../hiv-summary-latest.component.ts | 55 +++++++++++++++++++
2 files changed, 89 insertions(+), 4 deletions(-)
diff --git a/src/app/patient-dashboard/hiv/hiv-summary/hiv-summary-latest.component.html b/src/app/patient-dashboard/hiv/hiv-summary/hiv-summary-latest.component.html
index 213903d83..9bb83dba8 100644
--- a/src/app/patient-dashboard/hiv/hiv-summary/hiv-summary-latest.component.html
+++ b/src/app/patient-dashboard/hiv/hiv-summary/hiv-summary-latest.component.html
@@ -278,11 +278,41 @@
Current weight (kg):
{{ hivSummary?.weight !== null ? hivSummary?.weight : 'NONE' }}
-
- Last PCR status: {{ lastPCRStatus }}
+
+ PCR 1
+ Age PCR Done: {{ pcrSnapShop?.hiv_dna_pcr_1_at }}M
+ PCR Results: {{ pcrSnapShop?.hiv_dna_pcr_1 }}
+
+ Date Done: {{ hivSummary?.hiv_dna_pcr_1_date | date: 'dd-MM-yyyy' }}
+
-
- Last PCR Date: {{ lastPCRDate | date: 'dd-MM-yyyy' }}
+
+ PCR 2
+ Age PCR Done: {{ pcrSnapShop?.hiv_dna_pcr_2_at }}M
+ PCR Results: {{ pcrSnapShop?.hiv_dna_pcr_2 }}
+
+ Date Done: {{ hivSummary?.hiv_dna_pcr_2_date | date: 'dd-MM-yyyy' }}
+
+
+
+ PCR 3
+ Age PCR Done: {{ pcrSnapShop?.hiv_dna_pcr_3_at }}M
+ PCR Results: {{ pcrSnapShop?.hiv_dna_pcr_3 }}
+
+ Date Done: {{ hivSummary?.hiv_dna_pcr_3_date | date: 'dd-MM-yyyy' }}
+
Current ART Prophylaxis: {{ hivSummary?.cur_arv_meds }}
diff --git a/src/app/patient-dashboard/hiv/hiv-summary/hiv-summary-latest.component.ts b/src/app/patient-dashboard/hiv/hiv-summary/hiv-summary-latest.component.ts
index 0c1b3edbf..5f717a050 100644
--- a/src/app/patient-dashboard/hiv/hiv-summary/hiv-summary-latest.component.ts
+++ b/src/app/patient-dashboard/hiv/hiv-summary/hiv-summary-latest.component.ts
@@ -58,6 +58,14 @@ export class HivSummaryLatestComponent implements OnInit, OnDestroy {
public infantFeedingMethod: string;
public heiOutCome: string;
public pcpProphylaxis: string;
+ public pcrSnapShop = {
+ hiv_dna_pcr_1: null,
+ hiv_dna_pcr_1_at: null,
+ hiv_dna_pcr_2: null,
+ hiv_dna_pcr_2_at: null,
+ hiv_dna_pcr_3: null,
+ hiv_dna_pcr_3_at: null
+ };
constructor(
private hivSummaryService: HivSummaryService,
@@ -243,6 +251,7 @@ export class HivSummaryLatestComponent implements OnInit, OnDestroy {
this.infantFeedingMethod = this.getInfantFeedingMethod();
this.heiOutCome = this.getHEIOutcome();
this.pcpProphylaxis = this.getPCPprophylaxis();
+ this.getHEIPCRSnapshot();
}
}
this.getPatientEligibility(this.hivSummary);
@@ -469,4 +478,50 @@ export class HivSummaryLatestComponent implements OnInit, OnDestroy {
}
return 'NONE';
}
+
+ private pcr_status_helper(pcr_status: number): string {
+ if (pcr_status === 664) {
+ return 'NEGATIVE';
+ } else if (pcr_status === 703) {
+ return 'POSITIVE';
+ } else if (pcr_status === 1118) {
+ return 'NOT DONE';
+ } else if (pcr_status === 1138) {
+ return 'INDETERMINATE';
+ } else if (pcr_status === 1304) {
+ return 'POOR SAMPLE QUALITY';
+ } else {
+ return 'NONE';
+ }
+ }
+
+ private calculate_age_by_pcr_date(pcr_date: string): number {
+ const age = Moment(pcr_date).diff(
+ Moment(this.hivSummary.birth_date),
+ 'months'
+ );
+ return age;
+ }
+
+ public getHEIPCRSnapshot(): void {
+ this.pcrSnapShop.hiv_dna_pcr_1 = this.pcr_status_helper(
+ this.hivSummary.hiv_dna_pcr_1
+ );
+ this.pcrSnapShop.hiv_dna_pcr_2 = this.pcr_status_helper(
+ this.hivSummary.hiv_dna_pcr_2
+ );
+ this.pcrSnapShop.hiv_dna_pcr_3 = this.pcr_status_helper(
+ this.hivSummary.hiv_dna_pcr_3
+ );
+
+ this.pcrSnapShop.hiv_dna_pcr_1_at = this.calculate_age_by_pcr_date(
+ this.hivSummary.hiv_dna_pcr_1_date
+ );
+ this.pcrSnapShop.hiv_dna_pcr_2_at = this.calculate_age_by_pcr_date(
+ this.hivSummary.hiv_dna_pcr_2_date
+ );
+ this.pcrSnapShop.hiv_dna_pcr_3_at = this.calculate_age_by_pcr_date(
+ this.hivSummary.hiv_dna_pcr_3_date
+ );
+ }
}
From ba6a7d367d1d5651a414e4a3ba93ba6baa241516 Mon Sep 17 00:00:00 2001
From: Saningo Lekalantula
Date: Fri, 29 Sep 2023 10:10:20 +0300
Subject: [PATCH 4/4] Add outreach follow-up column (#1670)
Co-authored-by: kantush
Co-authored-by: Drizzentic
---
.../general/defaulter-list/defaulter-list.component.ts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/app/clinic-dashboard/general/defaulter-list/defaulter-list.component.ts b/src/app/clinic-dashboard/general/defaulter-list/defaulter-list.component.ts
index e2fce01ec..4c7e54e29 100644
--- a/src/app/clinic-dashboard/general/defaulter-list/defaulter-list.component.ts
+++ b/src/app/clinic-dashboard/general/defaulter-list/defaulter-list.component.ts
@@ -111,6 +111,11 @@ export class DefaulterListComponent implements OnInit {
field: 'ovcid_id',
width: 150
},
+ {
+ headerName: 'Outreach Follow-up',
+ width: 150,
+ field: 'outreach_follow_up'
+ },
{
headerName: 'Latest VL',
width: 75,