@ampath/esm-reports-app 1.0.0-next.6 → 1.0.0-next.61

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.
Files changed (229) hide show
  1. package/dist/197.js +1 -1
  2. package/dist/282.js +1 -1
  3. package/dist/282.js.map +1 -1
  4. package/dist/295.css +1 -0
  5. package/dist/295.css.map +1 -0
  6. package/dist/295.js +1 -0
  7. package/dist/295.js.map +1 -0
  8. package/dist/300.js +1 -1
  9. package/dist/311.js +1 -1
  10. package/dist/311.js.map +1 -1
  11. package/dist/335.js +1 -1
  12. package/dist/353.js +1 -1
  13. package/dist/353.js.map +1 -1
  14. package/dist/410.js +1 -0
  15. package/dist/410.js.map +1 -0
  16. package/dist/478.js +1 -1
  17. package/dist/478.js.map +1 -1
  18. package/dist/540.js +1 -1
  19. package/dist/540.js.map +1 -1
  20. package/dist/55.js +1 -1
  21. package/dist/580.js +1 -0
  22. package/dist/580.js.map +1 -0
  23. package/dist/652.js +1 -1
  24. package/dist/876.css +1 -0
  25. package/dist/876.css.map +1 -0
  26. package/dist/876.js +1 -0
  27. package/dist/876.js.map +1 -0
  28. package/dist/907.js +2 -0
  29. package/dist/907.js.LICENSE.txt +35 -0
  30. package/dist/907.js.map +1 -0
  31. package/dist/961.js +1 -1
  32. package/dist/961.js.map +1 -1
  33. package/dist/99.js +1 -1
  34. package/dist/ampath-esm-reports-app.js +1 -1
  35. package/dist/ampath-esm-reports-app.js.map +1 -1
  36. package/dist/routes.json +1 -1
  37. package/package.json +2 -2
  38. package/src/common/daily-summary-table.tsx +55 -0
  39. package/src/common/linelist-table/index.ts +3 -0
  40. package/src/common/linelist-table/linelist-columns.ts +48 -0
  41. package/src/common/linelist-table/linelist-table.component.tsx +442 -0
  42. package/src/common/linelist-table/linelist-table.scss +306 -0
  43. package/src/common/linelist-table/linelist-table.test.tsx +120 -0
  44. package/src/common/linelist-table/use-all-rows.ts +93 -0
  45. package/src/common/linelist-table/use-column-layout.ts +123 -0
  46. package/src/common/report-error/index.ts +1 -0
  47. package/src/common/report-error/show-report-error.ts +25 -0
  48. package/src/common/report-filters/date-range.ts +137 -0
  49. package/src/common/report-filters/index.ts +4 -0
  50. package/src/common/report-filters/report-filters.component.tsx +297 -100
  51. package/src/common/report-filters/report-filters.scss +255 -32
  52. package/src/common/report-filters/types.ts +66 -0
  53. package/src/common/report-filters/use-restore-period.ts +43 -0
  54. package/src/common/report-header/index.ts +1 -0
  55. package/src/common/report-header/use-location-details.ts +58 -0
  56. package/src/common/report-page/index.ts +2 -0
  57. package/src/common/report-page/report-page.component.tsx +32 -0
  58. package/src/common/report-page/report-page.scss +45 -0
  59. package/src/common/report-page/use-page-scale.ts +60 -0
  60. package/src/common/report-placeholder/has-report-data.ts +15 -0
  61. package/src/common/report-placeholder/index.ts +3 -0
  62. package/src/common/report-placeholder/report-placeholder.component.tsx +81 -0
  63. package/src/common/report-placeholder/report-placeholder.scss +48 -0
  64. package/src/common/report-placeholder/use-generated-location.ts +62 -0
  65. package/src/common/report-register/index.ts +6 -0
  66. package/src/common/report-register/register-columns.ts +46 -0
  67. package/src/common/report-register/register-layout.component.tsx +265 -0
  68. package/src/common/report-register/register-layout.scss +150 -0
  69. package/src/common/report-register/register-table.scss +71 -0
  70. package/src/common/report-register/report-parents.ts +27 -0
  71. package/src/common/report-register/rows-to-csv.ts +89 -0
  72. package/src/common/report-register/use-location-name.ts +54 -0
  73. package/src/common/report-register/use-patient-list.ts +92 -0
  74. package/src/common/report-skeleton/index.ts +1 -0
  75. package/src/common/report-skeleton/report-skeleton.component.tsx +46 -0
  76. package/src/common/report-skeleton/report-skeleton.scss +29 -0
  77. package/src/config-schema.ts +9 -1
  78. package/src/dashboard/report-catalog.ts +173 -0
  79. package/src/dashboard/reports-dasboard.tsx +101 -17
  80. package/src/dashboard/reports-dashboard.module.scss +269 -11
  81. package/src/index.ts +13 -1
  82. package/src/reports/datatable-wrapper/datatable-wrapper.component.tsx +69 -0
  83. package/src/reports/moh-240/moh-240-header.component.tsx +62 -0
  84. package/src/reports/moh-240/moh-240.columns.ts +113 -0
  85. package/src/reports/moh-240/moh-240.component.tsx +75 -0
  86. package/src/reports/moh-240/moh-240.scss +40 -0
  87. package/src/reports/moh-240/sub-reports/moh-240-register.component.tsx +36 -0
  88. package/src/reports/moh-240/sub-reports/page-summary.component.tsx +148 -0
  89. package/src/reports/moh-505/moh-505-header.component.tsx +67 -0
  90. package/src/reports/moh-505/moh-505.component.tsx +441 -0
  91. package/src/reports/moh-505/moh-505.scss +117 -0
  92. package/src/reports/moh-705B/moh-204b-register.component.tsx +244 -0
  93. package/src/reports/moh-705B/moh-204b.columns.ts +39 -0
  94. package/src/reports/moh-705B/moh-705b.component.tsx +658 -0
  95. package/src/reports/moh-705B/moh-705b.scss +172 -0
  96. package/src/reports/moh-705a/moh-705a.component.tsx +660 -0
  97. package/src/reports/moh-705a/moh-705a.scss +172 -0
  98. package/src/reports/moh-705a/registers/moh-204a-register.component.tsx +329 -0
  99. package/src/reports/moh-705a/registers/moh-204a.columns.ts +57 -0
  100. package/src/reports/moh-705a/type.ts +6 -0
  101. package/src/reports/moh-706/moh-706-header.component.tsx +66 -0
  102. package/src/reports/moh-706/moh-706.component.tsx +150 -24
  103. package/src/reports/moh-706/moh-706.scss +119 -11
  104. package/src/reports/moh-706/sub-reports/bacteriology/bacteriology.component.tsx +54 -62
  105. package/src/reports/moh-706/sub-reports/blood-chemistry/blood-chemistry.component.tsx +232 -318
  106. package/src/reports/moh-706/sub-reports/drug-susceptibility-testing/drug-susceptibility-testing.component.tsx +32 -47
  107. package/src/reports/moh-706/sub-reports/haematology/haematology.component.tsx +45 -53
  108. package/src/reports/moh-706/sub-reports/histology-and-cytology/histology-and-cytology.component.tsx +44 -59
  109. package/src/reports/moh-706/sub-reports/parasitology/parasitology.component.tsx +31 -39
  110. package/src/reports/moh-706/sub-reports/serology/serology.component.tsx +27 -35
  111. package/src/reports/moh-706/sub-reports/specimen-referral-to-higher-levels/specimen-referral-to-higher-levels.component.tsx +10 -25
  112. package/src/reports/moh-706/sub-reports/urine-analysis/urine-analysis.component.tsx +44 -52
  113. package/src/reports/moh-710/moh-710.component.tsx +799 -632
  114. package/src/reports/moh-710/moh-710.scss +142 -21
  115. package/src/reports/moh-710/registers/moh-510/moh-510.columns.ts +40 -0
  116. package/src/reports/moh-710/registers/moh-510/moh-510.component.tsx +144 -0
  117. package/src/reports/moh-710/registers/moh-510/moh-510.scss +130 -0
  118. package/src/reports/moh-710/registers/moh-511-710-register.component.tsx +268 -0
  119. package/src/reports/moh-710/registers/moh-511-710.columns.ts +52 -0
  120. package/src/reports/moh-710/registers/type.ts +31 -0
  121. package/src/reports/moh-711/moh-711.component.tsx +138 -1269
  122. package/src/reports/moh-711/moh711.scss +135 -20
  123. package/src/reports/moh-711/registers/moh-333-register.component.tsx +637 -0
  124. package/src/reports/moh-711/registers/moh-333.columns.ts +119 -0
  125. package/src/reports/moh-711/registers/moh-405-register.component.tsx +520 -0
  126. package/src/reports/moh-711/registers/moh-405.columns.ts +120 -0
  127. package/src/reports/moh-711/registers/moh-406-register.component.tsx +530 -0
  128. package/src/reports/moh-711/registers/moh-406.columns.ts +133 -0
  129. package/src/reports/moh-711/registers/moh-510-register.component.tsx +55 -0
  130. package/src/reports/moh-711/registers/moh-511-register.component.tsx +270 -0
  131. package/src/reports/moh-711/registers/moh-511.columns.ts +59 -0
  132. package/src/reports/moh-711/registers/type.ts +192 -0
  133. package/src/reports/moh-711/sections/anc.component.tsx +159 -0
  134. package/src/reports/moh-711/sections/cervical-cancer.component.tsx +148 -0
  135. package/src/reports/moh-711/sections/chanis.component.tsx +366 -0
  136. package/src/reports/moh-711/sections/family-planning.component.tsx +221 -0
  137. package/src/reports/moh-711/sections/gbv.component.tsx +115 -0
  138. package/src/reports/moh-711/sections/maternity.component.tsx +321 -0
  139. package/src/reports/moh-711/sections/medical-social-work.component.tsx +73 -0
  140. package/src/reports/moh-711/sections/other.component.tsx +47 -0
  141. package/src/reports/moh-711/sections/physiotherapy.component.tsx +61 -0
  142. package/src/reports/moh-711/sections/pnc.component.tsx +127 -0
  143. package/src/reports/moh-711/sections/post-abortion.component.tsx +42 -0
  144. package/src/reports/moh-711/sections/rehabilitation.component.tsx +57 -0
  145. package/src/reports/moh-711/sections/report-compiled-by.component.tsx +50 -0
  146. package/src/reports/moh-711/sections/tb-screening.component.tsx +57 -0
  147. package/src/reports/moh-717/moh-717.component.tsx +149 -985
  148. package/src/reports/moh-717/moh717.scss +217 -21
  149. package/src/reports/moh-717/registers/nutrition-register.component.tsx +48 -0
  150. package/src/reports/moh-717/sections/finance.component.tsx +42 -0
  151. package/src/reports/moh-717/sections/inpatient.component.tsx +374 -0
  152. package/src/reports/moh-717/sections/maternity.component.tsx +126 -0
  153. package/src/reports/moh-717/sections/medical-records.component.tsx +35 -0
  154. package/src/reports/moh-717/sections/mortuary.component.tsx +43 -0
  155. package/src/reports/moh-717/sections/operations.component.tsx +53 -0
  156. package/src/reports/moh-717/sections/orthopaedic-trauma.component.tsx +98 -0
  157. package/src/reports/moh-717/sections/outpatient.component.tsx +597 -0
  158. package/src/reports/moh-717/sections/pharmacy.component.tsx +43 -0
  159. package/src/reports/moh-717/sections/preparedby.component.tsx +52 -0
  160. package/src/reports/moh-717/sections/special-services.component.tsx +114 -0
  161. package/src/reports/moh-731/linelist/moh-731-indicators.ts +1040 -0
  162. package/src/reports/moh-731/linelist/moh-731-linelist-sections.ts +423 -0
  163. package/src/reports/moh-731/linelist/moh-731-linelist.component.tsx +102 -0
  164. package/src/reports/moh-731/linelist/use-open-moh-731-linelist.ts +50 -0
  165. package/src/reports/moh-731/moh-731.component.tsx +251 -0
  166. package/src/reports/moh-731/moh-731.scss +493 -0
  167. package/src/reports/moh-731/registers/moh-366.columns.ts +38 -0
  168. package/src/reports/moh-731/registers/moh-366.component.tsx +471 -0
  169. package/src/reports/moh-731/registers/prep-register.component.tsx +284 -0
  170. package/src/reports/moh-731/registers/prep.columns.ts +34 -0
  171. package/src/reports/moh-731/sections/hiv-and-tb-treatment.component.tsx +1209 -0
  172. package/src/reports/moh-731/sections/hiv-testing-and-pre-exposure.component.tsx +727 -0
  173. package/src/reports/moh-731/sections/pmtct.component.tsx +572 -0
  174. package/src/reports/moh-731/summary/moh-731-summary.component.tsx +313 -0
  175. package/src/reports/moh-731/summary/moh-731-summary.config.ts +520 -0
  176. package/src/reports/moh-731/summary/moh-731-summary.scss +242 -0
  177. package/src/reports/moh-740/moh-740.component.scss +202 -0
  178. package/src/reports/moh-740/moh-740.component.tsx +1312 -0
  179. package/src/reports/moh-740/moh-740.resource.ts +49 -0
  180. package/src/reports/moh-740/registers/moh-222-daily-register/moh-222-daily-register.tsx +89 -0
  181. package/src/reports/moh-740/registers/moh-270-permanent-register/moh-270-permanent-register.tsx +61 -0
  182. package/src/reports/moh-740/registers/moh-740-patient-list.scss +0 -0
  183. package/src/reports/moh-740/registers/moh-740-patient-list.tsx +95 -0
  184. package/src/reports/moh-740/registers/moh-740.columns.ts +52 -0
  185. package/src/reports/moh-740/shared/data-cell/data-cell.scss +6 -0
  186. package/src/reports/moh-740/shared/data-cell/data-cell.tsx +23 -0
  187. package/src/reports/moh-740/shared/utils/indicator-register-map.ts +157 -0
  188. package/src/reports/moh-740/types/index.ts +220 -0
  189. package/src/reports/moh-745/moh-745.component.tsx +1021 -0
  190. package/src/reports/moh-745/moh-745.scss +132 -0
  191. package/src/reports/moh-745/registers/moh-412-register.component.tsx +199 -0
  192. package/src/reports/moh-745/registers/moh-412.columns.ts +52 -0
  193. package/src/reports/moh-745/registers/type.ts +181 -0
  194. package/src/reports/table-wrapper/table-row-mapper.component.tsx +53 -0
  195. package/src/reports/table-wrapper/table-wrapper.component.tsx +30 -0
  196. package/src/reports/{moh-706/table-wrapper → table-wrapper}/table-wrapper.scss +1 -16
  197. package/src/resources/moh-505.resource.ts +69 -0
  198. package/src/resources/moh-705.resource.ts +106 -0
  199. package/src/resources/moh-706.resource.ts +80 -0
  200. package/src/resources/moh-710.resource.ts +32 -9
  201. package/src/resources/moh-711.resource.ts +137 -9
  202. package/src/resources/moh-717.resource.ts +26 -9
  203. package/src/resources/moh-731.resource.ts +90 -0
  204. package/src/resources/moh-745.resource.ts +76 -0
  205. package/src/resources/patient-list-page.ts +65 -0
  206. package/src/root.component.tsx +50 -7
  207. package/src/root.scss +36 -0
  208. package/src/routes.json +3 -1
  209. package/src/utils/format-indicator.ts +22 -0
  210. package/src/utils/get-base-url.ts +39 -7
  211. package/src/utils/utils.ts +36 -0
  212. package/tsconfig.json +1 -1
  213. package/webpack.config.js +22 -1
  214. package/dist/184.js +0 -2
  215. package/dist/184.js.LICENSE.txt +0 -14
  216. package/dist/184.js.map +0 -1
  217. package/dist/260.js +0 -1
  218. package/dist/260.js.map +0 -1
  219. package/dist/402.js +0 -1
  220. package/dist/402.js.map +0 -1
  221. package/dist/812.js +0 -1
  222. package/dist/812.js.map +0 -1
  223. package/dist/959.js +0 -2
  224. package/dist/959.js.LICENSE.txt +0 -20
  225. package/dist/959.js.map +0 -1
  226. package/dist/ampath-esm-reports-app.js.buildmanifest.json +0 -539
  227. package/dist/main.js +0 -1
  228. package/dist/main.js.map +0 -1
  229. package/src/reports/moh-706/table-wrapper/table-wrapper.component.tsx +0 -21
