@ampath/esm-reports-app 1.0.0-next.5 → 1.0.0-next.50

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 (209) 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/427.js +2 -0
  17. package/dist/427.js.LICENSE.txt +35 -0
  18. package/dist/427.js.map +1 -0
  19. package/dist/441.js +1 -0
  20. package/dist/441.js.map +1 -0
  21. package/dist/478.js +1 -1
  22. package/dist/478.js.map +1 -1
  23. package/dist/540.js +1 -1
  24. package/dist/540.js.map +1 -1
  25. package/dist/55.js +1 -1
  26. package/dist/652.js +1 -1
  27. package/dist/907.css +1 -0
  28. package/dist/907.css.map +1 -0
  29. package/dist/907.js +1 -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/report-error/index.ts +1 -0
  39. package/src/common/report-error/show-report-error.ts +25 -0
  40. package/src/common/report-filters/date-range.ts +137 -0
  41. package/src/common/report-filters/index.ts +4 -0
  42. package/src/common/report-filters/report-filters.component.tsx +291 -100
  43. package/src/common/report-filters/report-filters.scss +199 -32
  44. package/src/common/report-filters/types.ts +66 -0
  45. package/src/common/report-filters/use-restore-period.ts +43 -0
  46. package/src/common/report-header/index.ts +1 -0
  47. package/src/common/report-header/use-location-details.ts +58 -0
  48. package/src/common/report-page/index.ts +2 -0
  49. package/src/common/report-page/report-page.component.tsx +32 -0
  50. package/src/common/report-page/report-page.scss +45 -0
  51. package/src/common/report-page/use-page-scale.ts +50 -0
  52. package/src/common/report-placeholder/has-report-data.ts +15 -0
  53. package/src/common/report-placeholder/index.ts +2 -0
  54. package/src/common/report-placeholder/report-placeholder.component.tsx +56 -0
  55. package/src/common/report-placeholder/report-placeholder.scss +46 -0
  56. package/src/common/report-register/index.ts +5 -0
  57. package/src/common/report-register/register-columns.ts +46 -0
  58. package/src/common/report-register/register-layout.component.tsx +243 -0
  59. package/src/common/report-register/register-layout.scss +140 -0
  60. package/src/common/report-register/register-table.scss +71 -0
  61. package/src/common/report-register/report-parents.ts +27 -0
  62. package/src/common/report-register/rows-to-csv.ts +89 -0
  63. package/src/common/report-register/use-patient-list.ts +92 -0
  64. package/src/common/report-skeleton/index.ts +1 -0
  65. package/src/common/report-skeleton/report-skeleton.component.tsx +46 -0
  66. package/src/common/report-skeleton/report-skeleton.scss +29 -0
  67. package/src/config-schema.ts +9 -1
  68. package/src/dashboard/report-catalog.ts +173 -0
  69. package/src/dashboard/reports-dasboard.tsx +101 -17
  70. package/src/dashboard/reports-dashboard.module.scss +269 -11
  71. package/src/index.ts +13 -1
  72. package/src/reports/datatable-wrapper/datatable-wrapper.component.tsx +69 -0
  73. package/src/reports/moh-240/moh-240-header.component.tsx +62 -0
  74. package/src/reports/moh-240/moh-240.columns.ts +105 -0
  75. package/src/reports/moh-240/moh-240.component.tsx +75 -0
  76. package/src/reports/moh-240/moh-240.scss +40 -0
  77. package/src/reports/moh-240/sub-reports/moh-240-register.component.tsx +36 -0
  78. package/src/reports/moh-240/sub-reports/page-summary.component.tsx +148 -0
  79. package/src/reports/moh-505/moh-505-header.component.tsx +67 -0
  80. package/src/reports/moh-505/moh-505.component.tsx +435 -0
  81. package/src/reports/moh-505/moh-505.scss +117 -0
  82. package/src/reports/moh-705B/moh-204b-register.component.tsx +235 -0
  83. package/src/reports/moh-705B/moh-204b.columns.ts +39 -0
  84. package/src/reports/moh-705B/moh-705b.component.tsx +543 -0
  85. package/src/reports/moh-705B/moh-705b.scss +130 -0
  86. package/src/reports/moh-705a/moh-705a.component.tsx +548 -0
  87. package/src/reports/moh-705a/moh-705a.scss +130 -0
  88. package/src/reports/moh-705a/registers/moh-204a-register.component.tsx +320 -0
  89. package/src/reports/moh-705a/registers/moh-204a.columns.ts +57 -0
  90. package/src/reports/moh-705a/type.ts +6 -0
  91. package/src/reports/moh-706/moh-706-header.component.tsx +66 -0
  92. package/src/reports/moh-706/moh-706.component.tsx +144 -24
  93. package/src/reports/moh-706/moh-706.scss +119 -11
  94. package/src/reports/moh-706/sub-reports/bacteriology/bacteriology.component.tsx +36 -44
  95. package/src/reports/moh-706/sub-reports/blood-chemistry/blood-chemistry.component.tsx +110 -116
  96. package/src/reports/moh-706/sub-reports/drug-susceptibility-testing/drug-susceptibility-testing.component.tsx +46 -73
  97. package/src/reports/moh-706/sub-reports/haematology/haematology.component.tsx +44 -52
  98. package/src/reports/moh-706/sub-reports/histology-and-cytology/histology-and-cytology.component.tsx +25 -40
  99. package/src/reports/moh-706/sub-reports/parasitology/parasitology.component.tsx +31 -39
  100. package/src/reports/moh-706/sub-reports/serology/serology.component.tsx +26 -34
  101. package/src/reports/moh-706/sub-reports/specimen-referral-to-higher-levels/specimen-referral-to-higher-levels.component.tsx +10 -25
  102. package/src/reports/moh-706/sub-reports/urine-analysis/urine-analysis.component.tsx +42 -50
  103. package/src/reports/moh-710/moh-710.component.tsx +780 -632
  104. package/src/reports/moh-710/moh-710.scss +142 -21
  105. package/src/reports/moh-710/registers/moh-511-710-register.component.tsx +268 -0
  106. package/src/reports/moh-710/registers/moh-511-710.columns.ts +52 -0
  107. package/src/reports/moh-710/registers/type.ts +31 -0
  108. package/src/reports/moh-711/moh-711.component.tsx +132 -1269
  109. package/src/reports/moh-711/moh711.scss +135 -20
  110. package/src/reports/moh-711/registers/moh-333-register.component.tsx +637 -0
  111. package/src/reports/moh-711/registers/moh-333.columns.ts +119 -0
  112. package/src/reports/moh-711/registers/moh-405-register.component.tsx +520 -0
  113. package/src/reports/moh-711/registers/moh-405.columns.ts +120 -0
  114. package/src/reports/moh-711/registers/moh-406-register.component.tsx +530 -0
  115. package/src/reports/moh-711/registers/moh-406.columns.ts +133 -0
  116. package/src/reports/moh-711/registers/moh-510-register.component.tsx +55 -0
  117. package/src/reports/moh-711/registers/moh-511-register.component.tsx +270 -0
  118. package/src/reports/moh-711/registers/moh-511.columns.ts +59 -0
  119. package/src/reports/moh-711/registers/type.ts +192 -0
  120. package/src/reports/moh-711/sections/anc.component.tsx +159 -0
  121. package/src/reports/moh-711/sections/cervical-cancer.component.tsx +148 -0
  122. package/src/reports/moh-711/sections/chanis.component.tsx +366 -0
  123. package/src/reports/moh-711/sections/family-planning.component.tsx +221 -0
  124. package/src/reports/moh-711/sections/gbv.component.tsx +115 -0
  125. package/src/reports/moh-711/sections/maternity.component.tsx +321 -0
  126. package/src/reports/moh-711/sections/medical-social-work.component.tsx +73 -0
  127. package/src/reports/moh-711/sections/other.component.tsx +47 -0
  128. package/src/reports/moh-711/sections/physiotherapy.component.tsx +61 -0
  129. package/src/reports/moh-711/sections/pnc.component.tsx +127 -0
  130. package/src/reports/moh-711/sections/post-abortion.component.tsx +42 -0
  131. package/src/reports/moh-711/sections/rehabilitation.component.tsx +57 -0
  132. package/src/reports/moh-711/sections/report-compiled-by.component.tsx +50 -0
  133. package/src/reports/moh-711/sections/tb-screening.component.tsx +57 -0
  134. package/src/reports/moh-717/moh-717.component.tsx +140 -985
  135. package/src/reports/moh-717/moh717.scss +217 -21
  136. package/src/reports/moh-717/registers/nutrition-register.component.tsx +48 -0
  137. package/src/reports/moh-717/sections/finance.component.tsx +42 -0
  138. package/src/reports/moh-717/sections/inpatient.component.tsx +374 -0
  139. package/src/reports/moh-717/sections/maternity.component.tsx +126 -0
  140. package/src/reports/moh-717/sections/medical-records.component.tsx +35 -0
  141. package/src/reports/moh-717/sections/mortuary.component.tsx +43 -0
  142. package/src/reports/moh-717/sections/operations.component.tsx +53 -0
  143. package/src/reports/moh-717/sections/orthopaedic-trauma.component.tsx +98 -0
  144. package/src/reports/moh-717/sections/outpatient.component.tsx +597 -0
  145. package/src/reports/moh-717/sections/pharmacy.component.tsx +43 -0
  146. package/src/reports/moh-717/sections/preparedby.component.tsx +52 -0
  147. package/src/reports/moh-717/sections/special-services.component.tsx +114 -0
  148. package/src/reports/moh-731/moh-731.component.tsx +198 -0
  149. package/src/reports/moh-731/moh-731.scss +446 -0
  150. package/src/reports/moh-731/registers/moh-366.columns.ts +38 -0
  151. package/src/reports/moh-731/registers/moh-366.component.tsx +471 -0
  152. package/src/reports/moh-731/registers/prep-register.component.tsx +284 -0
  153. package/src/reports/moh-731/registers/prep.columns.ts +34 -0
  154. package/src/reports/moh-731/sections/hiv-and-tb-treatment.component.tsx +1212 -0
  155. package/src/reports/moh-731/sections/hiv-testing-and-pre-exposure.component.tsx +713 -0
  156. package/src/reports/moh-731/sections/pmtct.component.tsx +572 -0
  157. package/src/reports/moh-740/moh-740.component.scss +200 -0
  158. package/src/reports/moh-740/moh-740.component.tsx +1302 -0
  159. package/src/reports/moh-740/moh-740.resource.ts +49 -0
  160. package/src/reports/moh-740/registers/moh-222-daily-register/moh-222-daily-register.tsx +89 -0
  161. package/src/reports/moh-740/registers/moh-270-permanent-register/moh-270-permanent-register.tsx +59 -0
  162. package/src/reports/moh-740/registers/moh-740-patient-list.scss +0 -0
  163. package/src/reports/moh-740/registers/moh-740-patient-list.tsx +95 -0
  164. package/src/reports/moh-740/registers/moh-740.columns.ts +52 -0
  165. package/src/reports/moh-740/shared/data-cell/data-cell.scss +6 -0
  166. package/src/reports/moh-740/shared/data-cell/data-cell.tsx +23 -0
  167. package/src/reports/moh-740/shared/utils/indicator-register-map.ts +157 -0
  168. package/src/reports/moh-740/types/index.ts +220 -0
  169. package/src/reports/moh-745/moh-745.component.tsx +948 -0
  170. package/src/reports/moh-745/moh-745.scss +132 -0
  171. package/src/reports/moh-745/registers/moh-412-register.component.tsx +190 -0
  172. package/src/reports/moh-745/registers/moh-412.columns.ts +52 -0
  173. package/src/reports/moh-745/registers/type.ts +30 -0
  174. package/src/reports/table-wrapper/table-row-mapper.component.tsx +53 -0
  175. package/src/reports/table-wrapper/table-wrapper.component.tsx +30 -0
  176. package/src/reports/table-wrapper/table-wrapper.scss +16 -0
  177. package/src/resources/moh-505.resource.ts +69 -0
  178. package/src/resources/moh-705.resource.ts +106 -0
  179. package/src/resources/moh-706.resource.ts +80 -0
  180. package/src/resources/moh-710.resource.ts +27 -9
  181. package/src/resources/moh-711.resource.ts +137 -9
  182. package/src/resources/moh-717.resource.ts +26 -9
  183. package/src/resources/moh-731.resource.ts +90 -0
  184. package/src/resources/moh-745.resource.ts +62 -0
  185. package/src/resources/patient-list-page.ts +65 -0
  186. package/src/root.component.tsx +46 -7
  187. package/src/root.scss +36 -0
  188. package/src/routes.json +3 -1
  189. package/src/utils/format-indicator.ts +22 -0
  190. package/src/utils/get-base-url.ts +39 -7
  191. package/src/utils/utils.ts +36 -0
  192. package/tsconfig.json +1 -1
  193. package/dist/184.js +0 -2
  194. package/dist/184.js.LICENSE.txt +0 -14
  195. package/dist/184.js.map +0 -1
  196. package/dist/260.js +0 -1
  197. package/dist/260.js.map +0 -1
  198. package/dist/402.js +0 -1
  199. package/dist/402.js.map +0 -1
  200. package/dist/812.js +0 -1
  201. package/dist/812.js.map +0 -1
  202. package/dist/959.js +0 -2
  203. package/dist/959.js.LICENSE.txt +0 -20
  204. package/dist/959.js.map +0 -1
  205. package/dist/ampath-esm-reports-app.js.buildmanifest.json +0 -539
  206. package/dist/main.js +0 -1
  207. package/dist/main.js.map +0 -1
  208. package/src/reports/moh-706/table-wrapper/table-wrapper.component.tsx +0 -21
  209. package/src/reports/moh-706/table-wrapper/table-wrapper.scss +0 -30
