@ampath/esm-reports-app 1.0.0-next.41 → 1.0.0-next.45

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 (183) hide show
  1. package/dist/143.css +1 -0
  2. package/dist/143.css.map +1 -0
  3. package/dist/143.js +1 -0
  4. package/dist/143.js.map +1 -0
  5. package/dist/197.js +1 -1
  6. package/dist/282.js +1 -1
  7. package/dist/282.js.map +1 -1
  8. package/dist/295.css +1 -0
  9. package/dist/295.css.map +1 -0
  10. package/dist/295.js +1 -0
  11. package/dist/295.js.map +1 -0
  12. package/dist/300.js +1 -1
  13. package/dist/311.js +1 -1
  14. package/dist/311.js.map +1 -1
  15. package/dist/335.js +1 -1
  16. package/dist/353.js +1 -1
  17. package/dist/353.js.map +1 -1
  18. package/dist/410.js +1 -0
  19. package/dist/410.js.map +1 -0
  20. package/dist/427.js +2 -0
  21. package/dist/427.js.LICENSE.txt +35 -0
  22. package/dist/427.js.map +1 -0
  23. package/dist/441.js +1 -0
  24. package/dist/441.js.map +1 -0
  25. package/dist/478.js +1 -1
  26. package/dist/478.js.map +1 -1
  27. package/dist/540.js +1 -1
  28. package/dist/540.js.map +1 -1
  29. package/dist/55.js +1 -1
  30. package/dist/652.js +1 -1
  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 +281 -151
  43. package/src/common/report-filters/report-filters.scss +180 -55
  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-page/index.ts +2 -0
  47. package/src/common/report-page/report-page.component.tsx +32 -0
  48. package/src/common/report-page/report-page.scss +45 -0
  49. package/src/common/report-page/use-page-scale.ts +50 -0
  50. package/src/common/report-placeholder/has-report-data.ts +15 -0
  51. package/src/common/report-placeholder/index.ts +2 -0
  52. package/src/common/report-placeholder/report-placeholder.component.tsx +56 -0
  53. package/src/common/report-placeholder/report-placeholder.scss +46 -0
  54. package/src/common/report-register/index.ts +5 -0
  55. package/src/common/report-register/register-columns.ts +34 -0
  56. package/src/common/report-register/register-layout.component.tsx +237 -0
  57. package/src/common/report-register/register-layout.scss +140 -0
  58. package/src/common/report-register/register-table.scss +62 -0
  59. package/src/common/report-register/report-parents.ts +27 -0
  60. package/src/common/report-register/rows-to-csv.ts +59 -0
  61. package/src/common/report-register/use-patient-list.ts +92 -0
  62. package/src/common/report-skeleton/index.ts +1 -0
  63. package/src/common/report-skeleton/report-skeleton.component.tsx +46 -0
  64. package/src/common/report-skeleton/report-skeleton.scss +29 -0
  65. package/src/config-schema.ts +9 -1
  66. package/src/dashboard/report-catalog.ts +173 -0
  67. package/src/dashboard/reports-dasboard.tsx +101 -35
  68. package/src/dashboard/reports-dashboard.module.scss +269 -11
  69. package/src/index.ts +13 -1
  70. package/src/reports/datatable-wrapper/datatable-wrapper.component.tsx +50 -48
  71. package/src/reports/moh-240/moh-240-header.component.tsx +54 -56
  72. package/src/reports/moh-240/moh-240.columns.ts +64 -0
  73. package/src/reports/moh-240/moh-240.component.tsx +65 -84
  74. package/src/reports/moh-240/moh-240.scss +36 -7
  75. package/src/reports/moh-240/sub-reports/moh-240-register.component.tsx +27 -65
  76. package/src/reports/moh-240/sub-reports/page-summary.component.tsx +2 -2
  77. package/src/reports/moh-505/moh-505-header.component.tsx +59 -57
  78. package/src/reports/moh-505/moh-505.component.tsx +51 -56
  79. package/src/reports/moh-505/moh-505.scss +116 -2
  80. package/src/reports/moh-705B/moh-204b-register.component.tsx +41 -42
  81. package/src/reports/moh-705B/moh-204b.columns.ts +39 -0
  82. package/src/reports/moh-705B/moh-705b.component.tsx +492 -473
  83. package/src/reports/moh-705B/moh-705b.scss +110 -24
  84. package/src/reports/moh-705a/moh-705a.component.tsx +496 -476
  85. package/src/reports/moh-705a/moh-705a.scss +109 -24
  86. package/src/reports/moh-705a/registers/moh-204a-register.component.tsx +41 -42
  87. package/src/reports/moh-705a/registers/moh-204a.columns.ts +57 -0
  88. package/src/reports/moh-706/moh-706-header.component.tsx +58 -56
  89. package/src/reports/moh-706/moh-706.component.tsx +84 -55
  90. package/src/reports/moh-706/moh-706.scss +115 -19
  91. package/src/reports/moh-710/moh-710.component.tsx +743 -727
  92. package/src/reports/moh-710/moh-710.scss +140 -23
  93. package/src/reports/moh-710/registers/moh-511-710-register.component.tsx +48 -43
  94. package/src/reports/moh-710/registers/moh-511-710.columns.ts +52 -0
  95. package/src/reports/moh-711/moh-711.component.tsx +94 -106
  96. package/src/reports/moh-711/moh711.scss +95 -64
  97. package/src/reports/moh-711/registers/moh-333-register.component.tsx +92 -94
  98. package/src/reports/moh-711/registers/moh-333.columns.ts +119 -0
  99. package/src/reports/moh-711/registers/moh-405-register.component.tsx +88 -89
  100. package/src/reports/moh-711/registers/moh-405.columns.ts +120 -0
  101. package/src/reports/moh-711/registers/moh-406-register.component.tsx +85 -88
  102. package/src/reports/moh-711/registers/moh-406.columns.ts +133 -0
  103. package/src/reports/moh-711/registers/moh-510-register.component.tsx +38 -44
  104. package/src/reports/moh-711/registers/moh-511-register.component.tsx +42 -43
  105. package/src/reports/moh-711/registers/moh-511.columns.ts +59 -0
  106. package/src/reports/moh-711/sections/anc.component.tsx +3 -3
  107. package/src/reports/moh-711/sections/cervical-cancer.component.tsx +3 -3
  108. package/src/reports/moh-711/sections/chanis.component.tsx +2 -3
  109. package/src/reports/moh-711/sections/family-planning.component.tsx +2 -2
  110. package/src/reports/moh-711/sections/gbv.component.tsx +2 -2
  111. package/src/reports/moh-711/sections/maternity.component.tsx +3 -8
  112. package/src/reports/moh-711/sections/medical-social-work.component.tsx +2 -12
  113. package/src/reports/moh-711/sections/other.component.tsx +2 -2
  114. package/src/reports/moh-711/sections/physiotherapy.component.tsx +2 -2
  115. package/src/reports/moh-711/sections/pnc.component.tsx +7 -5
  116. package/src/reports/moh-711/sections/post-abortion.component.tsx +2 -2
  117. package/src/reports/moh-711/sections/rehabilitation.component.tsx +2 -2
  118. package/src/reports/moh-711/sections/report-compiled-by.component.tsx +12 -4
  119. package/src/reports/moh-711/sections/tb-screening.component.tsx +2 -2
  120. package/src/reports/moh-717/moh-717.component.tsx +100 -121
  121. package/src/reports/moh-717/moh717.scss +163 -102
  122. package/src/reports/moh-717/sections/maternity.component.tsx +1 -1
  123. package/src/reports/moh-717/sections/orthopaedic-trauma.component.tsx +1 -1
  124. package/src/reports/moh-717/sections/outpatient.component.tsx +23 -23
  125. package/src/reports/moh-717/sections/preparedby.component.tsx +7 -2
  126. package/src/reports/moh-717/sections/special-services.component.tsx +1 -1
  127. package/src/reports/moh-731/moh-731.component.tsx +127 -110
  128. package/src/reports/moh-731/moh-731.scss +396 -68
  129. package/src/reports/moh-731/registers/moh-366.columns.ts +38 -0
  130. package/src/reports/moh-731/registers/moh-366.component.tsx +76 -83
  131. package/src/reports/moh-731/registers/prep-register.component.tsx +70 -78
  132. package/src/reports/moh-731/registers/prep.columns.ts +34 -0
  133. package/src/reports/moh-731/sections/hiv-and-tb-treatment.component.tsx +1031 -751
  134. package/src/reports/moh-731/sections/hiv-testing-and-pre-exposure.component.tsx +230 -86
  135. package/src/reports/moh-731/sections/pmtct.component.tsx +185 -64
  136. package/src/reports/moh-740/moh-740.component.scss +159 -79
  137. package/src/reports/moh-740/moh-740.component.tsx +261 -230
  138. package/src/reports/moh-740/moh-740.resource.ts +17 -10
  139. package/src/reports/moh-740/registers/moh-222-daily-register/moh-222-daily-register.tsx +77 -96
  140. package/src/reports/moh-740/registers/moh-270-permanent-register/moh-270-permanent-register.tsx +50 -70
  141. package/src/reports/moh-740/registers/moh-740-patient-list.tsx +61 -32
  142. package/src/reports/moh-740/registers/moh-740.columns.ts +52 -0
  143. package/src/reports/moh-740/shared/utils/indicator-register-map.ts +3 -3
  144. package/src/reports/moh-740/types/index.ts +3 -3
  145. package/src/reports/moh-745/moh-745.component.tsx +897 -877
  146. package/src/reports/moh-745/moh-745.scss +104 -46
  147. package/src/reports/moh-745/registers/moh-412-register.component.tsx +42 -43
  148. package/src/reports/moh-745/registers/moh-412.columns.ts +52 -0
  149. package/src/reports/table-wrapper/table-wrapper.component.tsx +23 -14
  150. package/src/reports/table-wrapper/table-wrapper.scss +1 -16
  151. package/src/resources/moh-505.resource.ts +18 -35
  152. package/src/resources/moh-705.resource.ts +28 -39
  153. package/src/resources/moh-706.resource.ts +17 -30
  154. package/src/resources/moh-710.resource.ts +7 -17
  155. package/src/resources/moh-711.resource.ts +46 -64
  156. package/src/resources/moh-717.resource.ts +7 -17
  157. package/src/resources/moh-731.resource.ts +26 -32
  158. package/src/resources/moh-745.resource.ts +18 -20
  159. package/src/resources/patient-list-page.ts +66 -0
  160. package/src/root.component.tsx +28 -26
  161. package/src/root.scss +36 -0
  162. package/src/utils/get-base-url.ts +39 -7
  163. package/tsconfig.json +1 -1
  164. package/dist/110.js +0 -1
  165. package/dist/110.js.map +0 -1
  166. package/dist/184.js +0 -2
  167. package/dist/184.js.LICENSE.txt +0 -14
  168. package/dist/184.js.map +0 -1
  169. package/dist/205.js +0 -1
  170. package/dist/205.js.map +0 -1
  171. package/dist/812.js +0 -1
  172. package/dist/812.js.map +0 -1
  173. package/dist/822.js +0 -2
  174. package/dist/822.js.LICENSE.txt +0 -20
  175. package/dist/822.js.map +0 -1
  176. package/dist/ampath-esm-reports-app.js.buildmanifest.json +0 -560
  177. package/dist/main.js +0 -1
  178. package/dist/main.js.map +0 -1
  179. package/src/reports/moh-731/registers/moh-366.scss +0 -45
  180. package/src/reports/moh-731/registers/prep-registers.scss +0 -45
  181. package/src/reports/moh-740/registers/moh-222-daily-register/moh-222-daily-register.scss +0 -18
  182. package/src/reports/moh-740/registers/moh-270-permanent-register/moh-270-permanent-register.scss +0 -18
  183. /package/src/{reports/moh-740/shared/utils → utils}/format-indicator.ts +0 -0
