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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/dist/197.js +1 -1
  2. package/dist/282.js +1 -1
  3. package/dist/282.js.map +1 -1
  4. package/dist/295.css +1 -0
  5. package/dist/295.css.map +1 -0
  6. package/dist/295.js +1 -0
  7. package/dist/295.js.map +1 -0
  8. package/dist/300.js +1 -1
  9. package/dist/311.js +1 -1
  10. package/dist/311.js.map +1 -1
  11. package/dist/335.js +1 -1
  12. package/dist/353.js +1 -1
  13. package/dist/353.js.map +1 -1
  14. package/dist/410.js +1 -0
  15. package/dist/410.js.map +1 -0
  16. package/dist/478.js +1 -1
  17. package/dist/478.js.map +1 -1
  18. package/dist/540.js +1 -1
  19. package/dist/540.js.map +1 -1
  20. package/dist/55.js +1 -1
  21. package/dist/580.js +1 -0
  22. package/dist/580.js.map +1 -0
  23. package/dist/652.js +1 -1
  24. package/dist/876.css +1 -0
  25. package/dist/876.css.map +1 -0
  26. package/dist/876.js +1 -0
  27. package/dist/876.js.map +1 -0
  28. package/dist/907.js +2 -0
  29. package/dist/907.js.LICENSE.txt +35 -0
  30. package/dist/907.js.map +1 -0
  31. package/dist/961.js +1 -1
  32. package/dist/961.js.map +1 -1
  33. package/dist/99.js +1 -1
  34. package/dist/ampath-esm-reports-app.js +1 -1
  35. package/dist/ampath-esm-reports-app.js.map +1 -1
  36. package/dist/routes.json +1 -1
  37. package/package.json +2 -2
  38. package/src/common/daily-summary-table.tsx +55 -0
  39. package/src/common/linelist-table/index.ts +3 -0
  40. package/src/common/linelist-table/linelist-columns.ts +48 -0
  41. package/src/common/linelist-table/linelist-table.component.tsx +442 -0
  42. package/src/common/linelist-table/linelist-table.scss +306 -0
  43. package/src/common/linelist-table/linelist-table.test.tsx +120 -0
  44. package/src/common/linelist-table/use-all-rows.ts +93 -0
  45. package/src/common/linelist-table/use-column-layout.ts +123 -0
  46. package/src/common/report-error/index.ts +1 -0
  47. package/src/common/report-error/show-report-error.ts +25 -0
  48. package/src/common/report-filters/date-range.ts +137 -0
  49. package/src/common/report-filters/index.ts +4 -0
  50. package/src/common/report-filters/report-filters.component.tsx +297 -100
  51. package/src/common/report-filters/report-filters.scss +255 -32
  52. package/src/common/report-filters/types.ts +66 -0
  53. package/src/common/report-filters/use-restore-period.ts +43 -0
  54. package/src/common/report-header/index.ts +1 -0
  55. package/src/common/report-header/use-location-details.ts +58 -0
  56. package/src/common/report-page/index.ts +2 -0
  57. package/src/common/report-page/report-page.component.tsx +32 -0
  58. package/src/common/report-page/report-page.scss +45 -0
  59. package/src/common/report-page/use-page-scale.ts +60 -0
  60. package/src/common/report-placeholder/has-report-data.ts +15 -0
  61. package/src/common/report-placeholder/index.ts +3 -0
  62. package/src/common/report-placeholder/report-placeholder.component.tsx +81 -0
  63. package/src/common/report-placeholder/report-placeholder.scss +48 -0
  64. package/src/common/report-placeholder/use-generated-location.ts +62 -0
  65. package/src/common/report-register/index.ts +6 -0
  66. package/src/common/report-register/register-columns.ts +46 -0
  67. package/src/common/report-register/register-layout.component.tsx +265 -0
  68. package/src/common/report-register/register-layout.scss +150 -0
  69. package/src/common/report-register/register-table.scss +71 -0
  70. package/src/common/report-register/report-parents.ts +27 -0
  71. package/src/common/report-register/rows-to-csv.ts +89 -0
  72. package/src/common/report-register/use-location-name.ts +54 -0
  73. package/src/common/report-register/use-patient-list.ts +92 -0
  74. package/src/common/report-skeleton/index.ts +1 -0
  75. package/src/common/report-skeleton/report-skeleton.component.tsx +46 -0
  76. package/src/common/report-skeleton/report-skeleton.scss +29 -0
  77. package/src/config-schema.ts +9 -1
  78. package/src/dashboard/report-catalog.ts +173 -0
  79. package/src/dashboard/reports-dasboard.tsx +101 -17
  80. package/src/dashboard/reports-dashboard.module.scss +269 -11
  81. package/src/index.ts +13 -1
  82. package/src/reports/datatable-wrapper/datatable-wrapper.component.tsx +69 -0
  83. package/src/reports/moh-240/moh-240-header.component.tsx +62 -0
  84. package/src/reports/moh-240/moh-240.columns.ts +113 -0
  85. package/src/reports/moh-240/moh-240.component.tsx +75 -0
  86. package/src/reports/moh-240/moh-240.scss +40 -0
  87. package/src/reports/moh-240/sub-reports/moh-240-register.component.tsx +36 -0
  88. package/src/reports/moh-240/sub-reports/page-summary.component.tsx +148 -0
  89. package/src/reports/moh-505/moh-505-header.component.tsx +67 -0
  90. package/src/reports/moh-505/moh-505.component.tsx +441 -0
  91. package/src/reports/moh-505/moh-505.scss +117 -0
  92. package/src/reports/moh-705B/moh-204b-register.component.tsx +244 -0
  93. package/src/reports/moh-705B/moh-204b.columns.ts +39 -0
  94. package/src/reports/moh-705B/moh-705b.component.tsx +658 -0
  95. package/src/reports/moh-705B/moh-705b.scss +172 -0
  96. package/src/reports/moh-705a/moh-705a.component.tsx +660 -0
  97. package/src/reports/moh-705a/moh-705a.scss +172 -0
  98. package/src/reports/moh-705a/registers/moh-204a-register.component.tsx +329 -0
  99. package/src/reports/moh-705a/registers/moh-204a.columns.ts +57 -0
  100. package/src/reports/moh-705a/type.ts +6 -0
  101. package/src/reports/moh-706/moh-706-header.component.tsx +66 -0
  102. package/src/reports/moh-706/moh-706.component.tsx +150 -24
  103. package/src/reports/moh-706/moh-706.scss +119 -11
  104. package/src/reports/moh-706/sub-reports/bacteriology/bacteriology.component.tsx +36 -44
  105. package/src/reports/moh-706/sub-reports/blood-chemistry/blood-chemistry.component.tsx +232 -318
  106. package/src/reports/moh-706/sub-reports/drug-susceptibility-testing/drug-susceptibility-testing.component.tsx +32 -47
  107. package/src/reports/moh-706/sub-reports/haematology/haematology.component.tsx +44 -52
  108. package/src/reports/moh-706/sub-reports/histology-and-cytology/histology-and-cytology.component.tsx +25 -40
  109. package/src/reports/moh-706/sub-reports/parasitology/parasitology.component.tsx +31 -39
  110. package/src/reports/moh-706/sub-reports/serology/serology.component.tsx +26 -34
  111. package/src/reports/moh-706/sub-reports/specimen-referral-to-higher-levels/specimen-referral-to-higher-levels.component.tsx +10 -25
  112. package/src/reports/moh-706/sub-reports/urine-analysis/urine-analysis.component.tsx +42 -50
  113. package/src/reports/moh-710/moh-710.component.tsx +799 -632
  114. package/src/reports/moh-710/moh-710.scss +142 -21
  115. package/src/reports/moh-710/registers/moh-510/moh-510.columns.ts +40 -0
  116. package/src/reports/moh-710/registers/moh-510/moh-510.component.tsx +144 -0
  117. package/src/reports/moh-710/registers/moh-510/moh-510.scss +130 -0
  118. package/src/reports/moh-710/registers/moh-511-710-register.component.tsx +268 -0
  119. package/src/reports/moh-710/registers/moh-511-710.columns.ts +52 -0
  120. package/src/reports/moh-710/registers/type.ts +31 -0
  121. package/src/reports/moh-711/moh-711.component.tsx +138 -1269
  122. package/src/reports/moh-711/moh711.scss +135 -20
  123. package/src/reports/moh-711/registers/moh-333-register.component.tsx +637 -0
  124. package/src/reports/moh-711/registers/moh-333.columns.ts +119 -0
  125. package/src/reports/moh-711/registers/moh-405-register.component.tsx +520 -0
  126. package/src/reports/moh-711/registers/moh-405.columns.ts +120 -0
  127. package/src/reports/moh-711/registers/moh-406-register.component.tsx +530 -0
  128. package/src/reports/moh-711/registers/moh-406.columns.ts +133 -0
  129. package/src/reports/moh-711/registers/moh-510-register.component.tsx +55 -0
  130. package/src/reports/moh-711/registers/moh-511-register.component.tsx +270 -0
  131. package/src/reports/moh-711/registers/moh-511.columns.ts +59 -0
  132. package/src/reports/moh-711/registers/type.ts +192 -0
  133. package/src/reports/moh-711/sections/anc.component.tsx +159 -0
  134. package/src/reports/moh-711/sections/cervical-cancer.component.tsx +148 -0
  135. package/src/reports/moh-711/sections/chanis.component.tsx +366 -0
  136. package/src/reports/moh-711/sections/family-planning.component.tsx +221 -0
  137. package/src/reports/moh-711/sections/gbv.component.tsx +115 -0
  138. package/src/reports/moh-711/sections/maternity.component.tsx +321 -0
  139. package/src/reports/moh-711/sections/medical-social-work.component.tsx +73 -0
  140. package/src/reports/moh-711/sections/other.component.tsx +47 -0
  141. package/src/reports/moh-711/sections/physiotherapy.component.tsx +61 -0
  142. package/src/reports/moh-711/sections/pnc.component.tsx +127 -0
  143. package/src/reports/moh-711/sections/post-abortion.component.tsx +42 -0
  144. package/src/reports/moh-711/sections/rehabilitation.component.tsx +57 -0
  145. package/src/reports/moh-711/sections/report-compiled-by.component.tsx +50 -0
  146. package/src/reports/moh-711/sections/tb-screening.component.tsx +57 -0
  147. package/src/reports/moh-717/moh-717.component.tsx +149 -985
  148. package/src/reports/moh-717/moh717.scss +217 -21
  149. package/src/reports/moh-717/registers/nutrition-register.component.tsx +48 -0
  150. package/src/reports/moh-717/sections/finance.component.tsx +42 -0
  151. package/src/reports/moh-717/sections/inpatient.component.tsx +374 -0
  152. package/src/reports/moh-717/sections/maternity.component.tsx +126 -0
  153. package/src/reports/moh-717/sections/medical-records.component.tsx +35 -0
  154. package/src/reports/moh-717/sections/mortuary.component.tsx +43 -0
  155. package/src/reports/moh-717/sections/operations.component.tsx +53 -0
  156. package/src/reports/moh-717/sections/orthopaedic-trauma.component.tsx +98 -0
  157. package/src/reports/moh-717/sections/outpatient.component.tsx +597 -0
  158. package/src/reports/moh-717/sections/pharmacy.component.tsx +43 -0
  159. package/src/reports/moh-717/sections/preparedby.component.tsx +52 -0
  160. package/src/reports/moh-717/sections/special-services.component.tsx +114 -0
  161. package/src/reports/moh-731/linelist/moh-731-indicators.ts +1040 -0
  162. package/src/reports/moh-731/linelist/moh-731-linelist-sections.ts +423 -0
  163. package/src/reports/moh-731/linelist/moh-731-linelist.component.tsx +102 -0
  164. package/src/reports/moh-731/linelist/use-open-moh-731-linelist.ts +50 -0
  165. package/src/reports/moh-731/moh-731.component.tsx +251 -0
  166. package/src/reports/moh-731/moh-731.scss +493 -0
  167. package/src/reports/moh-731/registers/moh-366.columns.ts +38 -0
  168. package/src/reports/moh-731/registers/moh-366.component.tsx +471 -0
  169. package/src/reports/moh-731/registers/prep-register.component.tsx +284 -0
  170. package/src/reports/moh-731/registers/prep.columns.ts +34 -0
  171. package/src/reports/moh-731/sections/hiv-and-tb-treatment.component.tsx +1209 -0
  172. package/src/reports/moh-731/sections/hiv-testing-and-pre-exposure.component.tsx +727 -0
  173. package/src/reports/moh-731/sections/pmtct.component.tsx +572 -0
  174. package/src/reports/moh-731/summary/moh-731-summary.component.tsx +313 -0
  175. package/src/reports/moh-731/summary/moh-731-summary.config.ts +520 -0
  176. package/src/reports/moh-731/summary/moh-731-summary.scss +242 -0
  177. package/src/reports/moh-740/moh-740.component.scss +202 -0
  178. package/src/reports/moh-740/moh-740.component.tsx +1312 -0
  179. package/src/reports/moh-740/moh-740.resource.ts +49 -0
  180. package/src/reports/moh-740/registers/moh-222-daily-register/moh-222-daily-register.tsx +89 -0
  181. package/src/reports/moh-740/registers/moh-270-permanent-register/moh-270-permanent-register.tsx +61 -0
  182. package/src/reports/moh-740/registers/moh-740-patient-list.scss +0 -0
  183. package/src/reports/moh-740/registers/moh-740-patient-list.tsx +95 -0
  184. package/src/reports/moh-740/registers/moh-740.columns.ts +52 -0
  185. package/src/reports/moh-740/shared/data-cell/data-cell.scss +6 -0
  186. package/src/reports/moh-740/shared/data-cell/data-cell.tsx +23 -0
  187. package/src/reports/moh-740/shared/utils/indicator-register-map.ts +157 -0
  188. package/src/reports/moh-740/types/index.ts +220 -0
  189. package/src/reports/moh-745/moh-745.component.tsx +1021 -0
  190. package/src/reports/moh-745/moh-745.scss +132 -0
  191. package/src/reports/moh-745/registers/moh-412-register.component.tsx +199 -0
  192. package/src/reports/moh-745/registers/moh-412.columns.ts +52 -0
  193. package/src/reports/moh-745/registers/type.ts +181 -0
  194. package/src/reports/table-wrapper/table-row-mapper.component.tsx +53 -0
  195. package/src/reports/table-wrapper/table-wrapper.component.tsx +30 -0
  196. package/src/reports/{moh-706/table-wrapper → table-wrapper}/table-wrapper.scss +1 -16
  197. package/src/resources/moh-505.resource.ts +69 -0
  198. package/src/resources/moh-705.resource.ts +106 -0
  199. package/src/resources/moh-706.resource.ts +80 -0
  200. package/src/resources/moh-710.resource.ts +32 -9
  201. package/src/resources/moh-711.resource.ts +137 -9
  202. package/src/resources/moh-717.resource.ts +26 -9
  203. package/src/resources/moh-731.resource.ts +90 -0
  204. package/src/resources/moh-745.resource.ts +76 -0
  205. package/src/resources/patient-list-page.ts +65 -0
  206. package/src/root.component.tsx +50 -7
  207. package/src/root.scss +36 -0
  208. package/src/routes.json +3 -1
  209. package/src/utils/format-indicator.ts +22 -0
  210. package/src/utils/get-base-url.ts +39 -7
  211. package/src/utils/utils.ts +36 -0
  212. package/tsconfig.json +1 -1
  213. package/webpack.config.js +22 -1
  214. package/dist/184.js +0 -2
  215. package/dist/184.js.LICENSE.txt +0 -14
  216. package/dist/184.js.map +0 -1
  217. package/dist/260.js +0 -1
  218. package/dist/260.js.map +0 -1
  219. package/dist/402.js +0 -1
  220. package/dist/402.js.map +0 -1
  221. package/dist/812.js +0 -1
  222. package/dist/812.js.map +0 -1
  223. package/dist/959.js +0 -2
  224. package/dist/959.js.LICENSE.txt +0 -20
  225. package/dist/959.js.map +0 -1
  226. package/dist/ampath-esm-reports-app.js.buildmanifest.json +0 -539
  227. package/dist/main.js +0 -1
  228. package/dist/main.js.map +0 -1
  229. package/src/reports/moh-706/table-wrapper/table-wrapper.component.tsx +0 -21
