@ampath/esm-reports-app 1.0.0-next.3 → 1.0.0-next.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/138.js +2 -0
- package/dist/138.js.LICENSE.txt +20 -0
- package/dist/138.js.map +1 -0
- package/dist/184.js +1 -1
- package/dist/184.js.map +1 -1
- package/dist/205.js +1 -0
- package/dist/205.js.map +1 -0
- package/dist/282.js +1 -1
- package/dist/282.js.LICENSE.txt +3 -3
- package/dist/282.js.map +1 -1
- package/dist/311.js +1 -0
- package/dist/311.js.map +1 -0
- package/dist/353.js +1 -2
- package/dist/353.js.map +1 -1
- package/dist/478.js +2 -0
- package/dist/478.js.LICENSE.txt +9 -0
- package/dist/478.js.map +1 -0
- package/dist/540.js +1 -1
- package/dist/540.js.map +1 -1
- package/dist/645.js +1 -0
- package/dist/645.js.map +1 -0
- package/dist/812.js +1 -0
- package/dist/812.js.map +1 -0
- package/dist/961.js +1 -1
- package/dist/961.js.map +1 -1
- package/dist/ampath-esm-reports-app.js +1 -1
- package/dist/ampath-esm-reports-app.js.buildmanifest.json +174 -99
- package/dist/ampath-esm-reports-app.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +2 -1
- package/src/common/report-filters/report-filters.component.tsx +127 -0
- package/src/common/report-filters/report-filters.scss +49 -0
- package/src/dashboard/reports-dasboard.tsx +38 -1
- package/src/dashboard/reports-dashboard.module.scss +14 -0
- package/src/index.ts +1 -1
- package/src/reports/datatable-wrapper/datatable-wrapper.component.tsx +54 -0
- package/src/reports/moh-240/moh-240-header.component.tsx +61 -0
- package/src/reports/moh-240/moh-240.component.tsx +68 -0
- package/src/reports/moh-240/moh-240.scss +3 -0
- package/src/reports/moh-240/sub-reports/moh-240-register.component.tsx +72 -0
- package/src/reports/moh-240/sub-reports/page-summary.component.tsx +95 -0
- package/src/reports/moh-505/moh-505-header.component.tsx +62 -0
- package/src/reports/moh-505/moh-505.component.tsx +240 -0
- package/src/reports/moh-505/moh-505.scss +3 -0
- package/src/reports/moh-705B/moh-204b-register.component.tsx +235 -0
- package/src/reports/moh-705B/moh-705b.component.tsx +524 -0
- package/src/reports/moh-705B/moh-705b.scss +44 -0
- package/src/reports/moh-705a/moh-705a.component.tsx +528 -0
- package/src/reports/moh-705a/moh-705a.scss +45 -0
- package/src/reports/moh-705a/registers/moh-204a-register.component.tsx +320 -0
- package/src/reports/moh-705a/type.ts +6 -0
- package/src/reports/moh-706/moh-706-header.component.tsx +61 -0
- package/src/reports/moh-706/moh-706.component.tsx +104 -0
- package/src/reports/moh-706/moh-706.scss +30 -0
- package/src/reports/moh-706/sub-reports/bacteriology/bacteriology.component.tsx +124 -0
- package/src/reports/moh-706/sub-reports/blood-chemistry/blood-chemistry.component.tsx +318 -0
- package/src/reports/moh-706/sub-reports/drug-susceptibility-testing/drug-susceptibility-testing.component.tsx +137 -0
- package/src/reports/moh-706/sub-reports/haematology/haematology.component.tsx +179 -0
- package/src/reports/moh-706/sub-reports/histology-and-cytology/histology-and-cytology.component.tsx +88 -0
- package/src/reports/moh-706/sub-reports/parasitology/parasitology.component.tsx +121 -0
- package/src/reports/moh-706/sub-reports/serology/serology.component.tsx +47 -0
- package/src/reports/moh-706/sub-reports/specimen-referral-to-higher-levels/specimen-referral-to-higher-levels.component.tsx +39 -0
- package/src/reports/moh-706/sub-reports/urine-analysis/urine-analysis.component.tsx +108 -0
- package/src/reports/moh-710/moh-710.component.tsx +665 -0
- package/src/reports/moh-710/moh-710.scss +45 -0
- package/src/reports/moh-710/patient-list/moh-710-patient-list.component.tsx +13 -0
- package/src/reports/moh-711/moh-711.component.tsx +139 -0
- package/src/reports/moh-711/moh711.scss +82 -0
- package/src/reports/moh-711/registers/moh-333-register.component.tsx +636 -0
- package/src/reports/moh-711/registers/moh-405-register.component.tsx +518 -0
- package/src/reports/moh-711/registers/moh-406-register.component.tsx +530 -0
- package/src/reports/moh-711/registers/moh-510-register.component.tsx +61 -0
- package/src/reports/moh-711/registers/moh-511-register.component.tsx +263 -0
- package/src/reports/moh-711/registers/type.ts +194 -0
- package/src/reports/moh-711/sections/anc.component.tsx +153 -0
- package/src/reports/moh-711/sections/cervical-cancer.component.tsx +104 -0
- package/src/reports/moh-711/sections/chanis.component.tsx +367 -0
- package/src/reports/moh-711/sections/family-planning.component.tsx +221 -0
- package/src/reports/moh-711/sections/gbv.component.tsx +115 -0
- package/src/reports/moh-711/sections/maternity.component.tsx +319 -0
- package/src/reports/moh-711/sections/medical-social-work.component.tsx +83 -0
- package/src/reports/moh-711/sections/other.component.tsx +47 -0
- package/src/reports/moh-711/sections/physiotherapy.component.tsx +61 -0
- package/src/reports/moh-711/sections/pnc.component.tsx +118 -0
- package/src/reports/moh-711/sections/post-abortion.component.tsx +42 -0
- package/src/reports/moh-711/sections/rehabilitation.component.tsx +57 -0
- package/src/reports/moh-711/sections/report-compiled-by.component.tsx +42 -0
- package/src/reports/moh-711/sections/tb-screening.component.tsx +57 -0
- package/src/reports/moh-717/moh-717.component.tsx +170 -0
- package/src/reports/moh-717/moh717.scss +154 -0
- package/src/reports/moh-717/sections/finance.component.tsx +42 -0
- package/src/reports/moh-717/sections/inpatient.component.tsx +374 -0
- package/src/reports/moh-717/sections/maternity.component.tsx +119 -0
- package/src/reports/moh-717/sections/medical-records.component.tsx +35 -0
- package/src/reports/moh-717/sections/mortuary.component.tsx +43 -0
- package/src/reports/moh-717/sections/operations.component.tsx +53 -0
- package/src/reports/moh-717/sections/orthopaedic-trauma.component.tsx +98 -0
- package/src/reports/moh-717/sections/outpatient.component.tsx +489 -0
- package/src/reports/moh-717/sections/pharmacy.component.tsx +43 -0
- package/src/reports/moh-717/sections/preparedby.component.tsx +47 -0
- package/src/reports/moh-717/sections/special-services.component.tsx +114 -0
- package/src/reports/moh-740/moh-740.component.scss +120 -0
- package/src/reports/moh-740/moh-740.component.tsx +1263 -0
- package/src/reports/moh-740/moh-740.resource.ts +42 -0
- package/src/reports/moh-740/registers/moh-222-daily-register/moh-222-daily-register.tsx +6 -0
- package/src/reports/moh-740/registers/moh-270-permanent-register/moh-270-permanent-register.scss +18 -0
- package/src/reports/moh-740/registers/moh-270-permanent-register/moh-270-permanent-register.tsx +79 -0
- package/src/reports/moh-740/registers/moh-740-patient-list.scss +0 -0
- package/src/reports/moh-740/registers/moh-740-patient-list.tsx +43 -0
- package/src/reports/moh-740/shared/data-cell/data-cell.scss +6 -0
- package/src/reports/moh-740/shared/data-cell/data-cell.tsx +23 -0
- package/src/reports/moh-740/shared/utils/format-indicator.ts +22 -0
- package/src/reports/moh-740/types/index.ts +183 -0
- package/src/reports/moh-745/moh-745.component.tsx +928 -0
- package/src/reports/moh-745/moh-745.scss +74 -0
- package/src/reports/moh-745/registers/moh-412-register.component.tsx +191 -0
- package/src/reports/moh-745/registers/type.ts +29 -0
- package/src/reports/table-wrapper/table-row-mapper.component.tsx +51 -0
- package/src/reports/table-wrapper/table-wrapper.component.tsx +21 -0
- package/src/reports/table-wrapper/table-wrapper.scss +31 -0
- package/src/resources/moh-705.resource.ts +117 -0
- package/src/resources/moh-706.resource.ts +86 -0
- package/src/resources/moh-710.resource.ts +60 -0
- package/src/resources/moh-711.resource.ts +175 -0
- package/src/resources/moh-717.resource.ts +35 -0
- package/src/resources/moh-745.resource.ts +64 -0
- package/src/root.component.tsx +38 -0
- package/src/utils/get-base-url.ts +12 -0
- package/src/utils/utils.ts +36 -0
- package/dist/255.js +0 -1
- package/dist/255.js.map +0 -1
- package/dist/353.js.LICENSE.txt +0 -39
- package/dist/36.js +0 -1
- package/dist/36.js.map +0 -1
- package/dist/734.js +0 -1
- package/dist/734.js.map +0 -1
- package/dist/97.js +0 -1
- package/dist/97.js.map +0 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import styles from '../moh711.scss';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
|
|
6
|
+
interface MedicalSocialWorkComponentProps {
|
|
7
|
+
moh711Data: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const MedicalSocialWorkComponent: React.FC<MedicalSocialWorkComponentProps> = ({ moh711Data }) => {
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
|
|
14
|
+
<thead>
|
|
15
|
+
<tr>
|
|
16
|
+
<th></th>
|
|
17
|
+
<th>J. MEDICAL SOCIAL WORK / MENTAL HEALTH</th>
|
|
18
|
+
<th>Total</th>
|
|
19
|
+
</tr>
|
|
20
|
+
</thead>
|
|
21
|
+
<tbody>
|
|
22
|
+
<tr>
|
|
23
|
+
<td>1</td>
|
|
24
|
+
<td>Psycho-Social Counselling</td>
|
|
25
|
+
<td>{moh711Data.psycho_social_counselling}</td>
|
|
26
|
+
</tr>
|
|
27
|
+
<tr>
|
|
28
|
+
<td>2</td>
|
|
29
|
+
<td>Alcohol and Drug Abuse</td>
|
|
30
|
+
<td>{moh711Data.alcohol_and_drug_abuse}</td>
|
|
31
|
+
</tr>
|
|
32
|
+
<tr>
|
|
33
|
+
<td>3</td>
|
|
34
|
+
<td>Mental illness</td>
|
|
35
|
+
<td>{moh711Data.mental_illness}</td>
|
|
36
|
+
</tr>
|
|
37
|
+
<tr>
|
|
38
|
+
<td>4</td>
|
|
39
|
+
<td>Adolescent issues</td>
|
|
40
|
+
<td>{moh711Data.adolescent_issues}</td>
|
|
41
|
+
</tr>
|
|
42
|
+
<tr>
|
|
43
|
+
<td>5</td>
|
|
44
|
+
<td>Psycho-Social Assessment (psycho, social and economic)</td>
|
|
45
|
+
<td>{moh711Data.psycho_social_economic_assessment}</td>
|
|
46
|
+
</tr>
|
|
47
|
+
<tr>
|
|
48
|
+
<td>6</td>
|
|
49
|
+
<td>Social investigations (Home visits / Follow ups)</td>
|
|
50
|
+
<td>{moh711Data.social_investigations}</td>
|
|
51
|
+
</tr>
|
|
52
|
+
<tr>
|
|
53
|
+
<td>7</td>
|
|
54
|
+
<td>Social Rehabilitation</td>
|
|
55
|
+
<td>{moh711Data.psycho_social_rehabilitation}</td>
|
|
56
|
+
</tr>
|
|
57
|
+
<tr>
|
|
58
|
+
<td>8</td>
|
|
59
|
+
<td>Outreach Services / Health Talks</td>
|
|
60
|
+
<td>{moh711Data.outreach_services}</td>
|
|
61
|
+
</tr>
|
|
62
|
+
<tr>
|
|
63
|
+
<td>9</td>
|
|
64
|
+
<td>Referrals</td>
|
|
65
|
+
<td>{moh711Data.mental_health_referral}</td>
|
|
66
|
+
</tr>
|
|
67
|
+
<tr>
|
|
68
|
+
<td></td>
|
|
69
|
+
<td></td>
|
|
70
|
+
<td></td>
|
|
71
|
+
</tr>
|
|
72
|
+
<tr>
|
|
73
|
+
<td></td>
|
|
74
|
+
<td></td>
|
|
75
|
+
<td></td>
|
|
76
|
+
</tr>
|
|
77
|
+
</tbody>
|
|
78
|
+
</table>
|
|
79
|
+
</>
|
|
80
|
+
);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export default MedicalSocialWorkComponent;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import styles from '../moh711.scss';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
|
|
6
|
+
interface OtherComponentProps {
|
|
7
|
+
moh711Data: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const OtherComponent: React.FC<OtherComponentProps> = ({ moh711Data }) => {
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
|
|
14
|
+
<thead>
|
|
15
|
+
<tr>
|
|
16
|
+
<th colSpan={2}>L. OTHER</th>
|
|
17
|
+
<th>Amount</th>
|
|
18
|
+
</tr>
|
|
19
|
+
</thead>
|
|
20
|
+
<tbody>
|
|
21
|
+
<tr>
|
|
22
|
+
<td>1</td>
|
|
23
|
+
<td>Amount of FIF Collected</td>
|
|
24
|
+
<td></td>
|
|
25
|
+
</tr>
|
|
26
|
+
<tr>
|
|
27
|
+
<td>2</td>
|
|
28
|
+
<td>Amount of FIF Waived</td>
|
|
29
|
+
<td></td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<td>3</td>
|
|
33
|
+
<td>Amount of FIF Exempted</td>
|
|
34
|
+
<td></td>
|
|
35
|
+
</tr>
|
|
36
|
+
<tr>
|
|
37
|
+
<td>4</td>
|
|
38
|
+
<td>Number of Disability committee meetings held</td>
|
|
39
|
+
<td></td>
|
|
40
|
+
</tr>
|
|
41
|
+
</tbody>
|
|
42
|
+
</table>
|
|
43
|
+
</>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export default OtherComponent;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import styles from '../moh711.scss';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
|
|
6
|
+
interface PhysiotherapyComponentProps {
|
|
7
|
+
moh711Data: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const PhysiotherapyComponent: React.FC<PhysiotherapyComponentProps> = () => {
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
|
|
14
|
+
<thead>
|
|
15
|
+
<tr>
|
|
16
|
+
<th>K. PHYSIOTHERAPY SERVICE</th>
|
|
17
|
+
<th><5 yrs</th>
|
|
18
|
+
<th>5-19 yrs</th>
|
|
19
|
+
<th>20 yrs +</th>
|
|
20
|
+
</tr>
|
|
21
|
+
</thead>
|
|
22
|
+
<tbody>
|
|
23
|
+
<tr>
|
|
24
|
+
<td>1</td>
|
|
25
|
+
<td rowSpan={2}>Number of PWDs identified and receiving physiotherapy</td>
|
|
26
|
+
<td>OPD</td>
|
|
27
|
+
<td></td>
|
|
28
|
+
</tr>
|
|
29
|
+
<tr>
|
|
30
|
+
<td>2</td>
|
|
31
|
+
<td>Inpatient</td>
|
|
32
|
+
<td></td>
|
|
33
|
+
</tr>
|
|
34
|
+
<tr>
|
|
35
|
+
<td>3</td>
|
|
36
|
+
<td rowSpan={2}>Number of clients/patients receiving physiotherapy</td>
|
|
37
|
+
<td>OPD</td>
|
|
38
|
+
<td></td>
|
|
39
|
+
</tr>
|
|
40
|
+
<tr>
|
|
41
|
+
<td>4</td>
|
|
42
|
+
<td>Inpatient</td>
|
|
43
|
+
<td></td>
|
|
44
|
+
</tr>
|
|
45
|
+
<tr>
|
|
46
|
+
<td>5</td>
|
|
47
|
+
<td colSpan={2}>Total Number of treatments</td>
|
|
48
|
+
<td></td>
|
|
49
|
+
</tr>
|
|
50
|
+
<tr>
|
|
51
|
+
<td>6</td>
|
|
52
|
+
<td colSpan={2}>PWDs assessed for registration</td>
|
|
53
|
+
<td></td>
|
|
54
|
+
</tr>
|
|
55
|
+
</tbody>
|
|
56
|
+
</table>
|
|
57
|
+
</>
|
|
58
|
+
);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export default PhysiotherapyComponent;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import styles from '../moh711.scss';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
import { useNavigate } from 'react-router-dom';
|
|
6
|
+
|
|
7
|
+
interface PNCComponentProps {
|
|
8
|
+
moh711Data: any;
|
|
9
|
+
startDate: string;
|
|
10
|
+
endDate: string;
|
|
11
|
+
locationUuids: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const PNCComponent: React.FC<PNCComponentProps> = ({ moh711Data, startDate, endDate, locationUuids }) => {
|
|
15
|
+
const navigate = useNavigate();
|
|
16
|
+
const navigateToRegister = (indicator: string) => {
|
|
17
|
+
navigate(
|
|
18
|
+
`/moh-406-register?startDate=${startDate}&endDate=${endDate}&locationUuids=${locationUuids}&indicator=${indicator}`,
|
|
19
|
+
);
|
|
20
|
+
};
|
|
21
|
+
return (
|
|
22
|
+
<>
|
|
23
|
+
<table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
|
|
24
|
+
<thead>
|
|
25
|
+
<tr>
|
|
26
|
+
<td></td>
|
|
27
|
+
<th colSpan={3}>H. Post Natal Care (PNC)</th>
|
|
28
|
+
</tr>
|
|
29
|
+
<tr>
|
|
30
|
+
<th colSpan={3} className={styles.greyBackground}></th>
|
|
31
|
+
<th>Total</th>
|
|
32
|
+
</tr>
|
|
33
|
+
</thead>
|
|
34
|
+
<tbody>
|
|
35
|
+
<tr>
|
|
36
|
+
<td>1</td>
|
|
37
|
+
<td rowSpan={2}>No. of PNC Clients</td>
|
|
38
|
+
<td>New</td>
|
|
39
|
+
<td onClick={() => navigateToRegister('pnc_new_clients')}>{moh711Data.pnc_new_clients}</td>
|
|
40
|
+
</tr>
|
|
41
|
+
<tr>
|
|
42
|
+
<td>2</td>
|
|
43
|
+
<td>Revisit</td>
|
|
44
|
+
<td onClick={() => navigateToRegister('pnc_revisit_clients')}>{moh711Data.pnc_revisit_clients}</td>
|
|
45
|
+
</tr>
|
|
46
|
+
<tr>
|
|
47
|
+
<td>3</td>
|
|
48
|
+
<td colSpan={2}>No of Women counselled on Post Partum FP</td>
|
|
49
|
+
<td onClick={() => navigateToRegister('women_couselled_on_post_partum_fp')}>
|
|
50
|
+
{moh711Data.women_couselled_on_post_partum_fp}
|
|
51
|
+
</td>
|
|
52
|
+
</tr>
|
|
53
|
+
<tr>
|
|
54
|
+
<td>4</td>
|
|
55
|
+
<td colSpan={2}>No of Clients who received Post Partum FP</td>
|
|
56
|
+
<td onClick={() => navigateToRegister('women_received_post_partum_fp')}>
|
|
57
|
+
{moh711Data.women_received_post_partum_fp}
|
|
58
|
+
</td>
|
|
59
|
+
</tr>
|
|
60
|
+
<tr>
|
|
61
|
+
<td>5</td>
|
|
62
|
+
<td rowSpan={3}>No. of Mothers receiving Postpartum Care</td>
|
|
63
|
+
<td>within 48 hours</td>
|
|
64
|
+
<td onClick={() => navigateToRegister('mothers_post_partum_care_48_hours')}>
|
|
65
|
+
{moh711Data.mothers_post_partum_care_48_hours}
|
|
66
|
+
</td>
|
|
67
|
+
</tr>
|
|
68
|
+
<tr>
|
|
69
|
+
<td></td>
|
|
70
|
+
<td>Between 3 days to 6 weeks</td>
|
|
71
|
+
<td onClick={() => navigateToRegister('mothers_post_partum_care_3_6_weeks')}>
|
|
72
|
+
{moh711Data.mothers_post_partum_care_3_6_weeks}
|
|
73
|
+
</td>
|
|
74
|
+
</tr>
|
|
75
|
+
<tr>
|
|
76
|
+
<td></td>
|
|
77
|
+
<td>After 6 weeks</td>
|
|
78
|
+
<td onClick={() => navigateToRegister('mothers_post_partum_care_after_6_weeks')}>
|
|
79
|
+
{moh711Data.mothers_post_partum_care_after_6_weeks}
|
|
80
|
+
</td>
|
|
81
|
+
</tr>
|
|
82
|
+
<tr>
|
|
83
|
+
<td rowSpan={3}>6</td>
|
|
84
|
+
<td rowSpan={3}>No. of Babies received Postpartum Care</td>
|
|
85
|
+
<td>Within 48 hours</td>
|
|
86
|
+
<td onClick={() => navigateToRegister('infants_post_partum_care_48_hours')}>
|
|
87
|
+
{moh711Data.infants_post_partum_care_48_hours}
|
|
88
|
+
</td>
|
|
89
|
+
</tr>
|
|
90
|
+
<tr>
|
|
91
|
+
<td>Between 3 days to 6 weeks</td>
|
|
92
|
+
<td onClick={() => navigateToRegister('infants_post_partum_care_3_6_weeks')}>
|
|
93
|
+
{moh711Data.infants_post_partum_care_3_6_weeks}
|
|
94
|
+
</td>
|
|
95
|
+
</tr>
|
|
96
|
+
<tr>
|
|
97
|
+
<td>After 6 weeks</td>
|
|
98
|
+
<td onClick={() => navigateToRegister('infants_post_partum_care_after_6_weeks')}>
|
|
99
|
+
{moh711Data.infants_post_partum_care_after_6_weeks}
|
|
100
|
+
</td>
|
|
101
|
+
</tr>
|
|
102
|
+
<tr>
|
|
103
|
+
<td>7</td>
|
|
104
|
+
<td colSpan={2}>Number of Cases of Fistula</td>
|
|
105
|
+
<td onClick={() => navigateToRegister('pnc_new_clients')}>{moh711Data.fistula_cases}</td>
|
|
106
|
+
</tr>
|
|
107
|
+
<tr>
|
|
108
|
+
<td>8</td>
|
|
109
|
+
<td colSpan={2}>No referred from the Community unit to PNC</td>
|
|
110
|
+
<td onClick={() => navigateToRegister('pnc_new_clients')}>{moh711Data.referrals_from_community}</td>
|
|
111
|
+
</tr>
|
|
112
|
+
</tbody>
|
|
113
|
+
</table>
|
|
114
|
+
</>
|
|
115
|
+
);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
export default PNCComponent;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import styles from '../moh711.scss';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
|
|
6
|
+
interface PostAbortionProps {
|
|
7
|
+
moh711Data: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const PostAbortion: React.FC<PostAbortionProps> = ({ moh711Data }) => {
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
|
|
14
|
+
<thead>
|
|
15
|
+
<tr>
|
|
16
|
+
<th colSpan={2}>E. Post Abortion Care (PAC) Services</th>
|
|
17
|
+
<th>Total</th>
|
|
18
|
+
</tr>
|
|
19
|
+
</thead>
|
|
20
|
+
<tbody>
|
|
21
|
+
<tr>
|
|
22
|
+
<td>1</td>
|
|
23
|
+
<td>No. of Adolescents (10-19yrs) Receiving PAC Services</td>
|
|
24
|
+
<td></td>
|
|
25
|
+
</tr>
|
|
26
|
+
<tr>
|
|
27
|
+
<td>2</td>
|
|
28
|
+
<td>No. of Youth 20-24 yrs receiving PAC services</td>
|
|
29
|
+
<td></td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<td>3</td>
|
|
33
|
+
<td>No. Receiving PAC (25 Years plus)</td>
|
|
34
|
+
<td></td>
|
|
35
|
+
</tr>
|
|
36
|
+
</tbody>
|
|
37
|
+
</table>
|
|
38
|
+
</>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export default PostAbortion;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import styles from '../moh711.scss';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
|
|
6
|
+
interface RehabilitationComponentProps {
|
|
7
|
+
moh711Data: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const RehabilitationComponent: React.FC<RehabilitationComponentProps> = ({ moh711Data }) => {
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
|
|
14
|
+
<thead>
|
|
15
|
+
<tr>
|
|
16
|
+
<th></th>
|
|
17
|
+
<th colSpan={2}>I. Rehabilitation Services</th>
|
|
18
|
+
</tr>
|
|
19
|
+
<tr>
|
|
20
|
+
<th></th>
|
|
21
|
+
<th className={styles.greyBackground}></th>
|
|
22
|
+
<th>Total</th>
|
|
23
|
+
</tr>
|
|
24
|
+
</thead>
|
|
25
|
+
<tbody>
|
|
26
|
+
<tr>
|
|
27
|
+
<td>1</td>
|
|
28
|
+
<td>Number Assessed</td>
|
|
29
|
+
<td></td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<td>2</td>
|
|
33
|
+
<td>Number Treated</td>
|
|
34
|
+
<td></td>
|
|
35
|
+
</tr>
|
|
36
|
+
<tr>
|
|
37
|
+
<td>3</td>
|
|
38
|
+
<td>Number Rehabilitated</td>
|
|
39
|
+
<td></td>
|
|
40
|
+
</tr>
|
|
41
|
+
<tr>
|
|
42
|
+
<td>4</td>
|
|
43
|
+
<td>Rehab referred for further Interventions</td>
|
|
44
|
+
<td></td>
|
|
45
|
+
</tr>
|
|
46
|
+
<tr>
|
|
47
|
+
<td>5</td>
|
|
48
|
+
<td>Number Integrated to Communities</td>
|
|
49
|
+
<td></td>
|
|
50
|
+
</tr>
|
|
51
|
+
</tbody>
|
|
52
|
+
</table>
|
|
53
|
+
</>
|
|
54
|
+
);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export default RehabilitationComponent;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import styles from '../moh711.scss';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
|
|
6
|
+
const ReportCompiledByComponent: React.FC = () => {
|
|
7
|
+
return (
|
|
8
|
+
<>
|
|
9
|
+
<table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
|
|
10
|
+
<thead>
|
|
11
|
+
<tr>
|
|
12
|
+
<th colSpan={3}>Report Compiled By:</th>
|
|
13
|
+
</tr>
|
|
14
|
+
</thead>
|
|
15
|
+
<tbody>
|
|
16
|
+
<tr>
|
|
17
|
+
<td></td>
|
|
18
|
+
<td>Name:</td>
|
|
19
|
+
<td className={styles.compiledBy}></td>
|
|
20
|
+
</tr>
|
|
21
|
+
<tr>
|
|
22
|
+
<td></td>
|
|
23
|
+
<td>Designation:</td>
|
|
24
|
+
<td></td>
|
|
25
|
+
</tr>
|
|
26
|
+
<tr>
|
|
27
|
+
<td></td>
|
|
28
|
+
<td>Date:</td>
|
|
29
|
+
<td></td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<td></td>
|
|
33
|
+
<td>Signature</td>
|
|
34
|
+
<td></td>
|
|
35
|
+
</tr>
|
|
36
|
+
</tbody>
|
|
37
|
+
</table>
|
|
38
|
+
</>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export default ReportCompiledByComponent;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import styles from '../moh711.scss';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
|
|
6
|
+
interface TBScreeningProps {
|
|
7
|
+
moh711Data: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const TBScreeningComponent: React.FC<TBScreeningProps> = ({ moh711Data }) => {
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
|
|
14
|
+
<thead>
|
|
15
|
+
<tr>
|
|
16
|
+
<th colSpan={2}>M. TB SCREENING</th>
|
|
17
|
+
<th>0 - 14 years</th>
|
|
18
|
+
<th>15 years +</th>
|
|
19
|
+
<th>Total</th>
|
|
20
|
+
</tr>
|
|
21
|
+
</thead>
|
|
22
|
+
<tbody>
|
|
23
|
+
<tr>
|
|
24
|
+
<td>1</td>
|
|
25
|
+
<td>Total Number of people screened</td>
|
|
26
|
+
<td></td>
|
|
27
|
+
<td></td>
|
|
28
|
+
<td></td>
|
|
29
|
+
</tr>
|
|
30
|
+
<tr>
|
|
31
|
+
<td>2</td>
|
|
32
|
+
<td>Total Number of presumptive TB cases</td>
|
|
33
|
+
<td></td>
|
|
34
|
+
<td></td>
|
|
35
|
+
<td></td>
|
|
36
|
+
</tr>
|
|
37
|
+
<tr>
|
|
38
|
+
<td>3</td>
|
|
39
|
+
<td>Total Number of already on TB treatment</td>
|
|
40
|
+
<td></td>
|
|
41
|
+
<td></td>
|
|
42
|
+
<td></td>
|
|
43
|
+
</tr>
|
|
44
|
+
<tr>
|
|
45
|
+
<td>4</td>
|
|
46
|
+
<td>Total Number of people not screened</td>
|
|
47
|
+
<td></td>
|
|
48
|
+
<td></td>
|
|
49
|
+
<td></td>
|
|
50
|
+
</tr>
|
|
51
|
+
</tbody>
|
|
52
|
+
</table>
|
|
53
|
+
</>
|
|
54
|
+
);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export default TBScreeningComponent;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import ReportFiltersComponent from '../../common/report-filters/report-filters.component';
|
|
3
|
+
|
|
4
|
+
import styles from './moh717.scss';
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
import { useSession } from '@openmrs/esm-framework';
|
|
7
|
+
import { getMoh717 } from '../../resources/moh-717.resource';
|
|
8
|
+
import { Loading } from '@carbon/react';
|
|
9
|
+
import OutpatientComponent from './sections/outpatient.component';
|
|
10
|
+
import InpatientComponent from './sections/inpatient.component';
|
|
11
|
+
import MaternityComponent from './sections/maternity.component';
|
|
12
|
+
import OperationsComponent from './sections/operations.component';
|
|
13
|
+
import OrthopaedicTraumaComponent from './sections/orthopaedic-trauma.component';
|
|
14
|
+
import SpecialServicesComponent from './sections/special-services.component';
|
|
15
|
+
import PharmacyComponent from './sections/pharmacy.component';
|
|
16
|
+
import MortuaryComponent from './sections/mortuary.component';
|
|
17
|
+
import MedicalRecordsComponent from './sections/medical-records.component';
|
|
18
|
+
import FinanceComponent from './sections/finance.component';
|
|
19
|
+
import PreparedbyComponent from './sections/preparedby.component';
|
|
20
|
+
import { type ReportFilters } from '../moh-705a/type';
|
|
21
|
+
|
|
22
|
+
const Moh717Report: React.FC = () => {
|
|
23
|
+
let errorMessage: string = '';
|
|
24
|
+
const [moh717ReportData, setMoh717ReportData] = useState<any>([]);
|
|
25
|
+
const [isLoading, setIsLoading] = useState<boolean>(false);
|
|
26
|
+
const [startDate, setStartDate] = useState<string>('');
|
|
27
|
+
const [endDate, setEndDate] = useState<string>('');
|
|
28
|
+
|
|
29
|
+
const session = useSession();
|
|
30
|
+
const locationUuid = session?.sessionLocation?.uuid;
|
|
31
|
+
|
|
32
|
+
const getReportParams = (filters: ReportFilters) => {
|
|
33
|
+
let { startDate: sDate, endDate: eDate } = filters;
|
|
34
|
+
|
|
35
|
+
if (filters.month) {
|
|
36
|
+
const [year, monthIndex] = filters.month.split('-').map(Number);
|
|
37
|
+
|
|
38
|
+
const start = new Date(year, monthIndex - 1, 1);
|
|
39
|
+
const end = new Date(year, monthIndex, 0);
|
|
40
|
+
|
|
41
|
+
const formatLocalDate = (d: Date) => {
|
|
42
|
+
const y = d.getFullYear();
|
|
43
|
+
const m = String(d.getMonth() + 1).padStart(2, '0');
|
|
44
|
+
const day = String(d.getDate()).padStart(2, '0');
|
|
45
|
+
return `${y}-${m}-${day}`;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
sDate = formatLocalDate(start);
|
|
49
|
+
eDate = formatLocalDate(end);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
setStartDate(sDate || '');
|
|
53
|
+
setEndDate(eDate || '');
|
|
54
|
+
|
|
55
|
+
return { startDate: sDate, endDate: eDate };
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const fetchMoh717ReportData = async (filters: { startDate?: string; endDate?: string; month?: string }) => {
|
|
59
|
+
setIsLoading(true);
|
|
60
|
+
|
|
61
|
+
const { startDate, endDate } = getReportParams(filters);
|
|
62
|
+
|
|
63
|
+
const params = {
|
|
64
|
+
locationUuids: locationUuid || '',
|
|
65
|
+
startDate,
|
|
66
|
+
endDate,
|
|
67
|
+
};
|
|
68
|
+
try {
|
|
69
|
+
const data = await getMoh717(params);
|
|
70
|
+
const flatData = Object.assign({}, ...data.result);
|
|
71
|
+
setMoh717ReportData(flatData);
|
|
72
|
+
setIsLoading(false);
|
|
73
|
+
} catch (error) {
|
|
74
|
+
setIsLoading(false);
|
|
75
|
+
errorMessage = error instanceof Error ? error.message : String(error);
|
|
76
|
+
throw new Error(`Failed to fetch MOH-717 report data: ${error instanceof Error ? error.message : String(error)}`);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
return (
|
|
80
|
+
<>
|
|
81
|
+
<ReportFiltersComponent
|
|
82
|
+
reportName="MOH-717 Report"
|
|
83
|
+
mode="monthly"
|
|
84
|
+
onGenerate={fetchMoh717ReportData}
|
|
85
|
+
isLoding={isLoading}
|
|
86
|
+
/>
|
|
87
|
+
{isLoading && <Loading description="Fetching data...." />}
|
|
88
|
+
{!isLoading && errorMessage && (
|
|
89
|
+
<div>
|
|
90
|
+
<a href="#" className="close" data-dismiss="alert">
|
|
91
|
+
×
|
|
92
|
+
</a>
|
|
93
|
+
<h4>
|
|
94
|
+
<strong>
|
|
95
|
+
<span className="glyphicon glyphicon-warning-sign"></span>{' '}
|
|
96
|
+
</strong>{' '}
|
|
97
|
+
An error occurred while trying to load the report. Please try again.
|
|
98
|
+
</h4>
|
|
99
|
+
<p>
|
|
100
|
+
<small>{errorMessage}</small>
|
|
101
|
+
</p>
|
|
102
|
+
</div>
|
|
103
|
+
)}
|
|
104
|
+
<h3>Monthly Service Workload Report for Health Facilities</h3>
|
|
105
|
+
<div className={styles.location}>
|
|
106
|
+
<span>
|
|
107
|
+
County: <span className={styles.shortLine}></span>
|
|
108
|
+
</span>
|
|
109
|
+
<span>
|
|
110
|
+
Sub-County: <span className={styles.shortLine}></span>
|
|
111
|
+
</span>
|
|
112
|
+
<span>
|
|
113
|
+
Health Facility: <span className={styles.shortLine}></span>
|
|
114
|
+
</span>
|
|
115
|
+
</div>
|
|
116
|
+
<div className={styles.location}>
|
|
117
|
+
<span>
|
|
118
|
+
Month: <span className={styles.shortLine}></span>
|
|
119
|
+
</span>
|
|
120
|
+
<span>
|
|
121
|
+
Year: <span className={styles.shortLine}></span>
|
|
122
|
+
</span>
|
|
123
|
+
<span>
|
|
124
|
+
KMHFL Code: <span className={styles.shortLine}></span>
|
|
125
|
+
</span>
|
|
126
|
+
</div>
|
|
127
|
+
<div className={styles.container}>
|
|
128
|
+
<div className={styles.section}>
|
|
129
|
+
<OutpatientComponent moh717ReportData={moh717ReportData} />
|
|
130
|
+
</div>
|
|
131
|
+
<InpatientComponent moh717ReportData={moh717ReportData} />
|
|
132
|
+
<div className={styles.sectionContainer}>
|
|
133
|
+
<div className={styles.left}>
|
|
134
|
+
<MaternityComponent
|
|
135
|
+
moh717ReportData={moh717ReportData}
|
|
136
|
+
startDate={startDate}
|
|
137
|
+
endDate={endDate}
|
|
138
|
+
locationUuids={locationUuid!}
|
|
139
|
+
/>
|
|
140
|
+
</div>
|
|
141
|
+
<div className={styles.right}>
|
|
142
|
+
<OperationsComponent moh717ReportData={moh717ReportData} />
|
|
143
|
+
<div className={styles.section}>
|
|
144
|
+
<OrthopaedicTraumaComponent moh717ReportData={moh717ReportData} />
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
<SpecialServicesComponent moh717ReportData={moh717ReportData} />
|
|
149
|
+
<div className={styles.sectionTwoContainer}>
|
|
150
|
+
<div className={styles.one}>
|
|
151
|
+
<PharmacyComponent moh717ReportData={moh717ReportData} />
|
|
152
|
+
</div>
|
|
153
|
+
<div className={styles.two}>
|
|
154
|
+
<MortuaryComponent moh717ReportData={moh717ReportData} />
|
|
155
|
+
</div>
|
|
156
|
+
<div className={styles.three}>
|
|
157
|
+
<MedicalRecordsComponent moh717ReportData={moh717ReportData} />
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
|
|
161
|
+
<FinanceComponent moh717ReportData={moh717ReportData} />
|
|
162
|
+
<div className={styles.preparedByContainer}>
|
|
163
|
+
<PreparedbyComponent />
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
</>
|
|
167
|
+
);
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
export default Moh717Report;
|