@kenyaemr/esm-billing-app 5.4.2-pre.2843 → 5.4.2-pre.2852

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.
@@ -1,54 +1,252 @@
1
1
  @use '@carbon/layout';
2
2
  @use '@carbon/type';
3
3
  @use '@carbon/colors';
4
- .container {
4
+
5
+ .invoiceContainer {
5
6
  padding: layout.$spacing-05;
7
+ background-color: colors.$white;
8
+ max-width: 1000px;
9
+ margin: 0 auto;
6
10
  }
7
11
 
8
- .section {
9
- margin-top: layout.$spacing-06;
10
- background-color: colors.$white;
11
- padding: layout.$spacing-05;
12
+ .invoiceHeader {
13
+ display: flex;
14
+ justify-content: space-between;
15
+ align-items: flex-start;
16
+ padding-bottom: layout.$spacing-05;
17
+ border-bottom: 2px solid colors.$gray-20;
12
18
  margin-bottom: layout.$spacing-06;
13
19
  }
14
20
 
15
- .grid {
21
+ .invoiceTitle {
22
+ display: flex;
23
+ align-items: center;
24
+ gap: layout.$spacing-04;
25
+
26
+ h3 {
27
+ @include type.type-style('heading-03');
28
+ font-weight: 600;
29
+ color: colors.$gray-100;
30
+ margin: 0;
31
+ letter-spacing: 0.5px;
32
+ }
33
+ }
34
+
35
+ .claimNumber {
36
+ display: flex;
37
+ flex-direction: column;
38
+ align-items: flex-end;
39
+ gap: layout.$spacing-02;
40
+ }
41
+
42
+ .claimNumberLabel {
43
+ @include type.type-style('label-01');
44
+ color: colors.$gray-70;
45
+ text-transform: uppercase;
46
+ font-weight: 600;
47
+ }
48
+
49
+ .claimNumberValue {
50
+ @include type.type-style('heading-compact-02');
51
+ color: colors.$blue-60;
52
+ font-weight: 600;
53
+ }
54
+
55
+ .infoGrid {
16
56
  display: grid;
17
57
  grid-template-columns: repeat(2, 1fr);
58
+ gap: layout.$spacing-06;
59
+ margin-bottom: layout.$spacing-06;
60
+ }
61
+
62
+ .infoBlock {
63
+ padding: layout.$spacing-04;
64
+ border-radius: 4px;
65
+ }
66
+
67
+ .blockTitle {
68
+ @include type.type-style('label-02');
69
+ color: colors.$gray-100;
70
+ text-transform: uppercase;
71
+ margin: 0 0 layout.$spacing-04 0;
72
+ letter-spacing: 0.5px;
73
+ font-weight: 600;
74
+ }
75
+
76
+ .infoContent {
77
+ display: flex;
78
+ flex-direction: column;
79
+ gap: layout.$spacing-02;
80
+ }
81
+
82
+ .primaryInfo {
83
+ @include type.type-style('body-short-02');
84
+ font-weight: 600;
85
+ color: colors.$gray-70;
86
+ margin: 0;
87
+ padding-bottom: layout.$spacing-02;
88
+ }
89
+
90
+ .secondaryInfo {
91
+ @include type.type-style('body-short-01');
92
+ color: colors.$gray-70;
93
+ margin: 0;
94
+ padding-bottom: layout.$spacing-02;
95
+ }
96
+
97
+ .visitSection {
98
+ margin-bottom: layout.$spacing-06;
99
+ }
100
+
101
+ .sectionTitle {
102
+ @include type.type-style('label-02');
103
+ font-weight: 600;
104
+ color: colors.$gray-70;
105
+ text-transform: uppercase;
106
+ margin: 0 0 layout.$spacing-04 0;
107
+ padding-bottom: layout.$spacing-03;
108
+ border-bottom: 1px solid colors.$gray-20;
109
+ letter-spacing: 0.5px;
110
+ }
111
+
112
+ .visitGrid {
113
+ display: grid;
114
+ grid-template-columns: repeat(3, 1fr);
18
115
  gap: layout.$spacing-05;
19
- margin-bottom: layout.$spacing-05;
116
+ margin-top: layout.$spacing-04;
20
117
  }
21
118
 
22
- .field {
119
+ .visitField {
23
120
  display: flex;
24
121
  flex-direction: column;
25
122
  gap: layout.$spacing-02;
26
123
  }
27
124
 
28
- .label {
125
+ .visitLabel {
29
126
  @include type.type-style('label-01');
127
+ color: colors.$gray-70;
30
128
  font-weight: 600;
31
- text-transform: uppercase;
32
129
  }
33
130
 
34
- .value {
131
+ .visitValue {
35
132
  @include type.type-style('body-short-01');
133
+ color: colors.$gray-100;
134
+ }
135
+
136
+ .diagnosesSection {
137
+ margin-bottom: layout.$spacing-06;
138
+ }
139
+
140
+ .diagnosesList {
141
+ list-style: none;
142
+ padding: 0;
143
+ margin: layout.$spacing-04 0 0 0;
36
144
  }
37
145
 
38
- .totalContainer {
146
+ .diagnosisItem {
147
+ @include type.type-style('body-short-01');
148
+ padding: layout.$spacing-03;
149
+ margin-bottom: layout.$spacing-02;
150
+ color: colors.$gray-100;
151
+ }
152
+
153
+ .lineItemsSection {
154
+ margin-bottom: layout.$spacing-06;
155
+
156
+ :global(.cds--data-table) {
157
+ margin-top: layout.$spacing-04;
158
+ }
159
+
160
+ :global(.cds--table-header-label) {
161
+ @include type.type-style('label-01');
162
+ font-weight: 600;
163
+ text-transform: uppercase;
164
+ }
165
+
166
+ :global(.cds--data-table td) {
167
+ @include type.type-style('body-short-01');
168
+ }
169
+ }
170
+
171
+ .noItems {
172
+ @include type.type-style('body-short-01');
173
+ color: colors.$gray-70;
174
+ font-style: italic;
175
+ margin-top: layout.$spacing-04;
176
+ text-align: center;
177
+ padding: layout.$spacing-05;
178
+ background-color: colors.$gray-10;
179
+ border-radius: 4px;
180
+ }
181
+
182
+ .financialSummary {
183
+ margin-top: layout.$spacing-06;
184
+ padding: layout.$spacing-05;
185
+ background-color: colors.$gray-10;
186
+ border-radius: 4px;
187
+ border: 1px solid colors.$gray-20;
188
+ }
189
+
190
+ .summaryRow {
39
191
  display: flex;
40
192
  justify-content: space-between;
41
- padding: layout.$spacing-05;
42
- border-radius: layout.$spacing-02;
193
+ align-items: center;
194
+ padding: layout.$spacing-03 0;
195
+ border-bottom: 1px solid colors.$gray-20;
196
+ }
197
+
198
+ .summaryLabel {
199
+ @include type.type-style('body-short-01');
200
+ color: colors.$gray-70;
201
+ }
202
+
203
+ .summaryValue {
204
+ @include type.type-style('body-short-01');
205
+ font-weight: 600;
206
+ color: colors.$gray-100;
207
+ }
208
+
209
+ .totalRow {
210
+ display: flex;
211
+ justify-content: space-between;
212
+ align-items: center;
213
+ padding-top: layout.$spacing-04;
43
214
  margin-top: layout.$spacing-03;
215
+ border-top: 2px solid colors.$gray-70;
44
216
  }
45
217
 
46
218
  .totalLabel {
47
- @include type.type-style('body-short-01');
219
+ @include type.type-style('heading-compact-01');
48
220
  font-weight: 600;
221
+ color: colors.$gray-100;
222
+ text-transform: uppercase;
49
223
  }
50
224
 
51
225
  .totalValue {
52
- @include type.type-style('heading-compact-01');
226
+ @include type.type-style('heading-03');
227
+ font-weight: 700;
228
+ color: colors.$blue-60;
229
+ }
230
+
231
+ .billReference {
232
+ margin-top: layout.$spacing-05;
233
+ padding: layout.$spacing-03;
234
+ background-color: colors.$blue-10;
235
+ border-radius: 4px;
236
+ border-left: 3px solid colors.$blue-60;
237
+ display: flex;
238
+ align-items: center;
239
+ gap: layout.$spacing-02;
240
+ }
241
+
242
+ .referenceLabel {
243
+ @include type.type-style('label-01');
244
+ font-weight: 600;
245
+ color: colors.$gray-70;
246
+ }
247
+
248
+ .referenceValue {
249
+ @include type.type-style('code-01');
250
+ color: colors.$blue-60;
53
251
  font-weight: 600;
54
252
  }
@@ -4,7 +4,7 @@ import { FacilityClaim } from '../../../types';
4
4
 
5
5
  export const useFacilityClaims = () => {
6
6
  const customPresentation =
7
- 'custom:(uuid,claimCode,use,dateFrom,dateTo,claimedTotal,approvedTotal,status,externalId,responseUUID,provider:(person:(display),display),patient:(uuid,display,person:(display,gender,age,birthdate)),visitType:(uuid,display))';
7
+ 'custom:(uuid,claimCode,use,dateFrom,dateTo,claimedTotal,approvedTotal,status,externalId,responseUUID,provider:(person:(display),display),patient:(uuid,display,person:(display,gender,age,birthdate)),visitType:(uuid,display),visit:(uuid,display,startDatetime,stopDatetime,encounters:(diagnoses:(uuid,diagnosis))),bill:(uuid))';
8
8
  const url = `${restBaseUrl}/claim?v=${customPresentation}`;
9
9
 
10
10
  const { data, error, isLoading, mutate, isValidating } = useSWR<FetchResponse<{ results: Array<FacilityClaim> }>>(
@@ -23,7 +23,7 @@ export const useFacilityClaims = () => {
23
23
  } => ({
24
24
  ...claim,
25
25
  id: claim.uuid,
26
- providerName: claim.provider?.person?.display || claim.provider?.display || '',
26
+ providerName: claim.provider?.person?.display || '',
27
27
  approvedTotal: claim.approvedTotal ?? 0,
28
28
  status: claim.status,
29
29
  patientName: claim.patient?.display || '',