@ampath/esm-reports-app 1.0.0-next.7 → 1.0.0-next.71

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