gdc-sdk-node-ts 2.1.4 → 2.3.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 +11 -5
- package/dist/backend-profile-runtime.d.ts +23 -0
- package/dist/backend-profile-runtime.js +23 -0
- package/dist/backend-profile-workspace.d.ts +48 -0
- package/dist/backend-profile-workspace.js +91 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/individual-controller-backend-runtime.d.ts +6 -1
- package/dist/individual-controller-backend-runtime.js +7 -0
- package/dist/node-runtime-client.d.ts +51 -4
- package/dist/node-runtime-client.js +148 -4
- package/dist/orchestration/client-port.d.ts +6 -1
- package/dist/orchestration/individual-controller-sdk.d.ts +46 -1
- package/dist/orchestration/individual-controller-sdk.js +59 -0
- package/dist/orchestration/individual-member-sdk.d.ts +35 -1
- package/dist/orchestration/individual-member-sdk.js +44 -0
- package/dist/orchestration/personal-sdk.d.ts +3 -1
- package/dist/orchestration/personal-sdk.js +4 -0
- package/dist/orchestration/professional-sdk.d.ts +11 -1
- package/dist/orchestration/professional-sdk.js +14 -0
- package/dist/professional-backend-runtime.d.ts +6 -1
- package/dist/professional-backend-runtime.js +7 -0
- package/dist/profile-workspace.d.ts +12 -0
- package/dist/profile-workspace.js +15 -0
- package/dist/resource-operations.d.ts +185 -4
- package/dist/resource-operations.js +267 -3
- package/dist/runtime-client-paths.d.ts +8 -2
- package/dist/runtime-client-paths.js +6 -0
- package/dist/runtime-route-context.js +18 -1
- package/dist/runtime-transport.d.ts +13 -1
- package/dist/runtime-transport.js +18 -3
- package/dist/server-profile-protection.d.ts +64 -0
- package/dist/server-profile-protection.js +110 -0
- package/dist/server-profile-session.d.ts +115 -0
- package/dist/server-profile-session.js +259 -0
- package/dist/session.d.ts +7 -0
- package/dist/session.js +10 -0
- package/package.json +3 -3
- package/dist/legal-organization-onboarding-facade.d.ts +0 -70
- package/dist/legal-organization-onboarding-facade.js +0 -169
- package/dist/lifecycle-examples.d.ts +0 -7
- package/dist/lifecycle-examples.js +0 -8
- package/dist/runtime-software-proof.d.ts +0 -51
- package/dist/runtime-software-proof.js +0 -34
- package/dist/simple-device-activation.d.ts +0 -44
- package/dist/simple-device-activation.js +0 -44
- package/dist/simple-host-onboarding.d.ts +0 -27
- package/dist/simple-host-onboarding.js +0 -39
- package/dist/simple-individual-onboarding.d.ts +0 -27
- package/dist/simple-individual-onboarding.js +0 -38
- package/dist/simple-individual-start.d.ts +0 -45
- package/dist/simple-individual-start.js +0 -59
- package/dist/simple-poll-options.d.ts +0 -5
- package/dist/simple-poll-options.js +0 -17
- package/dist/simple-smart-token.d.ts +0 -58
- package/dist/simple-smart-token.js +0 -85
package/README.md
CHANGED
|
@@ -7,7 +7,10 @@ execution adapters, or orchestration tests.
|
|
|
7
7
|
Short rule:
|
|
8
8
|
|
|
9
9
|
- `101` tests must read like executable tutorials
|
|
10
|
-
-
|
|
10
|
+
- `gdc-common-utils-ts` owns the canonical step-by-step editors/readers,
|
|
11
|
+
shared fixtures, and reusable payload examples
|
|
12
|
+
- `gdc-sdk-node-ts` starts after that shared authoring step and at
|
|
13
|
+
`ProfileRuntime -> loadProfile(...) -> workspace/session -> actor facade`
|
|
11
14
|
in node runtime tests
|
|
12
15
|
|
|
13
16
|
Node runtime package for consuming the shared GDC SDK contracts against real
|
|
@@ -69,7 +72,8 @@ If you are integrating this package for the first time, open these in order:
|
|
|
69
72
|
2. [docs/101-SDK_INTEGRATION.md](./docs/101-SDK_INTEGRATION.md)
|
|
70
73
|
Real backend setup plus the public runtime entrypoints:
|
|
71
74
|
`HostOnboardingSdk`, `OrganizationControllerSdk`,
|
|
72
|
-
`IndividualControllerSdk`, `ProfessionalSdk`,
|
|
75
|
+
`IndividualControllerSdk`, `ProfessionalSdk`, route-context usage, and the
|
|
76
|
+
canonical `ProfileRuntime -> loadProfile(...) -> workspace/session -> actor facade -> submit/poll` shape.
|
|
73
77
|
3. [tests/101-live-full-cycle-bff-runtime.e2e.test.mjs](./tests/101-live-full-cycle-bff-runtime.e2e.test.mjs)
|
|
74
78
|
Canonical live backend/BFF walkthrough on a fresh local GW lifecycle:
|
|
75
79
|
host/tenant activation, employee provisioning, individual bootstrap,
|
|
@@ -194,7 +198,8 @@ Current live `101` flow covered by the test suite:
|
|
|
194
198
|
2. provision one professional employee through the organization controller
|
|
195
199
|
3. load the individual-controller profile and bootstrap one hosted individual
|
|
196
200
|
4. confirm the returned order and verify the invoice bundle projection
|
|
197
|
-
5. ingest one IPS/clinical `Communication`
|
|
201
|
+
5. ingest one IPS/clinical `Communication` whose attached payload is the
|
|
202
|
+
canonical document `Bundle` with `Composition` first entry
|
|
198
203
|
6. grant professional consent for one patient-summary section
|
|
199
204
|
7. load the professional profile and request one SMART token
|
|
200
205
|
8. read the allowed IPS bundle as the professional actor
|
|
@@ -293,8 +298,9 @@ npm run test:e2e:live-gw
|
|
|
293
298
|
|
|
294
299
|
Implementation note:
|
|
295
300
|
|
|
296
|
-
- the
|
|
297
|
-
|
|
301
|
+
- the beginner search story stays on FHIR parameters such as
|
|
302
|
+
`Composition.section`
|
|
303
|
+
- `gdc-sdk-node-ts` submits the search request through the runtime facade
|
|
298
304
|
- GW CORE resolves it internally from indexed subject sections and returns the
|
|
299
305
|
consolidated IPS bundle document
|
|
300
306
|
|
|
@@ -2,6 +2,8 @@ import type { ActorProfileDescriptor, IJobManager, ActorKind, LoadedActorProfile
|
|
|
2
2
|
import type { ActorSession } from './session.js';
|
|
3
3
|
import type { RuntimeClient } from './orchestration/client-port.js';
|
|
4
4
|
import { IndividualControllerSdk } from './orchestration/individual-controller-sdk.js';
|
|
5
|
+
import { IndividualMemberSdk } from './orchestration/individual-member-sdk.js';
|
|
6
|
+
import { PersonalSdk } from './orchestration/personal-sdk.js';
|
|
5
7
|
import { OrganizationControllerSdk } from './orchestration/organization-controller-sdk.js';
|
|
6
8
|
import { ProfessionalSdk } from './orchestration/professional-sdk.js';
|
|
7
9
|
import type { RouteContext } from './individual-onboarding.js';
|
|
@@ -51,6 +53,16 @@ export type BackendIndividualControllerProfile = {
|
|
|
51
53
|
session: ActorSession;
|
|
52
54
|
sdk: IndividualControllerSdk;
|
|
53
55
|
};
|
|
56
|
+
export type BackendPersonalProfile = {
|
|
57
|
+
profile: BackendLoadedActorProfile;
|
|
58
|
+
session: ActorSession;
|
|
59
|
+
sdk: PersonalSdk;
|
|
60
|
+
};
|
|
61
|
+
export type BackendIndividualMemberProfile = {
|
|
62
|
+
profile: BackendLoadedActorProfile;
|
|
63
|
+
session: ActorSession;
|
|
64
|
+
sdk: IndividualMemberSdk;
|
|
65
|
+
};
|
|
54
66
|
export type BackendOrganizationControllerProfile = {
|
|
55
67
|
profile: BackendLoadedActorProfile;
|
|
56
68
|
session: ActorSession;
|
|
@@ -224,6 +236,10 @@ export declare function requireBackendIndividualControllerSession(profile: Backe
|
|
|
224
236
|
* backend profile.
|
|
225
237
|
*/
|
|
226
238
|
export declare function requireBackendIndividualControllerSdk(profile: BackendLoadedActorProfile): IndividualControllerSdk;
|
|
239
|
+
/** Returns the individual-member session from one loaded backend profile. */
|
|
240
|
+
export declare function requireBackendIndividualMemberSession(profile: BackendLoadedActorProfile): ActorSession;
|
|
241
|
+
/** Materializes the individual-member facade from one loaded backend profile. */
|
|
242
|
+
export declare function requireBackendIndividualMemberSdk(profile: BackendLoadedActorProfile): IndividualMemberSdk;
|
|
227
243
|
/**
|
|
228
244
|
* Returns the organization-controller session from one loaded backend profile.
|
|
229
245
|
*/
|
|
@@ -251,6 +267,13 @@ export declare function requireBackendProfessionalSdk(profile: BackendLoadedActo
|
|
|
251
267
|
* from the individual-controller flow.
|
|
252
268
|
*/
|
|
253
269
|
export declare function loadBackendIndividualControllerProfile(client: BackendProfileRuntimeClient, input: ProfileLoadRequest): Promise<BackendIndividualControllerProfile>;
|
|
270
|
+
/**
|
|
271
|
+
* Loads a self-managed individual profile. The canonical actor kind remains
|
|
272
|
+
* individual-controller, while PersonalSdk presents the reduced self surface.
|
|
273
|
+
*/
|
|
274
|
+
export declare function loadBackendPersonalProfile(client: BackendProfileRuntimeClient, input: ProfileLoadRequest): Promise<BackendPersonalProfile>;
|
|
275
|
+
/** Loads an accepted individual-member/RelatedPerson backend profile. */
|
|
276
|
+
export declare function loadBackendIndividualMemberProfile(client: BackendProfileRuntimeClient, input: ProfileLoadRequest): Promise<BackendIndividualMemberProfile>;
|
|
254
277
|
/**
|
|
255
278
|
* Loads one backend profile and resolves the organization-controller session in
|
|
256
279
|
* one step.
|
|
@@ -421,6 +421,14 @@ export function requireBackendIndividualControllerSession(profile) {
|
|
|
421
421
|
export function requireBackendIndividualControllerSdk(profile) {
|
|
422
422
|
return requireBackendIndividualControllerSession(profile).asIndividualController();
|
|
423
423
|
}
|
|
424
|
+
/** Returns the individual-member session from one loaded backend profile. */
|
|
425
|
+
export function requireBackendIndividualMemberSession(profile) {
|
|
426
|
+
return requireBackendActorSession(profile, ActorKinds.IndividualMember);
|
|
427
|
+
}
|
|
428
|
+
/** Materializes the individual-member facade from one loaded backend profile. */
|
|
429
|
+
export function requireBackendIndividualMemberSdk(profile) {
|
|
430
|
+
return requireBackendIndividualMemberSession(profile).asIndividualMember();
|
|
431
|
+
}
|
|
424
432
|
/**
|
|
425
433
|
* Returns the organization-controller session from one loaded backend profile.
|
|
426
434
|
*/
|
|
@@ -464,6 +472,21 @@ export async function loadBackendIndividualControllerProfile(client, input) {
|
|
|
464
472
|
sdk: session.asIndividualController(),
|
|
465
473
|
};
|
|
466
474
|
}
|
|
475
|
+
/**
|
|
476
|
+
* Loads a self-managed individual profile. The canonical actor kind remains
|
|
477
|
+
* individual-controller, while PersonalSdk presents the reduced self surface.
|
|
478
|
+
*/
|
|
479
|
+
export async function loadBackendPersonalProfile(client, input) {
|
|
480
|
+
const profile = await loadBackendProfile(client, input);
|
|
481
|
+
const session = requireBackendIndividualControllerSession(profile);
|
|
482
|
+
return { profile, session, sdk: session.asPersonal() };
|
|
483
|
+
}
|
|
484
|
+
/** Loads an accepted individual-member/RelatedPerson backend profile. */
|
|
485
|
+
export async function loadBackendIndividualMemberProfile(client, input) {
|
|
486
|
+
const profile = await loadBackendProfile(client, input);
|
|
487
|
+
const session = requireBackendIndividualMemberSession(profile);
|
|
488
|
+
return { profile, session, sdk: session.asIndividualMember() };
|
|
489
|
+
}
|
|
467
490
|
/**
|
|
468
491
|
* Loads one backend profile and resolves the organization-controller session in
|
|
469
492
|
* one step.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ProfileLoadRequest, SubjectIndexCompositionRequest, SubjectIndexConnectionRequest, TrustedDeviceRegistrationRequest } from 'gdc-sdk-core-ts';
|
|
2
|
+
import type { BackendLoadedActorProfile, BackendProfileRuntimeClient, BackendSubjectIndexCompositionResult, BackendSubjectIndexConnectionResult, BackendTrustedDeviceRegistrationResult } from './backend-profile-runtime.js';
|
|
3
|
+
import { type OrganizationControllerProfileWorkspace, type ProfessionalProfileWorkspace } from './profile-workspace.js';
|
|
4
|
+
import { HostOnboardingSdk } from './orchestration/host-onboarding-sdk.js';
|
|
5
|
+
import { IndividualControllerSdk } from './orchestration/individual-controller-sdk.js';
|
|
6
|
+
import { IndividualMemberSdk } from './orchestration/individual-member-sdk.js';
|
|
7
|
+
import { OrganizationControllerSdk } from './orchestration/organization-controller-sdk.js';
|
|
8
|
+
import { OrganizationEmployeeSdk } from './orchestration/organization-employee-sdk.js';
|
|
9
|
+
import { ProfessionalSdk } from './orchestration/professional-sdk.js';
|
|
10
|
+
/**
|
|
11
|
+
* Backend loaded-profile workspace that keeps the canonical
|
|
12
|
+
* `loadProfile -> workspace/session -> actor facade` story explicit.
|
|
13
|
+
*/
|
|
14
|
+
export declare class LoadedProfileWorkspace {
|
|
15
|
+
private readonly profileRuntime;
|
|
16
|
+
readonly profile: BackendLoadedActorProfile;
|
|
17
|
+
constructor(profileRuntime: BackendProfileRuntimeClient, profile: BackendLoadedActorProfile);
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
registerTrustedDevice(input: TrustedDeviceRegistrationRequest): Promise<BackendTrustedDeviceRegistrationResult>;
|
|
20
|
+
connectToSubjectIndex(input: SubjectIndexConnectionRequest): Promise<BackendSubjectIndexConnectionResult>;
|
|
21
|
+
getSubjectIndexComposition(input: SubjectIndexCompositionRequest): Promise<BackendSubjectIndexCompositionResult>;
|
|
22
|
+
asHostOnboarding(): HostOnboardingSdk;
|
|
23
|
+
asOrganizationController(): OrganizationControllerSdk;
|
|
24
|
+
asOrganizationEmployee(): OrganizationEmployeeSdk;
|
|
25
|
+
asIndividualController(): IndividualControllerSdk;
|
|
26
|
+
asIndividualMember(): IndividualMemberSdk;
|
|
27
|
+
asProfessional(): ProfessionalSdk;
|
|
28
|
+
createOrganizationControllerWorkspace(): OrganizationControllerProfileWorkspace;
|
|
29
|
+
createProfessionalWorkspace(): ProfessionalProfileWorkspace;
|
|
30
|
+
}
|
|
31
|
+
export declare class ProfileRuntime {
|
|
32
|
+
private readonly profileRuntime;
|
|
33
|
+
constructor(profileRuntime: BackendProfileRuntimeClient);
|
|
34
|
+
loadProfile(input: ProfileLoadRequest): Promise<LoadedProfileWorkspace>;
|
|
35
|
+
}
|
|
36
|
+
export declare function createLoadedProfileWorkspace(profileRuntime: BackendProfileRuntimeClient, profile: BackendLoadedActorProfile): LoadedProfileWorkspace;
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated Prefer `LoadedProfileWorkspace`.
|
|
39
|
+
*/
|
|
40
|
+
export { LoadedProfileWorkspace as BackendProfileWorkspace };
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated Prefer `ProfileRuntime`.
|
|
43
|
+
*/
|
|
44
|
+
export { ProfileRuntime as BackendProfileWorkspaceRuntime };
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated Prefer `createLoadedProfileWorkspace`.
|
|
47
|
+
*/
|
|
48
|
+
export { createLoadedProfileWorkspace as createBackendProfileWorkspace };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
|
|
2
|
+
import { ActorKinds } from 'gdc-common-utils-ts/constants/actor-session';
|
|
3
|
+
import { closeBackendProfile, connectBackendToSubjectIndex, getBackendSubjectIndexComposition, registerBackendTrustedDevice, } from './backend-profile-runtime.js';
|
|
4
|
+
import { createOrganizationControllerProfileWorkspace, createProfessionalProfileWorkspace, } from './profile-workspace.js';
|
|
5
|
+
function requireActorSession(profile, actorKind) {
|
|
6
|
+
const session = profile.actorSessions.find((candidate) => candidate.actorKind === actorKind);
|
|
7
|
+
if (!session) {
|
|
8
|
+
throw new Error(`Loaded backend profile does not expose actor kind '${actorKind}'.`);
|
|
9
|
+
}
|
|
10
|
+
return session;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Backend loaded-profile workspace that keeps the canonical
|
|
14
|
+
* `loadProfile -> workspace/session -> actor facade` story explicit.
|
|
15
|
+
*/
|
|
16
|
+
export class LoadedProfileWorkspace {
|
|
17
|
+
constructor(profileRuntime, profile) {
|
|
18
|
+
this.profileRuntime = profileRuntime;
|
|
19
|
+
this.profile = profile;
|
|
20
|
+
}
|
|
21
|
+
close() {
|
|
22
|
+
return closeBackendProfile(this.profileRuntime, String(this.profile.descriptor.profileDid || this.profile.descriptor.profileId));
|
|
23
|
+
}
|
|
24
|
+
registerTrustedDevice(input) {
|
|
25
|
+
return registerBackendTrustedDevice(this.profileRuntime, input);
|
|
26
|
+
}
|
|
27
|
+
connectToSubjectIndex(input) {
|
|
28
|
+
return connectBackendToSubjectIndex(this.profileRuntime, input);
|
|
29
|
+
}
|
|
30
|
+
getSubjectIndexComposition(input) {
|
|
31
|
+
return getBackendSubjectIndexComposition(this.profileRuntime, input);
|
|
32
|
+
}
|
|
33
|
+
asHostOnboarding() {
|
|
34
|
+
return requireActorSession(this.profile, ActorKinds.HostOnboarding).asHostOnboarding();
|
|
35
|
+
}
|
|
36
|
+
asOrganizationController() {
|
|
37
|
+
return requireActorSession(this.profile, ActorKinds.OrganizationController).asOrganizationController();
|
|
38
|
+
}
|
|
39
|
+
asOrganizationEmployee() {
|
|
40
|
+
return requireActorSession(this.profile, ActorKinds.OrganizationEmployee).asOrganizationEmployee();
|
|
41
|
+
}
|
|
42
|
+
asIndividualController() {
|
|
43
|
+
return requireActorSession(this.profile, ActorKinds.IndividualController).asIndividualController();
|
|
44
|
+
}
|
|
45
|
+
asIndividualMember() {
|
|
46
|
+
return requireActorSession(this.profile, ActorKinds.IndividualMember).asIndividualMember();
|
|
47
|
+
}
|
|
48
|
+
asProfessional() {
|
|
49
|
+
return requireActorSession(this.profile, ActorKinds.Professional).asProfessional();
|
|
50
|
+
}
|
|
51
|
+
createOrganizationControllerWorkspace() {
|
|
52
|
+
const session = requireActorSession(this.profile, ActorKinds.OrganizationController);
|
|
53
|
+
return createOrganizationControllerProfileWorkspace({
|
|
54
|
+
profile: this.profile,
|
|
55
|
+
session,
|
|
56
|
+
sdk: this.asOrganizationController(),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
createProfessionalWorkspace() {
|
|
60
|
+
const session = requireActorSession(this.profile, ActorKinds.Professional);
|
|
61
|
+
return createProfessionalProfileWorkspace({
|
|
62
|
+
profile: this.profile,
|
|
63
|
+
session,
|
|
64
|
+
sdk: this.asProfessional(),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export class ProfileRuntime {
|
|
69
|
+
constructor(profileRuntime) {
|
|
70
|
+
this.profileRuntime = profileRuntime;
|
|
71
|
+
}
|
|
72
|
+
async loadProfile(input) {
|
|
73
|
+
const profile = await this.profileRuntime.loadProfile(input);
|
|
74
|
+
return new LoadedProfileWorkspace(this.profileRuntime, profile);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export function createLoadedProfileWorkspace(profileRuntime, profile) {
|
|
78
|
+
return new LoadedProfileWorkspace(profileRuntime, profile);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @deprecated Prefer `LoadedProfileWorkspace`.
|
|
82
|
+
*/
|
|
83
|
+
export { LoadedProfileWorkspace as BackendProfileWorkspace };
|
|
84
|
+
/**
|
|
85
|
+
* @deprecated Prefer `ProfileRuntime`.
|
|
86
|
+
*/
|
|
87
|
+
export { ProfileRuntime as BackendProfileWorkspaceRuntime };
|
|
88
|
+
/**
|
|
89
|
+
* @deprecated Prefer `createLoadedProfileWorkspace`.
|
|
90
|
+
*/
|
|
91
|
+
export { createLoadedProfileWorkspace as createBackendProfileWorkspace };
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export * from './runtime-contracts.js';
|
|
|
3
3
|
export * from './identity-bootstrap.js';
|
|
4
4
|
export * from './async-polling.js';
|
|
5
5
|
export * from './backend-profile-runtime.js';
|
|
6
|
+
export * from './server-profile-session.js';
|
|
7
|
+
export * from './server-profile-protection.js';
|
|
8
|
+
export * from './backend-profile-workspace.js';
|
|
6
9
|
export * from './individual-controller-backend-runtime.js';
|
|
7
10
|
export * from './organization-controller-backend-runtime.js';
|
|
8
11
|
export * from './professional-backend-runtime.js';
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,9 @@ export * from './runtime-contracts.js';
|
|
|
4
4
|
export * from './identity-bootstrap.js';
|
|
5
5
|
export * from './async-polling.js';
|
|
6
6
|
export * from './backend-profile-runtime.js';
|
|
7
|
+
export * from './server-profile-session.js';
|
|
8
|
+
export * from './server-profile-protection.js';
|
|
9
|
+
export * from './backend-profile-workspace.js';
|
|
7
10
|
export * from './individual-controller-backend-runtime.js';
|
|
8
11
|
export * from './organization-controller-backend-runtime.js';
|
|
9
12
|
export * from './professional-backend-runtime.js';
|
|
@@ -4,7 +4,7 @@ import type { IndividualOrganizationConfirmOrderInput, RouteContext } from './in
|
|
|
4
4
|
import type { IndividualOrganizationBootstrapInput, IndividualOrganizationStartResult } from './individual-start.js';
|
|
5
5
|
import type { EnsureFamilyOrganizationRegistrationInput, EnsureFamilyOrganizationRegistrationResult } from './family-organization-registration.js';
|
|
6
6
|
import type { FamilyOrganizationSearchInput } from './family-organization-search.js';
|
|
7
|
-
import type { ClinicalBundleSearchInput } from './resource-operations.js';
|
|
7
|
+
import type { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput } from './resource-operations.js';
|
|
8
8
|
import { type BackendIndividualControllerProfile, type BackendProfileRuntimeClient } from './backend-profile-runtime.js';
|
|
9
9
|
import type { ProfileLoadRequest } from 'gdc-sdk-core-ts';
|
|
10
10
|
/**
|
|
@@ -56,4 +56,9 @@ export declare class IndividualControllerBackendRuntime {
|
|
|
56
56
|
* individual-controller facade.
|
|
57
57
|
*/
|
|
58
58
|
getLatestIps(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: Omit<ClinicalBundleSearchInput, 'includedTypes'>): Promise<SubmitAndPollResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Registers one FHIR resource or raw artifact on blockchain before it is
|
|
61
|
+
* attached to a subject communication.
|
|
62
|
+
*/
|
|
63
|
+
registerBlockchainArtifactAndUpdateIndex(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: BlockchainArtifactRegistrationInput): Promise<SubmitAndPollResult>;
|
|
59
64
|
}
|
|
@@ -64,4 +64,11 @@ export class IndividualControllerBackendRuntime {
|
|
|
64
64
|
getLatestIps(profile, ctx, input) {
|
|
65
65
|
return profile.sdk.getLatestIps(ctx, input);
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Registers one FHIR resource or raw artifact on blockchain before it is
|
|
69
|
+
* attached to a subject communication.
|
|
70
|
+
*/
|
|
71
|
+
registerBlockchainArtifactAndUpdateIndex(profile, ctx, input) {
|
|
72
|
+
return profile.sdk.registerBlockchainArtifactAndUpdateIndex(ctx, input);
|
|
73
|
+
}
|
|
67
74
|
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import type { OrganizationDidBindingInput } from 'gdc-sdk-core-ts';
|
|
2
2
|
import type { AppInfo } from 'gdc-sdk-core-ts';
|
|
3
3
|
import type { IndividualOrganizationLifecycleInput } from 'gdc-sdk-core-ts';
|
|
4
|
-
import { type ResolvedAppInfo } from 'gdc-sdk-core-ts';
|
|
4
|
+
import { type ResolvedAppInfo, type CommunicationClinicalFormatRenderers, type SecureDidcommTransportAdapter, type TransportProfile } from 'gdc-sdk-core-ts';
|
|
5
5
|
import { type HostRouteContext, type HostedTenantLifecycleInput } from './host-onboarding.js';
|
|
6
6
|
import type { NodeLegalOrganizationVerificationTransactionInput, NodeOrganizationDidBindingInput, NodeOrganizationActivationInput } from './orchestration/client-port.js';
|
|
7
7
|
import { type IndividualOrganizationConfirmOrderInput, type RouteContext } from './individual-onboarding.js';
|
|
8
8
|
import { type EnsureFamilyOrganizationRegistrationInput } from './family-organization-registration.js';
|
|
9
9
|
import { type FamilyOrganizationSearchInput } from './family-organization-search.js';
|
|
10
10
|
import { type SmartTokenRequestInput } from './smart-token.js';
|
|
11
|
+
import { type EmployeeDeviceActivationRequestInput, type EmployeeDeviceActivationResult } from './device-activation.js';
|
|
11
12
|
import { type OrganizationLicenseOrderConfirmInput } from './organization-license-order.js';
|
|
12
13
|
import { type IndividualOrganizationBootstrapInput, type IndividualOrganizationStartResult } from './individual-start.js';
|
|
13
|
-
import { type CommunicationIngestionInput, type CommunicationParticipantRuntimeSearchInput, type ClinicalBundleSearchInput, type GrantProfessionalAccessInput, type GrantProfessionalAccessResult, type IndividualMemberLifecycleInput, type LicenseListRuntimeSearchInput, type LicenseOfferRuntimeSearchInput, type LicenseOrderRuntimeSearchInput, type OrganizationEmployeeCreationInput, type OrganizationEmployeeLifecycleInput, type OrganizationEmployeeSearchInput, type RevokeProfessionalAccessInput, type RevokeProfessionalAccessResult, type RelatedPersonUpsertInput } from './resource-operations.js';
|
|
14
|
+
import { type CommunicationIngestionInput, type BlockchainArtifactRegistrationInput, type VitalSignBatchCommunicationFromSearchResponseInput, type CommunicationParticipantRuntimeSearchInput, type ClinicalBundleSearchInput, type GrantProfessionalAccessInput, type GrantProfessionalAccessResult, type IndividualMemberLifecycleInput, type IndividualMemberLicenseAddInput, type IndividualMemberLicenseInvitationInput, type IndividualMemberLicenseTransitionInput, type LicenseListRuntimeSearchInput, type LicenseOfferRuntimeSearchInput, type LicenseOrderRuntimeSearchInput, type OrganizationEmployeeCreationInput, type OrganizationEmployeeLifecycleInput, type OrganizationEmployeeSearchInput, type RevokeProfessionalAccessInput, type RevokeProfessionalAccessResult, type RelatedPersonUpsertInput } from './resource-operations.js';
|
|
14
15
|
import type { LegalOrganizationOrderInput } from './host-onboarding.js';
|
|
15
16
|
import type { SmartTokenExchangeResult } from './smart-token.js';
|
|
16
17
|
import type { NodeRuntimeClient, PollOptions, PollResult, SubmitAndPollResult, SubmitPayload, SubmitResponse } from './orchestration/client-port.js';
|
|
@@ -48,6 +49,14 @@ export type HttpRuntimeClientOptions = {
|
|
|
48
49
|
ctx?: RouteContext;
|
|
49
50
|
defaultHeaders?: Record<string, string>;
|
|
50
51
|
requestTimeoutMs?: number;
|
|
52
|
+
/** Default wire profile for high-level clinical outbox submissions. */
|
|
53
|
+
transportProfile?: TransportProfile;
|
|
54
|
+
/** Wallet-backed pack/unpack adapter required by the secure-form profile. */
|
|
55
|
+
secureTransportAdapter?: SecureDidcommTransportAdapter;
|
|
56
|
+
/** Product-supplied clinical projections not owned by the generic runtime. */
|
|
57
|
+
communicationFormatRenderers?: CommunicationClinicalFormatRenderers;
|
|
58
|
+
/** Injectable fetch implementation for BFF adapters and deterministic tests. */
|
|
59
|
+
fetchImpl?: typeof fetch;
|
|
51
60
|
};
|
|
52
61
|
/**
|
|
53
62
|
* @deprecated Prefer `HttpRuntimeClientOptions`.
|
|
@@ -69,6 +78,10 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
69
78
|
private readonly ctx?;
|
|
70
79
|
private readonly defaultHeaders;
|
|
71
80
|
private readonly requestTimeoutMs;
|
|
81
|
+
private readonly transportProfile;
|
|
82
|
+
private readonly secureTransportAdapter?;
|
|
83
|
+
private readonly communicationFormatRenderers;
|
|
84
|
+
private readonly fetchImpl?;
|
|
72
85
|
private readonly httpTraceFile?;
|
|
73
86
|
private readonly tokenCache;
|
|
74
87
|
private readonly paths;
|
|
@@ -115,6 +128,7 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
115
128
|
* Convenience wrapper that performs submit and poll in sequence.
|
|
116
129
|
*/
|
|
117
130
|
submitAndPoll(submitPath: string, pollPath: string, payload: SubmitPayload, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
|
|
131
|
+
private submitAndPollWithBearerToken;
|
|
118
132
|
/**
|
|
119
133
|
* Starts the host-side legal-organization verification transaction that GW
|
|
120
134
|
* CORE forwards to ICA `_verify`.
|
|
@@ -336,6 +350,12 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
336
350
|
* with optional filters.
|
|
337
351
|
*/
|
|
338
352
|
listIndividualLicenses(ctx: RouteContext, input?: LicenseListRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
353
|
+
/** Adds zero-cost seats to one individual organization's member pool. */
|
|
354
|
+
addFreeIndividualMemberLicenses(ctx: RouteContext, input: IndividualMemberLicenseAddInput): Promise<SubmitAndPollResult>;
|
|
355
|
+
/** Reserves one individual seat for an existing FHIR v3-role contact. */
|
|
356
|
+
issueIndividualMemberLicense(ctx: RouteContext, input: IndividualMemberLicenseInvitationInput): Promise<SubmitAndPollResult>;
|
|
357
|
+
/** Accepts, deactivates or releases one individual-member seat. */
|
|
358
|
+
transitionIndividualMemberLicense(ctx: RouteContext, action: '_accept' | '_deactivate' | '_release', input: IndividualMemberLicenseTransitionInput): Promise<SubmitAndPollResult>;
|
|
339
359
|
searchIndividualLicenseOffers(ctx: RouteContext, input: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
340
360
|
listIndividualLicenseOffers(ctx: RouteContext, input?: LicenseOfferRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
341
361
|
searchIndividualLicenseOrders(ctx: RouteContext, input: LicenseOrderRuntimeSearchInput): Promise<SubmitAndPollResult>;
|
|
@@ -363,6 +383,12 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
363
383
|
* the default client route context configured in the constructor.
|
|
364
384
|
*/
|
|
365
385
|
requestSmartToken(input: SmartTokenRequestInput): Promise<SmartTokenExchangeResult>;
|
|
386
|
+
/**
|
|
387
|
+
* Registers any actor profile device through activation-code exchange plus
|
|
388
|
+
* GW DCR. The historical helper name says employee, but the transport is
|
|
389
|
+
* actor-neutral and is used by portal and telephone profile runtimes.
|
|
390
|
+
*/
|
|
391
|
+
activateProfileDeviceWithActivationRequest(input: EmployeeDeviceActivationRequestInput): Promise<EmployeeDeviceActivationResult>;
|
|
366
392
|
/**
|
|
367
393
|
* Creates or updates a `RelatedPerson` for non-employee family/caregiver
|
|
368
394
|
* roles such as a grandfather, guardian, or external caregiver.
|
|
@@ -376,6 +402,23 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
376
402
|
* @param input Communication payload plus route/format options.
|
|
377
403
|
*/
|
|
378
404
|
ingestCommunicationAndUpdateIndex(ctx: RouteContext, input: CommunicationIngestionInput): Promise<SubmitAndPollResult>;
|
|
405
|
+
/**
|
|
406
|
+
* Renders and submits one canonical clinical outbox job without requiring
|
|
407
|
+
* BFF, portal or assistant consumers to know GW wire envelopes.
|
|
408
|
+
*/
|
|
409
|
+
private submitCommunicationOutboxJobAndPoll;
|
|
410
|
+
/** Applies the configured wire profile to subject-scoped clinical searches. */
|
|
411
|
+
private submitClinicalMessageAndPoll;
|
|
412
|
+
/**
|
|
413
|
+
* Registers one FHIR resource or raw artifact on blockchain and waits until
|
|
414
|
+
* GW has indexed the resulting DocumentReference projection.
|
|
415
|
+
*/
|
|
416
|
+
registerBlockchainArtifactAndUpdateIndex(ctx: RouteContext, input: BlockchainArtifactRegistrationInput): Promise<SubmitAndPollResult>;
|
|
417
|
+
/**
|
|
418
|
+
* Builds and submits a Communication carrying the selected vital-sign day
|
|
419
|
+
* batch artifacts from a paginated search response.
|
|
420
|
+
*/
|
|
421
|
+
submitVitalSignBatchCommunicationFromSearchResponse(ctx: RouteContext, input: VitalSignBatchCommunicationFromSearchResponseInput): Promise<SubmitAndPollResult>;
|
|
379
422
|
/**
|
|
380
423
|
* Searches communication channel records by subject and participant
|
|
381
424
|
* identifiers through `Communication/_search`.
|
|
@@ -467,6 +510,8 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
467
510
|
individualFamilyOrganizationPurgePollPath(ctx?: RouteContext): string;
|
|
468
511
|
individualLicenseSearchPath(ctx?: RouteContext): string;
|
|
469
512
|
individualLicenseSearchPollPath(ctx?: RouteContext): string;
|
|
513
|
+
individualLicenseActionPath(ctx: RouteContext | undefined, action: string): string;
|
|
514
|
+
individualLicenseActionPollPath(ctx: RouteContext | undefined, action: string): string;
|
|
470
515
|
individualLicenseOfferSearchPath(ctx?: RouteContext): string;
|
|
471
516
|
individualLicenseOfferSearchPollPath(ctx?: RouteContext): string;
|
|
472
517
|
individualLicenseOrderSearchPath(ctx?: RouteContext): string;
|
|
@@ -479,10 +524,12 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
|
|
|
479
524
|
individualRelatedPersonPurgePollPath(ctx?: RouteContext): string;
|
|
480
525
|
individualConsentR4BatchPath(ctx: RouteContext): string;
|
|
481
526
|
individualConsentR4PollPath(ctx: RouteContext): string;
|
|
482
|
-
individualCommunicationBatchPath(ctx: RouteContext, format:
|
|
483
|
-
individualCommunicationPollPath(ctx: RouteContext, format:
|
|
527
|
+
individualCommunicationBatchPath(ctx: RouteContext, format: string): string;
|
|
528
|
+
individualCommunicationPollPath(ctx: RouteContext, format: string): string;
|
|
484
529
|
individualCommunicationSearchPath(ctx: RouteContext): string;
|
|
485
530
|
individualCommunicationSearchPollPath(ctx: RouteContext): string;
|
|
531
|
+
individualDocumentReferenceBatchPath(ctx: RouteContext): string;
|
|
532
|
+
individualDocumentReferencePollPath(ctx: RouteContext): string;
|
|
486
533
|
individualBundleSearchPath(ctx: RouteContext): string;
|
|
487
534
|
individualBundleSearchPollPath(ctx: RouteContext): string;
|
|
488
535
|
identityTokenExchangePath(ctx: RouteContext): string;
|