@@ -1,120 +1,200 @@
1
+ /* MOH-740 laid out for A4, matching MOH-711: geometry in millimetres, type in
2
+ points, one rule weight throughout. Its 52 rows fit a single page. */
3
+
4
+ $ink: #000;
5
+ $bar: #d9d9d9;
6
+ $rule: 1px solid $ink;
7
+
8
+ /* The same scale MOH-711 uses, so the two forms read as one family */
9
+ $text: 7pt; // table cells
10
+ $title: 7.5pt; // form title
11
+ $sub: 7.5pt; // subtitle
12
+ $meta: 6.5pt; // facility strip
13
+
14
+ /* Page chrome, outside the sheet */
15
+
1
16
  .reportLayout {
2
- display: flex;
3
- flex-direction: column;
4
- width: 100%;
5
- row-gap: 10px;
6
- padding: 15px 15px;
7
-
8
- .reportHeader {
9
- display: flex;
10
- flex-direction: column;
11
- width: 100%;
12
- row-gap: 15px;
13
-
14
- .reportTitle {
15
- display: flex;
16
- flex-direction: column;
17
- width: 100%;
18
- }
19
-
20
- .reportFilters {
21
- display: flex;
22
- flex-direction: column;
23
- width: 100%;
24
- row-gap: 5px;
25
- }
26
- }
17
+ display: flex;
18
+ flex-direction: column;
19
+ width: 100%;
20
+ row-gap: 0.5rem;
21
+ padding: 0.75rem 0;
27
22
  }
