oro-sdk 2.1.4-dev1
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/LICENSE +21 -0
- package/README.md +72 -0
- package/dist/client.d.ts +464 -0
- package/dist/helpers/client.d.ts +23 -0
- package/dist/helpers/index.d.ts +4 -0
- package/dist/helpers/patient-registration.d.ts +16 -0
- package/dist/helpers/vault-grants.d.ts +20 -0
- package/dist/helpers/workflow.d.ts +23 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +8 -0
- package/dist/models/client.d.ts +28 -0
- package/dist/models/consult.d.ts +102 -0
- package/dist/models/diagnosis.d.ts +122 -0
- package/dist/models/error.d.ts +26 -0
- package/dist/models/guard.d.ts +119 -0
- package/dist/models/index.d.ts +9 -0
- package/dist/models/practice.d.ts +353 -0
- package/dist/models/shared.d.ts +8 -0
- package/dist/models/vault.d.ts +124 -0
- package/dist/models/workflow.d.ts +106 -0
- package/dist/oro-sdk.cjs.development.js +7685 -0
- package/dist/oro-sdk.cjs.development.js.map +1 -0
- package/dist/oro-sdk.cjs.production.min.js +2 -0
- package/dist/oro-sdk.cjs.production.min.js.map +1 -0
- package/dist/oro-sdk.esm.js +7692 -0
- package/dist/oro-sdk.esm.js.map +1 -0
- package/dist/sdk-revision/client.d.ts +21 -0
- package/dist/sdk-revision/index.d.ts +1 -0
- package/dist/services/api.d.ts +11 -0
- package/dist/services/axios.d.ts +14 -0
- package/dist/services/consult.d.ts +54 -0
- package/dist/services/diagnosis.d.ts +44 -0
- package/dist/services/external/clinia.d.ts +82 -0
- package/dist/services/external/index.d.ts +1 -0
- package/dist/services/guard.d.ts +92 -0
- package/dist/services/index.d.ts +10 -0
- package/dist/services/practice.d.ts +100 -0
- package/dist/services/teller.d.ts +9 -0
- package/dist/services/vault.d.ts +54 -0
- package/dist/services/workflow.d.ts +21 -0
- package/package.json +63 -0
- package/src/client.ts +1843 -0
- package/src/helpers/client.ts +199 -0
- package/src/helpers/index.ts +4 -0
- package/src/helpers/patient-registration.ts +490 -0
- package/src/helpers/vault-grants.ts +51 -0
- package/src/helpers/workflow.ts +261 -0
- package/src/index.ts +61 -0
- package/src/models/client.ts +33 -0
- package/src/models/consult.ts +110 -0
- package/src/models/diagnosis.ts +141 -0
- package/src/models/error.ts +13 -0
- package/src/models/guard.ts +136 -0
- package/src/models/index.ts +9 -0
- package/src/models/practice.ts +411 -0
- package/src/models/shared.ts +6 -0
- package/src/models/vault.ts +158 -0
- package/src/models/workflow.ts +142 -0
- package/src/sdk-revision/client.ts +62 -0
- package/src/sdk-revision/index.ts +1 -0
- package/src/services/api.ts +77 -0
- package/src/services/axios.ts +91 -0
- package/src/services/consult.ts +265 -0
- package/src/services/diagnosis.ts +144 -0
- package/src/services/external/clinia.ts +133 -0
- package/src/services/external/index.ts +1 -0
- package/src/services/guard.ts +228 -0
- package/src/services/index.ts +10 -0
- package/src/services/practice.ts +537 -0
- package/src/services/teller.ts +39 -0
- package/src/services/vault.ts +178 -0
- package/src/services/workflow.ts +36 -0
@@ -0,0 +1,537 @@
|
|
1
|
+
import * as OroToolbox from 'oro-toolbox'
|
2
|
+
import { PracticeAccount, Uuid } from '../models'
|
3
|
+
import {
|
4
|
+
Assignment,
|
5
|
+
PlanType,
|
6
|
+
Practice,
|
7
|
+
PracticeConfigs,
|
8
|
+
PracticeConfigKind,
|
9
|
+
PracticePayment,
|
10
|
+
PracticePaymentIntent,
|
11
|
+
PracticePlan,
|
12
|
+
PracticePlanPrices,
|
13
|
+
PracticeWorkflow,
|
14
|
+
PracticeWorkflowWithTagSpecialty,
|
15
|
+
Practitioner,
|
16
|
+
PractitionerLicense,
|
17
|
+
PractitionerPreference,
|
18
|
+
PractitionerQuota,
|
19
|
+
PractitionerRole,
|
20
|
+
WorkflowType,
|
21
|
+
} from '../models/practice'
|
22
|
+
import { APIService } from './api'
|
23
|
+
|
24
|
+
export class PracticeService {
|
25
|
+
constructor(
|
26
|
+
private toolbox: typeof OroToolbox,
|
27
|
+
private api: APIService,
|
28
|
+
private baseURL: string
|
29
|
+
) {}
|
30
|
+
|
31
|
+
/**
|
32
|
+
* This function get the practice from the URL of a practice
|
33
|
+
* It is the entry point of our web apps
|
34
|
+
* @param practiceURL URL of the practice to search
|
35
|
+
* @param hydratePracticeConfigs (optional) if set true it the Practice field configs will be set
|
36
|
+
* @param accounts (optional) if set true it the Practice field accounts will be set
|
37
|
+
* @returns the found practice or undefined
|
38
|
+
*/
|
39
|
+
public practiceGetFromURL(
|
40
|
+
practiceURL: string,
|
41
|
+
params?: {
|
42
|
+
hydratePracticeConfigs?: boolean
|
43
|
+
accounts?: boolean
|
44
|
+
}
|
45
|
+
): Promise<Practice | undefined> {
|
46
|
+
return this.api.get<Practice | undefined>(
|
47
|
+
`${this.baseURL}/v1/practices`,
|
48
|
+
{
|
49
|
+
params: {
|
50
|
+
url_practice: practiceURL,
|
51
|
+
...params,
|
52
|
+
},
|
53
|
+
}
|
54
|
+
)
|
55
|
+
}
|
56
|
+
|
57
|
+
public practiceGetFromUuid(
|
58
|
+
practiceUuid: Uuid,
|
59
|
+
locale?: string,
|
60
|
+
withAccounts?: boolean
|
61
|
+
): Promise<Practice> {
|
62
|
+
return this.api.get<Practice>(
|
63
|
+
`${this.baseURL}/v1/practices/${practiceUuid}`,
|
64
|
+
{ params: { locale, accounts: withAccounts } }
|
65
|
+
)
|
66
|
+
}
|
67
|
+
|
68
|
+
/// Practice Configs
|
69
|
+
|
70
|
+
/**
|
71
|
+
* This function retrieves all configs of a specific practice
|
72
|
+
* @param practiceUuid uuid of the practice
|
73
|
+
* @returns the practice configs
|
74
|
+
*/
|
75
|
+
public practiceConfigGetFromPracticeUuid(
|
76
|
+
practiceUuid: Uuid
|
77
|
+
): Promise<PracticeConfigs[]> {
|
78
|
+
return this.api.get<PracticeConfigs[]>(
|
79
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/configs`
|
80
|
+
)
|
81
|
+
}
|
82
|
+
|
83
|
+
/**
|
84
|
+
* This function retrieves a specific config of a practice
|
85
|
+
* @param practiceUuid uuid of the practice
|
86
|
+
* @param kind of the config
|
87
|
+
* @returns the practice config
|
88
|
+
*/
|
89
|
+
public practiceConfigGetByKindForPracticeUuid(
|
90
|
+
practiceUuid: Uuid,
|
91
|
+
kind: PracticeConfigKind
|
92
|
+
): Promise<PracticeConfigs> {
|
93
|
+
return this.api.get<PracticeConfigs>(
|
94
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/configs/${kind}`
|
95
|
+
)
|
96
|
+
}
|
97
|
+
|
98
|
+
/**
|
99
|
+
* This function creates a config for a specific practice
|
100
|
+
* @param practiceUuid uuid of the practice
|
101
|
+
* @param config the config to add to the practice
|
102
|
+
* @returns the created practice config
|
103
|
+
*/
|
104
|
+
public practiceConfigCreateForPracticeUuid(
|
105
|
+
practiceUuid: Uuid,
|
106
|
+
config: PracticeConfigs
|
107
|
+
): Promise<PracticeConfigs> {
|
108
|
+
return this.api.post<PracticeConfigs>(
|
109
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/configs`,
|
110
|
+
config
|
111
|
+
)
|
112
|
+
}
|
113
|
+
|
114
|
+
/**
|
115
|
+
* This function updates a specific config of a practice
|
116
|
+
* @param practiceUuid uuid of the practice
|
117
|
+
* @param config the config to update
|
118
|
+
* @returns the practice config
|
119
|
+
*/
|
120
|
+
public practiceConfigUpdate(
|
121
|
+
config: PracticeConfigs
|
122
|
+
): Promise<PracticeConfigs> {
|
123
|
+
return this.api.put<PracticeConfigs>(
|
124
|
+
`${this.baseURL}/v1/practices/${config.uuidPractice}/configs/${config.kind}`,
|
125
|
+
config
|
126
|
+
)
|
127
|
+
}
|
128
|
+
|
129
|
+
/// Accounts
|
130
|
+
public practiceGetAccounts(practiceUuid: Uuid): Promise<PracticeAccount[]> {
|
131
|
+
return this.api.get<PracticeAccount[]>(
|
132
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/accounts`
|
133
|
+
)
|
134
|
+
}
|
135
|
+
|
136
|
+
public practiceGetAccount(
|
137
|
+
practiceUuid: Uuid,
|
138
|
+
accountUuid: Uuid
|
139
|
+
): Promise<PracticeAccount> {
|
140
|
+
return this.api.get<PracticeAccount>(
|
141
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/accounts/${accountUuid}`
|
142
|
+
)
|
143
|
+
}
|
144
|
+
|
145
|
+
/// Workflows
|
146
|
+
public practiceGetWorkflows(
|
147
|
+
practiceUuid: Uuid
|
148
|
+
): Promise<PracticeWorkflow[]> {
|
149
|
+
return this.api.get<PracticeWorkflow[]>(
|
150
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/workflows`
|
151
|
+
)
|
152
|
+
}
|
153
|
+
|
154
|
+
public practiceGetWorkflow(
|
155
|
+
practiceUuid: Uuid,
|
156
|
+
workflowType: WorkflowType
|
157
|
+
): Promise<PracticeWorkflowWithTagSpecialty> {
|
158
|
+
return this.api.get<PracticeWorkflowWithTagSpecialty>(
|
159
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/workflows/${workflowType}`
|
160
|
+
)
|
161
|
+
}
|
162
|
+
|
163
|
+
/// Plans
|
164
|
+
public practiceGetPlans(
|
165
|
+
practiceUuid: Uuid,
|
166
|
+
planType?: PlanType
|
167
|
+
): Promise<PracticePlan[]> {
|
168
|
+
return this.api.get<PracticePlan[]>(
|
169
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/plans`,
|
170
|
+
{ params: { kind: planType } }
|
171
|
+
)
|
172
|
+
}
|
173
|
+
|
174
|
+
public practiceGetPlan(
|
175
|
+
practiceUuid: Uuid,
|
176
|
+
planId: number
|
177
|
+
): Promise<PracticePlan> {
|
178
|
+
return this.api.get<PracticePlan>(
|
179
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/plans/${planId}`
|
180
|
+
)
|
181
|
+
}
|
182
|
+
|
183
|
+
public practiceGetPlanPrices(
|
184
|
+
practiceUuid: Uuid,
|
185
|
+
planId: number
|
186
|
+
): Promise<PracticePlanPrices> {
|
187
|
+
return this.api.get<PracticePlanPrices>(
|
188
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/plans/${planId}/prices`
|
189
|
+
)
|
190
|
+
}
|
191
|
+
|
192
|
+
// Payments
|
193
|
+
public practiceGetPayments(
|
194
|
+
practiceUuid: Uuid,
|
195
|
+
planType?: PlanType
|
196
|
+
): Promise<PracticePayment[]> {
|
197
|
+
return this.api.get<PracticePayment[]>(
|
198
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/payments`,
|
199
|
+
{ params: { kind: planType } }
|
200
|
+
)
|
201
|
+
}
|
202
|
+
|
203
|
+
public practiceGetPayment(
|
204
|
+
practiceUuid: Uuid,
|
205
|
+
idStripeInvoiceOrPaymentIntent: string
|
206
|
+
): Promise<PracticePayment> {
|
207
|
+
return this.api.get<PracticePayment>(
|
208
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/payments/${idStripeInvoiceOrPaymentIntent}`
|
209
|
+
)
|
210
|
+
}
|
211
|
+
|
212
|
+
public practiceGetPaymentForStripePaymentIntentWithID(
|
213
|
+
practiceUuid: Uuid,
|
214
|
+
stripePaymentIntentId: number
|
215
|
+
): Promise<PracticePayment> {
|
216
|
+
return this.api.get<PracticePayment>(
|
217
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/payments/${stripePaymentIntentId}`
|
218
|
+
)
|
219
|
+
}
|
220
|
+
|
221
|
+
// Payments Intent
|
222
|
+
public practiceGetPaymentsIntents(
|
223
|
+
practiceUuid: Uuid,
|
224
|
+
planType?: PlanType
|
225
|
+
): Promise<PracticePaymentIntent[]> {
|
226
|
+
return this.api.get<PracticePaymentIntent[]>(
|
227
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/payments/intents`,
|
228
|
+
{ params: { kind: planType } }
|
229
|
+
)
|
230
|
+
}
|
231
|
+
|
232
|
+
/**
|
233
|
+
* This function return the user hased email to be use for creating payment intent
|
234
|
+
* @param email the email to hash
|
235
|
+
* @returns a hashed email
|
236
|
+
*/
|
237
|
+
public getPaymentIntentHashedEmail(email: string): string {
|
238
|
+
return this.toolbox.hashStringToBase64(email.toLowerCase())
|
239
|
+
}
|
240
|
+
|
241
|
+
public practiceCreatePaymentsIntent(
|
242
|
+
practiceUuid: Uuid,
|
243
|
+
planId: number,
|
244
|
+
userEmail: string,
|
245
|
+
isoLocality?: string,
|
246
|
+
url_subdomain?: string,
|
247
|
+
promotionCode?: string
|
248
|
+
): Promise<PracticePaymentIntent> {
|
249
|
+
return this.api.post<PracticePaymentIntent>(
|
250
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/payments/intents/`,
|
251
|
+
{
|
252
|
+
idPlan: planId,
|
253
|
+
hashUserEmail: userEmail
|
254
|
+
? this.getPaymentIntentHashedEmail(userEmail)
|
255
|
+
: undefined,
|
256
|
+
isoLocality,
|
257
|
+
},
|
258
|
+
{ params: { url_subdomain, promotionCode } }
|
259
|
+
)
|
260
|
+
}
|
261
|
+
|
262
|
+
public practiceGetPaymentsIntent(
|
263
|
+
practiceUuid: Uuid,
|
264
|
+
paymentIntentId: number
|
265
|
+
): Promise<PracticePaymentIntent> {
|
266
|
+
return this.api.get<PracticePaymentIntent>(
|
267
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/payments/intents/${paymentIntentId}`
|
268
|
+
)
|
269
|
+
}
|
270
|
+
|
271
|
+
public practiceUpdatePaymentsIntent(
|
272
|
+
practiceUuid: string,
|
273
|
+
idPraticePaymentIntent: number,
|
274
|
+
practicePaymentIntent: PracticePaymentIntent,
|
275
|
+
userEmail: string,
|
276
|
+
promotionCode?: string
|
277
|
+
) {
|
278
|
+
return this.api.put<PracticePaymentIntent>(
|
279
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/payments/intents/${idPraticePaymentIntent}`,
|
280
|
+
{
|
281
|
+
...practicePaymentIntent,
|
282
|
+
hashUserEmail: userEmail
|
283
|
+
? this.getPaymentIntentHashedEmail(userEmail)
|
284
|
+
: undefined,
|
285
|
+
},
|
286
|
+
{ params: { promotionCode } }
|
287
|
+
)
|
288
|
+
}
|
289
|
+
|
290
|
+
// Practitioner
|
291
|
+
public practiceGetPractitioners(
|
292
|
+
practiceUuid: Uuid
|
293
|
+
): Promise<Practitioner[]> {
|
294
|
+
return this.api.get<Practitioner[]>(
|
295
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners`
|
296
|
+
)
|
297
|
+
}
|
298
|
+
|
299
|
+
public practiceUpdatePractitioner(
|
300
|
+
practiceUuid: Uuid,
|
301
|
+
practitionerUuid: Uuid,
|
302
|
+
requestBody: Practitioner
|
303
|
+
): Promise<Practitioner> {
|
304
|
+
return this.api.put<Practitioner>(
|
305
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}`,
|
306
|
+
requestBody
|
307
|
+
)
|
308
|
+
}
|
309
|
+
|
310
|
+
public practiceGetPractitioner(
|
311
|
+
practiceUuid: Uuid,
|
312
|
+
practitionerUuid: Uuid
|
313
|
+
): Promise<Practitioner> {
|
314
|
+
return this.api.get<Practitioner>(
|
315
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}`
|
316
|
+
)
|
317
|
+
}
|
318
|
+
|
319
|
+
// Practitioner Licenses
|
320
|
+
public practiceGetPractitionerLicenses(
|
321
|
+
practiceUuid: Uuid,
|
322
|
+
practitionerUuid: Uuid
|
323
|
+
): Promise<PractitionerLicense[]> {
|
324
|
+
return this.api.get<PractitionerLicense[]>(
|
325
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/licenses`
|
326
|
+
)
|
327
|
+
}
|
328
|
+
|
329
|
+
public practiceCreatePractitionerLicense(
|
330
|
+
practiceUuid: Uuid,
|
331
|
+
practitionerUuid: Uuid,
|
332
|
+
requestBody: PractitionerLicense
|
333
|
+
): Promise<PractitionerLicense> {
|
334
|
+
return this.api.post<PractitionerLicense>(
|
335
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/licenses`,
|
336
|
+
requestBody
|
337
|
+
)
|
338
|
+
}
|
339
|
+
|
340
|
+
public practiceUpdatePractitionerLicense(
|
341
|
+
practiceUuid: Uuid,
|
342
|
+
practitionerUuid: Uuid,
|
343
|
+
licenseId: number,
|
344
|
+
requestBody: PractitionerLicense
|
345
|
+
): Promise<PractitionerLicense> {
|
346
|
+
return this.api.put<PractitionerLicense>(
|
347
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/licenses/${licenseId}`,
|
348
|
+
requestBody
|
349
|
+
)
|
350
|
+
}
|
351
|
+
|
352
|
+
public practiceGetPractitionerLicense(
|
353
|
+
practiceUuid: Uuid,
|
354
|
+
practitionerUuid: Uuid,
|
355
|
+
licenseId: number
|
356
|
+
): Promise<PractitionerLicense> {
|
357
|
+
return this.api.get<PractitionerLicense>(
|
358
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/licenses/${licenseId}`
|
359
|
+
)
|
360
|
+
}
|
361
|
+
|
362
|
+
// Practitioner Preferences
|
363
|
+
public practiceGetPractitionerPreferences(
|
364
|
+
practiceUuid: Uuid,
|
365
|
+
practitionerUuid: Uuid
|
366
|
+
): Promise<PractitionerPreference[]> {
|
367
|
+
return this.api.get<PractitionerPreference[]>(
|
368
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/preferences`
|
369
|
+
)
|
370
|
+
}
|
371
|
+
|
372
|
+
public practiceCreatePractitionerPreference(
|
373
|
+
practiceUuid: Uuid,
|
374
|
+
practitionerUuid: Uuid,
|
375
|
+
requestBody: PractitionerPreference
|
376
|
+
): Promise<PractitionerPreference> {
|
377
|
+
return this.api.post<PractitionerPreference>(
|
378
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/preferences`,
|
379
|
+
requestBody
|
380
|
+
)
|
381
|
+
}
|
382
|
+
|
383
|
+
public practiceUpdatePractitionerPreference(
|
384
|
+
practiceUuid: Uuid,
|
385
|
+
practitionerUuid: Uuid,
|
386
|
+
preferenceId: number,
|
387
|
+
requestBody: PractitionerPreference
|
388
|
+
): Promise<PractitionerPreference> {
|
389
|
+
return this.api.put<PractitionerPreference>(
|
390
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/preferences/${preferenceId}`,
|
391
|
+
requestBody
|
392
|
+
)
|
393
|
+
}
|
394
|
+
|
395
|
+
public practiceGetPractitionerPreference(
|
396
|
+
practiceUuid: Uuid,
|
397
|
+
practitionerUuid: Uuid,
|
398
|
+
preferenceId: number
|
399
|
+
): Promise<PractitionerPreference> {
|
400
|
+
return this.api.get<PractitionerPreference>(
|
401
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/preferences/${preferenceId}`
|
402
|
+
)
|
403
|
+
}
|
404
|
+
|
405
|
+
// Practitioner Roles
|
406
|
+
public practiceGetPractitionerRoles(
|
407
|
+
practiceUuid: Uuid,
|
408
|
+
practitionerUuid: Uuid
|
409
|
+
): Promise<PractitionerRole[]> {
|
410
|
+
return this.api.get<PractitionerRole[]>(
|
411
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/roles`
|
412
|
+
)
|
413
|
+
}
|
414
|
+
|
415
|
+
public practiceCreatePractitionerRole(
|
416
|
+
practiceUuid: Uuid,
|
417
|
+
practitionerUuid: Uuid,
|
418
|
+
requestBody: PractitionerRole
|
419
|
+
): Promise<PractitionerRole> {
|
420
|
+
return this.api.post<PractitionerRole>(
|
421
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/roles`,
|
422
|
+
requestBody
|
423
|
+
)
|
424
|
+
}
|
425
|
+
|
426
|
+
public practiceDeletePractitionerRoles(
|
427
|
+
practiceUuid: Uuid,
|
428
|
+
practitionerUuid: Uuid
|
429
|
+
): Promise<PractitionerRole> {
|
430
|
+
return this.api.deleteRequest<PractitionerRole>(
|
431
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/roles`
|
432
|
+
)
|
433
|
+
}
|
434
|
+
|
435
|
+
public practiceUpdatePractitionerRole(
|
436
|
+
practiceUuid: Uuid,
|
437
|
+
practitionerUuid: Uuid,
|
438
|
+
roleId: number,
|
439
|
+
requestBody: PractitionerRole
|
440
|
+
): Promise<PractitionerRole> {
|
441
|
+
return this.api.put<PractitionerRole>(
|
442
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/roles/${roleId}`,
|
443
|
+
requestBody
|
444
|
+
)
|
445
|
+
}
|
446
|
+
|
447
|
+
public practiceGetPractitionerRole(
|
448
|
+
practiceUuid: Uuid,
|
449
|
+
practitionerUuid: Uuid,
|
450
|
+
roleId: number
|
451
|
+
): Promise<PractitionerRole> {
|
452
|
+
return this.api.get<PractitionerRole>(
|
453
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/roles/${roleId}`
|
454
|
+
)
|
455
|
+
}
|
456
|
+
|
457
|
+
public practiceDeletePractitionerRole(
|
458
|
+
practiceUuid: Uuid,
|
459
|
+
practitionerUuid: Uuid,
|
460
|
+
roleId: number
|
461
|
+
): Promise<PractitionerRole> {
|
462
|
+
return this.api.deleteRequest<PractitionerRole>(
|
463
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/roles/${roleId}`
|
464
|
+
)
|
465
|
+
}
|
466
|
+
|
467
|
+
// Practitioner signature
|
468
|
+
|
469
|
+
/**
|
470
|
+
* This function returns the practitioner's signature as a Blob
|
471
|
+
* @param practiceUuid the practice uuid of the practitioner
|
472
|
+
* @param practitionerUuid the practitioner uuid
|
473
|
+
* @returns a blob representing the signature
|
474
|
+
*/
|
475
|
+
public practiceGetPractitionerSignature(
|
476
|
+
practiceUuid: Uuid,
|
477
|
+
practitionerUuid: Uuid
|
478
|
+
): Promise<Blob> {
|
479
|
+
return this.api.get<Blob>(
|
480
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/practitioners/${practitionerUuid}/signature`,
|
481
|
+
{ responseType: 'blob' }
|
482
|
+
)
|
483
|
+
}
|
484
|
+
|
485
|
+
// Assignments
|
486
|
+
public practiceGetAssignments(practiceUuid: Uuid): Promise<Assignment[]> {
|
487
|
+
return this.api.get<Assignment[]>(
|
488
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/assignments`
|
489
|
+
)
|
490
|
+
}
|
491
|
+
|
492
|
+
public practiceCreateAssignment(
|
493
|
+
practiceUuid: Uuid,
|
494
|
+
requestBody: Assignment
|
495
|
+
): Promise<Assignment> {
|
496
|
+
return this.api.post<Assignment>(
|
497
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/assignments`,
|
498
|
+
requestBody
|
499
|
+
)
|
500
|
+
}
|
501
|
+
|
502
|
+
public practiceUpdateAssignment(
|
503
|
+
practiceUuid: Uuid,
|
504
|
+
assignmentId: number,
|
505
|
+
requestBody: Assignment
|
506
|
+
): Promise<Assignment> {
|
507
|
+
return this.api.put<Assignment>(
|
508
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/assignments/${assignmentId}`,
|
509
|
+
requestBody
|
510
|
+
)
|
511
|
+
}
|
512
|
+
|
513
|
+
public practiceGetAssignment(
|
514
|
+
practiceUuid: Uuid,
|
515
|
+
assignmentId: number
|
516
|
+
): Promise<Assignment> {
|
517
|
+
return this.api.get<Assignment>(
|
518
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/assignments/${assignmentId}`
|
519
|
+
)
|
520
|
+
}
|
521
|
+
|
522
|
+
// Quotas
|
523
|
+
public practiceGetQuotas(practiceUuid: Uuid): Promise<PractitionerQuota[]> {
|
524
|
+
return this.api.get<PractitionerQuota[]>(
|
525
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/quotas`
|
526
|
+
)
|
527
|
+
}
|
528
|
+
|
529
|
+
public practiceGetQuota(
|
530
|
+
practiceUuid: Uuid,
|
531
|
+
quotaId: number
|
532
|
+
): Promise<PractitionerQuota> {
|
533
|
+
return this.api.get<PractitionerQuota>(
|
534
|
+
`${this.baseURL}/v1/practices/${practiceUuid}/quotas/${quotaId}`
|
535
|
+
)
|
536
|
+
}
|
537
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { APIService } from './api'
|
2
|
+
import { Consult, DataCreateResponse, LockboxDataRequest, MedicalStatus, Uuid } from '../models'
|
3
|
+
export class TellerService {
|
4
|
+
constructor(private api: APIService, private baseURL: string) { }
|
5
|
+
|
6
|
+
public async lockboxDataStore(
|
7
|
+
lockboxUuid: Uuid,
|
8
|
+
req: LockboxDataRequest,
|
9
|
+
lockboxOwnerUuid?: Uuid,
|
10
|
+
previousDataUuid?: Uuid
|
11
|
+
): Promise<DataCreateResponse> {
|
12
|
+
return this.api.post<DataCreateResponse>(
|
13
|
+
`${this.baseURL}/v1/lockboxes/${lockboxUuid}/data`,
|
14
|
+
req,
|
15
|
+
{
|
16
|
+
params: {
|
17
|
+
lockbox_owner_uuid: lockboxOwnerUuid,
|
18
|
+
data_uuid: previousDataUuid,
|
19
|
+
},
|
20
|
+
}
|
21
|
+
)
|
22
|
+
}
|
23
|
+
|
24
|
+
public updateConsultByUUID(
|
25
|
+
patientUuid: Uuid,
|
26
|
+
uuidConsult: Uuid,
|
27
|
+
statusMedical: MedicalStatus,
|
28
|
+
neverExpires?: boolean,
|
29
|
+
): Promise<Consult> {
|
30
|
+
return this.api.put<Consult>(
|
31
|
+
`${this.baseURL}/v1/consults/${uuidConsult}`,
|
32
|
+
{
|
33
|
+
patientUuid,
|
34
|
+
statusMedical,
|
35
|
+
neverExpires,
|
36
|
+
},
|
37
|
+
)
|
38
|
+
}
|
39
|
+
}
|