@@ -1,41 +1,162 @@
1
+ @use '@openmrs/esm-styleguide/src/vars' as *;
1
2
 
2
- h3 {
3
- text-align: center;
3
+ /* MOH-710 laid out for A4, on the same scale as MOH-711, MOH-740 and MOH-745.
4
+ Its 106 rows across eleven tables run to about two pages, so this is a
5
+ flowing document: the blocks share their edges, and a lettered section is
6
+ kept whole across a page break. */
7
+
8
+ $ink: #000;
9
+ $bar: #d9d9d9;
10
+ $rule: 1px solid $ink;
11
+
12
+ $text: 7pt;
13
+ $title: 7.5pt;
14
+ $meta: 6.5pt;
15
+
16
+ $pad: 3mm;
17
+
18
+ /* Masthead */
19
+
20
+ .mainTitleBox {
21
+ padding: $pad;
22
+ text-align: center;
23
+ border: $rule;
4
24
  }
5
25
 
6
- .container {
7
- border: 1px solid #ccc;
8
- margin: 0 2rem;
9
- margin-top: 0.5px;
26
+ .ministry {
27
+ font-size: $meta;
10
28
  }
11
29
 
12
- .tableContainer {
13
- margin-left: 1rem;
14
- margin-bottom: 1rem;
30
+ .reportTitle {
31
+ font-size: $title;
32
+ font-weight: 700;
33
+ color: $ink;
34
+ }
35
+
36
+ /* Facility and period strip, joined to the masthead above */
37
+
38
+ .location {
39
+ display: flex;
40
+ flex-wrap: nowrap;
41
+ align-items: baseline;
42
+ justify-content: space-between;
43
+ gap: 2.5mm;
44
+ padding: 2mm $pad;
45
+ font-size: $meta;
46
+ white-space: nowrap;
47
+ border: $rule;
48
+ border-top: none;
15
49
  }
16
50
 
17
- .sectionTitle {
18
- margin-left: 1rem ;
51
+ .line,
52
+ .shortLine {
53
+ display: inline-block;
54
+ padding: 0 0.5mm;
55
+ margin-left: 1mm;
56
+ overflow: hidden;
57
+ font-weight: 600;
58
+ text-align: center;
59
+ text-overflow: ellipsis;
60
+ vertical-align: bottom;
61
+ border-bottom: $rule;
62
+ }
63
+
64
+ .line {
65
+ width: 26mm;
66
+ }
67
+
68
+ .shortLine {
69
+ width: 14mm;
70
+ }
71
+
72
+ /* A lettered section, kept off a page break so a table never splits from the
73
+ heading that names it. Sections share edges rather than sitting apart. */
74
+
75
+ .container {
76
+ border: $rule;
77
+ border-top: none;
78
+ break-inside: avoid;
79
+ page-break-inside: avoid;
19
80
  }
20
81
 
21
82
  .title {
22
- text-align: center;
23
- font-size: 1rem;
24
- margin: 1rem;
83
+ padding: 1.5mm $pad;
84
+ font-size: $text;
85
+ font-weight: 700;
86
+ color: $ink;
87
+ text-align: left;
88
+ background-color: $bar;
89
+ border-bottom: $rule;
90
+ break-after: avoid;
91
+ page-break-after: avoid;
25
92
  }
93
+
94
+ .tableContainer {
95
+ overflow-x: auto;
96
+ padding: $pad;
97
+
98
+ & + .tableContainer {
99
+ padding-top: 0;
100
+ }
101
+ }
102
+
26
103
  .table {
27
- width: auto;
104
+ width: 100%;
28
105
  border-collapse: collapse;
29
-
30
106
  }
31
107
 
32
108
  .tableBordered td,
33
109
  .tableBordered th {
34
- border: 1px solid #dee2e6;
35
- padding: 0.3rem;
36
- font-size: small;
110
+ padding: 1mm 1.5mm;
111
+ font-size: $text;
112
+ text-align: left;
113
+ border: $rule;
114
+ }
115
+
116
+ .tableBordered th {
117
+ font-weight: 700;
118
+ color: $ink;
119
+ background-color: #f0f0f0;
37
120
  }
38
121
 
39
122
  .tableStriped tbody tr:nth-of-type(odd) {
40
- background-color: #f9f9f9;
41
- }
123
+ background-color: #fafafa;
124
+ }
125
+
126
+ @media screen {
127
+ .tableStriped tbody tr:hover {
128
+ background-color: $brand-primary-10;
129
+ }
130
+ }
131
+
132
+ /* Sign-off, enclosed by the form rather than floating beneath it. Three fields
133
+ across the sheet, so its rules can be wider than the header strip's five. */
134
+
135
+ .signOff {
136
+ display: flex;
137
+ flex-wrap: nowrap;
138
+ align-items: baseline;
139
+ justify-content: space-between;
140
+ gap: 2.5mm;
141
+ padding: $pad;
142
+ font-size: $meta;
143
+ white-space: nowrap;
144
+ border: $rule;
145
+ border-top: none;
146
+
147
+ .line {
148
+ width: 45mm;
149
+ }
150
+
151
+ .shortLine {
152
+ width: 25mm;
153
+ }
154
+ }
155
+
156
+ /* On paper the striping is screen affordance that prints as grey noise */
157
+
158
+ @media print {
159
+ .tableStriped tbody tr:nth-of-type(odd) {
160
+ background-color: transparent;
161
+ }
162
+ }
@@ -0,0 +1,268 @@
1
+ import { Table, TableBody, TableHead, TableHeader, TableRow } from '@carbon/react';
2
+ import React from 'react';
3
+ import { useLocation, useSearchParams } from 'react-router-dom';
4
+
5
+ import styles from '../../../common/report-register/register-table.scss';
6
+ import { getMoh511PatientList } from '../../../resources/moh-711.resource';
7
+ import { moh511Columns } from './type';
8
+ import { moh511ExportColumns } from './moh-511-710.columns';
9
+ import { RegisterLayout, usePatientList } from '../../../common/report-register';
10
+
11
+ const Moh511710Register: React.FC = () => {
12
+ const [searchParams] = useSearchParams();
13
+ const location = useLocation();
14
+
15
+ /* The endpoint scopes its list by report. Defaulted rather than read only
16
+ from route state, which is lost on a reload or a pasted link. */
17
+ const reportName = location.state?.reportName || 'moh710Report';
18
+
19
+ const startDate = searchParams.get('startDate');
20
+ const endDate = searchParams.get('endDate');
21
+ const locationUuids = searchParams.get('locationUuids');
22
+ const indicator = searchParams.get('indicator');
23
+
24
+ const {
25
+ rows: patientlist,
26
+ total,
27
+ isTotalExact,
28
+ isLoading,
29
+ page,
30
+ pageSize,
31
+ onPageChange,
32
+ fetchAll,
33
+ } = usePatientList(
34
+ ({ startIndex, limit }) =>
35
+ getMoh511PatientList({
36
+ startDate,
37
+ endDate,
38
+ locationUuids,
39
+ indicator,
40
+ reportName,
41
+ startIndex,
42
+ limit,
43
+ }),
44
+ [startDate, endDate, locationUuids, indicator, reportName],
45
+ );
46
+
47
+ return (
48
+ <RegisterLayout
49
+ parentLabel="MOH-710 Report"
50
+ parentPath="/moh-710"
51
+ title="MOH 511 Immunization Register"
52
+ isLoading={isLoading}
53
+ isEmpty={patientlist.length === 0}
54
+ page={page}
55
+ pageSize={pageSize}
56
+ total={total}
57
+ isTotalExact={isTotalExact}
58
+ onPageChange={onPageChange}
59
+ fetchAll={fetchAll}
60
+ columns={moh511ExportColumns}
61
+ >
62
+ <Table>
63
+ <TableHead>
64
+ <TableRow>
65
+ <TableHeader>Serial No.</TableHeader>
66
+ <TableHeader>
67
+ Date.
68
+ <br />
69
+ (DD:MM:YYYY)
70
+ </TableHeader>
71
+ <TableHeader>
72
+ CWC No.
73
+ <br />
74
+ (New Visit)
75
+ </TableHeader>
76
+ <TableHeader>
77
+ CWC No.
78
+ <br />
79
+ (Revisit)
80
+ </TableHeader>
81
+ <TableHeader>
82
+ BIRTH NOTIFICATION
83
+ <br /> (NUMBER)
84
+ </TableHeader>
85
+ <TableHeader>Full Names (Three names)</TableHeader>
86
+ <TableHeader>Age</TableHeader>
87
+ <TableHeader>Sex</TableHeader>
88
+ <TableHeader>
89
+ County/Sub-
90
+ <br />
91
+ county
92
+ </TableHeader>
93
+ <TableHeader>
94
+ Village /Estate / <br />
95
+ Landmark
96
+ </TableHeader>
97
+ <TableHeader>
98
+ Telephone
99
+ <br />
100
+ number
101
+ </TableHeader>
102
+ <TableHeader>Weight</TableHeader>
103
+ <TableHeader>Height</TableHeader>
104
+ <TableHeader>Weight in Kgs</TableHeader>
105
+ <TableHeader>
106
+ Weight
107
+ <br />
108
+ categories:
109
+ <br />
110
+ (1=Normal
111
+ <br />
112
+ 2=UW
113
+ <br />
114
+ 3=SUW
115
+ <br />
116
+ 4=OW
117
+ <br />
118
+ 5=Obese)
119
+ </TableHeader>
120
+ <TableHeader>Height / Length in cm</TableHeader>
121
+ <TableHeader>
122
+ Height/Length
123
+ <br />
124
+ categories:
125
+ <br />
126
+ (1=Normal
127
+ <br />
128
+ 2=Stunted
129
+ <br />
130
+ 3=Sev.
131
+ <br />
132
+ Stunted)
133
+ <br />
134
+ </TableHeader>
135
+ <TableHeader>
136
+ MUAC
137
+ <br />
138
+ 1.Green
139
+ <br />
140
+ 2.Yellow
141
+ <br />
142
+ 3.Red
143
+ </TableHeader>
144
+ <TableHeader>
145
+ Exclusive <br /> Breast feeding <br />
146
+ (less than 6<br /> months)(Y/N)
147
+ </TableHeader>
148
+ <TableHeader>
149
+ Vitamin A
150
+ <br />
151
+ supplimentation:
152
+ <br />
153
+ (6-59 months) (1=6-
154
+ <br />
155
+ 11 months, 2=12-59
156
+ <br />
157
+ months, 3=Not
158
+ <br />
159
+ supplimented)
160
+ </TableHeader>
161
+ <TableHeader>Dewormed (Y/N)</TableHeader>
162
+ <TableHeader>
163
+ MNPs supplimentation:(6-23
164
+ <br />
165
+ children)
166
+ </TableHeader>
167
+ <TableHeader>
168
+ Childs assessed for <br />
169
+ Developmental milestones <br />
170
+ including 1st Haed control ,2=
171
+ <br />
172
+ sitting, 3=talking
173
+ </TableHeader>
174
+ <TableHeader>
175
+ Any Danger Signs
176
+ <br />
177
+ 1.Unable to breastfeed
178
+ <br />
179
+ 2.Unable to drink
180
+ <br />
181
+ 3.Vomits everything
182
+ <br />
183
+ 4.Bloody diarrhoea
184
+ <br />
185
+ 5.Has oedema <br />
186
+ 6.Has convulsions
187
+ </TableHeader>
188
+ <TableHeader>Any Disability</TableHeader>
189
+ <TableHeader>Immunization status up to date(Y/N)</TableHeader>
190
+ <TableHeader>LLIN gievn to under 1 years(Y/N)</TableHeader>
191
+ <TableHeader>
192
+ Follow up for: <br />
193
+ 1=Nutrition service
194
+ <br />
195
+ 2=Rehabilitation service
196
+ </TableHeader>
197
+ <TableHeader>
198
+ 1=referred from CU; 2= <br />
199
+ referred from another H/F;
200
+ <br />
201
+ 3=Not applicable
202
+ </TableHeader>
203
+ <TableHeader>
204
+ 1=referred to CU; 2= <br />
205
+ referred to another H/F;
206
+ <br />
207
+ 3=Not applicable
208
+ </TableHeader>
209
+ <TableHeader>
210
+ Reason for referral <br />
211
+ ....specify
212
+ </TableHeader>
213
+ <TableHeader>REMARKS</TableHeader>
214
+ </TableRow>
215
+ <TableRow>
216
+ <TableHeader>A</TableHeader>
217
+ <TableHeader>B</TableHeader>
218
+ <TableHeader>C</TableHeader>
219
+ <TableHeader>D</TableHeader>
220
+ <TableHeader>E</TableHeader>
221
+ <TableHeader>F</TableHeader>
222
+ <TableHeader>G</TableHeader>
223
+ <TableHeader>H</TableHeader>
224
+ <TableHeader>I</TableHeader>
225
+ <TableHeader>J</TableHeader>
226
+ <TableHeader>K</TableHeader>
227
+ <TableHeader>L</TableHeader>
228
+ <TableHeader>M</TableHeader>
229
+ <TableHeader>N</TableHeader>
230
+ <TableHeader>O</TableHeader>
231
+ <TableHeader>P</TableHeader>
232
+ <TableHeader>Q</TableHeader>
233
+ <TableHeader>R</TableHeader>
234
+ <TableHeader>S</TableHeader>
235
+ <TableHeader>T</TableHeader>
236
+ <TableHeader>U</TableHeader>
237
+ <TableHeader>V</TableHeader>
238
+ <TableHeader>W</TableHeader>
239
+ <TableHeader>X</TableHeader>
240
+ <TableHeader>Y</TableHeader>
241
+ <TableHeader>Z</TableHeader>
242
+ <TableHeader>AA</TableHeader>
243
+ <TableHeader>AB</TableHeader>
244
+ <TableHeader>AC</TableHeader>
245
+ <TableHeader>AD</TableHeader>
246
+ </TableRow>
247
+ </TableHead>
248
+ <TableBody>
249
+ {patientlist?.length > 0 ? (
250
+ patientlist.map((patient, index) => (
251
+ <TableRow key={index}>
252
+ {moh511Columns.map((col) => (
253
+ <td key={col}>{col === 'serial_no' ? index + 1 : (patient?.[col] ?? '')}</td>
254
+ ))}
255
+ </TableRow>
256
+ ))
257
+ ) : (
258
+ <TableRow>
259
+ <td colSpan={moh511Columns.length}>No data available</td>
260
+ </TableRow>
261
+ )}
262
+ </TableBody>
263
+ </Table>
264
+ </RegisterLayout>
265
+ );
266
+ };
267
+
268
+ export default Moh511710Register;
@@ -0,0 +1,52 @@
1
+ import { type RegisterColumn } from '../../../common/report-register';
2
+
3
+ /**
4
+ * MOH 511 as the register prints it: one column per cell, in the order they appear.
5
+ */
6
+ export const moh511ExportColumns: RegisterColumn[] = [
7
+ { header: 'Serial No. - A', value: (row) => row.serial_no ?? '' },
8
+ { header: 'Date. (DD:MM:YYYY) - B', value: (row) => row.visit_date ?? '' },
9
+ { header: 'CWC No. (New Visit) - C', value: (row) => row.cwc_number_new ?? '' },
10
+ { header: 'CWC No. (Revisit) - D', value: (row) => row.cwc_number_revisit ?? '' },
11
+ { header: 'BIRTH NOTIFICATION (NUMBER) - E', value: (row) => row.birth_notification_number ?? '' },
12
+ { header: 'Full Names (Three names) - F', value: (row) => row.full_name ?? '' },
13
+ { header: 'Age - G', value: (row) => row.age ?? '' },
14
+ { header: 'Sex - H', value: (row) => row.sex ?? '' },
15
+ { header: 'County/Sub- county - I', value: (row) => row.county_sub_county ?? '' },
16
+ { header: 'Village /Estate / Landmark - J', value: (row) => row.village_estate_landmark ?? '' },
17
+ { header: 'Telephone number - K', value: (row) => row.phone_number ?? '' },
18
+ { header: 'Weight - L', value: (row) => row.height ?? '' },
19
+ { header: 'Height - M', value: (row) => row.weight_kg ?? '' },
20
+ { header: 'Weight in Kgs - N', value: (row) => row.weight_category ?? '' },
21
+ { header: 'Weight categories: (1=Normal 2=UW 3=SUW 4=OW 5=Obese) - O', value: (row) => row.height_category ?? '' },
22
+ { header: 'Height / Length in cm - P', value: (row) => row.muac ?? '' },
23
+ {
24
+ header: 'Height/Length categories: (1=Normal 2=Stunted 3=Sev. Stunted) - Q',
25
+ value: (row) => row.exclusive_breastfeeding_less_6_months ?? '',
26
+ },
27
+ { header: 'MUAC 1.Green 2.Yellow 3.Red - R', value: (row) => row.vitamin_A_supplementation ?? '' },
28
+ { header: 'Exclusive Breast feeding (less than 6 months)(Y/N) - S', value: (row) => row.dewormed ?? '' },
29
+ {
30
+ header: 'Vitamin A supplimentation: (6-59 months) (1=6- 11 months, 2=12-59 months, 3=Not supplimented) - T',
31
+ value: (row) => row.mnps_supplimentation ?? '',
32
+ },
33
+ { header: 'Dewormed (Y/N) - U', value: (row) => row.developmental_milestones ?? '' },
34
+ { header: 'MNPs supplimentation:(6-23 children) - V', value: (row) => row.danger_signs ?? '' },
35
+ {
36
+ header: 'Childs assessed for Developmental milestones including 1st Haed control ,2= sitting, 3=talking - W',
37
+ value: (row) => row.disability ?? '',
38
+ },
39
+ {
40
+ header:
41
+ 'Any Danger Signs 1.Unable to breastfeed 2.Unable to drink 3.Vomits everything 4.Bloody diarrhoea 5.Has oedema 6.Has convulsions - X',
42
+ value: (row) => row.immunization_status_up_to_date ?? '',
43
+ },
44
+ { header: 'Any Disability - Y', value: (row) => row.llin_supplimentation_given ?? '' },
45
+ { header: 'Immunization status up to date(Y/N) - Z', value: (row) => row.follow_up ?? '' },
46
+ { header: 'LLIN gievn to under 1 years(Y/N) - AA', value: (row) => row.referred_from ?? '' },
47
+ { header: 'Follow up for: 1=Nutrition service 2=Rehabilitation service - AB', value: (row) => row.referred_to ?? '' },
48
+ {
49
+ header: '1=referred from CU; 2= referred from another H/F; 3=Not applicable - AC',
50
+ value: (row) => row.remarks ?? '',
51
+ },
52
+ ];
@@ -0,0 +1,31 @@
1
+ export const moh511Columns = [
2
+ 'serial_no',
3
+ 'visit_date',
4
+ 'cwc_number_new',
5
+ 'cwc_number_revisit',
6
+ 'birth_notification_number',
7
+ 'full_name',
8
+ 'age',
9
+ 'sex',
10
+ 'county_sub_county',
11
+ 'village_estate_landmark',
12
+ 'phone_number',
13
+ 'height',
14
+ 'weight_kg',
15
+ 'weight_category',
16
+ 'height_category',
17
+ 'muac',
18
+ 'exclusive_breastfeeding_less_6_months',
19
+ 'vitamin_A_supplementation',
20
+ 'dewormed',
21
+ 'mnps_supplimentation',
22
+ 'developmental_milestones',
23
+ 'danger_signs',
24
+ 'disability',
25
+ 'immunization_status_up_to_date',
26
+ 'llin_supplimentation_given',
27
+ 'follow_up',
28
+ 'referred_from',
29
+ 'referred_to',
30
+ 'remarks',
31
+ ];