gdc-sdk-node-ts 0.9.1 → 0.12.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 +89 -2
- package/dist/constants/lifecycle.d.ts +1 -0
- package/dist/constants/lifecycle.js +2 -0
- package/dist/gdc-session-bridge.js +6 -2
- package/dist/host-onboarding.d.ts +6 -39
- package/dist/host-onboarding.js +8 -38
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/individual-onboarding.d.ts +1 -0
- package/dist/individual-onboarding.js +1 -0
- package/dist/individual-start.d.ts +1 -10
- package/dist/legacy-compat.d.ts +2 -0
- package/dist/legacy-compat.js +1 -0
- package/dist/node-runtime-client.d.ts +87 -9
- package/dist/node-runtime-client.js +232 -25
- package/dist/orchestration/client-port.d.ts +21 -1
- package/dist/orchestration/host-onboarding-sdk.d.ts +16 -4
- package/dist/orchestration/host-onboarding-sdk.js +22 -1
- package/dist/orchestration/individual-controller-sdk.d.ts +36 -1
- package/dist/orchestration/individual-controller-sdk.js +51 -0
- package/dist/orchestration/organization-controller-sdk.d.ts +58 -1
- package/dist/orchestration/organization-controller-sdk.js +77 -0
- package/dist/orchestration/personal-sdk.d.ts +17 -1
- package/dist/orchestration/personal-sdk.js +32 -0
- package/dist/order-offer-summary.d.ts +6 -0
- package/dist/order-offer-summary.js +11 -0
- package/dist/organization-license-order.d.ts +40 -0
- package/dist/organization-license-order.js +42 -0
- package/dist/resource-operations.d.ts +153 -0
- package/dist/resource-operations.js +190 -13
- package/dist/session.js +1 -1
- package/package.json +13 -4
|
@@ -5,11 +5,13 @@ import path from 'node:path';
|
|
|
5
5
|
import { buildAppHeaders, createBootstrapFacade, resolveAppInfo, } from 'gdc-sdk-core-ts';
|
|
6
6
|
import { buildConsentClaimsSimpleWithCid } from 'gdc-common-utils-ts/utils/consent';
|
|
7
7
|
import { pollUntilCompleteWithMethod } from './async-polling.js';
|
|
8
|
-
import { confirmLegalOrganizationOrderWithDeps } from './host-onboarding.js';
|
|
8
|
+
import { confirmLegalOrganizationOrderWithDeps, HostLifecycleRequestType, HostedTenantLifecycleRequestType, submitHostedTenantLifecycleWithDeps, } from './host-onboarding.js';
|
|
9
9
|
import { confirmIndividualOrganizationOrderWithDeps, } from './individual-onboarding.js';
|
|
10
10
|
import { requestSmartTokenWithDeps } from './smart-token.js';
|
|
11
|
+
import { extractOfferIdFromResponseBody, extractOfferPreviewFromResponseBody, } from './order-offer-summary.js';
|
|
12
|
+
import { confirmOrganizationLicenseOrderWithDeps } from './organization-license-order.js';
|
|
11
13
|
import { startIndividualOrganizationWithDeps } from './individual-start.js';
|
|
12
|
-
import { createOrganizationEmployeeWithDeps, disableIndividualOrganizationWithDeps, disableOrganizationEmployeeWithDeps, grantProfessionalAccessWithDeps, ingestCommunicationAndUpdateIndexWithDeps, purgeIndividualOrganizationWithDeps, purgeOrganizationEmployeeWithDeps, searchOrganizationEmployeesWithDeps, searchClinicalBundleWithDeps, searchLatestIpsWithDeps, upsertRelatedPersonAndPollWithDeps, } from './resource-operations.js';
|
|
14
|
+
import { createOrganizationEmployeeWithDeps, disableIndividualMemberWithDeps, disableIndividualOrganizationWithDeps, disableOrganizationEmployeeWithDeps, listIndividualLicenseOffersWithDeps, listIndividualLicenseOrdersWithDeps, listIndividualLicensesWithDeps, listOrganizationLicenseOffersWithDeps, listOrganizationLicenseOrdersWithDeps, listOrganizationLicensesWithDeps, grantProfessionalAccessWithDeps, ingestCommunicationAndUpdateIndexWithDeps, purgeIndividualMemberWithDeps, purgeIndividualOrganizationWithDeps, purgeOrganizationEmployeeWithDeps, searchIndividualLicensesWithDeps, searchIndividualLicenseOffersWithDeps, searchIndividualLicenseOrdersWithDeps, searchOrganizationLicensesWithDeps, searchOrganizationLicenseOffersWithDeps, searchOrganizationLicenseOrdersWithDeps, searchOrganizationEmployeesWithDeps, searchClinicalBundleWithDeps, searchLatestIpsWithDeps, upsertRelatedPersonAndPollWithDeps, } from './resource-operations.js';
|
|
13
15
|
import { submitAndPollWithMethods } from './orchestration/client-port.js';
|
|
14
16
|
import { GwCoreLifecycleAction } from './constants/lifecycle.js';
|
|
15
17
|
const bootstrapFacade = createBootstrapFacade();
|
|
@@ -152,6 +154,73 @@ export class HttpRuntimeClient {
|
|
|
152
154
|
defaultIntervalMs: pollOptions?.intervalMs,
|
|
153
155
|
});
|
|
154
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Disables the host registration itself after every hosted tenant has
|
|
159
|
+
* already been purged from the host registry.
|
|
160
|
+
*/
|
|
161
|
+
async disableHost(hostCtx, input, pollOptions) {
|
|
162
|
+
return submitHostedTenantLifecycleWithDeps({
|
|
163
|
+
hostCtx,
|
|
164
|
+
input,
|
|
165
|
+
requestType: HostLifecycleRequestType.Disable,
|
|
166
|
+
submitPath: this.hostRegistryOrganizationDisablePath.bind(this),
|
|
167
|
+
pollPath: this.hostRegistryOrganizationDisablePollPath.bind(this),
|
|
168
|
+
thidPrefix: 'host-disable',
|
|
169
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
170
|
+
defaultTimeoutMs: pollOptions?.timeoutMs,
|
|
171
|
+
defaultIntervalMs: pollOptions?.intervalMs,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Purges the disabled host registration after the hosted tenant registry has
|
|
176
|
+
* become empty.
|
|
177
|
+
*/
|
|
178
|
+
async purgeHost(hostCtx, input, pollOptions) {
|
|
179
|
+
return submitHostedTenantLifecycleWithDeps({
|
|
180
|
+
hostCtx,
|
|
181
|
+
input,
|
|
182
|
+
requestType: HostLifecycleRequestType.Purge,
|
|
183
|
+
submitPath: this.hostRegistryOrganizationPurgePath.bind(this),
|
|
184
|
+
pollPath: this.hostRegistryOrganizationPurgePollPath.bind(this),
|
|
185
|
+
thidPrefix: 'host-purge',
|
|
186
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
187
|
+
defaultTimeoutMs: pollOptions?.timeoutMs,
|
|
188
|
+
defaultIntervalMs: pollOptions?.intervalMs,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Disables one hosted tenant through the host registry after its descendants
|
|
193
|
+
* have already been disabled/purged.
|
|
194
|
+
*/
|
|
195
|
+
async disableTenant(hostCtx, input, pollOptions) {
|
|
196
|
+
return submitHostedTenantLifecycleWithDeps({
|
|
197
|
+
hostCtx,
|
|
198
|
+
input,
|
|
199
|
+
requestType: HostedTenantLifecycleRequestType.Disable,
|
|
200
|
+
submitPath: this.hostRegistryOrganizationDisablePath.bind(this),
|
|
201
|
+
pollPath: this.hostRegistryOrganizationDisablePollPath.bind(this),
|
|
202
|
+
thidPrefix: 'tenant-disable',
|
|
203
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
204
|
+
defaultTimeoutMs: pollOptions?.timeoutMs,
|
|
205
|
+
defaultIntervalMs: pollOptions?.intervalMs,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Purges one already-disabled hosted tenant through the host registry.
|
|
210
|
+
*/
|
|
211
|
+
async purgeTenant(hostCtx, input, pollOptions) {
|
|
212
|
+
return submitHostedTenantLifecycleWithDeps({
|
|
213
|
+
hostCtx,
|
|
214
|
+
input,
|
|
215
|
+
requestType: HostedTenantLifecycleRequestType.Purge,
|
|
216
|
+
submitPath: this.hostRegistryOrganizationPurgePath.bind(this),
|
|
217
|
+
pollPath: this.hostRegistryOrganizationPurgePollPath.bind(this),
|
|
218
|
+
thidPrefix: 'tenant-purge',
|
|
219
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
220
|
+
defaultTimeoutMs: pollOptions?.timeoutMs,
|
|
221
|
+
defaultIntervalMs: pollOptions?.intervalMs,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
155
224
|
/**
|
|
156
225
|
* Creates an employee or professional entry under an existing organization tenant.
|
|
157
226
|
*/
|
|
@@ -210,6 +279,77 @@ export class HttpRuntimeClient {
|
|
|
210
279
|
submitAndPoll: this.submitAndPoll.bind(this),
|
|
211
280
|
});
|
|
212
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* Searches organization-owned license seats through the canonical
|
|
284
|
+
* `License/_search` route.
|
|
285
|
+
*/
|
|
286
|
+
async searchOrganizationLicenses(ctx, input) {
|
|
287
|
+
return searchOrganizationLicensesWithDeps(ctx, input, {
|
|
288
|
+
organizationLicenseSearchPath: this.organizationLicenseSearchPath.bind(this),
|
|
289
|
+
organizationLicenseSearchPollPath: this.organizationLicenseSearchPollPath.bind(this),
|
|
290
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Lists organization-owned license seats using the same `License/_search`
|
|
295
|
+
* route with optional filters.
|
|
296
|
+
*/
|
|
297
|
+
async listOrganizationLicenses(ctx, input = {}) {
|
|
298
|
+
return listOrganizationLicensesWithDeps(ctx, input, {
|
|
299
|
+
organizationLicenseSearchPath: this.organizationLicenseSearchPath.bind(this),
|
|
300
|
+
organizationLicenseSearchPollPath: this.organizationLicenseSearchPollPath.bind(this),
|
|
301
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
async searchOrganizationLicenseOffers(ctx, input) {
|
|
305
|
+
return searchOrganizationLicenseOffersWithDeps(ctx, input, {
|
|
306
|
+
organizationLicenseOfferSearchPath: this.organizationLicenseOfferSearchPath.bind(this),
|
|
307
|
+
organizationLicenseOfferSearchPollPath: this.organizationLicenseOfferSearchPollPath.bind(this),
|
|
308
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
async listOrganizationLicenseOffers(ctx, input = {}) {
|
|
312
|
+
return listOrganizationLicenseOffersWithDeps(ctx, input, {
|
|
313
|
+
organizationLicenseOfferSearchPath: this.organizationLicenseOfferSearchPath.bind(this),
|
|
314
|
+
organizationLicenseOfferSearchPollPath: this.organizationLicenseOfferSearchPollPath.bind(this),
|
|
315
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
async searchOrganizationLicenseOrders(ctx, input) {
|
|
319
|
+
return searchOrganizationLicenseOrdersWithDeps(ctx, input, {
|
|
320
|
+
organizationLicenseOrderSearchPath: this.organizationLicenseOrderSearchPath.bind(this),
|
|
321
|
+
organizationLicenseOrderSearchPollPath: this.organizationLicenseOrderSearchPollPath.bind(this),
|
|
322
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
async listOrganizationLicenseOrders(ctx, input = {}) {
|
|
326
|
+
return listOrganizationLicenseOrdersWithDeps(ctx, input, {
|
|
327
|
+
organizationLicenseOrderSearchPath: this.organizationLicenseOrderSearchPath.bind(this),
|
|
328
|
+
organizationLicenseOrderSearchPollPath: this.organizationLicenseOrderSearchPollPath.bind(this),
|
|
329
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Confirms an already paid organization-side license order so additional
|
|
334
|
+
* seats become usable once GW CORE exposes the public converged route.
|
|
335
|
+
*
|
|
336
|
+
* Current runtime note:
|
|
337
|
+
* - search/list for organization license offers and orders already works
|
|
338
|
+
* - the public/write post-payment seat activation route is not wired yet
|
|
339
|
+
* - this method therefore fails explicitly instead of guessing a transport
|
|
340
|
+
* contract that is not stable in GW CORE
|
|
341
|
+
*/
|
|
342
|
+
async confirmOrganizationLicenseOrder(ctx, input, pollOptions) {
|
|
343
|
+
return confirmOrganizationLicenseOrderWithDeps({
|
|
344
|
+
routeCtx: ctx,
|
|
345
|
+
input,
|
|
346
|
+
defaultTimeoutMs: pollOptions?.timeoutMs,
|
|
347
|
+
defaultIntervalMs: pollOptions?.intervalMs,
|
|
348
|
+
hostRegistryOrderBatchPath: this.hostRegistryOrderBatchPath.bind(this),
|
|
349
|
+
hostRegistryOrderPollPath: this.hostRegistryOrderPollPath.bind(this),
|
|
350
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
351
|
+
});
|
|
352
|
+
}
|
|
213
353
|
/**
|
|
214
354
|
* Starts the onboarding flow for an individual-oriented tenant or index.
|
|
215
355
|
*/
|
|
@@ -221,8 +361,8 @@ export class HttpRuntimeClient {
|
|
|
221
361
|
individualFamilyOrganizationBatchPath: this.individualFamilyOrganizationTransactionPath.bind(this),
|
|
222
362
|
individualFamilyOrganizationPollPath: this.individualFamilyOrganizationTransactionPollPath.bind(this),
|
|
223
363
|
submitAndPoll: this.submitAndPoll.bind(this),
|
|
224
|
-
getOfferIdFromResponse: (result) =>
|
|
225
|
-
getOfferPreviewFromResponse: () => (
|
|
364
|
+
getOfferIdFromResponse: (result) => extractOfferIdFromResponseBody(result.poll.body),
|
|
365
|
+
getOfferPreviewFromResponse: (result) => extractOfferPreviewFromResponseBody(result.poll.body),
|
|
226
366
|
});
|
|
227
367
|
}
|
|
228
368
|
/**
|
|
@@ -277,13 +417,65 @@ export class HttpRuntimeClient {
|
|
|
277
417
|
return this.purgeIndividualOrganization(ctx, input, pollOptions);
|
|
278
418
|
}
|
|
279
419
|
/**
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
* Current GW CORE does not yet expose a stable lifecycle route for
|
|
283
|
-
* `RelatedPerson` / individual-member disable.
|
|
420
|
+
* Soft-disables a `RelatedPerson` membership/contact using the current
|
|
421
|
+
* public batch-update path and `RelatedPerson.active = false`.
|
|
284
422
|
*/
|
|
285
|
-
async disableIndividualMember(
|
|
286
|
-
|
|
423
|
+
async disableIndividualMember(ctx, input, pollOptions) {
|
|
424
|
+
return disableIndividualMemberWithDeps(ctx, input, pollOptions, {
|
|
425
|
+
individualRelatedPersonBatchPath: this.individualRelatedPersonBatchPath.bind(this),
|
|
426
|
+
individualRelatedPersonPollPath: this.individualRelatedPersonPollPath.bind(this),
|
|
427
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Searches individual/family-side license seats through the canonical
|
|
432
|
+
* `License/_search` route.
|
|
433
|
+
*/
|
|
434
|
+
async searchIndividualLicenses(ctx, input) {
|
|
435
|
+
return searchIndividualLicensesWithDeps(ctx, input, {
|
|
436
|
+
individualLicenseSearchPath: this.individualLicenseSearchPath.bind(this),
|
|
437
|
+
individualLicenseSearchPollPath: this.individualLicenseSearchPollPath.bind(this),
|
|
438
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Lists individual/family-side license seats using the same search route
|
|
443
|
+
* with optional filters.
|
|
444
|
+
*/
|
|
445
|
+
async listIndividualLicenses(ctx, input = {}) {
|
|
446
|
+
return listIndividualLicensesWithDeps(ctx, input, {
|
|
447
|
+
individualLicenseSearchPath: this.individualLicenseSearchPath.bind(this),
|
|
448
|
+
individualLicenseSearchPollPath: this.individualLicenseSearchPollPath.bind(this),
|
|
449
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
async searchIndividualLicenseOffers(ctx, input) {
|
|
453
|
+
return searchIndividualLicenseOffersWithDeps(ctx, input, {
|
|
454
|
+
individualLicenseOfferSearchPath: this.individualLicenseOfferSearchPath.bind(this),
|
|
455
|
+
individualLicenseOfferSearchPollPath: this.individualLicenseOfferSearchPollPath.bind(this),
|
|
456
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
async listIndividualLicenseOffers(ctx, input = {}) {
|
|
460
|
+
return listIndividualLicenseOffersWithDeps(ctx, input, {
|
|
461
|
+
individualLicenseOfferSearchPath: this.individualLicenseOfferSearchPath.bind(this),
|
|
462
|
+
individualLicenseOfferSearchPollPath: this.individualLicenseOfferSearchPollPath.bind(this),
|
|
463
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
async searchIndividualLicenseOrders(ctx, input) {
|
|
467
|
+
return searchIndividualLicenseOrdersWithDeps(ctx, input, {
|
|
468
|
+
individualLicenseOrderSearchPath: this.individualLicenseOrderSearchPath.bind(this),
|
|
469
|
+
individualLicenseOrderSearchPollPath: this.individualLicenseOrderSearchPollPath.bind(this),
|
|
470
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
async listIndividualLicenseOrders(ctx, input = {}) {
|
|
474
|
+
return listIndividualLicenseOrdersWithDeps(ctx, input, {
|
|
475
|
+
individualLicenseOrderSearchPath: this.individualLicenseOrderSearchPath.bind(this),
|
|
476
|
+
individualLicenseOrderSearchPollPath: this.individualLicenseOrderSearchPollPath.bind(this),
|
|
477
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
478
|
+
});
|
|
287
479
|
}
|
|
288
480
|
/**
|
|
289
481
|
* Placeholder for a future GW CORE member/caregiver lifecycle contract.
|
|
@@ -291,8 +483,12 @@ export class HttpRuntimeClient {
|
|
|
291
483
|
* Current GW CORE does not yet expose a stable lifecycle route for
|
|
292
484
|
* `RelatedPerson` / individual-member purge.
|
|
293
485
|
*/
|
|
294
|
-
async purgeIndividualMember(
|
|
295
|
-
|
|
486
|
+
async purgeIndividualMember(ctx, input, pollOptions) {
|
|
487
|
+
return purgeIndividualMemberWithDeps(ctx, input, pollOptions, {
|
|
488
|
+
individualRelatedPersonPurgePath: this.individualRelatedPersonPurgePath.bind(this),
|
|
489
|
+
individualRelatedPersonPurgePollPath: this.individualRelatedPersonPurgePollPath.bind(this),
|
|
490
|
+
submitAndPoll: this.submitAndPoll.bind(this),
|
|
491
|
+
});
|
|
296
492
|
}
|
|
297
493
|
/**
|
|
298
494
|
* Creates and submits a consent-oriented access grant for a professional actor.
|
|
@@ -390,6 +586,12 @@ export class HttpRuntimeClient {
|
|
|
390
586
|
searchClinicalBundle: this.searchClinicalBundle.bind(this),
|
|
391
587
|
});
|
|
392
588
|
}
|
|
589
|
+
/**
|
|
590
|
+
* Preferred runtime alias for latest-IPS retrieval used by shared facades.
|
|
591
|
+
*/
|
|
592
|
+
async getLatestIps(ctx, input) {
|
|
593
|
+
return this.searchLatestIps(ctx, input);
|
|
594
|
+
}
|
|
393
595
|
/**
|
|
394
596
|
* Searches a communication/document thread using `thid` and returns the
|
|
395
597
|
* indexed communication/document projections.
|
|
@@ -535,12 +737,22 @@ export class HttpRuntimeClient {
|
|
|
535
737
|
}
|
|
536
738
|
hostRegistryOrganizationActivatePath(ctx) { return this.hostRegistryPath(ctx, 'Organization', '_activate'); }
|
|
537
739
|
hostRegistryOrganizationActivatePollPath(ctx) { return this.hostRegistryPath(ctx, 'Organization', '_activate-response'); }
|
|
740
|
+
hostRegistryOrganizationDisablePath(ctx) { return this.hostRegistryPath(ctx, 'Organization', GwCoreLifecycleAction.Disable); }
|
|
741
|
+
hostRegistryOrganizationDisablePollPath(ctx) { return this.hostRegistryPath(ctx, 'Organization', `${GwCoreLifecycleAction.Disable}-response`); }
|
|
742
|
+
hostRegistryOrganizationPurgePath(ctx) { return this.hostRegistryPath(ctx, 'Organization', GwCoreLifecycleAction.Purge); }
|
|
743
|
+
hostRegistryOrganizationPurgePollPath(ctx) { return this.hostRegistryPath(ctx, 'Organization', `${GwCoreLifecycleAction.Purge}-response`); }
|
|
538
744
|
hostRegistryOrderBatchPath(ctx) { return this.hostRegistryPath(ctx, 'Order', '_batch'); }
|
|
539
745
|
hostRegistryOrderPollPath(ctx) { return this.hostRegistryPath(ctx, 'Order', '_batch-response'); }
|
|
540
746
|
employeeBatchPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Employee', GwCoreLifecycleAction.Batch); }
|
|
541
747
|
employeePollPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Employee', GwCoreLifecycleAction.BatchResponse); }
|
|
542
748
|
employeeSearchPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Employee', '_search'); }
|
|
543
749
|
employeeSearchPollPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Employee', '_search-response'); }
|
|
750
|
+
organizationLicenseSearchPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'License', '_search'); }
|
|
751
|
+
organizationLicenseSearchPollPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'License', '_search-response'); }
|
|
752
|
+
organizationLicenseOfferSearchPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Offer', '_search'); }
|
|
753
|
+
organizationLicenseOfferSearchPollPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Offer', '_search-response'); }
|
|
754
|
+
organizationLicenseOrderSearchPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Order', '_search'); }
|
|
755
|
+
organizationLicenseOrderSearchPollPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Order', '_search-response'); }
|
|
544
756
|
employeePurgePath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Employee', GwCoreLifecycleAction.Purge); }
|
|
545
757
|
employeePurgePollPath(ctx) { return this.v1Path(ctx, 'entity', 'org.schema', 'Employee', `${GwCoreLifecycleAction.Purge}-response`); }
|
|
546
758
|
individualFamilyOrganizationBatchPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Organization', GwCoreLifecycleAction.Batch); }
|
|
@@ -551,10 +763,18 @@ export class HttpRuntimeClient {
|
|
|
551
763
|
individualFamilyOrganizationDisablePollPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Organization', `${GwCoreLifecycleAction.Disable}-response`); }
|
|
552
764
|
individualFamilyOrganizationPurgePath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Organization', GwCoreLifecycleAction.Purge); }
|
|
553
765
|
individualFamilyOrganizationPurgePollPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Organization', `${GwCoreLifecycleAction.Purge}-response`); }
|
|
766
|
+
individualLicenseSearchPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'License', '_search'); }
|
|
767
|
+
individualLicenseSearchPollPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'License', '_search-response'); }
|
|
768
|
+
individualLicenseOfferSearchPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Offer', '_search'); }
|
|
769
|
+
individualLicenseOfferSearchPollPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Offer', '_search-response'); }
|
|
770
|
+
individualLicenseOrderSearchPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Order', '_search'); }
|
|
771
|
+
individualLicenseOrderSearchPollPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Order', '_search-response'); }
|
|
554
772
|
individualFamilyOrderBatchPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Order', '_batch'); }
|
|
555
773
|
individualFamilyOrderPollPath(ctx) { return this.v1Path(ctx, 'individual', 'org.schema', 'Order', '_batch-response'); }
|
|
556
774
|
individualRelatedPersonBatchPath(ctx) { return this.v1Path(ctx, 'individual', 'org.hl7.fhir.r4', 'RelatedPerson', '_batch'); }
|
|
557
775
|
individualRelatedPersonPollPath(ctx) { return this.v1Path(ctx, 'individual', 'org.hl7.fhir.r4', 'RelatedPerson', '_batch-response'); }
|
|
776
|
+
individualRelatedPersonPurgePath(ctx) { return this.v1Path(ctx, 'individual', 'org.hl7.fhir.r4', 'RelatedPerson', '_purge'); }
|
|
777
|
+
individualRelatedPersonPurgePollPath(ctx) { return this.v1Path(ctx, 'individual', 'org.hl7.fhir.r4', 'RelatedPerson', '_purge-response'); }
|
|
558
778
|
individualConsentR4BatchPath(ctx) { return this.v1Path(ctx, 'individual', 'org.hl7.fhir.r4', 'Consent', '_batch'); }
|
|
559
779
|
individualConsentR4PollPath(ctx) { return this.v1Path(ctx, 'individual', 'org.hl7.fhir.r4', 'Consent', '_batch-response'); }
|
|
560
780
|
individualCommunicationBatchPath(ctx, format) { return this.v1Path(ctx, 'individual', format, 'Communication', '_batch'); }
|
|
@@ -573,19 +793,6 @@ export class HttpRuntimeClient {
|
|
|
573
793
|
identityOpenIdSmartTokenPollPath(ctx) {
|
|
574
794
|
return `/${encodeURIComponent(ctx.tenantId)}/cds-${encodeURIComponent(ctx.jurisdiction)}/v1/${encodeURIComponent(ctx.sector)}/identity/openid/smart/_batch-response`;
|
|
575
795
|
}
|
|
576
|
-
extractOfferId(body) {
|
|
577
|
-
const root = body || {};
|
|
578
|
-
const bodyNode = root.body || root;
|
|
579
|
-
const data = bodyNode.data || [];
|
|
580
|
-
const first = data[0] || {};
|
|
581
|
-
const firstMeta = first.meta || {};
|
|
582
|
-
const resource = first.resource || {};
|
|
583
|
-
const resourceMeta = resource.meta || {};
|
|
584
|
-
const claims = firstMeta.claims
|
|
585
|
-
|| resourceMeta.claims
|
|
586
|
-
|| {};
|
|
587
|
-
return String(claims['org.schema.Offer.identifier'] || '').trim() || undefined;
|
|
588
|
-
}
|
|
589
796
|
appendHttpTrace(entry) {
|
|
590
797
|
if (!this.httpTraceFile)
|
|
591
798
|
return;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { ControllerBindingInput } from 'gdc-common-utils-ts/models';
|
|
2
|
+
import type { LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput } from '../resource-operations.js';
|
|
2
3
|
import type { AsyncPollRequest, OrganizationActivationServiceOptions, PollOptions, PollResult, SubmitAndPollResult, SubmitPayload, SubmitResponse } from 'gdc-sdk-core-ts';
|
|
3
4
|
export type { AsyncPollRequest, PollOptions, PollResult, SubmitAndPollResult, SubmitPayload, SubmitResponse, } from 'gdc-sdk-core-ts';
|
|
4
5
|
import type { EmployeeDeviceActivationResult, EmployeeDeviceActivationRequestInput } from '../device-activation.js';
|
|
5
|
-
import type { HostRouteContext, LegalOrganizationOrderInput } from '../host-onboarding.js';
|
|
6
|
+
import type { HostRouteContext, HostedTenantLifecycleInput, LegalOrganizationOrderInput } from '../host-onboarding.js';
|
|
6
7
|
import type { IndividualOrganizationConfirmOrderInput, RouteContext } from '../individual-onboarding.js';
|
|
7
8
|
import type { IndividualOrganizationBootstrapInput, IndividualOrganizationStartResult } from '../individual-start.js';
|
|
9
|
+
import type { OrganizationLicenseOrderConfirmInput } from '../organization-license-order.js';
|
|
8
10
|
import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
|
|
9
11
|
import type { CommunicationIngestionInput, ClinicalBundleSearchInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IndividualOrganizationLifecycleInput, IpsOrFhirImportInput, OrganizationEmployeeCreationInput, OrganizationEmployeeLifecycleInput, OrganizationEmployeeSearchInput, RelatedPersonUpsertInput } from '../resource-operations.js';
|
|
10
12
|
/**
|
|
@@ -29,8 +31,19 @@ export type NodeOrganizationActivationInput = {
|
|
|
29
31
|
export type RuntimeClient = {
|
|
30
32
|
activateOrganizationInGatewayFromIcaProof?: (hostCtx: HostRouteContext, input: NodeOrganizationActivationInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
31
33
|
confirmLegalOrganizationOrder?: (hostCtx: HostRouteContext, input: LegalOrganizationOrderInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
34
|
+
disableHost?: (hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
35
|
+
purgeHost?: (hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
36
|
+
disableTenant?: (hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
37
|
+
purgeTenant?: (hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
32
38
|
createOrganizationEmployee?: (ctx: RouteContext, input: OrganizationEmployeeCreationInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
33
39
|
searchOrganizationEmployees?: (ctx: RouteContext, input: OrganizationEmployeeSearchInput) => Promise<SubmitAndPollResult>;
|
|
40
|
+
searchOrganizationLicenses?: (ctx: RouteContext, input: LicenseListRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
41
|
+
listOrganizationLicenses?: (ctx: RouteContext, input?: LicenseListRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
42
|
+
searchOrganizationLicenseOffers?: (ctx: RouteContext, input: LicenseOfferRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
43
|
+
listOrganizationLicenseOffers?: (ctx: RouteContext, input?: LicenseOfferRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
44
|
+
searchOrganizationLicenseOrders?: (ctx: RouteContext, input: LicenseOrderRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
45
|
+
listOrganizationLicenseOrders?: (ctx: RouteContext, input?: LicenseOrderRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
46
|
+
confirmOrganizationLicenseOrder?: (ctx: RouteContext, input: OrganizationLicenseOrderConfirmInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
34
47
|
disableEmployee?: (ctx: RouteContext, input: OrganizationEmployeeLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
35
48
|
purgeEmployee?: (ctx: RouteContext, input: OrganizationEmployeeLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
36
49
|
disableOrganizationEmployee?: (ctx: RouteContext, input: OrganizationEmployeeLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
@@ -47,11 +60,18 @@ export type RuntimeClient = {
|
|
|
47
60
|
purgeIndividualOrganization?: (ctx: RouteContext, input: IndividualOrganizationLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
48
61
|
ingestCommunicationAndUpdateIndex?: (ctx: RouteContext, input: CommunicationIngestionInput) => Promise<SubmitAndPollResult>;
|
|
49
62
|
grantProfessionalAccess?: (ctx: RouteContext, input: GrantProfessionalAccessInput) => Promise<GrantProfessionalAccessResult>;
|
|
63
|
+
searchIndividualLicenses?: (ctx: RouteContext, input: LicenseListRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
64
|
+
listIndividualLicenses?: (ctx: RouteContext, input?: LicenseListRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
65
|
+
searchIndividualLicenseOffers?: (ctx: RouteContext, input: LicenseOfferRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
66
|
+
listIndividualLicenseOffers?: (ctx: RouteContext, input?: LicenseOfferRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
67
|
+
searchIndividualLicenseOrders?: (ctx: RouteContext, input: LicenseOrderRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
68
|
+
listIndividualLicenseOrders?: (ctx: RouteContext, input?: LicenseOrderRuntimeSearchInput) => Promise<SubmitAndPollResult>;
|
|
50
69
|
bootstrapIndividualOrganization?: (input: IndividualOrganizationBootstrapInput) => Promise<IndividualOrganizationStartResult>;
|
|
51
70
|
importIpsOrFhirAndUpdateIndex?: (ctx: RouteContext, input: IpsOrFhirImportInput) => Promise<SubmitAndPollResult>;
|
|
52
71
|
upsertRelatedPersonAndPoll?: (ctx: RouteContext, input: RelatedPersonUpsertInput) => Promise<SubmitAndPollResult>;
|
|
53
72
|
generateDigitalTwinFromSubjectData?: (ctx: RouteContext, input: DigitalTwinGenerationInput) => Promise<SubmitAndPollResult>;
|
|
54
73
|
searchClinicalBundle?: (ctx: RouteContext, input: ClinicalBundleSearchInput) => Promise<SubmitAndPollResult>;
|
|
74
|
+
getLatestIps?: (ctx: RouteContext, input: Omit<ClinicalBundleSearchInput, 'includedTypes'>) => Promise<SubmitAndPollResult>;
|
|
55
75
|
submitBatch?: (submitPath: string, payload: SubmitPayload) => Promise<SubmitResponse>;
|
|
56
76
|
pollUntilComplete?: (pollPath: string, request: AsyncPollRequest, pollOptions?: PollOptions) => Promise<PollResult>;
|
|
57
77
|
submitAndPoll?: (submitPath: string, pollPath: string, payload: SubmitPayload, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
|
|
@@ -1,13 +1,25 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type { HostRouteContext, LegalOrganizationOrderInput } from '../host-onboarding.js';
|
|
3
|
-
|
|
1
|
+
import { type NodeRuntimeClient, type NodeOrganizationActivationInput, type PollOptions, type SubmitAndPollResult, type SubmitPayload } from './client-port.js';
|
|
2
|
+
import type { HostingControllerFacade, HostLifecycleInput, HostRouteContext, LegalOrganizationOrderInput } from '../host-onboarding.js';
|
|
3
|
+
import type { NodeCapability } from '../session.js';
|
|
4
|
+
export declare class HostOnboardingSdk implements HostingControllerFacade {
|
|
4
5
|
private readonly client;
|
|
5
|
-
|
|
6
|
+
private readonly capabilities;
|
|
7
|
+
constructor(client: NodeRuntimeClient, capabilities?: readonly NodeCapability[]);
|
|
6
8
|
/**
|
|
7
9
|
* Submits the legal organization activation proof and required declared
|
|
8
10
|
* service capabilities to GW CORE.
|
|
9
11
|
*/
|
|
10
12
|
activateOrganizationInGatewayFromIcaProof(hostCtx: HostRouteContext, input: NodeOrganizationActivationInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
11
13
|
confirmLegalOrganizationOrder(hostCtx: HostRouteContext, input: LegalOrganizationOrderInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
14
|
+
/**
|
|
15
|
+
* Disables the host registration after all hosted tenants have already been
|
|
16
|
+
* purged and the hosting operator should stop publishing discovery services.
|
|
17
|
+
*/
|
|
18
|
+
disableHost(hostCtx: HostRouteContext, input: HostLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
19
|
+
/**
|
|
20
|
+
* Purges the already-disabled host registration once no hosted tenants
|
|
21
|
+
* remain in the registry.
|
|
22
|
+
*/
|
|
23
|
+
purgeHost(hostCtx: HostRouteContext, input: HostLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
12
24
|
submitAndPoll(submitPath: string, pollPath: string, payload: SubmitPayload, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
13
25
|
}
|
|
@@ -1,20 +1,41 @@
|
|
|
1
1
|
// Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
|
|
2
2
|
// Always create JSDoc, do not use strings inline in keys nor values, use types instead, and reuse the data test examples.
|
|
3
3
|
import { requireClientMethod, submitAndPollWithClient, } from './client-port.js';
|
|
4
|
+
import { ActorCapabilities, ActorKinds } from 'gdc-common-utils-ts/constants/actor-session';
|
|
5
|
+
import { assertFacadeCapability } from './capability-guard.js';
|
|
4
6
|
export class HostOnboardingSdk {
|
|
5
|
-
constructor(client) {
|
|
7
|
+
constructor(client, capabilities = []) {
|
|
6
8
|
this.client = client;
|
|
9
|
+
this.capabilities = capabilities;
|
|
7
10
|
}
|
|
8
11
|
/**
|
|
9
12
|
* Submits the legal organization activation proof and required declared
|
|
10
13
|
* service capabilities to GW CORE.
|
|
11
14
|
*/
|
|
12
15
|
activateOrganizationInGatewayFromIcaProof(hostCtx, input, pollOptions) {
|
|
16
|
+
assertFacadeCapability(this.capabilities, ActorCapabilities.HostingActivateOrganization, ActorKinds.HostOnboarding, 'activateOrganizationInGatewayFromIcaProof');
|
|
13
17
|
return requireClientMethod(this.client, 'activateOrganizationInGatewayFromIcaProof')(hostCtx, input, pollOptions);
|
|
14
18
|
}
|
|
15
19
|
confirmLegalOrganizationOrder(hostCtx, input, pollOptions) {
|
|
20
|
+
assertFacadeCapability(this.capabilities, ActorCapabilities.HostingConfirmOrder, ActorKinds.HostOnboarding, 'confirmLegalOrganizationOrder');
|
|
16
21
|
return requireClientMethod(this.client, 'confirmLegalOrganizationOrder')(hostCtx, input, pollOptions);
|
|
17
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Disables the host registration after all hosted tenants have already been
|
|
25
|
+
* purged and the hosting operator should stop publishing discovery services.
|
|
26
|
+
*/
|
|
27
|
+
disableHost(hostCtx, input, pollOptions) {
|
|
28
|
+
assertFacadeCapability(this.capabilities, ActorCapabilities.HostingDisableHost, ActorKinds.HostOnboarding, 'disableHost');
|
|
29
|
+
return requireClientMethod(this.client, 'disableHost')(hostCtx, input, pollOptions);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Purges the already-disabled host registration once no hosted tenants
|
|
33
|
+
* remain in the registry.
|
|
34
|
+
*/
|
|
35
|
+
purgeHost(hostCtx, input, pollOptions) {
|
|
36
|
+
assertFacadeCapability(this.capabilities, ActorCapabilities.HostingPurgeHost, ActorKinds.HostOnboarding, 'purgeHost');
|
|
37
|
+
return requireClientMethod(this.client, 'purgeHost')(hostCtx, input, pollOptions);
|
|
38
|
+
}
|
|
18
39
|
submitAndPoll(submitPath, pollPath, payload, pollOptions) {
|
|
19
40
|
return submitAndPollWithClient(this.client, submitPath, pollPath, payload, pollOptions);
|
|
20
41
|
}
|
|
@@ -2,7 +2,7 @@ import { type NodeRuntimeClient, type PollOptions, type SubmitAndPollResult, typ
|
|
|
2
2
|
import type { IndividualOrganizationConfirmOrderInput, RouteContext } from '../individual-onboarding.js';
|
|
3
3
|
import type { IndividualOrganizationBootstrapInput, IndividualOrganizationStartResult } from '../individual-start.js';
|
|
4
4
|
import type { NodeCapability } from '../session.js';
|
|
5
|
-
import type { CommunicationIngestionInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IndividualOrganizationLifecycleInput, IpsOrFhirImportInput, RelatedPersonUpsertInput } from '../resource-operations.js';
|
|
5
|
+
import type { ClinicalBundleSearchInput, CommunicationIngestionInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IndividualOrganizationLifecycleInput, IpsOrFhirImportInput, LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput, RelatedPersonUpsertInput } from '../resource-operations.js';
|
|
6
6
|
import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
|
|
7
7
|
/**
|
|
8
8
|
* Individual-controller oriented facade over a `NodeRuntimeClient`.
|
|
@@ -75,6 +75,41 @@ export declare class IndividualControllerSdk {
|
|
|
75
75
|
* Generates a digital twin projection from subject data.
|
|
76
76
|
*/
|
|
77
77
|
generateDigitalTwinFromSubjectData(ctx: RouteContext, input: DigitalTwinGenerationInput): Promise<SubmitAndPollResult>;
|
|
78
|
+
/**
|
|
79
|
+
* Searches indexed clinical bundles for the current subject/controller context.
|
|
80
|
+
*/
|
|
81
|
+
searchClinicalBundle(ctx: RouteContext, input: ClinicalBundleSearchInput): Promise<SubmitAndPollResult>;
|
|
82
|
+
/**
|
|
83
|
+
* Returns the latest IPS-oriented bundle for one subject.
|
|
84
|
+
*/
|
|
85
|
+
getLatestIps(ctx: RouteContext, input: Omit<ClinicalBundleSearchInput, 'includedTypes'>): Promise<SubmitAndPollResult>;
|
|
86
|
+
/**
|
|
87
|
+
* Searches subject/individual-side license seats using semantic filters.
|
|
88
|
+
*/
|
|
89
|
+
searchLicenses(ctx: RouteContext, input: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
90
|
+
/**
|
|
91
|
+
* Lists subject/individual-side license seats with optional filters.
|
|
92
|
+
*/
|
|
93
|
+
listLicenses(ctx: RouteContext, input?: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Searches commercial license offers known for the individual/family
|
|
96
|
+
* context.
|
|
97
|
+
*/
|
|
98
|
+
searchLicenseOffers(ctx: RouteContext, input: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
99
|
+
/**
|
|
100
|
+
* Lists commercial license offers known for the individual/family context.
|
|
101
|
+
*/
|
|
102
|
+
listLicenseOffers(ctx: RouteContext, input?: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
103
|
+
/**
|
|
104
|
+
* Searches commercial license orders/payment projections for the
|
|
105
|
+
* individual/family context.
|
|
106
|
+
*/
|
|
107
|
+
searchLicenseOrders(ctx: RouteContext, input: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
108
|
+
/**
|
|
109
|
+
* Lists commercial license orders/payment projections for the
|
|
110
|
+
* individual/family context.
|
|
111
|
+
*/
|
|
112
|
+
listLicenseOrders(ctx: RouteContext, input?: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
78
113
|
/**
|
|
79
114
|
* Requests a SMART/OpenID token for subsequent data access flows.
|
|
80
115
|
*/
|
|
@@ -113,6 +113,57 @@ export class IndividualControllerSdk {
|
|
|
113
113
|
assertFacadeCapability(this.capabilities, ActorCapabilities.IndividualGenerateDigitalTwin, ActorKinds.IndividualController, 'generateDigitalTwinFromSubjectData');
|
|
114
114
|
return requireClientMethod(this.client, 'generateDigitalTwinFromSubjectData')(ctx, input);
|
|
115
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Searches indexed clinical bundles for the current subject/controller context.
|
|
118
|
+
*/
|
|
119
|
+
searchClinicalBundle(ctx, input) {
|
|
120
|
+
return requireClientMethod(this.client, 'searchClinicalBundle')(ctx, input);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Returns the latest IPS-oriented bundle for one subject.
|
|
124
|
+
*/
|
|
125
|
+
getLatestIps(ctx, input) {
|
|
126
|
+
return requireClientMethod(this.client, 'getLatestIps')(ctx, input);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Searches subject/individual-side license seats using semantic filters.
|
|
130
|
+
*/
|
|
131
|
+
searchLicenses(ctx, input) {
|
|
132
|
+
return requireClientMethod(this.client, 'searchIndividualLicenses')(ctx, input);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Lists subject/individual-side license seats with optional filters.
|
|
136
|
+
*/
|
|
137
|
+
listLicenses(ctx, input = {}) {
|
|
138
|
+
return requireClientMethod(this.client, 'listIndividualLicenses')(ctx, input);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Searches commercial license offers known for the individual/family
|
|
142
|
+
* context.
|
|
143
|
+
*/
|
|
144
|
+
searchLicenseOffers(ctx, input) {
|
|
145
|
+
return requireClientMethod(this.client, 'searchIndividualLicenseOffers')(ctx, input);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Lists commercial license offers known for the individual/family context.
|
|
149
|
+
*/
|
|
150
|
+
listLicenseOffers(ctx, input = {}) {
|
|
151
|
+
return requireClientMethod(this.client, 'listIndividualLicenseOffers')(ctx, input);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Searches commercial license orders/payment projections for the
|
|
155
|
+
* individual/family context.
|
|
156
|
+
*/
|
|
157
|
+
searchLicenseOrders(ctx, input) {
|
|
158
|
+
return requireClientMethod(this.client, 'searchIndividualLicenseOrders')(ctx, input);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Lists commercial license orders/payment projections for the
|
|
162
|
+
* individual/family context.
|
|
163
|
+
*/
|
|
164
|
+
listLicenseOrders(ctx, input = {}) {
|
|
165
|
+
return requireClientMethod(this.client, 'listIndividualLicenseOrders')(ctx, input);
|
|
166
|
+
}
|
|
116
167
|
/**
|
|
117
168
|
* Requests a SMART/OpenID token for subsequent data access flows.
|
|
118
169
|
*/
|