@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
@@ -1,40 +1,70 @@
1
- import React, { useState } from 'react';
2
- import ReportFiltersComponent from '../../common/report-filters/report-filters.component';
1
+ import React, { useEffect, useState } from 'react';
2
+ import { ReportFiltersComponent, type ReportPeriod } from '../../common/report-filters';
3
+ import { showReportError } from '../../common/report-error';
4
+ import { hasReportData, ReportPlaceholder, useGeneratedLocation } from '../../common/report-placeholder';
3
5
 
4
6
  import styles from './moh717.scss';
5
7
  import classNames from 'classnames';
6
8
  import { useSession } from '@openmrs/esm-framework';
9
+ import { useLocationDetails } from '../../common/report-header';
10
+ import dayjs from 'dayjs';
7
11
  import { getMoh717 } from '../../resources/moh-717.resource';
8
- import { Loading } from '@carbon/react';
12
+ import OutpatientComponent from './sections/outpatient.component';
13
+ import InpatientComponent from './sections/inpatient.component';
14
+ import MaternityComponent from './sections/maternity.component';
15
+ import OperationsComponent from './sections/operations.component';
16
+ import OrthopaedicTraumaComponent from './sections/orthopaedic-trauma.component';
17
+ import SpecialServicesComponent from './sections/special-services.component';
18
+ import PharmacyComponent from './sections/pharmacy.component';
19
+ import MortuaryComponent from './sections/mortuary.component';
20
+ import MedicalRecordsComponent from './sections/medical-records.component';
21
+ import FinanceComponent from './sections/finance.component';
22
+ import PreparedbyComponent from './sections/preparedby.component';
23
+ import { ReportSkeleton } from '../../common/report-skeleton';
24
+ import { ReportPage } from '../../common/report-page';
9
25
 