@@ -0,0 +1,660 @@
1
+ import { formatDate, useSession } from '@openmrs/esm-framework';
2
+ import dayjs from 'dayjs';
3
+ import React, { useState } from 'react';
4
+ import { getMoh705a } from '../../resources/moh-705.resource';
5
+
6
+ import styles from './moh-705a.scss';
7
+ import { ReportFiltersComponent, type ReportPeriod, useRestorePeriod } from '../../common/report-filters';
8
+ import { showReportError } from '../../common/report-error';
9
+ import { hasReportData, ReportPlaceholder, useGeneratedLocation } from '../../common/report-placeholder';
10
+ import classNames from 'classnames';
11
+ import { useNavigate } from 'react-router-dom';
12
+ import { ReportSkeleton } from '../../common/report-skeleton';
13
+ import { ReportPage } from '../../common/report-page';
14
+ import { renderDailyReportRows, reportDays } from '../../common/daily-summary-table';
15
+
16
+ const indicators = [
17
+ 'diarrhoea_with_no_dehydration',
18
+ 'diarrhoea_with_some_dehydration',
19
+ 'diarrhoea_with_severe_dehydration',
20
+ 'cholera',
21
+ 'dysentry',
22
+ 'gastroenterities',
23
+ 'pneumonia',
24
+ 'severe_pneumonia',
25
+ 'upper_respiratory_tract_infections',
26
+ 'lower_respiratory_tract_infections',
27
+ 'asthma',
28
+ 'presumed_tuberculosis',
29
+ 'suspected_malaria',
30
+ 'tested_for_malaria',
31
+ 'confirmed_malaria',
32
+ 'ear_infection',
33
+ 'malnutrition',
34
+ 'anaemia',
35
+ 'meningococcal_meningitis',
36
+ 'other_meningitis',
37
+ 'neonatal_sepsis',
38
+ 'neonatal_tetanus',
39
+ 'poliomyelitis',
40
+ 'chicken_pox',
41
+ 'measles',
42
+ 'hepatitis',
43
+ 'amoebiasis',
44
+ 'mumps',
45
+ 'typhoid_fever',
46
+ 'bilharzia',
47
+ 'intestinal_worms',
48
+ 'eye_infections',
49
+ 'tonsilities',
50
+ 'urinary_tract_infections',
51
+ 'mental_disorders',
52
+ 'dental_disorders',
53
+ 'jiggers_infestation',
54
+ 'diseases_of_the_skin',
55
+ 'downs_syndrome',
56
+ 'poisoning',
57
+ 'road_traffic_injuries',
58
+ 'deaths_due_to_road_traffic_injuries',
59
+ 'violence_related_injuries',
60
+ 'other_injuries',
61
+ 'sexual_violence',
62
+ 'burns',
63
+ 'snake_bites',
64
+ 'dog_bites',
65
+ 'other_bites',
66
+ 'diabetes',
67
+ 'epilepsy',
68
+ 'other_convulsive_disorders',
69
+ 'rheumatic_fever',
70
+ 'brucellosis',
71
+ 'rickets',
72
+ 'cerebral_palsy',
73
+ 'autism',
74
+ 'tryponosomiasis',
75
+ 'yellow_fever',
76
+ 'viral_haemorrhagic_fever',
77
+ 'rift_valley_fever',
78
+ 'chikungunya',
79
+ 'dengue_fever',
80
+ 'leishmaniasis',
81
+ 'cutaneous_leishmaniasis',
82
+ 'suspected_anthrax',
83
+ 'suspected_childhood_cancers',
84
+ 'hypoxaemia',
85
+ 'all_other_diseases',
86
+ 'new_attendances',
87
+ 're_attendances',
88
+ 'referrals_from_other_health_facility',
89
+ 'referrals_to_other_health_facility',
90
+ 'referrals_from_community_unit',
91
+ 'referrals_to_community_unit',
92
+ ];
93
+
94
+ const Moh705AComponent: React.FC = () => {
95
+ const [moh705aData, setMoh705aData] = useState<any>([]);
96
+ /* Only a report for the current location counts: after switching location the
97
+ old figures would otherwise be shown, and labelled, as the new location's. */
98
+ const { isForCurrentLocation, hasLocationChanged, markGenerated } = useGeneratedLocation();
99
+ const isReportGenerated = hasReportData(moh705aData) && isForCurrentLocation;
100
+ const [isLoading, setIsLoading] = useState<boolean>(false);
101
+ const [startDate, setStartDate] = useState<string>('');
102
+ const [endDate, setEndDate] = useState<string>('');
103
+
104
+ const session = useSession();
105
+ const locationUuids = session?.sessionLocation?.uuid;
106
+
107
+ /* Masthead and sign-off fill themselves in, as on the other reports */
108
+ const facility = session?.sessionLocation?.display ?? '';
109
+ const reportMonth = startDate ? dayjs(startDate).format('MMMM') : '';
110
+ const reportYear = startDate ? dayjs(startDate).format('YYYY') : '';
111
+ const compiledBy = session?.user?.person?.display ?? session?.user?.display ?? '';
112
+ const compiledOn = formatDate(new Date(), { mode: 'standard', time: false, noToday: true });
113
+ const navigate = useNavigate();
114
+
115
+ const fetchMoh705bReportData = async ({ startDate, endDate }: ReportPeriod) => {
116
+ setIsLoading(true);
117
+ setStartDate(startDate);
118
+ setEndDate(endDate);
119
+
120
+ const params = {
121
+ locationUuids: locationUuids || '',
122
+ startDate,
123
+ endDate,
124
+ };
125
+ try {
126
+ const data = await getMoh705a(params);
127
+ setMoh705aData(data.result ?? []);
128
+ } catch (error) {
129
+ showReportError('the MOH-705A report', error);
130
+ } finally {
131
+ setIsLoading(false);
132
+ }
133
+ };
134
+
135
+ /* A register's breadcrumb links back here with the period it was opened
136
+ for, so the report comes back showing the figures rather than the
137
+ placeholder. */
138
+ useRestorePeriod(fetchMoh705bReportData);
139
+
140
+ const navigateToRegister = (indicator: string, day?: number) => {
141
+ const selectedDate = day ? dayjs(startDate).startOf('month').date(day) : undefined;
142
+ if (selectedDate && day && day > dayjs(startDate).daysInMonth()) {
143
+ return;
144
+ }
145
+ const registerStartDate = selectedDate?.format('YYYY-MM-DD') ?? startDate;
146
+ const registerEndDate = selectedDate?.format('YYYY-MM-DD') ?? endDate;
147
+
148
+ navigate(
149
+ `/moh-204a?startDate=${registerStartDate}&endDate=${registerEndDate}&locationUuids=${locationUuids}&indicator=${indicator}&from=moh-705a`,
150
+ );
151
+ };
152
+
153
+ return (
154
+ <>
155
+ <ReportFiltersComponent
156
+ reportName="MOH-705A Report"
157
+ mode="both"
158
+ onGenerate={fetchMoh705bReportData}
159
+ isLoading={isLoading}
160
+ isReportGenerated={isReportGenerated}
161
+ generatedPeriod={{ startDate, endDate }}
162
+ />
163
+ {isLoading && <ReportSkeleton />}
164
+ {!isLoading && !isReportGenerated && (
165
+ <ReportPlaceholder reportName="MOH-705A" isLocationChanged={hasReportData(moh705aData) && hasLocationChanged} />
166
+ )}
167
+ {!isLoading && isReportGenerated && (
168
+ <ReportPage>
169
+ <div className={styles.mainTitleBox}>
170
+ <p className={styles.ministry}>Ministry of Health</p>
171
+ <h3 className={styles.reportTitle}>KHIS Aggregate</h3>
172
+ </div>
173
+
174
+ <p className={styles.location}>
175
+ <span>
176
+ Facility Name:<span className={styles.line}>{facility}</span>
177
+ </span>
178
+ <span>
179
+ County:
180
+ <span className={styles.line} />
181
+ </span>
182
+ <span>
183
+ Sub County:
184
+ <span className={styles.line} />
185
+ </span>
186
+ <span>
187
+ Month:<span className={styles.shortLine}>{reportMonth}</span>
188
+ </span>
189
+ <span>
190
+ Year:<span className={styles.shortLine}>{reportYear}</span>
191
+ </span>
192
+ </p>
193
+
194
+ <div className={styles.container}>
195
+ <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
196
+ <colgroup>
197
+ <col className={styles.numberColumn} />
198
+ <col className={styles.diseaseColumn} />
199
+ {reportDays.map((day) => (
200
+ <col className={styles.dayColumn} key={day} />
201
+ ))}
202
+ <col className={styles.totalColumn} />
203
+ </colgroup>
204
+ <thead>
205
+ <tr>
206
+ <th colSpan={2}>DISEASES (New Cases Only)</th>
207
+ {reportDays.map((day) => (
208
+ <th key={day}>{day}</th>
209
+ ))}
210
+ <th>Totals</th>
211
+ </tr>
212
+ </thead>
213
+ <tbody>
214
+ {renderDailyReportRows(
215
+ <>
216
+ <tr>
217
+ <td>1</td>
218
+ <td>Diarrhoea with no dehydration</td>
219
+ <td onClick={() => navigateToRegister('diarrhoea_with_no_dehydration')}>
220
+ {moh705aData.diarrhoea_with_no_dehydration}
221
+ </td>
222
+ </tr>
223
+ <tr>
224
+ <td>2</td>
225
+ <td>Diarrhoea with some dehydration</td>
226
+ <td onClick={() => navigateToRegister('diarrhoea_with_some_dehydration')}>
227
+ {moh705aData.diarrhoea_with_some_dehydration}
228
+ </td>
229
+ </tr>
230
+ <tr>
231
+ <td>3</td>
232
+ <td>Diarrhoea with severe dehydration</td>
233
+ <td onClick={() => navigateToRegister('diarrhoea_with_severe_dehydration')}>
234
+ {moh705aData.diarrhoea_with_severe_dehydration}
235
+ </td>
236
+ </tr>
237
+ <tr>
238
+ <td>4</td>
239
+ <td>Cholera</td>
240
+ <td onClick={() => navigateToRegister('cholera')}>{moh705aData.cholera}</td>
241
+ </tr>
242
+ <tr>
243
+ <td>5</td>
244
+ <td>Dysentary (Blood diarrhoea)</td>
245
+ <td onClick={() => navigateToRegister('dysentry')}>{moh705aData.dysentry}</td>
246
+ </tr>
247
+ <tr>
248
+ <td>6</td>
249
+ <td>Gastroenterities</td>
250
+ <td onClick={() => navigateToRegister('gastroenterities')}>{moh705aData.gastroenterities}</td>
251
+ </tr>
252
+ <tr>
253
+ <td>7</td>
254
+ <td>Pneomonia</td>
255
+ <td onClick={() => navigateToRegister('pneumonia')}>{moh705aData.pneumonia}</td>
256
+ </tr>
257
+ <tr>
258
+ <td>8</td>
259
+ <td>Severe pneumonia</td>
260
+ <td onClick={() => navigateToRegister('severe_pneumonia')}>{moh705aData.severe_pneumonia}</td>
261
+ </tr>
262
+ <tr>
263
+ <td>9</td>
264
+ <td>Upper Respiratory Tract Infections</td>
265
+ <td onClick={() => navigateToRegister('upper_respiratory_tract_infections')}>
266
+ {moh705aData.upper_respiratory_tract_infections}
267
+ </td>
268
+ </tr>
269
+ <tr>
270
+ <td>10</td>
271
+ <td>Lower Respiratory Tract Infections</td>
272
+ <td onClick={() => navigateToRegister('lower_respiratory_tract_infections')}>
273
+ {moh705aData.lower_respiratory_tract_infections}
274
+ </td>
275
+ </tr>
276
+ <tr>
277
+ <td>11</td>
278
+ <td>Asthma</td>
279
+ <td onClick={() => navigateToRegister('asthma')}>{moh705aData.asthma}</td>
280
+ </tr>
281
+ <tr>
282
+ <td>12</td>
283
+ <td>Presumed Tuberculosis</td>
284
+ <td onClick={() => navigateToRegister('presumed_tuberculosis')}>
285
+ {moh705aData.presumed_tuberculosis}
286
+ </td>
287
+ </tr>
288
+ <tr>
289
+ <td>13</td>
290
+ <td>Suspected Malaria</td>
291
+ <td onClick={() => navigateToRegister('suspected_malaria')}>{moh705aData.suspected_malaria}</td>
292
+ </tr>
293
+ <tr>
294
+ <td>14</td>
295
+ <td>Tested for Malaria</td>
296
+ <td onClick={() => navigateToRegister('tested_for_malaria')}>{moh705aData.tested_for_malaria}</td>
297
+ </tr>
298
+ <tr>
299
+ <td>15</td>
300
+ <td>Confirmed malaria</td>
301
+ <td onClick={() => navigateToRegister('confirmed_malaria')}>{moh705aData.confirmed_malaria}</td>
302
+ </tr>
303
+ <tr>
304
+ <td>16</td>
305
+ <td>Ear infection</td>
306
+ <td onClick={() => navigateToRegister('ear_infection')}>{moh705aData.ear_infection}</td>
307
+ </tr>
308
+ <tr>
309
+ <td>17</td>
310
+ <td>Malnutrition</td>
311
+ <td onClick={() => navigateToRegister('malnutrition')}>{moh705aData.malnutrition}</td>
312
+ </tr>
313
+ <tr>
314
+ <td>18</td>
315
+ <td>Anaemia</td>
316
+ <td onClick={() => navigateToRegister('anaemia')}>{moh705aData.anaemia}</td>
317
+ </tr>
318
+ <tr>
319
+ <td>19</td>
320
+ <td>Meningococcal Menengitis</td>
321
+ <td onClick={() => navigateToRegister('meningococcal_meningitis')}>
322
+ {moh705aData.meningococcal_meningitis}
323
+ </td>
324
+ </tr>
325
+ <tr>
326
+ <td>20</td>
327
+ <td>Other Meningitis</td>
328
+ <td onClick={() => navigateToRegister('other_meningitis')}>{moh705aData.other_meningitis}</td>
329
+ </tr>
330
+ <tr>
331
+ <td>21</td>
332
+ <td>Neonatal Sepsis</td>
333
+ <td onClick={() => navigateToRegister('neonatal_sepsis')}>{moh705aData.neonatal_sepsis}</td>
334
+ </tr>
335
+ <tr>
336
+ <td>22</td>
337
+ <td>Neonatal Tetanus</td>
338
+ <td onClick={() => navigateToRegister('neonatal_tetanus')}>{moh705aData.neonatal_tetanus}</td>
339
+ </tr>
340
+ <tr>
341
+ <td>23</td>
342
+ <td>Poliomyelitis (AFP)</td>
343
+ <td onClick={() => navigateToRegister('poliomyelitis')}>{moh705aData.poliomyelitis}</td>
344
+ </tr>
345
+ <tr>
346
+ <td>24</td>
347
+ <td>Chicken Pox</td>
348
+ <td onClick={() => navigateToRegister('chicken_pox')}>{moh705aData.chicken_pox}</td>
349
+ </tr>
350
+ <tr>
351
+ <td>25</td>
352
+ <td>Measles</td>
353
+ <td onClick={() => navigateToRegister('measles')}>{moh705aData.measles}</td>
354
+ </tr>
355
+ <tr>
356
+ <td>26</td>
357
+ <td>Hepatitis</td>
358
+ <td onClick={() => navigateToRegister('hepatitis')}>{moh705aData.hepatitis}</td>
359
+ </tr>
360
+ <tr>
361
+ <td>27</td>
362
+ <td>Amoebiasis</td>
363
+ <td onClick={() => navigateToRegister('amoebiasis')}>{moh705aData.amoebiasis}</td>
364
+ </tr>
365
+ <tr>
366
+ <td>28</td>
367
+ <td>Mumps</td>
368
+ <td onClick={() => navigateToRegister('mumps')}>{moh705aData.mumps}</td>
369
+ </tr>
370
+ <tr>
371
+ <td>29</td>
372
+ <td>Typhoid fever</td>
373
+ <td onClick={() => navigateToRegister('typhoid_fever')}>{moh705aData.typhoid_fever}</td>
374
+ </tr>
375
+ <tr>
376
+ <td>30</td>
377
+ <td>Bilharzia (Schistosomiasis)</td>
378
+ <td onClick={() => navigateToRegister('bilharzia')}>{moh705aData.bilharzia}</td>
379
+ </tr>
380
+ <tr>
381
+ <td>31</td>
382
+ <td>Intestinal worms</td>
383
+ <td onClick={() => navigateToRegister('intestinal_worms')}>{moh705aData.intestinal_worms}</td>
384
+ </tr>
385
+ <tr>
386
+ <td>32</td>
387
+ <td>Eye Infections</td>
388
+ <td onClick={() => navigateToRegister('eye_infections')}>{moh705aData.eye_infections}</td>
389
+ </tr>
390
+ <tr>
391
+ <td>33</td>
392
+ <td>Tonsilitis</td>
393
+ <td onClick={() => navigateToRegister('tonsilities')}>{moh705aData.tonsilities}</td>
394
+ </tr>
395
+ <tr>
396
+ <td>34</td>
397
+ <td>Urinary Tract Infection</td>
398
+ <td onClick={() => navigateToRegister('urinary_tract_infections')}>
399
+ {moh705aData.urinary_tract_infections}
400
+ </td>
401
+ </tr>
402
+ <tr>
403
+ <td>35</td>
404
+ <td>Mental Disorders</td>
405
+ <td onClick={() => navigateToRegister('mental_disorders')}>{moh705aData.mental_disorders}</td>
406
+ </tr>
407
+ <tr>
408
+ <td>36</td>
409
+ <td>Dental Disorders</td>
410
+ <td onClick={() => navigateToRegister('dental_disorders')}>{moh705aData.dental_disorders}</td>
411
+ </tr>
412
+ <tr>
413
+ <td>37</td>
414
+ <td>Jiggers Infestation</td>
415
+ <td onClick={() => navigateToRegister('jiggers_infestation')}>
416
+ {moh705aData.jiggers_infestation}
417
+ </td>
418
+ </tr>
419
+ <tr>
420
+ <td>38</td>
421
+ <td>Diseases fo the skin</td>
422
+ <td onClick={() => navigateToRegister('diseases_of_the_skin')}>
423
+ {moh705aData.diseases_of_the_skin}
424
+ </td>
425
+ </tr>
426
+ <tr>
427
+ <td>39</td>
428
+ <td>Down's syndrome</td>
429
+ <td onClick={() => navigateToRegister('downs_syndrome')}>{moh705aData.downs_syndrome}</td>
430
+ </tr>
431
+ <tr>
432
+ <td>40</td>
433
+ <td>Poisoning</td>
434
+ <td onClick={() => navigateToRegister('poisoning')}>{moh705aData.poisoning}</td>
435
+ </tr>
436
+ <tr>
437
+ <td>41</td>
438
+ <td>Road Traffic Injuries</td>
439
+ <td onClick={() => navigateToRegister('road_traffic_injuries')}>
440
+ {moh705aData.road_traffic_injuries}
441
+ </td>
442
+ </tr>
443
+ <tr>
444
+ <td>42</td>
445
+ <td>Deaths due to Road Traffic Injuries</td>
446
+ <td onClick={() => navigateToRegister('deaths_due_to_road_traffic_injuries')}>
447
+ {moh705aData.deaths_due_to_road_traffic_injuries}
448
+ </td>
449
+ </tr>
450
+ <tr>
451
+ <td>43</td>
452
+ <td>Violence related injuries</td>
453
+ <td onClick={() => navigateToRegister('violence_related_injuries')}>
454
+ {moh705aData.violence_related_injuries}
455
+ </td>
456
+ </tr>
457
+ <tr>
458
+ <td>44</td>
459
+ <td>Other injuries</td>
460
+ <td onClick={() => navigateToRegister('other_injuries')}>{moh705aData.other_injuries}</td>
461
+ </tr>
462
+ <tr>
463
+ <td>45</td>
464
+ <td>Sexual Violence</td>
465
+ <td onClick={() => navigateToRegister('sexual_violence')}>{moh705aData.sexual_violence}</td>
466
+ </tr>
467
+ <tr>
468
+ <td>46</td>
469
+ <td>Burns</td>
470
+ <td onClick={() => navigateToRegister('burns')}>{moh705aData.burns}</td>
471
+ </tr>
472
+ <tr>
473
+ <td>47</td>
474
+ <td>Snake Bites</td>
475
+ <td onClick={() => navigateToRegister('snake_bites')}>{moh705aData.snake_bites}</td>
476
+ </tr>
477
+ <tr>
478
+ <td>48</td>
479
+ <td>Dog bites</td>
480
+ <td onClick={() => navigateToRegister('dog_bites')}>{moh705aData.dog_bites}</td>
481
+ </tr>
482
+ <tr>
483
+ <td>49</td>
484
+ <td>Other Bites</td>
485
+ <td onClick={() => navigateToRegister('other_bites')}>{moh705aData.other_bites}</td>
486
+ </tr>
487
+ <tr>
488
+ <td>50</td>
489
+ <td>Diabetes</td>
490
+ <td onClick={() => navigateToRegister('diabetes')}>{moh705aData.diabetes}</td>
491
+ </tr>
492
+ <tr>
493
+ <td>51</td>
494
+ <td>Epilepsy</td>
495
+ <td onClick={() => navigateToRegister('epilepsy')}>{moh705aData.epilepsy}</td>
496
+ </tr>
497
+ <tr>
498
+ <td>52</td>
499
+ <td>Other Convulsive Disorders</td>
500
+ <td onClick={() => navigateToRegister('other_convulsive_disorders')}>
501
+ {moh705aData.other_convulsive_disorders}
502
+ </td>
503
+ </tr>
504
+ <tr>
505
+ <td>53</td>
506
+ <td>Rheumatic Fever</td>
507
+ <td onClick={() => navigateToRegister('rheumatic_fever')}>{moh705aData.rheumatic_fever}</td>
508
+ </tr>
509
+ <tr>
510
+ <td>54</td>
511
+ <td>Brucellosis</td>
512
+ <td onClick={() => navigateToRegister('brucellosis')}>{moh705aData.brucellosis}</td>
513
+ </tr>
514
+ <tr>
515
+ <td>55</td>
516
+ <td>Rickets</td>
517
+ <td onClick={() => navigateToRegister('rickets')}>{moh705aData.rickets}</td>
518
+ </tr>
519
+ <tr>
520
+ <td>56</td>
521
+ <td>Cerebral Palsy</td>
522
+ <td onClick={() => navigateToRegister('cerebral_palsy')}>{moh705aData.cerebral_palsy}</td>
523
+ </tr>
524
+ <tr>
525
+ <td>57</td>
526
+ <td>Autism</td>
527
+ <td onClick={() => navigateToRegister('autism')}>{moh705aData.autism}</td>
528
+ </tr>
529
+ <tr>
530
+ <td>58</td>
531
+ <td>Tryponosomiasis</td>
532
+ <td onClick={() => navigateToRegister('tryponosomiasis')}>{moh705aData.tryponosomiasis}</td>
533
+ </tr>
534
+ <tr>
535
+ <td>59</td>
536
+ <td>Yellow Fever</td>
537
+ <td onClick={() => navigateToRegister('yellow_fever')}>{moh705aData.yellow_fever}</td>
538
+ </tr>
539
+ <tr>
540
+ <td>60</td>
541
+ <td>Viral Haemorrhagic Fever</td>
542
+ <td onClick={() => navigateToRegister('viral_haemorrhagic_fever')}>
543
+ {moh705aData.viral_haemorrhagic_fever}
544
+ </td>
545
+ </tr>
546
+ <tr>
547
+ <td>61</td>
548
+ <td>Rift valley fever</td>
549
+ <td onClick={() => navigateToRegister('rift_valley_fever')}>{moh705aData.rift_valley_fever}</td>
550
+ </tr>
551
+ <tr>
552
+ <td>62</td>
553
+ <td>Chikungunya</td>
554
+ <td onClick={() => navigateToRegister('chikungunya')}>{moh705aData.chikungunya}</td>
555
+ </tr>
556
+ <tr>
557
+ <td>63</td>
558
+ <td>Dengue fever</td>
559
+ <td onClick={() => navigateToRegister('dengue_fever')}>{moh705aData.dengue_fever}</td>
560
+ </tr>
561
+ <tr>
562
+ <td>64</td>
563
+ <td>Leishmaniasis(Kalaazar)</td>
564
+ <td onClick={() => navigateToRegister('leishmaniasis')}>{moh705aData.leishmaniasis}</td>
565
+ </tr>
566
+ <tr>
567
+ <td>65</td>
568
+ <td>Cutaneous leishmaniasis</td>
569
+ <td onClick={() => navigateToRegister('cutaneous_leishmaniasis')}>
570
+ {moh705aData.cutaneous_leishmaniasis}
571
+ </td>
572
+ </tr>
573
+ <tr>
574
+ <td>66</td>
575
+ <td>Suspected anthrax</td>
576
+ <td onClick={() => navigateToRegister('suspected_anthrax')}>{moh705aData.suspected_anthrax}</td>
577
+ </tr>
578
+ <tr>
579
+ <td>67</td>
580
+ <td>Suspected Childhood Cancers</td>
581
+ <td onClick={() => navigateToRegister('suspected_childhood_cancers')}>
582
+ {moh705aData.suspected_childhood_cancers}
583
+ </td>
584
+ </tr>
585
+ <tr>
586
+ <td>68</td>
587
+ <td>Hypoxaemia (Spo2&lt;90%)</td>
588
+ <td onClick={() => navigateToRegister('hypoxaemia')}>{moh705aData.hypoxaemia}</td>
589
+ </tr>
590
+ <tr>
591
+ <td>69</td>
592
+ <td>All Other Diseases</td>
593
+ <td onClick={() => navigateToRegister('all_other_diseases')}>{moh705aData.all_other_diseases}</td>
594
+ </tr>
595
+ <tr>
596
+ <td>70</td>
597
+ <td>No. of New Attendances</td>
598
+ <td onClick={() => navigateToRegister('new_attendances')}>{moh705aData.new_attendances}</td>
599
+ </tr>
600
+ <tr>
601
+ <td>71</td>
602
+ <td>No of Re-Attendances</td>
603
+ <td onClick={() => navigateToRegister('re_attendances')}>{moh705aData.re_attendances}</td>
604
+ </tr>
605
+ <tr>
606
+ <td>72</td>
607
+ <td>Referrals From Other Health Facility</td>
608
+ <td onClick={() => navigateToRegister('referrals_from_other_health_facility')}>
609
+ {moh705aData.referrals_from_other_health_facility}
610
+ </td>
611
+ </tr>
612
+ <tr>
613
+ <td>73</td>
614
+ <td>Referrals To Other Health Facility</td>
615
+ <td onClick={() => navigateToRegister('referrals_to_other_health_facility')}>
616
+ {moh705aData.referrals_to_other_health_facility}
617
+ </td>
618
+ </tr>
619
+ <tr>
620
+ <td>74</td>
621
+ <td>Referrals From Community Unit</td>
622
+ <td onClick={() => navigateToRegister('referrals_from_community_unit')}>
623
+ {moh705aData.referrals_from_community_unit}
624
+ </td>
625
+ </tr>
626
+ <tr>
627
+ <td>74</td>
628
+ <td>Referrals To Community Unit</td>
629
+ <td onClick={() => navigateToRegister('referrals_to_community_unit')}>
630
+ {moh705aData.referrals_to_community_unit}
631
+ </td>
632
+ </tr>
633
+ </>,
634
+ moh705aData,
635
+ indicators,
636
+ navigateToRegister,
637
+ )}
638
+ </tbody>
639
+ </table>
640
+ </div>
641
+
642
+ <div className={styles.signOff}>
643
+ <span>
644
+ Compiled by:<span className={styles.line}>{compiledBy}</span>
645
+ </span>
646
+ <span>
647
+ Signature:
648
+ <span className={styles.line} />
649
+ </span>
650
+ <span>
651
+ Date:<span className={styles.shortLine}>{compiledOn}</span>
652
+ </span>
653
+ </div>
654
+ </ReportPage>
655
+ )}
656
+ </>
657
+ );
658
+ };
659
+
660
+ export default Moh705AComponent;