@@ -0,0 +1,132 @@
1
+ /* MOH-745 laid out for A4, matching MOH-711 and MOH-740: geometry in
2
+ millimetres, type in points, one rule weight. Its 33 rows fit one page. */
3
+
4
+ $ink: #000;
5
+ $rule: 1px solid $ink;
6
+
7
+ $text: 7pt;
8
+ $title: 7.5pt;
9
+ $meta: 6.5pt;
10
+
11
+ /* The blocks below stack flush and share their edges, so the sheet reads as one
12
+ continuous form rather than a title, two loose tables and a footer. */
13
+
14
+ .reportTitle {
15
+ padding: 3mm;
16
+ font-size: $title;
17
+ font-weight: 700;
18
+ text-align: center;
19
+ border: $rule;
20
+ }
21
+
22
+ /* Facility / county / period strip, and the sign-off at the foot: both are one
23
+ line of fields separated by spacing, with rules to write on. */
24
+
25
+ .location {
26
+ display: flex;
27
+ flex-wrap: nowrap;
28
+ align-items: baseline;
29
+ justify-content: space-between;
30
+ /* Six fields rather than the five the other reports carry, so the rules are
31
+ a little shorter to keep the row on one line. */
32
+ gap: 2.5mm;
33
+ padding: 2mm 3mm;
34
+ font-size: $meta;
35
+ white-space: nowrap;
36
+ border: $rule;
37
+ border-top: none;
38
+ }
39
+
40
+ .line,
41
+ .shortLine {
42
+ display: inline-block;
43
+ padding: 0 0.5mm;
44
+ margin-left: 1mm;
45
+ overflow: hidden;
46
+ font-weight: 600;
47
+ text-align: center;
48
+ text-overflow: ellipsis;
49
+ vertical-align: bottom;
50
+ border-bottom: $rule;
51
+ }
52
+
53
+ .line {
54
+ width: 24mm;
55
+ }
56
+
57
+ .shortLine {
58
+ width: 12mm;
59
+ }
60
+
61
+ .tableContainer {
62
+ width: 100%;
63
+ overflow-x: auto;
64
+
65
+ /* pulls the second table onto the first one's edge instead of doubling it */
66
+ & + & {
67
+ margin-top: -1px;
68
+ }
69
+ }
70
+
71
+ .table {
72
+ width: 100%;
73
+ border-collapse: collapse;
74
+ }
75
+
76
+ .tableBordered td,
77
+ .tableBordered th {
78
+ padding: 1mm 1.5mm;
79
+ font-size: $text;
80
+ text-align: center;
81
+ border: $rule;
82
+ }
83
+
84
+ .tableBordered th {
85
+ font-weight: 700;
86
+ background-color: #f4f4f4;
87
+ }
88
+
89
+ .tableStriped tbody tr:nth-of-type(odd) {
90
+ background-color: #fafafa;
91
+ }
92
+
93
+ /* Sign-off, enclosed by the form rather than floating beneath it.
94
+
95
+ Its rules are wider than the header strip's: four fields across the sheet
96
+ leave about 133mm for them, where the header has to fit six. At the shared
97
+ 12mm a date like "29-Jul-2026" needs 13.6mm and was being ellipsised. Sized
98
+ to leave headroom rather than to fill the row exactly. */
99
+
100
+ .signOff .line {
101
+ width: 36mm;
102
+ }
103
+
104
+ .signOff .shortLine {
105
+ width: 22mm;
106
+ }
107
+
108
+ .signOff {
109
+ display: flex;
110
+ flex-wrap: nowrap;
111
+ align-items: baseline;
112
+ justify-content: space-between;
113
+ gap: 2.5mm;
114
+ padding: 3mm;
115
+ font-size: $meta;
116
+ white-space: nowrap;
117
+ border: $rule;
118
+ border-top: none;
119
+ }
120
+
121
+ .rotateUp {
122
+ writing-mode: vertical-rl;
123
+ transform: rotate(180deg);
124
+ }
125
+
126
+ /* On paper the striping is screen affordance that prints as grey noise */
127
+
128
+ @media print {
129
+ .tableStriped tbody tr:nth-of-type(odd) {
130
+ background-color: transparent;
131
+ }
132
+ }
@@ -0,0 +1,199 @@
1
+ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@carbon/react';
2
+ import React, { useEffect, useState } from 'react';
3
+
4
+ import styles from '../../../common/report-register/register-table.scss';
5
+ import classNames from 'classnames';
6
+ import { useSearchParams } from 'react-router-dom';
7
+ import { moh412Columns } from './type';
8
+ import { fetchMoh745PatientList, getMoh412PatientList } from '../../../resources/moh-745.resource';
9
+ import { moh412ExportColumns } from './moh-412.columns';
10
+ import { RegisterLayout, usePatientList } from '../../../common/report-register';
11
+
12
+ const Moh412Register: React.FC = () => {
13
+ const [searchParams] = useSearchParams();
14
+ const startDate = searchParams.get('startDate') ?? '';
15
+ const endDate = searchParams.get('endDate') ?? '';
16
+ const locationUuids = searchParams.get('locationUuids') ?? '';
17
+ const indicators = searchParams.get('indicators') ?? '';
18
+ const [patientList,setPatientList] = useState<any>([]);
19
+
20
+ useEffect(()=>{
21
+ if(startDate && endDate && locationUuids && indicators){
22
+ fetchPatientList();
23
+ }
24
+
25
+ },[startDate, endDate, locationUuids, indicators]);
26
+
27
+ async function fetchPatientList(){
28
+ const resp = await fetchMoh745PatientList({
29
+ startDate,
30
+ endDate,
31
+ locationUuids,
32
+ indicators,
33
+ });
34
+
35
+ if(resp){
36
+ setPatientList(resp);
37
+ }else{
38
+ setPatientList([]);
39
+ }
40
+ }
41
+
42
+ return (
43
+
44
+ <div className={styles.tableContainer}>
45
+ <div>
46
+ <h4>MOH-412 Register</h4>
47
+ </div>
48
+ <div>
49
+ <Table className={classNames(`${styles.table}`, `${styles.tableBordered}`, `${styles.tableStriped}`)}>
50
+ <TableHead>
51
+ <TableRow>
52
+ <TableHeader colSpan={3}>Month:</TableHeader>
53
+ <TableHeader colSpan={2}>Year</TableHeader>
54
+ <TableHeader></TableHeader>
55
+ <TableHeader></TableHeader>
56
+ <TableHeader></TableHeader>
57
+ <TableHeader></TableHeader>
58
+ <TableHeader colSpan={6}>CERVICAL CANCER</TableHeader>
59
+ <TableHeader colSpan={3}>Breast Cancer</TableHeader>
60
+ <TableHeader colSpan={2}>Colorectal Cancer</TableHeader>
61
+ <TableHeader></TableHeader>
62
+ <TableHeader></TableHeader>
63
+ <TableHeader></TableHeader>
64
+ <TableHeader></TableHeader>
65
+ </TableRow>
66
+ <TableRow>
67
+ <TableHeader colSpan={9}>Client Details</TableHeader>
68
+ <TableHeader colSpan={3}>Screening Methods and Results</TableHeader>
69
+ <TableHeader colSpan={3}>Pre-Cancer Treatment</TableHeader>
70
+ <TableHeader colSpan={3}>Methods and Results</TableHeader>
71
+ <TableHeader colSpan={2}>Methods and Results</TableHeader>
72
+ <TableHeader></TableHeader>
73
+ <TableHeader></TableHeader>
74
+ <TableHeader></TableHeader>
75
+ <TableHeader></TableHeader>
76
+ </TableRow>
77
+ <TableRow>
78
+ <TableHeader>
79
+ a)S/No
80
+ <br />
81
+ No
82
+ </TableHeader>
83
+ <TableHeader>
84
+ b)Visit <br />
85
+ Date
86
+ </TableHeader>
87
+ <TableHeader>
88
+ c)Visit <br />
89
+ Type
90
+ </TableHeader>
91
+ <TableHeader>
92
+ d)Client <br />
93
+ No
94
+ </TableHeader>
95
+ <TableHeader>e)Client Names</TableHeader>
96
+ <TableHeader>
97
+ f)Client's Phone <br />
98
+ Number
99
+ </TableHeader>
100
+ <TableHeader>
101
+ g)Client's <br /> Age
102
+ </TableHeader>
103
+ <TableHeader>
104
+ h)Location
105
+ <br />
106
+ Residence
107
+ </TableHeader>
108
+ <TableHeader>
109
+ i)Treatment
110
+ <br />
111
+ Suppoter's Phone
112
+ <br />
113
+ Number
114
+ </TableHeader>
115
+ <TableHeader>
116
+ j)Via or <br />
117
+ VIA/VILLI
118
+ </TableHeader>
119
+ <TableHeader>
120
+ k)Pap <br />
121
+ Smear
122
+ </TableHeader>
123
+ <TableHeader>
124
+ l)HPV Test
125
+ <br />
126
+ (over 30 years)
127
+ </TableHeader>
128
+ <TableHeader>m)cryotherapy</TableHeader>
129
+ <TableHeader>
130
+ n)Thermo-
131
+ <br />
132
+ ablation
133
+ </TableHeader>
134
+ <TableHeader>o)LEEP</TableHeader>
135
+ <TableHeader>p)CBE</TableHeader>
136
+ <TableHeader>q)Ultrasound</TableHeader>
137
+ <TableHeader>r)Mammogram</TableHeader>
138
+ <TableHeader>s)Colonoscopy</TableHeader>
139
+ <TableHeader>t)FOBT</TableHeader>
140
+ <TableHeader>u)HIV Status</TableHeader>
141
+ <TableHeader>
142
+ v)Referral <br />
143
+ To/From
144
+ </TableHeader>
145
+ <TableHeader>
146
+ w)Follow-
147
+ <br />
148
+ up Date
149
+ </TableHeader>
150
+ <TableHeader>
151
+ Remarks(e.g Colposcopy done,
152
+ <br />
153
+ Cervicography results, Call
154
+ <br />
155
+ Client for follow up, Return for <br />
156
+ post-treatment screening, <br />
157
+ Communicate with the referral site)
158
+ </TableHeader>
159
+ </TableRow>
160
+ </TableHead>
161
+ <TableBody>
162
+ {
163
+ patientList.map((p: any,index: number)=>{
164
+ return <><TableRow>
165
+ <TableCell>{index + 1}</TableCell>
166
+ <TableCell>{p.screening_date ?? ''}</TableCell>
167
+ <TableCell>{p?.screening_visit_type ?? ''}</TableCell>
168
+ <TableCell>{p?.ccc_number ?? ''}</TableCell>
169
+ <TableCell>{p.person_name}</TableCell>
170
+ <TableCell></TableCell>
171
+ <TableCell>{p?.age ?? ''}</TableCell>
172
+ <TableCell></TableCell>
173
+ <TableCell></TableCell>
174
+ <TableCell>{p?.via_or_via_vili_test_result ?? ''}</TableCell>
175
+ <TableCell>{p?.pap_smear_test_result ?? ''}</TableCell>
176
+ <TableCell>{p?.hpv_test_result ?? ''}</TableCell>
177
+ <TableCell></TableCell>
178
+ <TableCell></TableCell>
179
+ <TableCell></TableCell>
180
+ <TableCell></TableCell>
181
+ <TableCell></TableCell>
182
+ <TableCell></TableCell>
183
+ <TableCell></TableCell>
184
+ <TableCell></TableCell>
185
+ <TableCell>{p?.hiv_status ?? ''}</TableCell>
186
+ <TableCell></TableCell>
187
+ <TableCell></TableCell>
188
+ <TableCell></TableCell>
189
+ </TableRow></>
190
+ })
191
+ }
192
+
193
+ </TableBody>
194
+ </Table>
195
+ </div>
196
+ </div>
197
+ );
198
+ };
199
+ export default Moh412Register;
@@ -0,0 +1,52 @@
1
+ import { type RegisterColumn } from '../../../common/report-register';
2
+
3
+ /**
4
+ * MOH 412 as the register prints it: one column per cell, in the order they appear.
5
+ *
6
+ * One column is rendered by the table but has no heading above it -- the
7
+ * header row is 24 columns wide against 25 of data. It carries its field name
8
+ * rather than a heading borrowed from a neighbouring column.
9
+ */
10
+ export const moh412ExportColumns: RegisterColumn[] = [
11
+ { header: 'Client Details - a)S/No No', value: (row) => row.serial_no ?? '' },
12
+ { header: 'Client Details - b)Visit Date', value: (row) => row.visit_date ?? '' },
13
+ { header: 'Client Details - c)Visit Type', value: (row) => row.visit_type ?? '' },
14
+ { header: 'Client Details - d)Client No', value: (row) => row.client_no ?? '' },
15
+ { header: 'Client Details - e)Client Names', value: (row) => row.full_names ?? '' },
16
+ { header: "Client Details - f)Client's Phone Number", value: (row) => row.phone_number ?? '' },
17
+ { header: "Client Details - g)Client's Age", value: (row) => row.age ?? '' },
18
+ { header: 'Client Details - h)Location Residence', value: (row) => row.location_residence ?? '' },
19
+ {
20
+ header: "Client Details - i)Treatment Suppoter's Phone Number",
21
+ value: (row) => row.treatment_supporter_phone_number ?? '',
22
+ },
23
+ {
24
+ header: 'CERVICAL CANCER - Screening Methods and Results - j)Via or VIA/VILLI',
25
+ value: (row) => row.via_villi ?? '',
26
+ },
27
+ { header: 'CERVICAL CANCER - Screening Methods and Results - k)Pap Smear', value: (row) => row.pap_smear ?? '' },
28
+ {
29
+ header: 'CERVICAL CANCER - Screening Methods and Results - l)HPV Test (over 30 years)',
30
+ value: (row) => row.hpv ?? '',
31
+ },
32
+ { header: 'CERVICAL CANCER - Pre-Cancer Treatment - m)cryotherapy', value: (row) => row.cryotherapy ?? '' },
33
+ {
34
+ header: 'CERVICAL CANCER - Pre-Cancer Treatment - n)Thermo- ablation',
35
+ value: (row) => row.thermocoagulation ?? '',
36
+ },
37
+ { header: 'CERVICAL CANCER - Pre-Cancer Treatment - o)LEEP', value: (row) => row.leep ?? '' },
38
+ { header: 'Breast Cancer - Methods and Results - p)CBE', value: (row) => row.cbe ?? '' },
39
+ { header: 'Breast Cancer - Methods and Results - q)Ultrasound', value: (row) => row.ultrasound ?? '' },
40
+ { header: 'Breast Cancer - Methods and Results - r)Mammogram', value: (row) => row.mammogram ?? '' },
41
+ { header: 'Colorectal Cancer - Methods and Results - s)Colonoscopy', value: (row) => row.colonoscopy ?? '' },
42
+ { header: 'Colorectal Cancer - Methods and Results - t)FOBT', value: (row) => row.fobt ?? '' },
43
+ { header: 'u)HIV Status', value: (row) => row.hiv_status ?? '' },
44
+ { header: 'v)Referral To/From', value: (row) => row.referral_from ?? '' },
45
+ { header: 'w)Follow- up Date', value: (row) => row.referral_to ?? '' },
46
+ {
47
+ header:
48
+ 'Remarks(e.g Colposcopy done, Cervicography results, Call Client for follow up, Return for post-treatment screening, Communicate with the referral site)',
49
+ value: (row) => row.follow_up_date ?? '',
50
+ },
51
+ { header: 'Remarks', value: (row) => row.remarks ?? '' },
52
+ ];
@@ -0,0 +1,181 @@
1
+ export const moh412Columns = [
2
+ 'serial_no',
3
+ 'visit_date',
4
+ 'visit_type',
5
+ 'client_no',
6
+ 'full_names',
7
+ 'phone_number',
8
+ 'age',
9
+ 'location_residence',
10
+ 'treatment_supporter_phone_number',
11
+
12
+ 'via_villi',
13
+ 'pap_smear',
14
+ 'hpv',
15
+ 'cryotherapy',
16
+ 'thermocoagulation',
17
+ 'leep',
18
+
19
+ 'cbe',
20
+ 'ultrasound',
21
+ 'mammogram',
22
+ 'colonoscopy',
23
+ 'fobt',
24
+ 'hiv_status',
25
+
26
+ 'referral_from',
27
+ 'referral_to',
28
+ 'follow_up_date',
29
+ 'remarks',
30
+ ];
31
+
32
+ export type CancerScreeningResult = {
33
+ dc__screening_visit_type__initial__age_range__less_than_25__screened_via_or_via_vili: string;
34
+ dc__screening_visit_type__initial__age_range__25_to_49__screened_via_or_via_vili: string;
35
+ dc__screening_visit_type__initial__age_range__50_and_above__screened_via_or_via_vili: string;
36
+ screened_via_or_via_vili_initial_visit: string;
37
+ dc__screening_visit_type__routine__age_range__less_than_25__screened_via_or_via_vili: string;
38
+ dc__screening_visit_type__routine__age_range__25_to_49__screened_via_or_via_vili: string;
39
+ dc__screening_visit_type__routine__age_range__50_and_above__screened_via_or_via_vili: string;
40
+ screened_via_or_via_vili_routine_visit: string;
41
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__screened_via_or_via_vili: string;
42
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__screened_via_or_via_vili: string;
43
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__screened_via_or_via_vili: string;
44
+ screened_via_or_via_vili_post_treatment_visit: string;
45
+ dc__screening_visit_type__initial__age_range__less_than_25__screened_pap_smear: string;
46
+ dc__screening_visit_type__initial__age_range__25_to_49__screened_pap_smear: string;
47
+ dc__screening_visit_type__initial__age_range__50_and_above__screened_pap_smear: string;
48
+ screened_pap_smear_initial_visit: string;
49
+ dc__screening_visit_type__routine__age_range__less_than_25__screened_pap_smear: string;
50
+ dc__screening_visit_type__routine__age_range__25_to_49__screened_pap_smear: string;
51
+ dc__screening_visit_type__routine__age_range__50_and_above__screened_pap_smear: string;
52
+ screened_pap_smear_routine_visit: string;
53
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__screened_pap_smear: string;
54
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__screened_pap_smear: string;
55
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__screened_pap_smear: string;
56
+ screened_pap_smear_post_treatment_visit: string;
57
+ dc__screening_visit_type__initial__age_range__less_than_25__screened_hpv: string;
58
+ dc__screening_visit_type__initial__age_range__25_to_49__screened_hpv: string;
59
+ dc__screening_visit_type__initial__age_range__50_and_above__screened_hpv: string;
60
+ screened_hpv_initial_visit: string;
61
+ dc__screening_visit_type__routine__age_range__less_than_25__screened_hpv: string;
62
+ dc__screening_visit_type__routine__age_range__25_to_49__screened_hpv: string;
63
+ dc__screening_visit_type__routine__age_range__50_and_above__screened_hpv: string;
64
+ screened_hpv_routine_visit: string;
65
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__screened_hpv: string;
66
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__screened_hpv: string;
67
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__screened_hpv: string;
68
+ screened_hpv_post_treatment_visit: string;
69
+ dc__screening_visit_type__initial__age_range__less_than_25__positive_via_or_via_vili_test_result: string;
70
+ dc__screening_visit_type__initial__age_range__25_to_49__positive_via_or_via_vili_test_result: string;
71
+ dc__screening_visit_type__initial__age_range__50_and_above__positive_via_or_via_vili_test_result: string;
72
+ positive_via_or_via_vili_test_result_initial_visit: string;
73
+ dc__screening_visit_type__routine__age_range__less_than_25__positive_via_or_via_vili_test_result: string;
74
+ dc__screening_visit_type__routine__age_range__25_to_49__positive_via_or_via_vili_test_result: string;
75
+ dc__screening_visit_type__routine__age_range__50_and_above__positive_via_or_via_vili_test_result: string;
76
+ positive_via_or_via_vili_test_result_routine_visit: string;
77
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__positive_via_or_via_vili_test_result: string;
78
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__positive_via_or_via_vili_test_result: string;
79
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__positive_via_or_via_vili_test_result: string;
80
+ positive_via_or_via_vili_test_result_post_treatment_visit: string;
81
+ dc__screening_visit_type__initial__age_range__less_than_25__positive_hpv_test_result: string;
82
+ dc__screening_visit_type__initial__age_range__25_to_49__positive_hpv_test_result: string;
83
+ dc__screening_visit_type__initial__age_range__50_and_above__positive_hpv_test_result: string;
84
+ positive_hpv_test_result_initial_visit: string;
85
+ dc__screening_visit_type__routine__age_range__less_than_25__positive_hpv_test_result: string;
86
+ dc__screening_visit_type__routine__age_range__25_to_49__positive_hpv_test_result: string;
87
+ dc__screening_visit_type__routine__age_range__50_and_above__positive_hpv_test_result: string;
88
+ positive_hpv_test_result_routine_visit: string;
89
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__positive_hpv_test_result: string;
90
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__positive_hpv_test_result: string;
91
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__positive_hpv_test_result: string;
92
+ positive_hpv_test_result_post_treatment_visit: string;
93
+ dc__screening_visit_type__initial__age_range__less_than_25__via_or_via_vili_suspicious_lesion: string;
94
+ dc__screening_visit_type__initial__age_range__25_to_49__via_or_via_vili_suspicious_lesion: string;
95
+ dc__screening_visit_type__initial__age_range__50_and_above__via_or_via_vili_suspicious_lesion: string;
96
+ via_or_via_vili_suspicious_lesion_initial_visit: string;
97
+ dc__screening_visit_type__routine__age_range__less_than_25__via_or_via_vili_suspicious_lesion: string;
98
+ dc__screening_visit_type__routine__age_range__25_to_49__via_or_via_vili_suspicious_lesion: string;
99
+ dc__screening_visit_type__routine__age_range__50_and_above__via_or_via_vili_suspicious_lesion: string;
100
+ via_or_via_vili_suspicious_lesion_routine_visit: string;
101
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__via_or_via_vili_suspicious_lesion: string;
102
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__via_or_via_vili_suspicious_lesion: string;
103
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__via_or_via_vili_suspicious_lesion: string;
104
+ via_or_via_vili_suspicious_lesion_post_treatment_visit: string;
105
+ dc__screening_visit_type__initial__age_range__less_than_25__treated_via_cyrotherapy: string;
106
+ dc__screening_visit_type__initial__age_range__25_to_49__treated_via_cyrotherapy: string;
107
+ dc__screening_visit_type__initial__age_range__50_and_above__treated_via_cyrotherapy: string;
108
+ dc__screening_visit_type__routine__age_range__less_than_25__treated_via_cyrotherapy: string;
109
+ dc__screening_visit_type__routine__age_range__25_to_49__treated_via_cyrotherapy: string;
110
+ dc__screening_visit_type__routine__age_range__50_and_above__treated_via_cyrotherapy: string;
111
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__treated_via_cyrotherapy: string;
112
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__treated_via_cyrotherapy: string;
113
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__treated_via_cyrotherapy: string;
114
+ dc__screening_visit_type__initial__age_range__less_than_25__treated_via_thermo_coagulation: string;
115
+ dc__screening_visit_type__initial__age_range__25_to_49__treated_via_thermo_coagulation: string;
116
+ dc__screening_visit_type__initial__age_range__50_and_above__treated_via_thermo_coagulation: string;
117
+ treatment_method_thermo_coagulation_initial_visit: string;
118
+ dc__screening_visit_type__routine__age_range__less_than_25__treated_via_thermo_coagulation: string;
119
+ dc__screening_visit_type__routine__age_range__25_to_49__treated_via_thermo_coagulation: string;
120
+ dc__screening_visit_type__routine__age_range__50_and_above__treated_via_thermo_coagulation: string;
121
+ treatment_method_thermo_coagulation_routine_visit: string;
122
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__treated_via_thermo_coagulation: string;
123
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__treated_via_thermo_coagulation: string;
124
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__treated_via_thermo_coagulation: string;
125
+ treatment_method_thermo_coagulation_post_treatment_visit: string;
126
+ dc__screening_visit_type__initial__age_range__less_than_25__treated_via_leep: string;
127
+ dc__screening_visit_type__initial__age_range__25_to_49__treated_via_leep: string;
128
+ dc__screening_visit_type__initial__age_range__50_and_above__treated_via_leep: string;
129
+ treatment_method_leep_initial_visit: string;
130
+ dc__screening_visit_type__routine__age_range__less_than_25__treated_via_leep: string;
131
+ dc__screening_visit_type__routine__age_range__25_to_49__treated_via_leep: string;
132
+ dc__screening_visit_type__routine__age_range__50_and_above__treated_via_leep: string;
133
+ treatment_method_leep_routine_visit: string;
134
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__treated_via_leep: string;
135
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__treated_via_leep: string;
136
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__treated_via_leep: string;
137
+ treatment_method_leep_post_treatment_visit: string;
138
+ dc__screening_visit_type__initial__age_range__less_than_25__treated_via_other: string;
139
+ dc__screening_visit_type__initial__age_range__25_to_49__treated_via_other: string;
140
+ dc__screening_visit_type__initial__age_range__50_and_above__treated_via_other: string;
141
+ treatment_method_other_initial_visit: string;
142
+ dc__screening_visit_type__routine__age_range__less_than_25__treated_via_other: string;
143
+ dc__screening_visit_type__routine__age_range__25_to_49__treated_via_other: string;
144
+ dc__screening_visit_type__routine__age_range__50_and_above__treated_via_other: string;
145
+ treatment_method_other_routine_visit: string;
146
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__treated_via_other: string;
147
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__treated_via_other: string;
148
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__treated_via_other: string;
149
+ treatment_method_other_post_treatment_visit: string;
150
+
151
+ dc__screening_visit_type__initial__age_range__less_than_25__hiv_positive_screened: string;
152
+ dc__screening_visit_type__initial__age_range__25_to_49__hiv_positive_screened: string;
153
+ dc__screening_visit_type__initial__age_range__50_and_above__hiv_positive_screened: string;
154
+ hiv_positive_screened_initial_visit: string;
155
+ dc__screening_visit_type__routine__age_range__less_than_25__hiv_positive_screened: string;
156
+ dc__screening_visit_type__routine__age_range__25_to_49__hiv_positive_screened: string;
157
+ dc__screening_visit_type__routine__age_range__50_and_above__hiv_positive_screened: string;
158
+ hiv_positive_screened_routine_visit: string;
159
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__hiv_positive_screened: string;
160
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__hiv_positive_screened: string;
161
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__hiv_positive_screened: string;
162
+ hiv_positive_screened_post_treatment_visit: string;
163
+
164
+ dc__screening_visit_type__initial__age_range__less_than_25__hiv_positive_screened_positive_result: string;
165
+ dc__screening_visit_type__initial__age_range__25_to_49__hiv_positive_screened_positive_result: string;
166
+ dc__screening_visit_type__initial__age_range__50_and_above__hiv_positive_screened_positive_result: string;
167
+ hiv_positive_screened_positive_result_initial_visit: string;
168
+ dc__screening_visit_type__routine__age_range__less_than_25__hiv_positive_screened_positive_result: string;
169
+ dc__screening_visit_type__routine__age_range__25_to_49__hiv_positive_screened_positive_result: string;
170
+ dc__screening_visit_type__routine__age_range__50_and_above__hiv_positive_screened_positive_result: string;
171
+ hiv_positive_screened_positive_result_routine_visit: string;
172
+ dc__screening_visit_type__post_treatment__age_range__less_than_25__hiv_positive_screened_positive_result: string;
173
+ dc__screening_visit_type__post_treatment__age_range__25_to_49__hiv_positive_screened_positive_result: string;
174
+ dc__screening_visit_type__post_treatment__age_range__50_and_above__hiv_positive_screened_positive_result: string;
175
+ hiv_positive_screened_positive_result_post_treatment_visit: string;
176
+
177
+ };
178
+
179
+ export type Moh745reponse = {
180
+ result: CancerScreeningResult[];
181
+ }
@@ -0,0 +1,53 @@
1
+ import React from "react";
2
+ import { TableRow, TableCell } from "@carbon/react";
3
+ import styles from './table-wrapper.scss';
4
+ import { navigate } from "@openmrs/esm-framework";
5
+
6
+ interface TableRowMapperProps {
7
+ tableRows: {
8
+ tableCells: Array<{
9
+ key: string;
10
+ label: any;
11
+ strong: boolean;
12
+ colSpan: number;
13
+ rowSpan: number;
14
+ }>
15
+ }[],
16
+ data?: any,
17
+ redirectTo?: string,
18
+ locationUuids?: string,
19
+ startDate?: string,
20
+ endDate?: string
21
+ report?: string,
22
+ }
23
+
24
+ const TableRowMapper: React.FC<TableRowMapperProps> = ({ tableRows, data, redirectTo = "home/reports/moh-240", locationUuids, startDate, endDate, report = "moh-706" }) => {
25
+ return <>
26
+ {tableRows.map((tR) => (
27
+ <TableRow>
28
+ {tR.tableCells.map((tC, i) => {
29
+ const value = data ? data[tC.key] : "";
30
+
31
+ const onClick = () => {
32
+ if (!tC.label && tC.key) {
33
+ const params = new URLSearchParams();
34
+ if (locationUuids) params.append('locationUuids', locationUuids);
35
+ if (startDate) params.append('startDate', startDate);
36
+ if (endDate) params.append('endDate', endDate);
37
+ if (tC.key) params.append('indicators', tC.key);
38
+ params.append('report', report);
39
+ navigate({ to: `${redirectTo}?${params.toString()}` });
40
+ }
41
+ };
42
+
43
+ return <TableCell className={styles.dataCell} colSpan={tC.colSpan} key={i} onClick={onClick} {...({ rowSpan: tC.rowSpan } as any)}>
44
+ {tC.label ? (tC.strong ? <strong>{tC.label}</strong> : tC.label) : value}
45
+ </TableCell>
46
+
47
+ })}
48
+ </TableRow>
49
+ ))}
50
+ </>
51
+ }
52
+
53
+ export default TableRowMapper;
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import classNames from 'classnames';
3
+ import styles from './table-wrapper.scss';
4
+
5
+ interface TableWrapperProps {
6
+ children: React.ReactNode;
7
+ /** Applied to the wrapper, so a report can use its own stylesheet */
8
+ className?: string;
9
+ }
10
+
11
+ /**
12
+ * The frame the form-shaped reports render their tables in.
13
+ *
14
+ * This used to be Carbon's `<Table>`, but every report that uses it is a
15
+ * printed form rather than a data grid: Carbon sizes its rows to 2rem and pads
16
+ * its cells to 1rem, at a specificity no report stylesheet can reasonably
17
+ * outrank. A plain table carries none of those rules, so the reports size their
18
+ * own cells for A4.
19
+ */
20
+ const TableWrapper: React.FC<TableWrapperProps> = ({ children, className }) => {
21
+ return (
22
+ <div className={classNames(styles.tableWrapper, className)}>
23
+ <table>
24
+ <tbody>{children}</tbody>
25
+ </table>
26
+ </div>
27
+ );
28
+ };
29
+
30
+ export default TableWrapper;
@@ -1,20 +1,5 @@
1
1
  .tableWrapper {
2
2
  overflow-x: auto;
3
- border: 1px solid #d0d0d0;
4
- border-radius: 4px;
5
- }
6
-
7
- .tableContainer {
8
- width: 100%;
9
- border-collapse: collapse;
10
-
11
- thead {
12
- background-color: #f4f4f4;
13
- }
14
-
15
- tbody tr {
16
- border-bottom: 1px solid #e0e0e0;
17
- }
18
3
  }
19
4
 
20
5
  .dataCell {
@@ -28,4 +13,4 @@
28
13
  &:hover {
29
14
  background-color: #f0f7ff;
30
15
  }
31
- }
16
+ }