10
26
  const Moh717Report: React.FC = () => {
11
- let errorMessage: string = '';
12
- const [moh717ReportData, setMoh717ReportData] = useState<any>([]);
27
+ const [moh717ReportData, setMoh717ReportData] = useState<any>(() => {
28
+ const saved = sessionStorage.getItem('moh717ReportData');
29
+ return saved ? JSON.parse(saved) : [];
30
+ });
31
+ /* Only a report for the current location counts: after switching location the
32
+ old figures would otherwise be shown, and labelled, as the new location's. */
33
+ const { isForCurrentLocation, hasLocationChanged, markGenerated } = useGeneratedLocation('moh717Location');
34
+ const isReportGenerated = hasReportData(moh717ReportData) && isForCurrentLocation;
13
35
  const [isLoading, setIsLoading] = useState<boolean>(false);
36
+ const [startDate, setStartDate] = useState<string>(() => {
37
+ return sessionStorage.getItem('moh717StartDate') || '';
38
+ });
14
39
 
15
- const session = useSession();
16
- const locationUuid = session?.sessionLocation?.uuid;
17
- const fetchMoh717ReportData = async (filters: { startDate?: string; endDate?: string; month?: string }) => {
18
- setIsLoading(true);
19
- let startDate = filters.startDate;
20
- let endDate = filters.endDate;
40
+ const [endDate, setEndDate] = useState<string>(() => {
41
+ return sessionStorage.getItem('moh717EndDate') || '';
42
+ });
43
+ useEffect(() => {
44
+ sessionStorage.setItem('moh717ReportData', JSON.stringify(moh717ReportData));
45
+ }, [moh717ReportData]);
21
46
 
22
- if (filters.month) {
23
- const [year, monthIndex] = filters.month.split('-').map(Number);
47
+ useEffect(() => {
48
+ sessionStorage.setItem('moh717StartDate', startDate);
49
+ }, [startDate]);
24
50
 
25
- const start = new Date(year, monthIndex - 1, 1);
26
- const end = new Date(year, monthIndex, 0);
51
+ useEffect(() => {
52
+ sessionStorage.setItem('moh717EndDate', endDate);
53
+ }, [endDate]);
27
54
 
28
- const formatLocalDate = (d: Date) => {
29
- const year = d.getFullYear();
30
- const month = String(d.getMonth() + 1).padStart(2, '0');
31
- const day = String(d.getDate()).padStart(2, '0');
32
- return `${year}-${month}-${day}`;
33
- };
55
+ const session = useSession();
56
+ const locationUuid = session?.sessionLocation?.uuid;
34
57
 
35
- startDate = formatLocalDate(start);
36
- endDate = formatLocalDate(end);
37
- }
58
+ /* The masthead fills itself in, as on the other reports */
59
+ const facility = session?.sessionLocation?.display ?? '';
60
+ const { county, subCounty, kmhflCode } = useLocationDetails();
61
+ const reportMonth = startDate ? dayjs(startDate).format('MMMM') : '';
62
+ const reportYear = startDate ? dayjs(startDate).format('YYYY') : '';
63
+
64
+ const fetchMoh717ReportData = async ({ startDate, endDate }: ReportPeriod) => {
65
+ setIsLoading(true);
66
+ setStartDate(startDate);
67
+ setEndDate(endDate);
38
68
 
39
69
  const params = {
40
70
  locationUuids: locationUuid || '',
@@ -45,979 +75,113 @@ const Moh717Report: React.FC = () => {
45
75
  const data = await getMoh717(params);
46
76
  const flatData = Object.assign({}, ...data.result);
47
77
  setMoh717ReportData(flatData);
78
+ markGenerated(params.locationUuids);
48
79
  setIsLoading(false);
49
80
  } catch (error) {
50
81
  setIsLoading(false);
51
- errorMessage = error instanceof Error ? error.message : String(error);
52
- throw new Error(`Failed to fetch MOH-717 report data: ${error instanceof Error ? error.message : String(error)}`);
82
+ showReportError('the MOH-717 report', error);
53
83
  }
54
84
  };
55
85
  return (
56
86
  <>
57
87
  <ReportFiltersComponent
58
88
  reportName="MOH-717 Report"
59
- mode="monthly"
89
+ mode="both"
60
90
  onGenerate={fetchMoh717ReportData}
61
- isLoding={isLoading}
91
+ isLoading={isLoading}
92
+ isReportGenerated={isReportGenerated}
93
+ generatedPeriod={{ startDate, endDate }}
62
94
  />
63
- {isLoading && <Loading description="Fetching data...." />}
64
- {!isLoading && errorMessage && (
65
- <div>
66
- <a href="#" className="close" data-dismiss="alert">
67
- &times;
68
- </a>
69
- <h4>
70
- <strong>
71
- <span className="glyphicon glyphicon-warning-sign"></span>{' '}
72
- </strong>{' '}
73
- An error occurred while trying to load the report. Please try again.
74
- </h4>
75
- <p>
76
- <small>{errorMessage}</small>
77
- </p>
78
- </div>
95
+ {isLoading && <ReportSkeleton />}
96
+ {!isLoading && !isReportGenerated && (
97
+ <ReportPlaceholder
98
+ reportName="MOH-717"
99
+ isLocationChanged={hasReportData(moh717ReportData) && hasLocationChanged}
100
+ />
101
+ )}
102
+ {!isLoading && isReportGenerated && (
103
+ <ReportPage>
104
+ <div className={styles.headerContainer}>
105
+ <div className={styles.mainTitleBox}>
106
+ <h2 className={styles.mainTitle}>Ministry of Health</h2>
107
+ <h3 className={styles.subTitle}>Monthly Service Workload Report for Health Facilities</h3>
108
+ <div className={styles.locationContainer}>
109
+ <span>
110
+ County: <span className={styles.shortLine}>{county ?? ''}</span>
111
+ </span>
112
+ <span>
113
+ Sub-County: <span className={styles.shortLine}>{subCounty ?? ''}</span>
114
+ </span>
115
+ <span>
116
+ Health Facility: <span className={styles.line}>{facility}</span>
117
+ </span>
118
+ </div>
119
+ <div className={styles.locationContainer}>
120
+ <span>
121
+ Month: <span className={styles.shortLine}>{reportMonth}</span>
122
+ </span>
123
+ <span>
124
+ Year: <span className={styles.shortLine}>{reportYear}</span>
125
+ </span>
126
+ <span>
127
+ KMHFL Code: <span className={styles.shortLine}>{kmhflCode ?? ''}</span>
128
+ </span>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ <div className={styles.container}>
133
+ <div className={styles.section}>
134
+ <OutpatientComponent
135
+ moh717ReportData={moh717ReportData}
136
+ startDate={startDate}
137
+ endDate={endDate}
138
+ locationUuids={locationUuid!}
139
+ />
140
+ </div>
141
+ <div className={styles.section}>
142
+ <InpatientComponent moh717ReportData={moh717ReportData} />
143
+ </div>
144
+ <div className={styles.sectionContainer}>
145
+ <div className={styles.left}>
146
+ <MaternityComponent
147
+ moh717ReportData={moh717ReportData}
148
+ startDate={startDate}
149
+ endDate={endDate}
150
+ locationUuids={locationUuid!}
151
+ />
152
+ </div>
153
+ <div className={styles.right}>
154
+ <div className={styles.section}>
155
+ <OperationsComponent moh717ReportData={moh717ReportData} />
156
+ </div>
157
+ <div className={styles.section}>
158
+ <OrthopaedicTraumaComponent moh717ReportData={moh717ReportData} />
159
+ </div>
160
+ </div>
161
+ </div>
162
+ <div className={styles.section}>
163
+ <SpecialServicesComponent moh717ReportData={moh717ReportData} />
164
+ </div>
165
+ <div className={styles.sectionTwoContainer}>
166
+ <div className={styles.one}>
167
+ <PharmacyComponent moh717ReportData={moh717ReportData} />
168
+ </div>
169
+ <div className={styles.two}>
170
+ <MortuaryComponent moh717ReportData={moh717ReportData} />
171
+ </div>
172
+ <div className={styles.three}>
173
+ <MedicalRecordsComponent moh717ReportData={moh717ReportData} />
174
+ </div>
175
+ </div>
176
+ <div className={styles.section}>
177
+ <FinanceComponent moh717ReportData={moh717ReportData} />
178
+ </div>
179
+ <div className={styles.preparedByContainer}>
180
+ <PreparedbyComponent />
181
+ </div>
182
+ </div>
183
+ </ReportPage>
79
184
  )}
80
- <h3>KHIS Aggregate</h3>
81
- <div className={styles.container}>
82
- <p className={styles.title}>General outpatient (Filter Clinic)</p>
83
- <p className={styles.sectionTitle}>New clientsRe-visits</p>
84
- <div className={styles.tableContainer}>
85
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
86
- <thead>
87
- <tr>
88
- <th></th>
89
- <th>New clients</th>
90
- <th>Re-visits</th>
91
- </tr>
92
- </thead>
93
- <tbody>
94
- <tr>
95
- <td>OPD attendance &gt;5yrs Male</td>
96
- <td>{moh717ReportData.opd_attendance_greater_5yrs_male_new}</td>
97
- <td>{moh717ReportData.opd_attendance_greater_5yrs_male_revisit}</td>
98
- </tr>
99
- <tr>
100
- <td>OPD attendance &gt;5yrs Female</td>
101
- <td>{moh717ReportData.opd_attendance_greater_5yrs_female_new}</td>
102
- <td>{moh717ReportData.opd_attendance_greater_5yrs_female_revisit}</td>
103
- </tr>
104
- <tr>
105
- <td>OPD attendance &lt;5yrs Male</td>
106
- <td>{moh717ReportData.opd_attendance_less_5yrs_male_new}</td>
107
- <td>{moh717ReportData.opd_attendance_less_5yrs_male_revisit}</td>
108
- </tr>
109
- <tr>
110
- <td>OPD attendance &lt;5yrs Female</td>
111
- <td>{moh717ReportData.opd_attendance_less_5yrs_female_new}</td>
112
- <td>{moh717ReportData.opd_attendance_less_5yrs_female_revisit}</td>
113
- </tr>
114
- <tr>
115
- <td>Over 60 years</td>
116
- <td>{moh717ReportData.over_60_years_new}</td>
117
- <td>{moh717ReportData.over_60_years_revisit}</td>
118
- </tr>
119
- <tr>
120
- <td>OPD Casualty attendance</td>
121
- <td>{moh717ReportData.casualty_attendance_new}</td>
122
- <td>{moh717ReportData.casualty_attendance_revisit}</td>
123
- </tr>
124
- </tbody>
125
- </table>
126
- </div>
127
- </div>
128
- <div className={styles.container}>
129
- <p className={styles.title}>Special clinics</p>
130
- <p className={styles.sectionTitle}>New clientsRe-visits</p>
131
- <div className={styles.tableContainer}>
132
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
133
- <thead>
134
- <tr>
135
- <th></th>
136
- <th>New clients</th>
137
- <th>Re-visits</th>
138
- </tr>
139
- </thead>
140
- <tbody>
141
- <tr>
142
- <td>ENT Clinic Attendance</td>
143
- <td>{moh717ReportData.ent_clinic_attendance_new}</td>
144
- <td>{moh717ReportData.ent_clinic_attendance_revisit}</td>
145
- </tr>
146
- <tr>
147
- <td>Eye Clinic Attendance</td>
148
- <td>{moh717ReportData.eye_clinic_attendance_new}</td>
149
- <td>{moh717ReportData.eye_clinic_attendance_revisit}</td>
150
- </tr>
151
- <tr>
152
- <td>TB and Leprosy attendance</td>
153
- <td>{moh717ReportData.tb_and_leprosy_attendance_new}</td>
154
- <td>{moh717ReportData.tb_and_leprosy_attendance_revisit}</td>
155
- </tr>
156
- <tr>
157
- <td>Comprehensive Care Clinic (CCC)</td>
158
- <td>{moh717ReportData.ccc_new}</td>
159
- <td>{moh717ReportData.ccc_revisit}</td>
160
- </tr>
161
- <tr>
162
- <td>Psychiatry Attendance</td>
163
- <td>{moh717ReportData.psychiatry_attendance_new}</td>
164
- <td>{moh717ReportData.psychiatry_attendance_revisit}</td>
165
- </tr>
166
- <tr>
167
- <td>Orthopaedic Clinic Attendance</td>
168
- <td>{moh717ReportData.orthopaedic_new}</td>
169
- <td>{moh717ReportData.orthopaedic_revisit}</td>
170
- </tr>
171
- <tr>
172
- <td>Occupational Therapy Attendance</td>
173
- <td>{moh717ReportData.occupational_therapy_new}</td>
174
- <td>{moh717ReportData.occupational_therapy_revisit}</td>
175
- </tr>
176
- <tr>
177
- <td>Physiotherapy Attendance</td>
178
- <td>{moh717ReportData.physiotherapy_new}</td>
179
- <td>{moh717ReportData.physiotherapy_revisit}</td>
180
- </tr>
181
- <tr>
182
- <td>Medical Attendance</td>
183
- <td>{moh717ReportData.medical_attendance_new}</td>
184
- <td>{moh717ReportData.medical_attendance_revisit}</td>
185
- </tr>
186
- <tr>
187
- <td>Surgical Clinics attendances</td>
188
- <td>{moh717ReportData.surgical_clinics_new}</td>
189
- <td>{moh717ReportData.surgical_clinics_revisit}</td>
190
- </tr>
191
- <tr>
192
- <td>Paediatrics attendances</td>
193
- <td>{moh717ReportData.paediatrics_attendance_new}</td>
194
- <td>{moh717ReportData.paediatrics_attendance_revisit}</td>
195
- </tr>
196
- <tr>
197
- <td>Obstetrics/Gynaecology/Attendance</td>
198
- <td>{moh717ReportData.obstetrics_gynaecology_new}</td>
199
- <td>{moh717ReportData.obstetrics_gynaecology_revisit}</td>
200
- </tr>
201
- <tr>
202
- <td>Nutrition Clinic</td>
203
- <td>{moh717ReportData.nutrition_new}</td>
204
- <td>{moh717ReportData.nutrition_revisit}</td>
205
- </tr>
206
- <tr>
207
- <td>Oncology Clinic</td>
208
- <td>{moh717ReportData.oncology_new}</td>
209
- <td>{moh717ReportData.oncology_revisit}</td>
210
- </tr>
211
- <tr>
212
- <td>Renal Clinic</td>
213
- <td>{moh717ReportData.renal_new}</td>
214
- <td>{moh717ReportData.renal_revisit}</td>
215
- </tr>
216
- <tr>
217
- <td>All other special clinics attendance</td>
218
- <td>{moh717ReportData.other_special_clinics_new}</td>
219
- <td>{moh717ReportData.other_special_clinics_revisit}</td>
220
- </tr>
221
- </tbody>
222
- </table>
223
- </div>
224
- </div>
225
- <div className={styles.container}>
226
- <p className={styles.title}>MCH/FP clients</p>
227
- <p className={styles.sectionTitle}>New clientsRe-visits</p>
228
- <div className={styles.tableContainer}>
229
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
230
- <thead>
231
- <tr>
232
- <th></th>
233
- <th>New clients</th>
234
- <th>Re-visits</th>
235
- </tr>
236
- </thead>
237
- <tbody>
238
- <tr>
239
- <td>CWC Attendance</td>
240
- <td>{moh717ReportData.cwc_attendance_new}</td>
241
- <td>{moh717ReportData.cwc_attendance_revisit}</td>
242
- </tr>
243
- <tr>
244
- <td>ANC Attendance</td>
245
- <td>{moh717ReportData.anc_new}</td>
246
- <td>{moh717ReportData.anc_revisit}</td>
247
- </tr>
248
- <tr>
249
- <td>PNC Attendance</td>
250
- <td>{moh717ReportData.pnc_new}</td>
251
- <td>{moh717ReportData.pnc_revisit}</td>
252
- </tr>
253
- <tr>
254
- <td>FP Attendance</td>
255
- <td>{moh717ReportData.fp_attendance_new}</td>
256
- <td>{moh717ReportData.fp_attendance_revisit}</td>
257
- </tr>
258
- </tbody>
259
- </table>
260
- </div>
261
- </div>
262
- <div className={styles.container}>
263
- <p className={styles.title}>Dental Clinic</p>
264
- <p className={styles.sectionTitle}>New clientsRe-visits</p>
265
- <div className={styles.tableContainer}>
266
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
267
- <thead>
268
- <tr>
269
- <th></th>
270
- <th>New clients</th>
271
- <th>Re-visits</th>
272
- </tr>
273
- </thead>
274
- <tbody>
275
- <tr>
276
- <td>Dental clinic attendance (Excluding fillings and extractios)</td>
277
- <td>{moh717ReportData.dental_attendance_ex_fillings_extractions_new}</td>
278
- <td>{moh717ReportData.dental_attendance_ex_fillings_extractions_revisit}</td>
279
- </tr>
280
- <tr>
281
- <td>Dental Fillings Attendance</td>
282
- <td>{moh717ReportData.dental_fillings_new}</td>
283
- <td>{moh717ReportData.dental_fillings_revisit}</td>
284
- </tr>
285
- <tr>
286
- <td>Dental Extractions Attendance</td>
287
- <td>{moh717ReportData.dental_extractions_new}</td>
288
- <td>{moh717ReportData.dental_extractions_revisit}</td>
289
- </tr>
290
- </tbody>
291
- </table>
292
- </div>
293
- </div>
294
- <div className={styles.container}>
295
- <p className={styles.title}>Other Services</p>
296
- <p className={styles.sectionTitle}>default</p>
297
- <div className={styles.tableContainer}>
298
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
299
- <thead>
300
- <tr>
301
- <th></th>
302
- <th>Value</th>
303
- </tr>
304
- </thead>
305
- <tbody>
306
- <tr>
307
- <td>Medical Examinations done except P3</td>
308
- <td>{moh717ReportData.medical_examinations_except_p3}</td>
309
- </tr>
310
- <tr>
311
- <td>Medical Reports Issued (INC. p3, compensation, insuarnce)</td>
312
- <td>{moh717ReportData.opd_medical_reports}</td>
313
- </tr>
314
- <tr>
315
- <td>OPD Dressing Done</td>
316
- <td>{moh717ReportData.opd_dressing_done}</td>
317
- </tr>
318
- <tr>
319
- <td>OPD Removal of Stitches</td>
320
- <td>{moh717ReportData.opd_removal_of_stitches}</td>
321
- </tr>
322
- <tr>
323
- <td>OPD injections Given</td>
324
- <td>{moh717ReportData.opd_injections_given}</td>
325
- </tr>
326
- <tr>
327
- <td>OPD Stitching Done</td>
328
- <td>{moh717ReportData.opd_stitching}</td>
329
- </tr>
330
- </tbody>
331
- </table>
332
- </div>
333
- </div>
334
- <div className={styles.container}>
335
- <p className={styles.title}>Inpatient Services</p>
336
- <p className={styles.sectionTitle}>
337
- MEDICALSURGICALOBST/FYNPAEDIATRICSMATERNITYEYENURSERY/NEBORNORTHOPAEDICISOLATIONAMENITYPSYCHIATRYICURENALOTHER
338
- </p>
339
- <div className={styles.tableContainer}>
340
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
341
- <thead>
342
- <tr>
343
- <th></th>
344
- <th>MEDICAL</th>
345
- <th>SURGICAL</th>
346
- <th>OBST/GYN</th>
347
- <th>PAEDIATRICS</th>
348
- <th>MATERNITY</th>
349
- <th>EYE</th>
350
- <th>NURSERY/NEWBORN</th>
351
- <th>ORTHOPAEDIC</th>
352
- </tr>
353
- </thead>
354
- <tbody>
355
- <tr>
356
- <td>Inpatient Discharges</td>
357
- <td>{moh717ReportData.medical_discharges}</td>
358
- <td>{moh717ReportData.surgical_discharges}</td>
359
- <td>{moh717ReportData.obst_gyn_discharges}</td>
360
- <td>{moh717ReportData.paediatrics_discharges}</td>
361
- <td>{moh717ReportData.maternity_discharges}</td>
362
- <td>{moh717ReportData.eye_discharges}</td>
363
- <td>{moh717ReportData.nursery_newborn_discharges}</td>
364
- <td>{moh717ReportData.orthopaedic_discharges}</td>
365
- </tr>
366
- <tr>
367
- <td>Inpatient Deaths</td>
368
- <td>{moh717ReportData.medical_deaths}</td>
369
- <td>{moh717ReportData.surgical_deaths}</td>
370
- <td>{moh717ReportData.obst_gyn_deaths}</td>
371
- <td>{moh717ReportData.paediatrics_deaths}</td>
372
- <td>{moh717ReportData.maternity_deaths}</td>
373
- <td>{moh717ReportData.eye_deaths}</td>
374
- <td>{moh717ReportData.nursery_newborn_deaths}</td>
375
- <td>{moh717ReportData.orthopaedic_deaths}</td>
376
- </tr>
377
- <tr>
378
- <td>Deaths due to confirmed Malaria</td>
379
- <td>{moh717ReportData.medical_deaths_malaria}</td>
380
- <td>{moh717ReportData.surgical_deaths_malaria}</td>
381
- <td>{moh717ReportData.obst_gyn_deaths_malaria}</td>
382
- <td>{moh717ReportData.paediatrics_deaths_malaria}</td>
383
- <td>{moh717ReportData.maternity_deaths_malaria}</td>
384
- <td>{moh717ReportData.eye_deaths_malaria}</td>
385
- <td>{moh717ReportData.nursery_newborn_deaths_malaria}</td>
386
- <td>{moh717ReportData.orthopaedic_deaths_malaria}</td>
387
- </tr>
388
- <tr>
389
- <td>Inpatient Abscondees</td>
390
- <td>{moh717ReportData.medical_abscondees}</td>
391
- <td>{moh717ReportData.surgical_abscondees}</td>
392
- <td>{moh717ReportData.obst_gyn_abscondees}</td>
393
- <td>{moh717ReportData.paediatrics_abscondees}</td>
394
- <td>{moh717ReportData.maternity_abscondees}</td>
395
- <td>{moh717ReportData.eye_abscondees}</td>
396
- <td>{moh717ReportData.nursery_newborn_abscondees}</td>
397
- <td>{moh717ReportData.orthopaedic_abscondees}</td>
398
- </tr>
399
- <tr>
400
- <td>Referrals Out of the Facility</td>
401
- <td>{moh717ReportData.medical_referrals_out_of_facility}</td>
402
- <td>{moh717ReportData.surgical_referrals_out_of_facility}</td>
403
- <td>{moh717ReportData.obst_gyn_referrals_out_of_facility}</td>
404
- <td>{moh717ReportData.paediatrics_referrals_out_of_facility}</td>
405
- <td>{moh717ReportData.maternity_referrals_out_of_facility}</td>
406
- <td>{moh717ReportData.eye_referrals_out_of_facility}</td>
407
- <td>{moh717ReportData.nursery_newborn_referrals_out_of_facility}</td>
408
- <td>{moh717ReportData.orthopaedic_referrals_out_of_facility}</td>
409
- </tr>
410
- <tr>
411
- <td>Admission 0-28 days</td>
412
- <td>{moh717ReportData.medical_admissions_0_28_days}</td>
413
- <td>{moh717ReportData.surgical_admissions_0_28_days}</td>
414
- <td>{moh717ReportData.obst_gyn_admissions_0_28_days}</td>
415
- <td>{moh717ReportData.paediatrics_admissions_0_28_days}</td>
416
- <td>{moh717ReportData.maternity_admissions_0_28_days}</td>
417
- <td>{moh717ReportData.eye_admissions_0_28_days}</td>
418
- <td>{moh717ReportData.nursery_newborn_admissions_0_28_days}</td>
419
- <td>{moh717ReportData.orthopaedic_admissions_0_28_days}</td>
420
- </tr>
421
- <tr>
422
- <td>Inaptient Admissions Under Five</td>
423
- <td>{moh717ReportData.medical_admissions_under_five}</td>
424
- <td>{moh717ReportData.surgical_admissions_under_five}</td>
425
- <td>{moh717ReportData.obst_gyn_admissions_under_five}</td>
426
- <td>{moh717ReportData.paediatrics_admissions_under_five}</td>
427
- <td>{moh717ReportData.maternity_admissions_under_five}</td>
428
- <td>{moh717ReportData.eye_admissions_under_five}</td>
429
- <td>{moh717ReportData.nursery_newborn_admissions_under_five}</td>
430
- <td>{moh717ReportData.orthopaedic_admissions_under_five}</td>
431
- </tr>
432
- <tr>
433
- <td>Inaptient Admissions Over Five</td>
434
- <td>{moh717ReportData.medical_admissions_over_five}</td>
435
- <td>{moh717ReportData.surgical_admissions_over_five}</td>
436
- <td>{moh717ReportData.obst_gyn_admissions_over_five}</td>
437
- <td>{moh717ReportData.paediatrics_admissions_over_five}</td>
438
- <td>{moh717ReportData.maternity_admissions_over_five}</td>
439
- <td>{moh717ReportData.eye_admissions_over_five}</td>
440
- <td>{moh717ReportData.nursery_newborn_admissions_over_five}</td>
441
- <td>{moh717ReportData.orthopaedic_admissions_over_five}</td>
442
- </tr>
443
- <tr>
444
- <td>Under 5's admitted with severe Malaria</td>
445
- <td>{moh717ReportData.medical_admissions_under_five_severe_malaria}</td>
446
- <td>{moh717ReportData.surgical_admissions_under_five_severe_malaria}</td>
447
- <td>{moh717ReportData.obst_gyn_admissions_under_five_severe_malaria}</td>
448
- <td>{moh717ReportData.paediatrics_admissions_under_five_severe_malaria}</td>
449
- <td>{moh717ReportData.maternity_admissions_under_five_severe_malaria}</td>
450
- <td>{moh717ReportData.eye_admissions_under_five_severe_malaria}</td>
451
- <td>{moh717ReportData.nursery_newborn_admissions_under_five_severe_malaria}</td>
452
- <td>{moh717ReportData.orthopaedic_admissions_under_five_severe_malaria}</td>
453
- </tr>
454
- <tr>
455
- <td>Over 5's admitted with severe Malaria</td>
456
- <td>{moh717ReportData.medical_admissions_over_five_severe_malaria}</td>
457
- <td>{moh717ReportData.surgical_admissions_over_five_severe_malaria}</td>
458
- <td>{moh717ReportData.obst_gyn_admissions_over_five_severe_malaria}</td>
459
- <td>{moh717ReportData.paediatrics_admissions_over_five_severe_malaria}</td>
460
- <td>{moh717ReportData.maternity_admissions_over_five_severe_malaria}</td>
461
- <td>{moh717ReportData.eye_admissions_over_five_severe_malaria}</td>
462
- <td>{moh717ReportData.nursery_newborn_admissions_over_five_severe_malaria}</td>
463
- <td>{moh717ReportData.orthopaedic_admissions_over_five_severe_malaria}</td>
464
- </tr>
465
- <tr>
466
- <td>Inpatient Paroles</td>
467
- <td>{moh717ReportData.medical_paroles}</td>
468
- <td>{moh717ReportData.surgical_paroles}</td>
469
- <td>{moh717ReportData.obst_gyn_paroles}</td>
470
- <td>{moh717ReportData.paediatrics_paroles}</td>
471
- <td>{moh717ReportData.maternity_paroles}</td>
472
- <td>{moh717ReportData.eye_paroles}</td>
473
- <td>{moh717ReportData.nursery_newborn_paroles}</td>
474
- <td>{moh717ReportData.orthopaedic_paroles}</td>
475
- </tr>
476
- <tr>
477
- <td>Inpatient Occupied Bed Days -NHIF Members</td>
478
- <td>{moh717ReportData.medical_occupied_bed_days_sha_members}</td>
479
- <td>{moh717ReportData.surgical_occupied_bed_days_sha_members}</td>
480
- <td>{moh717ReportData.obst_gyn_occupied_bed_days_sha_members}</td>
481
- <td>{moh717ReportData.paediatrics_occupied_bed_days_sha_members}</td>
482
- <td>{moh717ReportData.maternity_occupied_bed_days_sha_members}</td>
483
- <td>{moh717ReportData.eye_occupied_bed_days_sha_members}</td>
484
- <td>{moh717ReportData.nursery_newborn_occupied_bed_days_sha_members}</td>
485
- <td>{moh717ReportData.orthopaedic_occupied_bed_days_sha_members}</td>
486
- </tr>
487
- <tr>
488
- <td>Inpatient Occupied Bed Days -NON-NHIF Members</td>
489
- <td>{moh717ReportData.medical_occupied_bed_days_non_sha_members}</td>
490
- <td>{moh717ReportData.surgical_occupied_bed_days_non_sha_members}</td>
491
- <td>{moh717ReportData.obst_gyn_occupied_bed_days_non_sha_members}</td>
492
- <td>{moh717ReportData.paediatrics_occupied_bed_days_non_sha_members}</td>
493
- <td>{moh717ReportData.maternity_occupied_bed_days_non_sha_members}</td>
494
- <td>{moh717ReportData.eye_occupied_bed_days_non_sha_members}</td>
495
- <td>{moh717ReportData.nursery_newborn_occupied_bed_days_non_sha_members}</td>
496
- <td>{moh717ReportData.orthopaedic_occupied_bed_days_non_sha_members}</td>
497
- </tr>
498
- <tr>
499
- <td>Inpatient Well Persons Days</td>
500
- <td>{moh717ReportData.medical_well_persons_days}</td>
501
- <td>{moh717ReportData.surgical_well_persons_days}</td>
502
- <td>{moh717ReportData.obst_gyn_well_persons_days}</td>
503
- <td>{moh717ReportData.paediatrics_well_persons_days}</td>
504
- <td>{moh717ReportData.maternity_well_persons_days}</td>
505
- <td>{moh717ReportData.eye_well_persons_days}</td>
506
- <td>{moh717ReportData.nursery_newborn_well_persons_days}</td>
507
- <td>{moh717ReportData.orthopaedic_well_persons_days}</td>
508
- </tr>
509
- <tr>
510
- <td>Inpatient Authorised Beds</td>
511
- <td>{moh717ReportData.medical_authorised_beds}</td>
512
- <td>{moh717ReportData.surgical_authorised_beds}</td>
513
- <td>{moh717ReportData.obst_gyn_authorised_beds}</td>
514
- <td>{moh717ReportData.paediatrics_authorised_beds}</td>
515
- <td>{moh717ReportData.maternity_authorised_beds}</td>
516
- <td>{moh717ReportData.eye_authorised_beds}</td>
517
- <td>{moh717ReportData.nursery_newborn_authorised_beds}</td>
518
- <td>{moh717ReportData.orthopaedic_authorised_beds}</td>
519
- </tr>
520
- <tr>
521
- <td>Inpatient Actual Physical Beds</td>
522
- <td>{moh717ReportData.medical_actual_physical_beds}</td>
523
- <td>{moh717ReportData.surgical_actual_physical_beds}</td>
524
- <td>{moh717ReportData.obst_gyn_actual_physical_beds}</td>
525
- <td>{moh717ReportData.paediatrics_actual_physical_beds}</td>
526
- <td>{moh717ReportData.maternity_actual_physical_beds}</td>
527
- <td>{moh717ReportData.eye_actual_physical_beds}</td>
528
- <td>{moh717ReportData.nursery_newborn_actual_physical_beds}</td>
529
- <td>{moh717ReportData.orthopaedic_actual_physical_beds}</td>
530
- </tr>
531
- <tr>
532
- <td>Inpatient Authorised Cots</td>
533
- <td>{moh717ReportData.medical_authorised_cots}</td>
534
- <td>{moh717ReportData.surgical_authorised_cots}</td>
535
- <td>{moh717ReportData.obst_gyn_authorised_cots}</td>
536
- <td>{moh717ReportData.paediatrics_authorised_cots}</td>
537
- <td>{moh717ReportData.maternity_authorised_cots}</td>
538
- <td>{moh717ReportData.eye_authorised_cots}</td>
539
- <td>{moh717ReportData.nursery_newborn_authorised_cots}</td>
540
- <td>{moh717ReportData.orthopaedic_authorised_cots}</td>
541
- </tr>
542
- <tr>
543
- <td>Inpatient Actual Physical Cots</td>
544
- <td>{moh717ReportData.medical_actual_physical_cots}</td>
545
- <td>{moh717ReportData.surgical_actual_physical_cots}</td>
546
- <td>{moh717ReportData.obst_gyn_actual_physical_cots}</td>
547
- <td>{moh717ReportData.paediatrics_actual_physical_cots}</td>
548
- <td>{moh717ReportData.maternity_actual_physical_cots}</td>
549
- <td>{moh717ReportData.eye_actual_physical_cots}</td>
550
- <td>{moh717ReportData.nursery_newborn_actual_physical_cots}</td>
551
- <td>{moh717ReportData.orthopaedic_actual_physical_cots}</td>
552
- </tr>
553
- <tr>
554
- <td>Incubator- Authorised</td>
555
- <td>{moh717ReportData.medical_authorised_incubator}</td>
556
- <td>{moh717ReportData.surgical_authorised_incubator}</td>
557
- <td>{moh717ReportData.obst_gyn_authorised_incubator}</td>
558
- <td>{moh717ReportData.paediatrics_authorised_incubator}</td>
559
- <td>{moh717ReportData.maternity_authorised_incubator}</td>
560
- <td>{moh717ReportData.eye_authorised_incubator}</td>
561
- <td>{moh717ReportData.nursery_newborn_authorised_incubator}</td>
562
- <td>{moh717ReportData.orthopaedic_authorised_incubator}</td>
563
- </tr>
564
- <tr>
565
- <td>Incubator- Actual Physical</td>
566
- <td>{moh717ReportData.medical_actual_Physical_incubator}</td>
567
- <td>{moh717ReportData.surgical_actual_Physical_incubator}</td>
568
- <td>{moh717ReportData.obst_gyn_actual_Physical_incubator}</td>
569
- <td>{moh717ReportData.paediatrics_actual_Physical_incubator}</td>
570
- <td>{moh717ReportData.maternity_actual_Physical_incubator}</td>
571
- <td>{moh717ReportData.eye_actual_Physical_incubator}</td>
572
- <td>{moh717ReportData.nursery_newborn_actual_Physical_incubator}</td>
573
- <td>{moh717ReportData.orthopaedic_actual_Physical_incubator}</td>
574
- </tr>
575
- </tbody>
576
- </table>
577
- </div>
578
- </div>
579
- <div className={styles.container}>
580
- <p className={styles.title}>Maternity</p>
581
- <p className={styles.sectionTitle}>default</p>
582
- <div className={styles.tableContainer}>
583
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
584
- <thead>
585
- <tr>
586
- <th></th>
587
- <th>Value</th>
588
- </tr>
589
- </thead>
590
- <tbody>
591
- <tr>
592
- <td>Normal Deliveries</td>
593
- <td>{moh717ReportData.normal_deliveries}</td>
594
- </tr>
595
- <tr>
596
- <td>Caesarian Sections</td>
597
- <td>{moh717ReportData.caesarian_sections}</td>
598
- </tr>
599
- <tr>
600
- <td>Breach Delivery</td>
601
- <td>{moh717ReportData.breach_deliveries}</td>
602
- </tr>
603
- <tr>
604
- <td>Assisted vaginal delivery</td>
605
- <td>{moh717ReportData.assisted_vaginal_deliveries}</td>
606
- </tr>
607
- <tr>
608
- <td>BBA (Born before arrival)</td>
609
- <td>{moh717ReportData.born_before_arrival}</td>
610
- </tr>
611
- <tr>
612
- <td>Maternal deaths</td>
613
- <td>{moh717ReportData.maternal_deaths}</td>
614
- </tr>
615
- <tr>
616
- <td>Maternal Deaths Audited Within 7 days</td>
617
- <td>{moh717ReportData.maternal_deaths_audited_within_7_days}</td>
618
- </tr>
619
- <tr>
620
- <td>Live births</td>
621
- <td>{moh717ReportData.live_births}</td>
622
- </tr>
623
- <tr>
624
- <td>Still births</td>
625
- <td>{moh717ReportData.still_births}</td>
626
- </tr>
627
- <tr>
628
- <td>Neonatal deaths 0-28 Days</td>
629
- <td>{moh717ReportData.neonatal_deaths_0_28_days}</td>
630
- </tr>
631
- <tr>
632
- <td>Neonatal deaths Audits</td>
633
- <td>{moh717ReportData.neonatal_deaths_audits}</td>
634
- </tr>
635
- <tr>
636
- <td>Low Birth Weight &lt;2500gms</td>
637
- <td>{moh717ReportData.low_birth_weight_less_2500gms}</td>
638
- </tr>
639
- <tr>
640
- <td>Babies discharge Alive</td>
641
- <td>{moh717ReportData.babies_discharged_alive}</td>
642
- </tr>
643
- </tbody>
644
- </table>
645
- </div>
646
- </div>
647
- <div className={styles.container}>
648
- <p className={styles.title}>Operations</p>
649
- <p className={styles.sectionTitle}>default</p>
650
- <div className={styles.tableContainer}>
651
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
652
- <thead>
653
- <tr>
654
- <th></th>
655
- <th>Value</th>
656
- </tr>
657
- </thead>
658
- <tbody>
659
- <tr>
660
- <td>Minor Surgeries Booked</td>
661
- <td>{moh717ReportData.minor_surgeries_booked}</td>
662
- </tr>
663
- <tr>
664
- <td>Minor surgeries operated</td>
665
- <td>{moh717ReportData.minor_surgeries_operated}</td>
666
- </tr>
667
- <tr>
668
- <td>Emergencies Booked</td>
669
- <td>{moh717ReportData.emergencies_booked}</td>
670
- </tr>
671
- <tr>
672
- <td>Emergencies Operated</td>
673
- <td>{moh717ReportData.emergencies_operated}</td>
674
- </tr>
675
- <tr>
676
- <td>Cold Cases Booked</td>
677
- <td>{moh717ReportData.cold_cases_booked}</td>
678
- </tr>
679
- <tr>
680
- <td>Cold surgical cases</td>
681
- <td>{moh717ReportData.cold_surgical_cases}</td>
682
- </tr>
683
- <tr>
684
- <td>Circumcision Booked</td>
685
- <td>{moh717ReportData.circumcisions_booked}</td>
686
- </tr>
687
- <tr>
688
- <td>Circumcision Operated</td>
689
- <td>{moh717ReportData.circumcisions_operated}</td>
690
- </tr>
691
- <tr>
692
- <td>Major surgeries Booked</td>
693
- <td>{moh717ReportData.major_surgeries_booked}</td>
694
- </tr>
695
- <tr>
696
- <td>Major surgeries Operated</td>
697
- <td>{moh717ReportData.major_surgeries_operated}</td>
698
- </tr>
699
- </tbody>
700
- </table>
701
- </div>
702
- </div>
703
- <div className={styles.container}>
704
- <p className={styles.title}>Orthopaedic Trauma Services</p>
705
- <p className={styles.sectionTitle}>
706
- Under 5 Years, New clientsUnder 5 Years, Re-visitsOver Five Years, New clientsOver Five Years, Re-visits
707
- </p>
708
- <div className={styles.tableContainer}>
709
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
710
- <thead>
711
- <tr>
712
- <th></th>
713
- <th colSpan={2}>Under 5 Years</th>
714
- <th colSpan={2}>Over Five Years</th>
715
- </tr>
716
- <tr>
717
- <th></th>
718
- <th>New clients</th>
719
- <th>Re-visits</th>
720
- <th>New clients</th>
721
- <th>Re-visits</th>
722
- </tr>
723
- </thead>
724
- <tbody>
725
- <tr>
726
- <td>No of Casts fixed</td>
727
- <td>{moh717ReportData.casts_fixed_less_5_years_new}</td>
728
- <td>{moh717ReportData.casts_fixed_less_5_years_revisit}</td>
729
- <td>{moh717ReportData.casts_fixed_over_5_years_new}</td>
730
- <td>{moh717ReportData.casts_fixed_over_5_years_revisit}</td>
731
- </tr>
732
- <tr>
733
- <td>No of Tractions fixed</td>
734
- <td>{moh717ReportData.tractions_fixed_less_5_years_new}</td>
735
- <td>{moh717ReportData.tractions_fixed_less_5_years_revisit}</td>
736
- <td>{moh717ReportData.tractions_fixed_over_5_years_new}</td>
737
- <td>{moh717ReportData.tractions_fixed_over_5_years_revisit}</td>
738
- </tr>
739
- <tr>
740
- <td>No of Closed Reductions (Fructures, Dislocation)</td>
741
- <td>{moh717ReportData.closed_reductions_less_5_years_new}</td>
742
- <td>{moh717ReportData.closed_reductions_less_5_years_revisit}</td>
743
- <td>{moh717ReportData.closed_reductions_over_5_years_new}</td>
744
- <td>{moh717ReportData.closed_reductions_over_5_years_revisit}</td>
745
- </tr>
746
- <tr>
747
- <td>No of Orthopeadic cases assisted in theatre</td>
748
- <td>{moh717ReportData.orthopaedic_assisted_in_theatre_less_5_years_new}</td>
749
- <td>{moh717ReportData.orthopaedic_assisted_in_theatre_less_5_years_revisit}</td>
750
- <td>{moh717ReportData.orthopaedic_assisted_in_theatre_over_5_years_new}</td>
751
- <td>{moh717ReportData.orthopaedic_assisted_in_theatre_over_5_years_revisit}</td>
752
- </tr>
753
- <tr>
754
- <td>No of club foot seen /corrected (Ponsseti method)</td>
755
- <td>{moh717ReportData.club_foot_seen_less_5_years_new}</td>
756
- <td>{moh717ReportData.club_foot_seen_less_5_years_revisit}</td>
757
- <td>{moh717ReportData.club_foot_seen_over_5_years_new}</td>
758
- <td>{moh717ReportData.club_foot_seen_over_5_years_revisit}</td>
759
- </tr>
760
- <tr>
761
- <td>No of Crepe bandages and arm slings applied</td>
762
- <td>{moh717ReportData.crepe_bandages_applied_less_5_years_new}</td>
763
- <td>{moh717ReportData.crepe_bandages_applied_less_5_years_revisit}</td>
764
- <td>{moh717ReportData.crepe_bandages_applied_over_5_years_new}</td>
765
- <td>{moh717ReportData.crepe_bandages_applied_over_5_years_revisit}</td>
766
- </tr>
767
- </tbody>
768
- </table>
769
- </div>
770
- </div>
771
- <div className={styles.container}>
772
- <p className={styles.title}>Orthopaedic Removal</p>
773
- <p className={styles.sectionTitle}>&lt;5 yrs&gt;5 yrs</p>
774
- <div className={styles.tableContainer}>
775
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
776
- <thead>
777
- <tr>
778
- <th></th>
779
- <th>&lt;5 yrs</th>
780
- <th>&gt;5 yrs</th>
781
- </tr>
782
- </thead>
783
- <tbody>
784
- <tr>
785
- <td>No. of Removals Done Casts</td>
786
- <td>{moh717ReportData.removals_done_cast_less_5_years}</td>
787
- <td>{moh717ReportData.removals_done_cast_over_5_years}</td>
788
- </tr>
789
- <tr>
790
- <td>No. of Removals Done Tractions</td>
791
- <td>{moh717ReportData.removals_done_tractions_less_5_years}</td>
792
- <td>{moh717ReportData.orthopaedic_removals_tractions_over_5_years}</td>
793
- </tr>
794
- <tr>
795
- <td>No. of Removals Ex-Fixator</td>
796
- <td>{moh717ReportData.ex_fixator_removed_less_5_years}</td>
797
- <td>{moh717ReportData.ex_fixator_removed_over_5_years}</td>
798
- </tr>
799
- </tbody>
800
- </table>
801
- </div>
802
- </div>
803
- <div className={styles.container}>
804
- <p className={styles.title}>Special services</p>
805
- <p className={styles.sectionTitle}>default</p>
806
- <div className={styles.tableContainer}>
807
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
808
- <thead>
809
- <tr>
810
- <th></th>
811
- <th>Value</th>
812
- </tr>
813
- </thead>
814
- <tbody>
815
- <tr>
816
- <td>Laboratory routine test</td>
817
- <td>{moh717ReportData.lab_routine_test}</td>
818
- </tr>
819
- <tr>
820
- <td>Laboratory special test</td>
821
- <td>{moh717ReportData.lab_special_test}</td>
822
- </tr>
823
- <tr>
824
- <td>Plain X-Rays without enhancement</td>
825
- <td>{moh717ReportData.plain_xray_without_enhancement}</td>
826
- </tr>
827
- <tr>
828
- <td>Contrast enhanced examinations</td>
829
- <td>{moh717ReportData.contrast_enhancement_examination}</td>
830
- </tr>
831
- <tr>
832
- <td>Magnetic Resonance Imaging</td>
833
- <td>{moh717ReportData.magnetic_resonance_imaging}</td>
834
- </tr>
835
- <tr>
836
- <td>Computarized Tomography</td>
837
- <td>{moh717ReportData.computerized_tomography}</td>
838
- </tr>
839
- <tr>
840
- <td>Mammography</td>
841
- <td>{moh717ReportData.mammography}</td>
842
- </tr>
843
- <tr>
844
- <td>Chest x-ray for PTB with specialist's report</td>
845
- <td>{moh717ReportData.chest_xray_for_ptb}</td>
846
- </tr>
847
- <tr>
848
- <td>Number of ultrasound examinations</td>
849
- <td>{moh717ReportData.number_of_ultrasound_examinations}</td>
850
- </tr>
851
- <tr>
852
- <td>General ultrasound</td>
853
- <td>{moh717ReportData.general_ultrasound}</td>
854
- </tr>
855
- <tr>
856
- <td>Obstetric ultrasound</td>
857
- <td>{moh717ReportData.obstetric_ultrasound}</td>
858
- </tr>
859
- <tr>
860
- <td>Total routine (X-Ray and Imaging)</td>
861
- <td>{moh717ReportData.total_routine_xray_and_imaging}</td>
862
- </tr>
863
- <tr>
864
- <td>Total special exams (X-Ray and Imaging)</td>
865
- <td>{moh717ReportData.total_special_exams_xray_and_imaging}</td>
866
- </tr>
867
- <tr>
868
- <td>Physiotherapy - Number of Treatments</td>
869
- <td>{moh717ReportData.physiotherapy_number_of_treatments}</td>
870
- </tr>
871
- <tr>
872
- <td>Occupational therapy Number of treatments</td>
873
- <td>{moh717ReportData.occupational_therapy_number_of_treatments}</td>
874
- </tr>
875
- <tr>
876
- <td>
877
- Orthopaedic Technology (Prosthetist & Orthotist) - Orthopaedic Technology - No of ITEMS Prepared and
878
- issued e.g. a pair of crutches, Wheelchair, Prosthesis etc. count as one item
879
- </td>
880
- <td>{moh717ReportData.orthopaedic_technology_prepared}</td>
881
- </tr>
882
- <tr>
883
- <td>
884
- Orthopaedic Technology (Prosthetist & Orthotist) - Orthopaedic Technology - No of ITEMS issued e.g. a
885
- pair of crutches, Wheelchair, Prosthesis etc. count as one item
886
- </td>
887
- <td>{moh717ReportData.orthopaedic_technology_issued}</td>
888
- </tr>
889
- </tbody>
890
- </table>
891
- </div>
892
- </div>
893
- <div className={styles.container}>
894
- <p className={styles.title}>Pharmacy No of prescriptions</p>
895
- <p className={styles.sectionTitle}>default</p>
896
- <div className={styles.tableContainer}>
897
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
898
- <thead>
899
- <tr>
900
- <th></th>
901
- <th>Value</th>
902
- </tr>
903
- </thead>
904
- <tbody>
905
- <tr>
906
- <td>Prescriptions Issued - Common Drugs</td>
907
- <td>{moh717ReportData.prescriptions_issued_common_drugs}</td>
908
- </tr>
909
- <tr>
910
- <td>Prescriptions Issued - Antibiotics</td>
911
- <td>{moh717ReportData.prescriptions_issued_antibiotics}</td>
912
- </tr>
913
- <tr>
914
- <td>Prescriptions Issued - Special drugs</td>
915
- <td>{moh717ReportData.prescriptions_issued_special_drugs}</td>
916
- </tr>
917
- <tr>
918
- <td>Prescriptions Issued - Drugs for Children</td>
919
- <td>{moh717ReportData.prescriptions_issued_drugs_children}</td>
920
- </tr>
921
- </tbody>
922
- </table>
923
- </div>
924
- </div>
925
- <div className={styles.container}>
926
- <p className={styles.title}>Mortuary</p>
927
- <p className={styles.sectionTitle}>default</p>
928
- <div className={styles.tableContainer}>
929
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
930
- <thead>
931
- <tr>
932
- <th></th>
933
- <th>Value</th>
934
- </tr>
935
- </thead>
936
- <tbody>
937
- <tr>
938
- <td>Mortuary Body days</td>
939
- <td>{moh717ReportData.mortuary_body_days}</td>
940
- </tr>
941
- <tr>
942
- <td>Mortuary Embalment</td>
943
- <td>{moh717ReportData.mortuary_embalment}</td>
944
- </tr>
945
- <tr>
946
- <td>Mortuary Post-Moterm</td>
947
- <td>{moh717ReportData.mortuary_postmortem}</td>
948
- </tr>
949
- <tr>
950
- <td>Mortuary Unclaimed body days</td>
951
- <td>{moh717ReportData.mortuary_unclaimed_bodies}</td>
952
- </tr>
953
- </tbody>
954
- </table>
955
- </div>
956
- </div>
957
- <div className={styles.container}>
958
- <p className={styles.title}>Medical Records</p>
959
- <p className={styles.sectionTitle}>default</p>
960
- <div className={styles.tableContainer}>
961
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
962
- <thead>
963
- <tr>
964
- <th></th>
965
- <th>Value</th>
966
- </tr>
967
- </thead>
968
- <tbody>
969
- <tr>
970
- <td>New Patient Files issued</td>
971
- <td>{moh717ReportData.new_patient_files_issued}</td>
972
- </tr>
973
- <tr>
974
- <td>Outpatient records cards Issued</td>
975
- <td>{moh717ReportData.outpatient_records_cards_issued}</td>
976
- </tr>
977
- </tbody>
978
- </table>
979
- </div>
980
- </div>
981
- <div className={styles.container}>
982
- <p className={styles.title}>Finance</p>
983
- <p className={styles.sectionTitle}>default</p>
984
- <div className={styles.tableContainer}>
985
- <table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
986
- <thead>
987
- <tr>
988
- <th></th>
989
- <th>Value</th>
990
- </tr>
991
- </thead>
992
- <tbody>
993
- <tr>
994
- <td>Total Amount Collected (Kshs)</td>
995
- <td>{}</td>
996
- </tr>
997
- <tr>
998
- <td>Total Amount Received</td>
999
- <td>{}</td>
1000
- </tr>
1001
- <tr>
1002
- <td>Number of clients waived</td>
1003
- <td>{}</td>
1004
- </tr>
1005
- <tr>
1006
- <td>Amount for clients waived (Kshs)</td>
1007
- <td>{}</td>
1008
- </tr>
1009
- <tr>
1010
- <td>Number of clients exempted</td>
1011
- <td>{}</td>
1012
- </tr>
1013
- <tr>
1014
- <td>Amount for clients exempted (Kshs)</td>
1015
- <td>{}</td>
1016
- </tr>
1017
- </tbody>
1018
- </table>
1019
- </div>
1020
- </div>
1021
185
  </>
1022
186
  );
1023
187
  };