28
23
 
29
- .reportContent {
30
- display: flex;
31
- flex-direction: column;
32
- width: 100%;
33
- padding: 30px 30px;
24
+ .reportHeader {
25
+ display: flex;
26
+ flex-direction: column;
27
+ width: 100%;
28
+ row-gap: 0.75rem;
34
29
  }
35
30
 
31
+ .reportFilters {
32
+ display: flex;
33
+ flex-direction: column;
34
+ width: 100%;
35
+ }
36
36
 
37
- .sectionHeader {
38
- background-color: #f2f2f2;
39
- font-weight: bold;
40
- text-align: center;
41
- text-transform: uppercase;
37
+ .reportContent {
38
+ display: flex;
39
+ flex-direction: column;
40
+ width: 100%;
42
41
  }
43
42
 
43
+ /* Masthead */
44
+
45
+ /* The four blocks below stack flush and share their edges: each drops its top
46
+ border and its margin, so the masthead, facility strip, indicator table and
47
+ sign-off read as one continuous form rather than four separate boxes. */
48
+
44
49
  .headerContainer {
45
- display: flex;
46
- justify-content: space-between;
47
- align-items: flex-start;
48
- margin-bottom: 10px;
50
+ display: flex;
51
+ align-items: flex-start;
52
+ width: 100%;
49
53
  }
50
54
 
51
55
  .mainTitleBox {
52
- border: 2px solid #000;
53
- padding: 10px;
54
- text-align: center;
55
- width: 100%;
56
+ width: 100%;
57
+ padding: 3mm;
58
+ text-align: center;
59
+ border: $rule;
56
60
  }
57
61
 
58
- .formCodeBox {
59
- text-align: right;
60
- font-size: 9px;
61
- width: 25%;
62
+ .mainTitle {
63
+ margin: 0;
64
+ font-size: $title;
65
+ font-weight: 700;
62
66
  }
63
67
 
64
- .darkBorder{
65
- border: 1px solid #000;
66
- padding: 4px;
67
- text-align: left;
68
+ .subTitle {
69
+ margin: 1mm 0 0;
70
+ font-size: $sub;
71
+ font-weight: 700;
72
+ }
73
+
74
+ /* Facility / MFL / county strip beneath the masthead */
75
+
76
+ /* Facility strip. Its cells are bordered like the form: the previous rule set
77
+ `border: none` here, which at (0,1,1) silently beat the `.darkBorder` class
78
+ the cells carried. */
79
+
80
+ /* The facility strip: one continuous band with no rules inside it, so the five
81
+ fields are separated by spacing alone. Fixed layout holds them in place, and
82
+ the facility name gets the largest share since it is the only one that
83
+ carries a long value. */
84
+
85
+ .topMeta {
86
+ width: 100%;
87
+ table-layout: fixed;
88
+ border-collapse: collapse;
89
+ border: $rule;
90
+ border-top: none;
91
+
92
+ td {
93
+ width: 17%;
94
+ padding: 1.5mm;
95
+ font-size: $meta;
96
+ vertical-align: top;
97
+ word-break: break-word;
98
+ border: none;
99
+ }
100
+
101
+ td:first-child {
102
+ width: 32%;
103
+ }
68
104
  }
69
105
 
70
- .bgGrey {
71
- background-color: #e0e0e0;
106
+ /* The indicator table */
107
+
108
+ .darkBorder {
109
+ padding: 1mm 1.5mm;
110
+ font-size: $text;
111
+ text-align: left;
112
+ border: $rule;
72
113
  }
73
114
 
115
+ /* `border-collapse` already merges the shared edge, so the table needs no
116
+ special casing where it meets the strip above it. */
117
+
118
+ /* A disease-group divider spanning the table: DIABETES, HYPERTENSION, ... */
119
+
74
120
  .sectionHeader {
75
- background-color: #f2f2f2;
76
- font-weight: bold;
77
- text-align: center;
78
- text-transform: uppercase;
121
+ font-weight: 700;
122
+ text-align: center;
123
+ text-transform: uppercase;
124
+ letter-spacing: 0.02em;
125
+ background-color: #ececec;
79
126
  }
80
127
 
81
128
  .subHeader {
82
- font-weight: bold;
129
+ font-weight: 600;
83
130
  }
84
131
 
85
- .topMeta{
86
- width: 100%;
87
- border-collapse: collapse;
88
- margin-bottom: 10px;
89
- }
132
+ /* Indented age-band rows beneath a "Total No. with…" sub-heading. Restored:
133
+ these were referenced by a literal class string, which CSS Modules never
134
+ matched, so the rows rendered unbordered and unindented. */
90
135
 
91
- .topMeta td {
92
- border: none;
93
- padding: 2px;
136
+ .indent {
137
+ padding-left: 5mm;
94
138
  }
95
139
 
96
- .signOff {
97
- margin-top: 20px;
98
- width: 100%;
140
+ .bgGrey {
141
+ background-color: #e0e0e0;
99
142
  }
100
143
 
101
- .indent {
102
- padding-left: 20px;
103
- }
144
+ /* The indicator table, sharing the band's edge above it */
104
145
 
105
- .mainTitle {
106
- margin: 0;
146
+ .dataTable {
147
+ width: 100%;
148
+ border-collapse: collapse;
107
149
  }
108
150
 
109
- .subTitle {
110
- margin: 5px 0;
151
+ /* The column header. It carried only width and alignment classes, so it was the
152
+ one row in the table with no borders; and it shared `.sectionHeader` with the
153
+ DIABETES / HYPERTENSION dividers, which made the two indistinguishable. */
154
+
155
+ .dataTable thead th {
156
+ padding: 1mm 1.5mm;
157
+ font-size: $text;
158
+ font-weight: 700;
159
+ background-color: $bar;
160
+ border: $rule;
111
161
  }
112
162
 
113
163
  .dataElement {
114
- width: 40%;
164
+ width: 40%;
115
165
  }
116
166
 
117
167
  .otherElement {
118
- width: 20%;
168
+ width: 20%;
169
+ text-align: center;
170
+ }
171
+
172
+ /* Sign-off, enclosed by the form rather than floating beneath it */
173
+
174
+ .signOff {
175
+ display: grid;
176
+ grid-template-columns: 34mm repeat(4, 1fr);
177
+ align-items: end;
178
+ column-gap: 5mm;
179
+ row-gap: 3mm;
180
+ width: 100%;
181
+ padding: 3mm;
182
+ font-size: $meta;
183
+ border: $rule;
184
+ border-top: none;
185
+
186
+ span {
119
187
  text-align: center;
120
- }
188
+ }
189
+
190
+ span:first-child {
191
+ font-weight: 600;
192
+ text-align: left;
193
+ }
194
+ }
195
+
196
+ .signOffRule {
197
+ min-height: 4mm;
198
+ padding-bottom: 0.5mm;
199
+ border-bottom: $rule;
200
+ }