@healthcloudai/hc-settings-connector 0.0.13 → 0.1.0
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.
- package/README.md +280 -236
- package/dist/index.cjs +274 -100
- package/dist/index.d.cts +123 -57
- package/dist/index.d.ts +123 -57
- package/dist/index.js +280 -98
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -20,174 +20,323 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
|
-
|
|
24
|
-
ConfigError: () => ConfigError,
|
|
23
|
+
APIError: () => import_hc_http2.APIError,
|
|
24
|
+
ConfigError: () => import_hc_http2.ConfigError,
|
|
25
|
+
HCServiceError: () => import_hc_http2.HCServiceError,
|
|
25
26
|
HCSettingsClient: () => HCSettingsClient,
|
|
26
|
-
|
|
27
|
+
NetworkError: () => import_hc_http2.NetworkError,
|
|
28
|
+
UserStatus: () => UserStatus,
|
|
29
|
+
ValidationError: () => import_hc_http2.ValidationError,
|
|
30
|
+
errorFromHttpStatus: () => import_hc_http2.errorFromHttpStatus
|
|
27
31
|
});
|
|
28
32
|
module.exports = __toCommonJS(index_exports);
|
|
29
33
|
|
|
30
|
-
// src/errors.ts
|
|
31
|
-
var ConfigError = class extends Error {
|
|
32
|
-
constructor(message) {
|
|
33
|
-
super(message);
|
|
34
|
-
this.name = "ConfigError";
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
var AuthError = class extends Error {
|
|
38
|
-
constructor(message) {
|
|
39
|
-
super(message);
|
|
40
|
-
this.name = "AuthError";
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
var HttpError = class extends Error {
|
|
44
|
-
constructor(status, message) {
|
|
45
|
-
super(message);
|
|
46
|
-
this.name = "HttpError";
|
|
47
|
-
this.status = status;
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
|
|
51
34
|
// src/client.ts
|
|
35
|
+
var import_hc_http = require("@healthcloudai/hc-http");
|
|
52
36
|
var HCSettingsClient = class {
|
|
53
|
-
constructor(httpClient,
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
37
|
+
constructor(httpClient, loginClient) {
|
|
38
|
+
this.httpClient = httpClient;
|
|
39
|
+
this.loginClient = loginClient;
|
|
56
40
|
}
|
|
57
41
|
setApiKey(headerName, value) {
|
|
58
42
|
const trimmedHeaderName = headerName == null ? void 0 : headerName.trim();
|
|
59
43
|
const trimmedValue = value == null ? void 0 : value.trim();
|
|
60
44
|
if (!trimmedHeaderName) {
|
|
61
|
-
throw new ConfigError(
|
|
45
|
+
throw new import_hc_http.ConfigError(
|
|
46
|
+
"API key header name is required."
|
|
47
|
+
);
|
|
62
48
|
}
|
|
63
49
|
if (!trimmedValue) {
|
|
64
|
-
throw new ConfigError(
|
|
50
|
+
throw new import_hc_http.ConfigError(
|
|
51
|
+
"API key value is required."
|
|
52
|
+
);
|
|
65
53
|
}
|
|
66
54
|
this.apiKeyHeaderName = trimmedHeaderName;
|
|
67
55
|
this.apiKeyValue = trimmedValue;
|
|
68
56
|
}
|
|
57
|
+
// ===========================================================================
|
|
58
|
+
// Dashboard
|
|
59
|
+
// ===========================================================================
|
|
69
60
|
async getDashboard() {
|
|
70
|
-
return this.
|
|
71
|
-
|
|
72
|
-
this.
|
|
61
|
+
return this.execute(
|
|
62
|
+
"getDashboard",
|
|
63
|
+
() => this.httpClient.get(
|
|
64
|
+
`${this.getBaseUrl()}/api/patient/dashboard`,
|
|
65
|
+
this.getAuthHeaders()
|
|
66
|
+
)
|
|
73
67
|
);
|
|
74
68
|
}
|
|
69
|
+
// ===========================================================================
|
|
70
|
+
// User image
|
|
71
|
+
// ===========================================================================
|
|
75
72
|
async getUserImageCannedUrl(extension) {
|
|
76
|
-
const
|
|
73
|
+
const resolvedExtension = this.requireValue(
|
|
74
|
+
extension,
|
|
75
|
+
"extension"
|
|
76
|
+
);
|
|
77
|
+
const requestPayload = {
|
|
77
78
|
Data: {
|
|
78
|
-
Extension:
|
|
79
|
+
Extension: resolvedExtension
|
|
79
80
|
}
|
|
80
81
|
};
|
|
81
|
-
return this.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
return this.execute(
|
|
83
|
+
"getUserImageCannedUrl",
|
|
84
|
+
() => this.httpClient.put(
|
|
85
|
+
`${this.getBaseUrl()}/api/patient/image/cannedurl`,
|
|
86
|
+
requestPayload,
|
|
87
|
+
this.getJsonHeaders()
|
|
88
|
+
)
|
|
85
89
|
);
|
|
86
90
|
}
|
|
87
|
-
async
|
|
88
|
-
const
|
|
91
|
+
async updateUserImage(fileName) {
|
|
92
|
+
const resolvedFileName = this.requireValue(
|
|
93
|
+
fileName,
|
|
94
|
+
"fileName"
|
|
95
|
+
);
|
|
96
|
+
const requestPayload = {
|
|
89
97
|
Data: {
|
|
90
|
-
|
|
98
|
+
FileName: resolvedFileName
|
|
91
99
|
}
|
|
92
100
|
};
|
|
93
|
-
return this.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
101
|
+
return this.execute(
|
|
102
|
+
"updateUserImage",
|
|
103
|
+
() => this.httpClient.put(
|
|
104
|
+
`${this.getBaseUrl()}/api/patient/image/url`,
|
|
105
|
+
requestPayload,
|
|
106
|
+
this.getJsonHeaders()
|
|
107
|
+
)
|
|
97
108
|
);
|
|
98
109
|
}
|
|
99
|
-
|
|
100
|
-
|
|
110
|
+
// ===========================================================================
|
|
111
|
+
// Identification
|
|
112
|
+
// ===========================================================================
|
|
113
|
+
async getDrivingLicenseCannedUrl(extension) {
|
|
114
|
+
const resolvedExtension = this.requireValue(
|
|
115
|
+
extension,
|
|
116
|
+
"extension"
|
|
117
|
+
);
|
|
118
|
+
const requestPayload = {
|
|
101
119
|
Data: {
|
|
102
|
-
Extension:
|
|
120
|
+
Extension: resolvedExtension
|
|
103
121
|
}
|
|
104
122
|
};
|
|
105
|
-
return this.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
123
|
+
return this.execute(
|
|
124
|
+
"getDrivingLicenseCannedUrl",
|
|
125
|
+
() => this.httpClient.put(
|
|
126
|
+
`${this.getBaseUrl()}/api/patient/id/cannedurl`,
|
|
127
|
+
requestPayload,
|
|
128
|
+
this.getJsonHeaders()
|
|
129
|
+
)
|
|
109
130
|
);
|
|
110
131
|
}
|
|
111
132
|
async captureDrivingLicense(fileKey) {
|
|
112
|
-
const
|
|
133
|
+
const resolvedFileKey = this.requireValue(
|
|
134
|
+
fileKey,
|
|
135
|
+
"fileKey"
|
|
136
|
+
);
|
|
137
|
+
const requestPayload = {
|
|
113
138
|
Data: {
|
|
114
139
|
Type: "identification",
|
|
115
|
-
FileID:
|
|
140
|
+
FileID: resolvedFileKey
|
|
116
141
|
}
|
|
117
142
|
};
|
|
118
|
-
return this.
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
143
|
+
return this.execute(
|
|
144
|
+
"captureDrivingLicense",
|
|
145
|
+
() => this.httpClient.post(
|
|
146
|
+
`${this.getBaseUrl()}/api/patient/capture`,
|
|
147
|
+
requestPayload,
|
|
148
|
+
this.getJsonHeaders()
|
|
149
|
+
)
|
|
122
150
|
);
|
|
123
151
|
}
|
|
124
|
-
async
|
|
125
|
-
const
|
|
152
|
+
async submitDrivingLicense(image) {
|
|
153
|
+
const resolvedImage = this.requireValue(
|
|
154
|
+
image,
|
|
155
|
+
"image"
|
|
156
|
+
);
|
|
157
|
+
const requestPayload = {
|
|
126
158
|
Data: {
|
|
127
|
-
|
|
128
|
-
FileID: fileKey
|
|
159
|
+
Image: resolvedImage
|
|
129
160
|
}
|
|
130
161
|
};
|
|
131
|
-
return this.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
162
|
+
return this.execute(
|
|
163
|
+
"submitDrivingLicense",
|
|
164
|
+
() => this.httpClient.put(
|
|
165
|
+
`${this.getBaseUrl()}/api/ehr/patient/drivinglicense`,
|
|
166
|
+
requestPayload,
|
|
167
|
+
this.getJsonHeaders()
|
|
168
|
+
)
|
|
135
169
|
);
|
|
136
170
|
}
|
|
137
|
-
|
|
171
|
+
// ===========================================================================
|
|
172
|
+
// Insurance
|
|
173
|
+
// ===========================================================================
|
|
174
|
+
async getInsuranceCannedUrl(extension) {
|
|
175
|
+
const resolvedExtension = this.requireValue(
|
|
176
|
+
extension,
|
|
177
|
+
"extension"
|
|
178
|
+
);
|
|
138
179
|
const requestPayload = {
|
|
139
|
-
Data:
|
|
180
|
+
Data: {
|
|
181
|
+
Extension: resolvedExtension
|
|
182
|
+
}
|
|
140
183
|
};
|
|
141
|
-
return this.
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
184
|
+
return this.execute(
|
|
185
|
+
"getInsuranceCannedUrl",
|
|
186
|
+
() => this.httpClient.put(
|
|
187
|
+
`${this.getBaseUrl()}/api/patient/insurance/cannedurl`,
|
|
188
|
+
requestPayload,
|
|
189
|
+
this.getJsonHeaders()
|
|
190
|
+
)
|
|
145
191
|
);
|
|
146
192
|
}
|
|
147
|
-
async
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
193
|
+
async captureInsurance(fileKey) {
|
|
194
|
+
const resolvedFileKey = this.requireValue(
|
|
195
|
+
fileKey,
|
|
196
|
+
"fileKey"
|
|
197
|
+
);
|
|
198
|
+
const requestPayload = {
|
|
199
|
+
Data: {
|
|
200
|
+
Type: "healthinsurance",
|
|
201
|
+
FileID: resolvedFileKey
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
return this.execute(
|
|
205
|
+
"captureInsurance",
|
|
206
|
+
() => this.httpClient.post(
|
|
207
|
+
`${this.getBaseUrl()}/api/patient/capture`,
|
|
208
|
+
requestPayload,
|
|
209
|
+
this.getJsonHeaders()
|
|
210
|
+
)
|
|
151
211
|
);
|
|
152
212
|
}
|
|
153
|
-
async
|
|
213
|
+
async submitInsurance(coverage) {
|
|
214
|
+
if (!coverage) {
|
|
215
|
+
throw new import_hc_http.ValidationError({
|
|
216
|
+
message: "Insurance coverage data is required.",
|
|
217
|
+
code: "INVALID_INPUT"
|
|
218
|
+
});
|
|
219
|
+
}
|
|
154
220
|
const requestPayload = {
|
|
155
|
-
Data:
|
|
221
|
+
Data: coverage
|
|
156
222
|
};
|
|
157
|
-
return this.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
223
|
+
return this.execute(
|
|
224
|
+
"submitInsurance",
|
|
225
|
+
() => this.httpClient.put(
|
|
226
|
+
`${this.getBaseUrl()}/api/patient/coverage`,
|
|
227
|
+
requestPayload,
|
|
228
|
+
this.getJsonHeaders()
|
|
229
|
+
)
|
|
161
230
|
);
|
|
162
231
|
}
|
|
163
|
-
async
|
|
164
|
-
|
|
232
|
+
async getInsurances() {
|
|
233
|
+
return this.execute(
|
|
234
|
+
"getInsurances",
|
|
235
|
+
() => this.httpClient.get(
|
|
236
|
+
`${this.getBaseUrl()}/api/ehr/patient/insurances`,
|
|
237
|
+
this.getAuthHeaders()
|
|
238
|
+
)
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
// ===========================================================================
|
|
242
|
+
// User photo capture
|
|
243
|
+
// ===========================================================================
|
|
244
|
+
async captureUserPhoto(fileKey) {
|
|
245
|
+
const resolvedFileKey = this.requireValue(
|
|
246
|
+
fileKey,
|
|
247
|
+
"fileKey"
|
|
248
|
+
);
|
|
249
|
+
const requestPayload = {
|
|
165
250
|
Data: {
|
|
166
|
-
|
|
251
|
+
Type: "userphoto",
|
|
252
|
+
FileID: resolvedFileKey
|
|
167
253
|
}
|
|
168
254
|
};
|
|
169
|
-
return this.
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
255
|
+
return this.execute(
|
|
256
|
+
"captureUserPhoto",
|
|
257
|
+
() => this.httpClient.post(
|
|
258
|
+
`${this.getBaseUrl()}/api/patient/capture`,
|
|
259
|
+
requestPayload,
|
|
260
|
+
this.getJsonHeaders()
|
|
261
|
+
)
|
|
173
262
|
);
|
|
174
263
|
}
|
|
264
|
+
// ===========================================================================
|
|
265
|
+
// Account
|
|
266
|
+
// ===========================================================================
|
|
175
267
|
async deactivateUser() {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
268
|
+
return this.execute(
|
|
269
|
+
"deactivateUser",
|
|
270
|
+
() => this.httpClient.put(
|
|
271
|
+
`${this.getBaseUrl()}/api/patient/deactivate`,
|
|
272
|
+
void 0,
|
|
273
|
+
this.getJsonHeaders()
|
|
274
|
+
)
|
|
183
275
|
);
|
|
184
276
|
}
|
|
277
|
+
// ===========================================================================
|
|
278
|
+
// Helpers
|
|
279
|
+
// ===========================================================================
|
|
280
|
+
async execute(operation, request) {
|
|
281
|
+
let response;
|
|
282
|
+
try {
|
|
283
|
+
response = await request();
|
|
284
|
+
} catch (err) {
|
|
285
|
+
if (err instanceof import_hc_http.APIError) {
|
|
286
|
+
throw err;
|
|
287
|
+
}
|
|
288
|
+
if (err instanceof Error) {
|
|
289
|
+
throw new import_hc_http.APIError({
|
|
290
|
+
message: `${operation}: ${err.message}`,
|
|
291
|
+
code: "UNKNOWN_ERROR",
|
|
292
|
+
details: err
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
throw new import_hc_http.APIError({
|
|
296
|
+
message: `${operation}: unexpected runtime failure`,
|
|
297
|
+
code: "UNKNOWN_ERROR",
|
|
298
|
+
details: err
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
if (response == null) {
|
|
302
|
+
throw new import_hc_http.APIError({
|
|
303
|
+
message: `${operation}: empty response received`,
|
|
304
|
+
code: "EMPTY_RESPONSE",
|
|
305
|
+
details: response
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
if (!this.isApiResponse(response)) {
|
|
309
|
+
throw new import_hc_http.APIError({
|
|
310
|
+
message: `${operation}: invalid API response structure`,
|
|
311
|
+
code: "INVALID_RESPONSE",
|
|
312
|
+
details: response
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
if (!response.IsOK) {
|
|
316
|
+
throw this.mapBackendError(operation, response);
|
|
317
|
+
}
|
|
318
|
+
return response;
|
|
319
|
+
}
|
|
320
|
+
mapBackendError(operation, response) {
|
|
321
|
+
return new import_hc_http.HCServiceError(
|
|
322
|
+
operation,
|
|
323
|
+
response.ErrorMessage,
|
|
324
|
+
response
|
|
325
|
+
);
|
|
326
|
+
}
|
|
327
|
+
isApiResponse(value) {
|
|
328
|
+
if (!value || typeof value !== "object") {
|
|
329
|
+
return false;
|
|
330
|
+
}
|
|
331
|
+
const response = value;
|
|
332
|
+
return "IsOK" in response && typeof response.IsOK === "boolean" && "Data" in response && "ErrorMessage" in response;
|
|
333
|
+
}
|
|
185
334
|
getBaseUrl() {
|
|
186
|
-
return this.
|
|
335
|
+
return this.loginClient.getBaseUrl();
|
|
187
336
|
}
|
|
188
337
|
getAuthHeaders() {
|
|
189
338
|
return {
|
|
190
|
-
...this.
|
|
339
|
+
...this.loginClient.getAuthHeader(),
|
|
191
340
|
...this.getApiKeyHeader()
|
|
192
341
|
};
|
|
193
342
|
}
|
|
@@ -205,11 +354,36 @@ var HCSettingsClient = class {
|
|
|
205
354
|
[this.apiKeyHeaderName]: this.apiKeyValue
|
|
206
355
|
};
|
|
207
356
|
}
|
|
357
|
+
requireValue(value, parameterName) {
|
|
358
|
+
const trimmedValue = value == null ? void 0 : value.trim();
|
|
359
|
+
if (!trimmedValue) {
|
|
360
|
+
throw new import_hc_http.ValidationError({
|
|
361
|
+
message: `${parameterName} is required.`,
|
|
362
|
+
code: "INVALID_INPUT"
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
return trimmedValue;
|
|
366
|
+
}
|
|
208
367
|
};
|
|
368
|
+
|
|
369
|
+
// src/errors.ts
|
|
370
|
+
var import_hc_http2 = require("@healthcloudai/hc-http");
|
|
371
|
+
|
|
372
|
+
// src/types.ts
|
|
373
|
+
var UserStatus = /* @__PURE__ */ ((UserStatus2) => {
|
|
374
|
+
UserStatus2[UserStatus2["INACTIVE"] = 0] = "INACTIVE";
|
|
375
|
+
UserStatus2[UserStatus2["ACTIVE"] = 1] = "ACTIVE";
|
|
376
|
+
UserStatus2[UserStatus2["SUSPENDED"] = -1] = "SUSPENDED";
|
|
377
|
+
return UserStatus2;
|
|
378
|
+
})(UserStatus || {});
|
|
209
379
|
// Annotate the CommonJS export names for ESM import in node:
|
|
210
380
|
0 && (module.exports = {
|
|
211
|
-
|
|
381
|
+
APIError,
|
|
212
382
|
ConfigError,
|
|
383
|
+
HCServiceError,
|
|
213
384
|
HCSettingsClient,
|
|
214
|
-
|
|
385
|
+
NetworkError,
|
|
386
|
+
UserStatus,
|
|
387
|
+
ValidationError,
|
|
388
|
+
errorFromHttpStatus
|
|
215
389
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import { HCLoginClient } from '@healthcloudai/hc-login-connector';
|
|
2
|
-
import { HttpClient } from '@healthcloudai/hc-http';
|
|
2
|
+
import { HttpClient, APIError } from '@healthcloudai/hc-http';
|
|
3
|
+
export { APIError, ConfigError, HCServiceError, NetworkError, ValidationError, errorFromHttpStatus } from '@healthcloudai/hc-http';
|
|
3
4
|
|
|
4
|
-
type Environment = "dev" | "uat" | "prod";
|
|
5
|
-
interface UserImage {
|
|
6
|
-
ImageURL: string;
|
|
7
|
-
FileName: string;
|
|
8
|
-
Extension: string;
|
|
9
|
-
imageUrl?: string;
|
|
10
|
-
fileName?: string;
|
|
11
|
-
extension?: string;
|
|
12
|
-
}
|
|
13
5
|
interface APIRequest<T> {
|
|
14
6
|
Data: T;
|
|
15
7
|
}
|
|
16
8
|
interface APIResponse<T> {
|
|
17
|
-
Data: T;
|
|
9
|
+
Data: T | null;
|
|
18
10
|
IsOK: boolean;
|
|
19
|
-
ErrorMessage
|
|
11
|
+
ErrorMessage: string | null;
|
|
12
|
+
}
|
|
13
|
+
interface UserImage {
|
|
14
|
+
ImageURL: string | null;
|
|
15
|
+
FileName: string | null;
|
|
16
|
+
Extension: string | null;
|
|
20
17
|
}
|
|
21
|
-
interface
|
|
18
|
+
interface CoverageData {
|
|
22
19
|
InsurancePackageId: string;
|
|
23
20
|
MemberId: string;
|
|
24
21
|
FirstName: string;
|
|
@@ -26,62 +23,131 @@ interface CoverageRequest {
|
|
|
26
23
|
Sex: string;
|
|
27
24
|
Image: string;
|
|
28
25
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
FileID: string;
|
|
26
|
+
declare enum UserStatus {
|
|
27
|
+
INACTIVE = 0,
|
|
28
|
+
ACTIVE = 1,
|
|
29
|
+
SUSPENDED = -1
|
|
34
30
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
interface PatientRecord {
|
|
32
|
+
Status: UserStatus;
|
|
33
|
+
Sex: string | null;
|
|
34
|
+
GenderIdentity: string | null;
|
|
35
|
+
HasInsurance: boolean;
|
|
36
|
+
HasIDCard: boolean;
|
|
37
|
+
HasSelfie: boolean;
|
|
38
|
+
Flags: Record<string, string> | null;
|
|
38
39
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
interface Encounter {
|
|
41
|
+
FHIRID: string | null;
|
|
42
|
+
AthenaID: string | null;
|
|
43
|
+
Status: number;
|
|
44
|
+
Patient: PatientRecord | null;
|
|
45
|
+
EncounterClass: string | null;
|
|
46
|
+
EHR: string | null;
|
|
47
|
+
EHRType: string | null;
|
|
48
|
+
EHRVisitName: string | null;
|
|
49
|
+
EHRAppointmentID: string | null;
|
|
50
|
+
EHRProviderID: string | null;
|
|
51
|
+
EHRProviderName: string | null;
|
|
52
|
+
EHRDate: string | null;
|
|
53
|
+
EHRStatus: string | null;
|
|
54
|
+
EHRStage: string | null;
|
|
42
55
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
56
|
+
interface PatientDashboard {
|
|
57
|
+
Record: PatientRecord | null;
|
|
58
|
+
Encounters: Encounter[];
|
|
59
|
+
EHR: string | null;
|
|
60
|
+
PendingActions: string[];
|
|
61
|
+
}
|
|
62
|
+
type CaptureType = "healthinsurance" | "identification" | "userphoto";
|
|
63
|
+
interface InsuranceCaptureData {
|
|
64
|
+
FirstName: string | null;
|
|
65
|
+
LastName: string | null;
|
|
66
|
+
MemberId: string | null;
|
|
67
|
+
GroupNumber: string | null;
|
|
68
|
+
EffectiveDate: string | null;
|
|
69
|
+
RxBIN: string | null;
|
|
70
|
+
RxPCN: string | null;
|
|
71
|
+
RxGRP: string | null;
|
|
72
|
+
Carrier: string | null;
|
|
73
|
+
}
|
|
74
|
+
interface IdentificationCaptureData {
|
|
75
|
+
FirstName: string | null;
|
|
76
|
+
LastName: string | null;
|
|
77
|
+
StreetAddress: string | null;
|
|
78
|
+
City: string | null;
|
|
79
|
+
ZipCode: string | null;
|
|
80
|
+
State: string | null;
|
|
81
|
+
IssuedDate: string | null;
|
|
82
|
+
ExpiresDate: string | null;
|
|
83
|
+
Dob: string | null;
|
|
84
|
+
IDNumber: string | null;
|
|
85
|
+
}
|
|
86
|
+
interface UserPhotoCaptureData {
|
|
87
|
+
ImageKey: string | null;
|
|
88
|
+
}
|
|
89
|
+
interface CaptureResult<T> {
|
|
90
|
+
CapturedData: T | null;
|
|
91
|
+
IsCaptured: boolean;
|
|
92
|
+
InsurancePackages: object[] | null;
|
|
93
|
+
}
|
|
94
|
+
interface InsuranceRecord {
|
|
95
|
+
LastUpdatedBy: string | null;
|
|
96
|
+
IrcName: string | null;
|
|
97
|
+
LastUpdated: string | null;
|
|
98
|
+
RelationshipToInsured: string | null;
|
|
99
|
+
InsurancePolicyHolder: string | null;
|
|
100
|
+
EligibilityStatus: string | null;
|
|
101
|
+
InsurancePolicyHolderCountryIso3166: string | null;
|
|
102
|
+
ConfidentialityCode: string | null;
|
|
103
|
+
Created: string | null;
|
|
104
|
+
InsuranceId: string | null;
|
|
105
|
+
InsurancePolicyHolderSex: string | null;
|
|
106
|
+
InsurancePlanName: string | null;
|
|
107
|
+
InsuranceType: string | null;
|
|
108
|
+
InsurancePolicyHolderCountryCode: string | null;
|
|
109
|
+
InsurancePackageId: number | null;
|
|
110
|
+
InsuredEntityTypeId: number | null;
|
|
111
|
+
InsurancePolicyHolderFirstName: string | null;
|
|
112
|
+
SequenceNumber: number | null;
|
|
113
|
+
IrcId: number | null;
|
|
114
|
+
CreatedBy: string | null;
|
|
115
|
+
RelationshipToInsuredId: number | null;
|
|
116
|
+
InsurancePolicyHolderLastName: string | null;
|
|
117
|
+
/**
|
|
118
|
+
* Internal-only fields returned in backend models.
|
|
119
|
+
*/
|
|
120
|
+
MemberId?: string | null;
|
|
121
|
+
Image?: string | null;
|
|
47
122
|
}
|
|
48
|
-
type DrivingLicenseRequest = APIRequest<DrivingLicenseData>;
|
|
49
|
-
type DrivingLicenseResponse = APIResponse<string>;
|
|
50
|
-
type HCUserImage = UserImage;
|
|
51
123
|
|
|
52
124
|
declare class HCSettingsClient {
|
|
53
|
-
private
|
|
54
|
-
private
|
|
125
|
+
private readonly httpClient;
|
|
126
|
+
private readonly loginClient;
|
|
55
127
|
private apiKeyHeaderName?;
|
|
56
128
|
private apiKeyValue?;
|
|
57
|
-
constructor(httpClient: HttpClient,
|
|
129
|
+
constructor(httpClient: HttpClient, loginClient: HCLoginClient);
|
|
58
130
|
setApiKey(headerName: string, value: string): void;
|
|
59
|
-
getDashboard(): Promise<
|
|
60
|
-
getUserImageCannedUrl(extension: string): Promise<UserImage
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
captureDrivingLicense(fileKey: string): Promise<
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
131
|
+
getDashboard(): Promise<APIResponse<PatientDashboard>>;
|
|
132
|
+
getUserImageCannedUrl(extension: string): Promise<APIResponse<UserImage>>;
|
|
133
|
+
updateUserImage(fileName: string): Promise<APIResponse<boolean>>;
|
|
134
|
+
getDrivingLicenseCannedUrl(extension: string): Promise<APIResponse<UserImage>>;
|
|
135
|
+
captureDrivingLicense(fileKey: string): Promise<APIResponse<CaptureResult<IdentificationCaptureData>>>;
|
|
136
|
+
submitDrivingLicense(image: string): Promise<APIResponse<string>>;
|
|
137
|
+
getInsuranceCannedUrl(extension: string): Promise<APIResponse<UserImage>>;
|
|
138
|
+
captureInsurance(fileKey: string): Promise<APIResponse<CaptureResult<InsuranceCaptureData>>>;
|
|
139
|
+
submitInsurance(coverage: CoverageData): Promise<APIResponse<InsuranceRecord>>;
|
|
140
|
+
getInsurances(): Promise<APIResponse<InsuranceRecord[]>>;
|
|
141
|
+
captureUserPhoto(fileKey: string): Promise<APIResponse<CaptureResult<UserPhotoCaptureData>>>;
|
|
142
|
+
deactivateUser(): Promise<APIResponse<boolean>>;
|
|
143
|
+
protected execute<T>(operation: string, request: () => Promise<APIResponse<T>>): Promise<APIResponse<T>>;
|
|
144
|
+
protected mapBackendError(operation: string, response: APIResponse<unknown>): APIError;
|
|
145
|
+
private isApiResponse;
|
|
70
146
|
private getBaseUrl;
|
|
71
147
|
private getAuthHeaders;
|
|
72
148
|
private getJsonHeaders;
|
|
73
149
|
private getApiKeyHeader;
|
|
150
|
+
private requireValue;
|
|
74
151
|
}
|
|
75
152
|
|
|
76
|
-
|
|
77
|
-
constructor(message: string);
|
|
78
|
-
}
|
|
79
|
-
declare class AuthError extends Error {
|
|
80
|
-
constructor(message: string);
|
|
81
|
-
}
|
|
82
|
-
declare class HttpError extends Error {
|
|
83
|
-
status: number;
|
|
84
|
-
constructor(status: number, message: string);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export { type APIRequest, type APIResponse, AuthError, type CaptureData, type CaptureRequest, type CaptureType, ConfigError, type CoveragePayload, type CoverageRequest, type DrivingLicenseData, type DrivingLicenseRequest, type DrivingLicenseResponse, type EmptyRequest, type Environment, HCSettingsClient, type HCUserImage, HttpError, type UpdateImageData, type UpdateImageRequest, type UploadImageData, type UploadImageRequest, type UserImage };
|
|
153
|
+
export { type APIRequest, type APIResponse, type CaptureResult, type CaptureType, type CoverageData, type Encounter, HCSettingsClient, type IdentificationCaptureData, type InsuranceCaptureData, type InsuranceRecord, type PatientDashboard, type PatientRecord, type UserImage, type UserPhotoCaptureData, UserStatus };
|