@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,659 @@
1
+ import React, { useState } from 'react';
2
+ import styles from './moh-705b.scss';
3
+ import { formatDate, useSession } from '@openmrs/esm-framework';
4
+ import dayjs from 'dayjs';
5
+ import { getMoh705b } from '../../resources/moh-705.resource';
6
+ import classNames from 'classnames';
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 { useNavigate } from 'react-router-dom';
11
+ import { ReportSkeleton } from '../../common/report-skeleton';
12
+ import { ReportPage } from '../../common/report-page';
13
+ import { renderDailyReportRows, reportDays } from '../../common/daily-summary-table';
14
+
15
+ const indicators = [
16
+ 'diarrhoea',
17
+ 'tuberculosis',
18
+ 'dysentry',
19
+ 'cholera',
20
+ 'meningococcal_meningitis',
21
+ 'other_meningitis',
22
+ 'tetanus',
23
+ 'poliomyelitis',
24
+ 'chicken_pox',
25
+ 'measles',
26
+ 'hepatitis',
27
+ 'mumps',
28
+ 'suspected_malaria',
29
+ 'confirmed_malaria',
30
+ 'malaria_in_pregnancy',
31
+ 'amoebiasis',
32
+ 'typhoid_fever',
33
+ 'sexually_transmitted_infections',
34
+ 'urinary_tract_infections',
35
+ 'bilharzia',
36
+ 'intestinal_worms',
37
+ 'malnutrition',
38
+ 'anaemia',
39
+ 'eye_infections',
40
+ 'ear_infections',
41
+ 'upper_respiratory_tract_infections',
42
+ 'asthma',
43
+ 'pneumonia',
44
+ 'other_lower_respiratory_tract_infections',
45
+ 'abortion',
46
+ 'puerperium_childbirth',
47
+ 'hypertention',
48
+ 'mental_disorders',
49
+ 'dental_disorders',
50
+ 'jiggers_infestation',
51
+ 'diseases_of_the_skin',
52
+ 'athritis',
53
+ 'poisoning',
54
+ 'road_traffic_injuries',
55
+ 'deaths_due_to_road_traffic_injuries',
56
+ 'other_injuries',
57
+ 'sexual_violence',
58
+ 'violence_related_injuries',
59
+ 'burns',
60
+ 'snake_bites',
61
+ 'dog_bites',
62
+ 'other_bites',
63
+ 'diabetes',
64
+ 'epilepsy',
65
+ 'brucellosis',
66
+ 'cardiovascular_conditions',
67
+ 'central_nervous_system_conditions',
68
+ 'overweight',
69
+ 'mascular_skeletal_conditions',
70
+ 'fistula',
71
+ 'suspected_neoplams_cancers',
72
+ 'physical_disability',
73
+ 'trypanosomiasis',
74
+ 'rift_valley_fever',
75
+ 'yellow_fever',
76
+ 'viral_haemorrhagic_fever',
77
+ 'chikungunya',
78
+ 'dengue_fever',
79
+ 'leishmaniasis',
80
+ 'cutaneous_leishmaniasis',
81
+ 'suspected_anthrax',
82
+ 'all_other_diseases',
83
+ 'tested_for_malaria',
84
+ 'no_of_first_attendances',
85
+ 're_attendances',
86
+ 'referrals_from_other_health_facility',
87
+ 'referrals_to_other_health_facility',
88
+ 'referrals_from_community_unit',
89
+ 'referrals_to_community_unit',
90
+ ];
91
+
92
+ const Moh705BComponent: React.FC = () => {
93
+ const [moh705bData, setMoh705bData] = useState<any>([]);
94
+ /* Only a report for the current location counts: after switching location the
95
+ old figures would otherwise be shown, and labelled, as the new location's. */
96
+ const { isForCurrentLocation, hasLocationChanged, markGenerated } = useGeneratedLocation();
97
+ const isReportGenerated = hasReportData(moh705bData) && isForCurrentLocation;
98
+ const [isLoading, setIsLoading] = useState<boolean>(false);
99
+ const [startDate, setStartDate] = useState<string>('');
100
+ const [endDate, setEndDate] = useState<string>('');
101
+
102
+ const session = useSession();
103
+ const locationUuids = session?.sessionLocation?.uuid;
104
+ const navigate = useNavigate();
105
+
106
+ /* Masthead and sign-off fill themselves in, as on the other reports */
107
+ const facility = session?.sessionLocation?.display ?? '';
108
+ const reportMonth = startDate ? dayjs(startDate).format('MMMM') : '';
109
+ const reportYear = startDate ? dayjs(startDate).format('YYYY') : '';
110
+ const compiledBy = session?.user?.person?.display ?? session?.user?.display ?? '';
111
+ const compiledOn = formatDate(new Date(), { mode: 'standard', time: false, noToday: true });
112
+
113
+ const fetchMoh705bReportData = async ({ startDate, endDate }: ReportPeriod) => {
114
+ setIsLoading(true);
115
+ setStartDate(startDate);
116
+ setEndDate(endDate);
117
+
118
+ const params = {
119
+ locationUuids: locationUuids || '',
120
+ startDate,
121
+ endDate,
122
+ };
123
+ try {
124
+ const data = await getMoh705b(params);
125
+ setMoh705bData(data.result ?? []);
126
+ markGenerated(params.locationUuids);
127
+ setIsLoading(false);
128
+ } catch (error) {
129
+ setIsLoading(false);
130
+ showReportError('the MOH-705B report', error);
131
+ }
132
+ };
133
+
134
+ /* A register's breadcrumb links back here with the period it was opened
135
+ for, so the report comes back showing the figures rather than the
136
+ placeholder. */
137
+ useRestorePeriod(fetchMoh705bReportData);
138
+
139
+ const navigateToRegister = (indicator: string, day?: number) => {
140
+ const selectedDate = day ? dayjs(startDate).startOf('month').date(day) : undefined;
141
+ if (selectedDate && day && day > dayjs(startDate).daysInMonth()) {
142
+ return;
143
+ }
144
+ const registerStartDate = selectedDate?.format('YYYY-MM-DD') ?? startDate;
145
+ const registerEndDate = selectedDate?.format('YYYY-MM-DD') ?? endDate;
146
+
147
+ navigate(
148
+ `/moh-204b?startDate=${registerStartDate}&endDate=${registerEndDate}&locationUuids=${locationUuids}&indicator=${indicator}&from=moh-705b`,
149
+ );
150
+ };
151
+
152
+ return (
153
+ <>
154
+ <ReportFiltersComponent
155
+ reportName="MOH-705B Report"
156
+ mode="both"
157
+ onGenerate={fetchMoh705bReportData}
158
+ isLoading={isLoading}
159
+ isReportGenerated={isReportGenerated}
160
+ generatedPeriod={{ startDate, endDate }}
161
+ />
162
+ {isLoading && <ReportSkeleton />}
163
+ {!isLoading && !isReportGenerated && (
164
+ <ReportPlaceholder reportName="MOH-705B" isLocationChanged={hasReportData(moh705bData) && hasLocationChanged} />
165
+ )}
166
+ {!isLoading && isReportGenerated && (
167
+ <ReportPage>
168
+ <div className={styles.mainTitleBox}>
169
+ <p className={styles.ministry}>Ministry of Health</p>
170
+ <h3 className={styles.reportTitle}>KHIS Aggregate</h3>
171
+ </div>
172
+
173
+ <p className={styles.location}>
174
+ <span>
175
+ Facility Name:<span className={styles.line}>{facility}</span>
176
+ </span>
177
+ <span>
178
+ County:
179
+ <span className={styles.line} />
180
+ </span>
181
+ <span>
182
+ Sub County:
183
+ <span className={styles.line} />
184
+ </span>
185
+ <span>
186
+ Month:<span className={styles.shortLine}>{reportMonth}</span>
187
+ </span>
188
+ <span>
189
+ Year:<span className={styles.shortLine}>{reportYear}</span>
190
+ </span>
191
+ </p>
192
+
193
+ <div className={styles.container}>
194
+ <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
195
+ <colgroup>
196
+ <col className={styles.numberColumn} />
197
+ <col className={styles.diseaseColumn} />
198
+ {reportDays.map((day) => (
199
+ <col className={styles.dayColumn} key={day} />
200
+ ))}
201
+ <col className={styles.totalColumn} />
202
+ </colgroup>
203
+ <thead>
204
+ <tr>
205
+ <th colSpan={2}>DISEASES (New Cases Only)</th>
206
+ {reportDays.map((day) => (
207
+ <th key={day}>{day}</th>
208
+ ))}
209
+ <th>Totals</th>
210
+ </tr>
211
+ </thead>
212
+ <tbody>
213
+ {renderDailyReportRows(
214
+ <>
215
+ <tr>
216
+ <td>1</td>
217
+ <td>Diarrhoea</td>
218
+ <td onClick={() => navigateToRegister('diarrhoea')}>{moh705bData.diarrhoea}</td>
219
+ </tr>
220
+ <tr>
221
+ <td>2</td>
222
+ <td>Tuberculosis</td>
223
+ <td onClick={() => navigateToRegister('tuberculosis')}>{moh705bData.tuberculosis}</td>
224
+ </tr>
225
+ <tr>
226
+ <td>3</td>
227
+ <td>Dysentry (Bloody diarrhoea)</td>
228
+ <td onClick={() => navigateToRegister('dysentry')}>{moh705bData.dysentry}</td>
229
+ </tr>
230
+ <tr>
231
+ <td>4</td>
232
+ <td>Cholera</td>
233
+ <td onClick={() => navigateToRegister('cholera')}>{moh705bData.cholera}</td>
234
+ </tr>
235
+ <tr>
236
+ <td>5</td>
237
+ <td>Meningococcal Meningitis</td>
238
+ <td onClick={() => navigateToRegister('meningococcal_meningitis')}>
239
+ {moh705bData.meningococcal_meningitis}
240
+ </td>
241
+ </tr>
242
+ <tr>
243
+ <td>6</td>
244
+ <td>Other Meningitis</td>
245
+ <td onClick={() => navigateToRegister('other_meningitis')}>{moh705bData.other_meningitis}</td>
246
+ </tr>
247
+ <tr>
248
+ <td>7</td>
249
+ <td>Tetanus</td>
250
+ <td onClick={() => navigateToRegister('tetanus')}>{moh705bData.tetanus}</td>
251
+ </tr>
252
+ <tr>
253
+ <td>8</td>
254
+ <td>Poliomyelitis (AFP)</td>
255
+ <td onClick={() => navigateToRegister('poliomyelitis')}>{moh705bData.poliomyelitis}</td>
256
+ </tr>
257
+ <tr>
258
+ <td>9</td>
259
+ <td>Chicken Pox</td>
260
+ <td onClick={() => navigateToRegister('chicken_pox')}>{moh705bData.chicken_pox}</td>
261
+ </tr>
262
+ <tr>
263
+ <td>10</td>
264
+ <td>Measles</td>
265
+ <td onClick={() => navigateToRegister('measles')}>{moh705bData.measles}</td>
266
+ </tr>
267
+ <tr>
268
+ <td>11</td>
269
+ <td>Hepatitis</td>
270
+ <td onClick={() => navigateToRegister('hepatitis')}>{moh705bData.hepatitis}</td>
271
+ </tr>
272
+ <tr>
273
+ <td>12</td>
274
+ <td>Mumps</td>
275
+ <td onClick={() => navigateToRegister('mumps')}>{moh705bData.mumps}</td>
276
+ </tr>
277
+ <tr>
278
+ <td>13</td>
279
+ <td>Suspected Malaria</td>
280
+ <td onClick={() => navigateToRegister('suspected_malaria')}>{moh705bData.suspected_malaria}</td>
281
+ </tr>
282
+ <tr>
283
+ <td>14</td>
284
+ <td>Confirmed Malaria</td>
285
+ <td onClick={() => navigateToRegister('confirmed_malaria')}>{moh705bData.confirmed_malaria}</td>
286
+ </tr>
287
+ <tr>
288
+ <td>15</td>
289
+ <td>Malaria in Pregnancy</td>
290
+ <td onClick={() => navigateToRegister('malaria_in_pregnancy')}>
291
+ {moh705bData.malaria_in_pregnancy}
292
+ </td>
293
+ </tr>
294
+ <tr>
295
+ <td>16</td>
296
+ <td>Amoebiasis</td>
297
+ <td onClick={() => navigateToRegister('amoebiasis')}>{moh705bData.amoebiasis}</td>
298
+ </tr>
299
+ <tr>
300
+ <td>17</td>
301
+ <td>Typhoid fever</td>
302
+ <td onClick={() => navigateToRegister('typhoid_fever')}>{moh705bData.typhoid_fever}</td>
303
+ </tr>
304
+ <tr>
305
+ <td>18</td>
306
+ <td>Sexually Transmitted Infections</td>
307
+ <td onClick={() => navigateToRegister('sexually_transmitted_infections')}>
308
+ {moh705bData.sexually_transmitted_infections}
309
+ </td>
310
+ </tr>
311
+ <tr>
312
+ <td>19</td>
313
+ <td>Urinary Tract Infections</td>
314
+ <td onClick={() => navigateToRegister('urinary_tract_infections')}>
315
+ {moh705bData.urinary_tract_infections}
316
+ </td>
317
+ </tr>
318
+ <tr>
319
+ <td>20</td>
320
+ <td>Bilharzia (Schistosomiasis)</td>
321
+ <td onClick={() => navigateToRegister('bilharzia')}>{moh705bData.bilharzia}</td>
322
+ </tr>
323
+ <tr>
324
+ <td>21</td>
325
+ <td>Intestinal worms</td>
326
+ <td onClick={() => navigateToRegister('intestinal_worms')}>{moh705bData.intestinal_worms}</td>
327
+ </tr>
328
+ <tr>
329
+ <td>22</td>
330
+ <td>Malnutrition</td>
331
+ <td onClick={() => navigateToRegister('malnutrition')}>{moh705bData.malnutrition}</td>
332
+ </tr>
333
+ <tr>
334
+ <td>23</td>
335
+ <td>Anaemia</td>
336
+ <td onClick={() => navigateToRegister('anaemia')}>{moh705bData.anaemia}</td>
337
+ </tr>
338
+ <tr>
339
+ <td>24</td>
340
+ <td>Eye Infections/Conditions</td>
341
+ <td onClick={() => navigateToRegister('eye_infections')}>{moh705bData.eye_infections}</td>
342
+ </tr>
343
+ <tr>
344
+ <td>25</td>
345
+ <td>Ear Infections/Conditions</td>
346
+ <td onClick={() => navigateToRegister('ear_infections')}>{moh705bData.ear_infections}</td>
347
+ </tr>
348
+ <tr>
349
+ <td>26</td>
350
+ <td>Upper Respiratory Tract Infections </td>
351
+ <td onClick={() => navigateToRegister('upper_respiratory_tract_infections')}>
352
+ {moh705bData.upper_respiratory_tract_infections}
353
+ </td>
354
+ </tr>
355
+ <tr>
356
+ <td>27</td>
357
+ <td>Asthma</td>
358
+ <td onClick={() => navigateToRegister('asthma')}>{moh705bData.asthma}</td>
359
+ </tr>
360
+ <tr>
361
+ <td>28</td>
362
+ <td>Pneumonia</td>
363
+ <td onClick={() => navigateToRegister('pneumonia')}>{moh705bData.pneumonia}</td>
364
+ </tr>
365
+ <tr>
366
+ <td>29</td>
367
+ <td>Other Lower Respiratory tract infections</td>
368
+ <td onClick={() => navigateToRegister('other_lower_respiratory_tract_infections')}>
369
+ {moh705bData.other_lower_respiratory_tract_infections}
370
+ </td>
371
+ </tr>
372
+ <tr>
373
+ <td>30</td>
374
+ <td>Abortion</td>
375
+ <td onClick={() => navigateToRegister('abortion')}>{moh705bData.abortion}</td>
376
+ </tr>
377
+ <tr>
378
+ <td>31</td>
379
+ <td>Dis. of Puerperium & Childbirth</td>
380
+ <td onClick={() => navigateToRegister('puerperium_childbirth')}>
381
+ {moh705bData.puerperium_childbirth}
382
+ </td>
383
+ </tr>
384
+ <tr>
385
+ <td>32</td>
386
+ <td>Hypertension</td>
387
+ <td onClick={() => navigateToRegister('hypertention')}>{moh705bData.hypertention}</td>
388
+ </tr>
389
+ <tr>
390
+ <td>33</td>
391
+ <td>Mental Disorders</td>
392
+ <td onClick={() => navigateToRegister('mental_disorders')}>{moh705bData.mental_disorders}</td>
393
+ </tr>
394
+ <tr>
395
+ <td>34</td>
396
+ <td>Dental Disorders</td>
397
+ <td onClick={() => navigateToRegister('dental_disorders')}>{moh705bData.dental_disorders}</td>
398
+ </tr>
399
+ <tr>
400
+ <td>35</td>
401
+ <td>Jiggers Infestation</td>
402
+ <td onClick={() => navigateToRegister('jiggers_infestation')}>
403
+ {moh705bData.jiggers_infestation}
404
+ </td>
405
+ </tr>
406
+ <tr>
407
+ <td>36</td>
408
+ <td>Disease of the skin</td>
409
+ <td onClick={() => navigateToRegister('diseases_of_the_skin')}>
410
+ {moh705bData.diseases_of_the_skin}
411
+ </td>
412
+ </tr>
413
+ <tr>
414
+ <td>37</td>
415
+ <td>Athritis, Joint pains etc.</td>
416
+ <td onClick={() => navigateToRegister('athritis')}>{moh705bData.athritis}</td>
417
+ </tr>
418
+ <tr>
419
+ <td>38</td>
420
+ <td>Poisoning</td>
421
+ <td onClick={() => navigateToRegister('poisoning')}>{moh705bData.poisoning}</td>
422
+ </tr>
423
+ <tr>
424
+ <td>39</td>
425
+ <td>Road Traffic Injuries</td>
426
+ <td onClick={() => navigateToRegister('road_traffic_injuries')}>
427
+ {moh705bData.road_traffic_injuries}
428
+ </td>
429
+ </tr>
430
+ <tr>
431
+ <td>40</td>
432
+ <td>Deaths due to Road Traffic Injuries</td>
433
+ <td onClick={() => navigateToRegister('deaths_due_to_road_traffic_injuries')}>
434
+ {moh705bData.deaths_due_to_road_traffic_injuries}
435
+ </td>
436
+ </tr>
437
+ <tr>
438
+ <td>41</td>
439
+ <td>Other Injuries</td>
440
+ <td onClick={() => navigateToRegister('other_injuries')}>{moh705bData.other_injuries}</td>
441
+ </tr>
442
+ <tr>
443
+ <td>42</td>
444
+ <td>Sexual Violence</td>
445
+ <td onClick={() => navigateToRegister('sexual_violence')}>{moh705bData.sexual_violence}</td>
446
+ </tr>
447
+ <tr>
448
+ <td>43</td>
449
+ <td>Violence related Injuries</td>
450
+ <td onClick={() => navigateToRegister('violence_related_injuries')}>
451
+ {moh705bData.violence_related_injuries}
452
+ </td>
453
+ </tr>
454
+ <tr>
455
+ <td>44</td>
456
+ <td>Burns</td>
457
+ <td onClick={() => navigateToRegister('burns')}>{moh705bData.burns}</td>
458
+ </tr>
459
+ <tr>
460
+ <td>45</td>
461
+ <td>Snake Bites</td>
462
+ <td onClick={() => navigateToRegister('snake_bites')}>{moh705bData.snake_bites}</td>
463
+ </tr>
464
+ <tr>
465
+ <td>46</td>
466
+ <td>Dog Bites</td>
467
+ <td onClick={() => navigateToRegister('dog_bites')}>{moh705bData.dog_bites}</td>
468
+ </tr>
469
+ <tr>
470
+ <td>47</td>
471
+ <td>Other Bites</td>
472
+ <td onClick={() => navigateToRegister('other_bites')}>{moh705bData.other_bites}</td>
473
+ </tr>
474
+ <tr>
475
+ <td>48</td>
476
+ <td>Diabetes</td>
477
+ <td onClick={() => navigateToRegister('diabetes')}>{moh705bData.diabetes}</td>
478
+ </tr>
479
+ <tr>
480
+ <td>49</td>
481
+ <td>Epilepsy</td>
482
+ <td onClick={() => navigateToRegister('epilepsy')}>{moh705bData.epilepsy}</td>
483
+ </tr>
484
+ <tr>
485
+ <td>50</td>
486
+ <td>Brucellosis</td>
487
+ <td onClick={() => navigateToRegister('brucellosis')}>{moh705bData.brucellosis}</td>
488
+ </tr>
489
+ <tr>
490
+ <td>51</td>
491
+ <td>Cardiovascular conditions</td>
492
+ <td onClick={() => navigateToRegister('cardiovascular_conditions')}>
493
+ {moh705bData.cardiovascular_conditions}
494
+ </td>
495
+ </tr>
496
+ <tr>
497
+ <td>52</td>
498
+ <td>Central Nervous System Conditions</td>
499
+ <td onClick={() => navigateToRegister('central_nervous_system_conditions')}>
500
+ {moh705bData.central_nervous_system_conditions}
501
+ </td>
502
+ </tr>
503
+ <tr>
504
+ <td>53</td>
505
+ <td>Overweight (BMI &gt; 25)</td>
506
+ <td onClick={() => navigateToRegister('overweight')}>{moh705bData.overweight}</td>
507
+ </tr>
508
+ <tr>
509
+ <td>54</td>
510
+ <td>Muscular skeletal conditions</td>
511
+ <td onClick={() => navigateToRegister('mascular_skeletal_conditions')}>
512
+ {moh705bData.mascular_skeletal_conditions}
513
+ </td>
514
+ </tr>
515
+ <tr>
516
+ <td>55</td>
517
+ <td>Fistula (Birth related)</td>
518
+ <td onClick={() => navigateToRegister('fistula')}>{moh705bData.fistula}</td>
519
+ </tr>
520
+ <tr>
521
+ <td>56</td>
522
+ <td>Suspected Neoplams/Cancers</td>
523
+ <td onClick={() => navigateToRegister('suspected_neoplams_cancers')}>
524
+ {moh705bData.suspected_neoplams_cancers}
525
+ </td>
526
+ </tr>
527
+ <tr>
528
+ <td>57</td>
529
+ <td>Physical Disability</td>
530
+ <td onClick={() => navigateToRegister('physical_disability')}>
531
+ {moh705bData.physical_disability}
532
+ </td>
533
+ </tr>
534
+ <tr>
535
+ <td>58</td>
536
+ <td>Trypanosomiasis</td>
537
+ <td onClick={() => navigateToRegister('trypanosomiasis')}>{moh705bData.trypanosomiasis}</td>
538
+ </tr>
539
+ <tr>
540
+ <td>59</td>
541
+ <td>Rift valley fever</td>
542
+ <td onClick={() => navigateToRegister('rift_valley_fever')}>{moh705bData.rift_valley_fever}</td>
543
+ </tr>
544
+ <tr>
545
+ <td>60</td>
546
+ <td>Yellow Fever</td>
547
+ <td onClick={() => navigateToRegister('yellow_fever')}>{moh705bData.yellow_fever}</td>
548
+ </tr>
549
+ <tr>
550
+ <td>61</td>
551
+ <td>Viral Haemorrhagic Fever</td>
552
+ <td onClick={() => navigateToRegister('viral_haemorrhagic_fever')}>
553
+ {moh705bData.viral_haemorrhagic_fever}
554
+ </td>
555
+ </tr>
556
+ <tr>
557
+ <td>62</td>
558
+ <td>Chikungunya</td>
559
+ <td onClick={() => navigateToRegister('chikungunya')}>{moh705bData.chikungunya}</td>
560
+ </tr>
561
+ <tr>
562
+ <td>63</td>
563
+ <td>Dengue fever</td>
564
+ <td onClick={() => navigateToRegister('dengue_fever')}>{moh705bData.dengue_fever}</td>
565
+ </tr>
566
+ <tr>
567
+ <td>64</td>
568
+ <td>Leishmaniasis(Kala-azar)</td>
569
+ <td onClick={() => navigateToRegister('leishmaniasis')}>{moh705bData.leishmaniasis}</td>
570
+ </tr>
571
+ <tr>
572
+ <td>65</td>
573
+ <td>Cuteneous leishmaniasis</td>
574
+ <td onClick={() => navigateToRegister('cutaneous_leishmaniasis')}>
575
+ {moh705bData.cutaneous_leishmaniasis}
576
+ </td>
577
+ </tr>
578
+ <tr>
579
+ <td>66</td>
580
+ <td>Suspected Anthrax</td>
581
+ <td onClick={() => navigateToRegister('suspected_anthrax')}>{moh705bData.suspected_anthrax}</td>
582
+ </tr>
583
+ <tr>
584
+ <td>67</td>
585
+ <td>ALL OTHER DISEASES</td>
586
+ <td onClick={() => navigateToRegister('all_other_diseases')}>{moh705bData.all_other_diseases}</td>
587
+ </tr>
588
+ <tr>
589
+ <td>68</td>
590
+ <td>Tested for Malaria</td>
591
+ <td onClick={() => navigateToRegister('tested_for_malaria')}>{moh705bData.tested_for_malaria}</td>
592
+ </tr>
593
+ <tr>
594
+ <td>69</td>
595
+ <td>NO. OF FIRST ATTENDANCES</td>
596
+ <td onClick={() => navigateToRegister('no_of_first_attendances')}>
597
+ {moh705bData.no_of_first_attendances}
598
+ </td>
599
+ </tr>
600
+ <tr>
601
+ <td>70</td>
602
+ <td>RE-ATTENDANCES</td>
603
+ <td onClick={() => navigateToRegister('re_attendances')}>{moh705bData.re_attendances}</td>
604
+ </tr>
605
+ <tr>
606
+ <td>71</td>
607
+ <td>Referrals from other health facilities</td>
608
+ <td onClick={() => navigateToRegister('referrals_from_other_health_facility')}>
609
+ {moh705bData.referrals_from_other_health_facility}
610
+ </td>
611
+ </tr>
612
+ <tr>
613
+ <td>72</td>
614
+ <td>Referrals to other health facilities</td>
615
+ <td onClick={() => navigateToRegister('referrals_to_other_health_facility')}>
616
+ {moh705bData.referrals_to_other_health_facility}
617
+ </td>
618
+ </tr>
619
+ <tr>
620
+ <td>73</td>
621
+ <td>Referrals from community unit</td>
622
+ <td onClick={() => navigateToRegister('referrals_from_community_unit')}>
623
+ {moh705bData.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
+ {moh705bData.referrals_to_community_unit}
631
+ </td>
632
+ </tr>
633
+ </>,
634
+ moh705bData,
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
+ export default Moh705BComponent;