gdc-sdk-node-ts 2.1.1 → 2.2.2

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.
Files changed (43) hide show
  1. package/README.md +11 -5
  2. package/dist/backend-profile-workspace.d.ts +48 -0
  3. package/dist/backend-profile-workspace.js +91 -0
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +1 -0
  6. package/dist/individual-controller-backend-runtime.d.ts +6 -1
  7. package/dist/individual-controller-backend-runtime.js +7 -0
  8. package/dist/node-runtime-client.d.ts +18 -27
  9. package/dist/node-runtime-client.js +230 -461
  10. package/dist/orchestration/client-port.d.ts +4 -2
  11. package/dist/orchestration/individual-controller-sdk.d.ts +42 -9
  12. package/dist/orchestration/individual-controller-sdk.js +48 -8
  13. package/dist/orchestration/individual-member-sdk.d.ts +25 -0
  14. package/dist/orchestration/individual-member-sdk.js +29 -0
  15. package/dist/orchestration/personal-sdk.d.ts +3 -1
  16. package/dist/orchestration/personal-sdk.js +4 -0
  17. package/dist/orchestration/professional-sdk.d.ts +36 -1
  18. package/dist/orchestration/professional-sdk.js +43 -0
  19. package/dist/professional-backend-runtime.d.ts +6 -1
  20. package/dist/professional-backend-runtime.js +7 -0
  21. package/dist/profile-workspace.d.ts +12 -0
  22. package/dist/profile-workspace.js +15 -0
  23. package/dist/resource-operations.d.ts +82 -25
  24. package/dist/resource-operations.js +190 -3
  25. package/dist/runtime-client-paths.d.ts +81 -0
  26. package/dist/runtime-client-paths.js +95 -0
  27. package/dist/runtime-consent.d.ts +7 -0
  28. package/dist/runtime-consent.js +21 -0
  29. package/dist/runtime-host-submission.d.ts +62 -0
  30. package/dist/runtime-host-submission.js +82 -0
  31. package/dist/runtime-http-trace.d.ts +4 -0
  32. package/dist/runtime-http-trace.js +44 -0
  33. package/dist/runtime-message.d.ts +10 -0
  34. package/dist/runtime-message.js +19 -0
  35. package/dist/runtime-paths.d.ts +12 -0
  36. package/dist/runtime-paths.js +41 -0
  37. package/dist/runtime-route-context.d.ts +20 -0
  38. package/dist/runtime-route-context.js +68 -0
  39. package/dist/runtime-transport.d.ts +22 -0
  40. package/dist/runtime-transport.js +91 -0
  41. package/dist/smart-token.d.ts +8 -29
  42. package/dist/smart-token.js +28 -3
  43. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  import type { ControllerBindingInput } from 'gdc-common-utils-ts/models';
2
2
  import type { FamilyOrganizationSummary } from 'gdc-common-utils-ts/utils/family-organization-summary';
3
3
  import type { LegalOrganizationVerificationTransactionInput } from 'gdc-common-utils-ts/utils/legal-organization-verification-transaction';
4
- import type { OrganizationDidBindingInput } from 'gdc-sdk-core-ts';
4
+ import type { IndividualOrganizationLifecycleInput, OrganizationDidBindingInput } from 'gdc-sdk-core-ts';
5
5
  import type { LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput } from '../resource-operations.js';
6
6
  import type { AsyncPollRequest, OrganizationActivationServiceOptions, PollOptions, PollResult, SubmitAndPollResult, SubmitPayload, SubmitResponse } from 'gdc-sdk-core-ts';
7
7
  export type { AsyncPollRequest, PollOptions, PollResult, SubmitAndPollResult, SubmitPayload, SubmitResponse, } from 'gdc-sdk-core-ts';
@@ -13,7 +13,7 @@ import type { FamilyOrganizationSearchInput } from '../family-organization-searc
13
13
  import type { EnsureFamilyOrganizationRegistrationInput, EnsureFamilyOrganizationRegistrationResult } from '../family-organization-registration.js';
14
14
  import type { OrganizationLicenseOrderConfirmInput } from '../organization-license-order.js';
15
15
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
16
- import type { CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, ClinicalBundleSearchInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IndividualOrganizationLifecycleInput, IpsOrFhirImportInput, OrganizationEmployeeCreationInput, OrganizationEmployeeLifecycleInput, OrganizationEmployeeSearchInput, RevokeProfessionalAccessInput, RevokeProfessionalAccessResult, RelatedPersonUpsertInput } from '../resource-operations.js';
16
+ import type { CommunicationIngestionInput, BlockchainArtifactRegistrationInput, CommunicationParticipantRuntimeSearchInput, ClinicalBundleSearchInput, VitalSignBatchCommunicationFromSearchResponseInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IpsOrFhirImportInput, OrganizationEmployeeCreationInput, OrganizationEmployeeLifecycleInput, OrganizationEmployeeSearchInput, RevokeProfessionalAccessInput, RevokeProfessionalAccessResult, RelatedPersonUpsertInput } from '../resource-operations.js';
17
17
  /**
18
18
  * Shared node-runtime activation input.
19
19
  *
@@ -58,6 +58,7 @@ export type RuntimeClient = {
58
58
  submitOrganizationDidBinding?: (ctx: RouteContext, input: NodeOrganizationDidBindingInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
59
59
  activateOrganizationInGatewayFromIcaProof?: (hostCtx: HostRouteContext, input: NodeOrganizationActivationInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
60
60
  confirmLegalOrganizationOrder?: (hostCtx: HostRouteContext, input: LegalOrganizationOrderInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
61
+ submitVitalSignBatchCommunicationFromSearchResponse?: (ctx: RouteContext, input: VitalSignBatchCommunicationFromSearchResponseInput) => Promise<SubmitAndPollResult>;
61
62
  disableHost?: (hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
62
63
  purgeHost?: (hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
63
64
  disableTenant?: (hostCtx: HostRouteContext, input: HostedTenantLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
@@ -88,6 +89,7 @@ export type RuntimeClient = {
88
89
  disableIndividualOrganization?: (ctx: RouteContext, input: IndividualOrganizationLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
89
90
  purgeIndividualOrganization?: (ctx: RouteContext, input: IndividualOrganizationLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
90
91
  ingestCommunicationAndUpdateIndex?: (ctx: RouteContext, input: CommunicationIngestionInput) => Promise<SubmitAndPollResult>;
92
+ registerBlockchainArtifactAndUpdateIndex?: (ctx: RouteContext, input: BlockchainArtifactRegistrationInput) => Promise<SubmitAndPollResult>;
91
93
  searchCommunicationParticipants?: (ctx: RouteContext, input: CommunicationParticipantRuntimeSearchInput) => Promise<SubmitAndPollResult>;
92
94
  grantProfessionalAccess?: (ctx: RouteContext, input: GrantProfessionalAccessInput) => Promise<GrantProfessionalAccessResult>;
93
95
  revokeProfessionalAccess?: (ctx: RouteContext, input: RevokeProfessionalAccessInput) => Promise<RevokeProfessionalAccessResult>;
@@ -1,3 +1,4 @@
1
+ import { type IndividualControllerCredentialInput, type IndividualControllerVpPayloadInput, type IndividualSubjectCredentialInput } from 'gdc-common-utils-ts';
1
2
  import { type NodeRuntimeClient, type PollOptions, type SubmitAndPollResult, type SubmitPayload } from './client-port.js';
2
3
  import type { FamilyOrganizationSummary } from 'gdc-common-utils-ts/utils/family-organization-summary';
3
4
  import type { EnsureFamilyOrganizationRegistrationInput, EnsureFamilyOrganizationRegistrationResult } from '../family-organization-registration.js';
@@ -5,7 +6,8 @@ import type { FamilyOrganizationSearchInput } from '../family-organization-searc
5
6
  import type { IndividualOrganizationConfirmOrderInput, RouteContext } from '../individual-onboarding.js';
6
7
  import type { IndividualOrganizationBootstrapInput, IndividualOrganizationStartResult } from '../individual-start.js';
7
8
  import type { NodeCapability } from '../session.js';
8
- import type { ClinicalBundleSearchInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IndividualOrganizationLifecycleInput, IpsOrFhirImportInput, LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput, RevokeProfessionalAccessInput, RevokeProfessionalAccessResult, RelatedPersonUpsertInput } from '../resource-operations.js';
9
+ import type { IndividualOrganizationLifecycleInput } from 'gdc-sdk-core-ts';
10
+ import type { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IpsOrFhirImportInput, LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput, RevokeProfessionalAccessInput, RevokeProfessionalAccessResult, RelatedPersonUpsertInput } from '../resource-operations.js';
9
11
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
10
12
  /**
11
13
  * Individual-controller oriented facade over a `NodeRuntimeClient`.
@@ -55,17 +57,13 @@ export declare class IndividualControllerSdk {
55
57
  */
56
58
  purgeIndividual(ctx: RouteContext, input: IndividualOrganizationLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
57
59
  /**
58
- * Controller-only placeholder for a future individual-member lifecycle flow.
59
- *
60
- * Current GW CORE still lacks the stable member disable route. The runtime
61
- * client currently throws a not-supported error by design.
60
+ * Soft-disables one individual-member / caregiver relationship through the
61
+ * current `RelatedPerson/_batch` lifecycle contract.
62
62
  */
63
63
  disableIndividualMember(ctx: RouteContext, input: IndividualMemberLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
64
64
  /**
65
- * Controller-only placeholder for a future individual-member lifecycle flow.
66
- *
67
- * Current GW CORE still lacks the stable member purge route. The runtime
68
- * client currently throws a not-supported error by design.
65
+ * Purges one previously disabled individual-member / caregiver relationship
66
+ * through the explicit `RelatedPerson/_purge` lifecycle contract.
69
67
  */
70
68
  purgeIndividualMember(ctx: RouteContext, input: IndividualMemberLifecycleInput, pollOptions?: PollOptions): Promise<SubmitAndPollResult>;
71
69
  /**
@@ -88,6 +86,11 @@ export declare class IndividualControllerSdk {
88
86
  * Ingests a FHIR `Communication` and waits for indexing.
89
87
  */
90
88
  ingestCommunicationAndUpdateIndex(ctx: RouteContext, input: CommunicationIngestionInput): Promise<SubmitAndPollResult>;
89
+ /**
90
+ * Registers one FHIR resource or raw artifact on blockchain before it is
91
+ * attached to a subject communication.
92
+ */
93
+ registerBlockchainArtifactAndUpdateIndex(ctx: RouteContext, input: BlockchainArtifactRegistrationInput): Promise<SubmitAndPollResult>;
91
94
  /**
92
95
  * Searches indexed communication channel records by subject and participant
93
96
  * identifiers.
@@ -136,6 +139,36 @@ export declare class IndividualControllerSdk {
136
139
  * Requests a SMART/OpenID token for subsequent data access flows.
137
140
  */
138
141
  requestSmartToken(input: SmartTokenRequestInput): Promise<SmartTokenExchangeResult>;
142
+ /**
143
+ * Returns the normalized public continuity aliases that would be embedded in
144
+ * the individual-controller identity VC for SMART/OpenID4VP flows.
145
+ */
146
+ getIdentitySameAs(input: IndividualControllerCredentialInput): string[];
147
+ /**
148
+ * Builds the canonical individual-controller identity VC used by shared
149
+ * SMART VP helpers.
150
+ */
151
+ getIdentityVC(input: IndividualControllerCredentialInput): Record<string, unknown>;
152
+ /**
153
+ * Builds one canonical subject VC for the dependent subject managed by the
154
+ * current controller, for example a child, pet, or another represented
155
+ * individual.
156
+ */
157
+ getSubjectVC(input: IndividualSubjectCredentialInput): Record<string, unknown>;
158
+ /**
159
+ * Builds the canonical individual-controller identity VP payload used by
160
+ * shared SMART/OpenID4VP helpers.
161
+ */
162
+ buildIdentityVpPayload(input: IndividualControllerVpPayloadInput): Record<string, unknown>;
163
+ /**
164
+ * Builds one unsigned compact VP JWT for the canonical
165
+ * individual-controller identity payload.
166
+ */
167
+ buildUnsignedIdentityVpJwt(input: IndividualControllerVpPayloadInput, options?: Readonly<{
168
+ nowSeconds?: number;
169
+ ttlSeconds?: number;
170
+ nonce?: string;
171
+ }>): string;
139
172
  /**
140
173
  * Low-level escape hatch for direct submit/poll flows.
141
174
  */
@@ -1,5 +1,6 @@
1
1
  // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
2
  import { ActorCapabilities, ActorKinds } from 'gdc-common-utils-ts/constants/actor-session';
3
+ import { buildIndividualControllerIdentityVpPayload, buildUnsignedIndividualControllerIdentityVpJwt, getIndividualControllerIdentitySameAs, getIndividualControllerIdentityVC, getIndividualSubjectVC, } from 'gdc-common-utils-ts';
3
4
  import { requireClientMethod, submitAndPollWithClient, } from './client-port.js';
4
5
  import { assertFacadeCapability } from './capability-guard.js';
5
6
  /**
@@ -73,20 +74,16 @@ export class IndividualControllerSdk {
73
74
  return requireClientMethod(this.client, 'purgeIndividual')(ctx, input, pollOptions);
74
75
  }
75
76
  /**
76
- * Controller-only placeholder for a future individual-member lifecycle flow.
77
- *
78
- * Current GW CORE still lacks the stable member disable route. The runtime
79
- * client currently throws a not-supported error by design.
77
+ * Soft-disables one individual-member / caregiver relationship through the
78
+ * current `RelatedPerson/_batch` lifecycle contract.
80
79
  */
81
80
  disableIndividualMember(ctx, input, pollOptions) {
82
81
  assertFacadeCapability(this.capabilities, ActorCapabilities.IndividualMemberDisable, ActorKinds.IndividualController, 'disableIndividualMember');
83
82
  return requireClientMethod(this.client, 'disableIndividualMember')(ctx, input, pollOptions);
84
83
  }
85
84
  /**
86
- * Controller-only placeholder for a future individual-member lifecycle flow.
87
- *
88
- * Current GW CORE still lacks the stable member purge route. The runtime
89
- * client currently throws a not-supported error by design.
85
+ * Purges one previously disabled individual-member / caregiver relationship
86
+ * through the explicit `RelatedPerson/_purge` lifecycle contract.
90
87
  */
91
88
  purgeIndividualMember(ctx, input, pollOptions) {
92
89
  assertFacadeCapability(this.capabilities, ActorCapabilities.IndividualMemberPurge, ActorKinds.IndividualController, 'purgeIndividualMember');
@@ -127,6 +124,13 @@ export class IndividualControllerSdk {
127
124
  assertFacadeCapability(this.capabilities, ActorCapabilities.IndividualIngestCommunication, ActorKinds.IndividualController, 'ingestCommunicationAndUpdateIndex');
128
125
  return requireClientMethod(this.client, 'ingestCommunicationAndUpdateIndex')(ctx, input);
129
126
  }
127
+ /**
128
+ * Registers one FHIR resource or raw artifact on blockchain before it is
129
+ * attached to a subject communication.
130
+ */
131
+ registerBlockchainArtifactAndUpdateIndex(ctx, input) {
132
+ return requireClientMethod(this.client, 'registerBlockchainArtifactAndUpdateIndex')(ctx, input);
133
+ }
130
134
  /**
131
135
  * Searches indexed communication channel records by subject and participant
132
136
  * identifiers.
@@ -198,6 +202,42 @@ export class IndividualControllerSdk {
198
202
  requestSmartToken(input) {
199
203
  return requireClientMethod(this.client, 'requestSmartToken')(input);
200
204
  }
205
+ /**
206
+ * Returns the normalized public continuity aliases that would be embedded in
207
+ * the individual-controller identity VC for SMART/OpenID4VP flows.
208
+ */
209
+ getIdentitySameAs(input) {
210
+ return getIndividualControllerIdentitySameAs(input);
211
+ }
212
+ /**
213
+ * Builds the canonical individual-controller identity VC used by shared
214
+ * SMART VP helpers.
215
+ */
216
+ getIdentityVC(input) {
217
+ return getIndividualControllerIdentityVC(input);
218
+ }
219
+ /**
220
+ * Builds one canonical subject VC for the dependent subject managed by the
221
+ * current controller, for example a child, pet, or another represented
222
+ * individual.
223
+ */
224
+ getSubjectVC(input) {
225
+ return getIndividualSubjectVC(input);
226
+ }
227
+ /**
228
+ * Builds the canonical individual-controller identity VP payload used by
229
+ * shared SMART/OpenID4VP helpers.
230
+ */
231
+ buildIdentityVpPayload(input) {
232
+ return buildIndividualControllerIdentityVpPayload(input);
233
+ }
234
+ /**
235
+ * Builds one unsigned compact VP JWT for the canonical
236
+ * individual-controller identity payload.
237
+ */
238
+ buildUnsignedIdentityVpJwt(input, options = {}) {
239
+ return buildUnsignedIndividualControllerIdentityVpJwt(input, options);
240
+ }
201
241
  /**
202
242
  * Low-level escape hatch for direct submit/poll flows.
203
243
  */
@@ -1,3 +1,4 @@
1
+ import { type IndividualMemberCredentialInput, type IndividualMemberVpPayloadInput } from 'gdc-common-utils-ts';
1
2
  import { type NodeRuntimeClient } from './client-port.js';
2
3
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
3
4
  import type { RouteContext } from '../individual-onboarding.js';
@@ -14,4 +15,28 @@ export declare class IndividualMemberSdk {
14
15
  * caregiver, guardian, or family member.
15
16
  */
16
17
  requestSmartToken(input: SmartTokenRequestInput): Promise<SmartTokenExchangeResult>;
18
+ /**
19
+ * Returns the normalized public continuity aliases that would be embedded in
20
+ * the individual-member identity VC for SMART/OpenID4VP flows.
21
+ */
22
+ getIdentitySameAs(input: IndividualMemberCredentialInput): string[];
23
+ /**
24
+ * Builds the canonical individual-member identity VC used by shared SMART VP
25
+ * helpers.
26
+ */
27
+ getIdentityVC(input: IndividualMemberCredentialInput): Record<string, unknown>;
28
+ /**
29
+ * Builds the canonical individual-member identity VP payload used by shared
30
+ * SMART/OpenID4VP helpers.
31
+ */
32
+ buildIdentityVpPayload(input: IndividualMemberVpPayloadInput): Record<string, unknown>;
33
+ /**
34
+ * Builds one unsigned compact VP JWT for the canonical individual-member
35
+ * identity payload.
36
+ */
37
+ buildUnsignedIdentityVpJwt(input: IndividualMemberVpPayloadInput, options?: Readonly<{
38
+ nowSeconds?: number;
39
+ ttlSeconds?: number;
40
+ nonce?: string;
41
+ }>): string;
17
42
  }
@@ -1,4 +1,5 @@
1
1
  // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
+ import { buildIndividualMemberIdentityVpPayload, buildUnsignedIndividualMemberIdentityVpJwt, getIndividualMemberIdentitySameAs, getIndividualMemberIdentityVC, } from 'gdc-common-utils-ts';
2
3
  import { requireClientMethod } from './client-port.js';
3
4
  export class IndividualMemberSdk {
4
5
  constructor(client) {
@@ -17,4 +18,32 @@ export class IndividualMemberSdk {
17
18
  requestSmartToken(input) {
18
19
  return requireClientMethod(this.client, 'requestSmartToken')(input);
19
20
  }
21
+ /**
22
+ * Returns the normalized public continuity aliases that would be embedded in
23
+ * the individual-member identity VC for SMART/OpenID4VP flows.
24
+ */
25
+ getIdentitySameAs(input) {
26
+ return getIndividualMemberIdentitySameAs(input);
27
+ }
28
+ /**
29
+ * Builds the canonical individual-member identity VC used by shared SMART VP
30
+ * helpers.
31
+ */
32
+ getIdentityVC(input) {
33
+ return getIndividualMemberIdentityVC(input);
34
+ }
35
+ /**
36
+ * Builds the canonical individual-member identity VP payload used by shared
37
+ * SMART/OpenID4VP helpers.
38
+ */
39
+ buildIdentityVpPayload(input) {
40
+ return buildIndividualMemberIdentityVpPayload(input);
41
+ }
42
+ /**
43
+ * Builds one unsigned compact VP JWT for the canonical individual-member
44
+ * identity payload.
45
+ */
46
+ buildUnsignedIdentityVpJwt(input, options = {}) {
47
+ return buildUnsignedIndividualMemberIdentityVpJwt(input, options);
48
+ }
20
49
  }
@@ -1,7 +1,7 @@
1
1
  import { type NodeRuntimeClient, type PollOptions, type SubmitAndPollResult, type SubmitPayload } from './client-port.js';
2
2
  import type { IndividualOrganizationBootstrapInput, IndividualOrganizationStartResult } from '../individual-start.js';
3
3
  import type { RouteContext } from '../individual-onboarding.js';
4
- import type { ClinicalBundleSearchInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IpsOrFhirImportInput, LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput } from '../resource-operations.js';
4
+ import type { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IpsOrFhirImportInput, LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput } from '../resource-operations.js';
5
5
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
6
6
  export declare class PersonalSdk {
7
7
  private readonly client;
@@ -14,6 +14,8 @@ export declare class PersonalSdk {
14
14
  importIpsOrFhirAndUpdateIndex(ctx: RouteContext, input: IpsOrFhirImportInput): Promise<SubmitAndPollResult>;
15
15
  /** Ingests canonical Communication and waits for projection completion. */
16
16
  ingestCommunicationAndUpdateIndex(ctx: RouteContext, input: CommunicationIngestionInput): Promise<SubmitAndPollResult>;
17
+ /** Registers one FHIR resource or raw artifact on blockchain before communication. */
18
+ registerBlockchainArtifactAndUpdateIndex(ctx: RouteContext, input: BlockchainArtifactRegistrationInput): Promise<SubmitAndPollResult>;
17
19
  /** Searches indexed communication channel records by subject and participant identifiers. */
18
20
  searchCommunicationParticipants(ctx: RouteContext, input: CommunicationParticipantRuntimeSearchInput): Promise<SubmitAndPollResult>;
19
21
  /** Triggers digital twin generation from subject data. */
@@ -20,6 +20,10 @@ export class PersonalSdk {
20
20
  ingestCommunicationAndUpdateIndex(ctx, input) {
21
21
  return requireClientMethod(this.client, 'ingestCommunicationAndUpdateIndex')(ctx, input);
22
22
  }
23
+ /** Registers one FHIR resource or raw artifact on blockchain before communication. */
24
+ registerBlockchainArtifactAndUpdateIndex(ctx, input) {
25
+ return requireClientMethod(this.client, 'registerBlockchainArtifactAndUpdateIndex')(ctx, input);
26
+ }
23
27
  /** Searches indexed communication channel records by subject and participant identifiers. */
24
28
  searchCommunicationParticipants(ctx, input) {
25
29
  return requireClientMethod(this.client, 'searchCommunicationParticipants')(ctx, input);
@@ -1,7 +1,8 @@
1
+ import { type ProfessionalEmployeeCredentialInput, type ProfessionalSmartVpPayloadInput } from 'gdc-common-utils-ts';
1
2
  import { type NodeRuntimeClient, type PollOptions, type SubmitAndPollResult, type SubmitPayload } from './client-port.js';
2
3
  import type { RouteContext } from '../individual-onboarding.js';
3
4
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
4
- import type { CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, ClinicalBundleSearchInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult } from '../resource-operations.js';
5
+ import type { BlockchainArtifactRegistrationInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, ClinicalBundleSearchInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, VitalSignBatchCommunicationFromSearchResponseInput } from '../resource-operations.js';
5
6
  /**
6
7
  * Professional-oriented facade for runtime actions that belong to the
7
8
  * professional actor itself after tenant and employee provisioning have already
@@ -29,6 +30,30 @@ export declare class ProfessionalSdk {
29
30
  * `NodeHttpClient({ ctx })` instead of being repeated on every call.
30
31
  */
31
32
  requestSmartToken(input: SmartTokenRequestInput): Promise<SmartTokenExchangeResult>;
33
+ /**
34
+ * Returns the normalized public continuity aliases that would be embedded in
35
+ * the professional identity VC for SMART/OpenID4VP flows.
36
+ */
37
+ getIdentitySameAs(input: ProfessionalEmployeeCredentialInput): string[];
38
+ /**
39
+ * Builds the canonical professional identity VC used by the shared SMART VP
40
+ * helpers.
41
+ */
42
+ getIdentityVC(input: ProfessionalEmployeeCredentialInput): Record<string, unknown>;
43
+ /**
44
+ * Builds the canonical professional identity VP payload used by the shared
45
+ * SMART/OpenID4VP helpers.
46
+ */
47
+ buildIdentityVpPayload(input: ProfessionalSmartVpPayloadInput): Record<string, unknown>;
48
+ /**
49
+ * Builds one unsigned compact VP JWT for the canonical professional
50
+ * identity payload.
51
+ */
52
+ buildUnsignedIdentityVpJwt(input: ProfessionalSmartVpPayloadInput, options?: Readonly<{
53
+ nowSeconds?: number;
54
+ ttlSeconds?: number;
55
+ nonce?: string;
56
+ }>): string;
32
57
  /**
33
58
  * Executes one clinical `Bundle/_search` using the professional actor
34
59
  * session and tenant route context.
@@ -43,6 +68,16 @@ export declare class ProfessionalSdk {
43
68
  * Ingests a FHIR `Communication` and waits for indexing.
44
69
  */
45
70
  ingestCommunicationAndUpdateIndex(ctx: RouteContext, input: CommunicationIngestionInput): Promise<SubmitAndPollResult>;
71
+ /**
72
+ * Registers one FHIR resource or raw document artifact on blockchain before
73
+ * the artifact is attached to a Communication.
74
+ */
75
+ registerBlockchainArtifactAndUpdateIndex(ctx: RouteContext, input: BlockchainArtifactRegistrationInput): Promise<SubmitAndPollResult>;
76
+ /**
77
+ * Converts a paginated vital-sign search response into one Communication
78
+ * carrying the selected day-batch artifacts and submits it.
79
+ */
80
+ submitVitalSignBatchCommunicationFromSearchResponse(ctx: RouteContext, input: VitalSignBatchCommunicationFromSearchResponseInput): Promise<SubmitAndPollResult>;
46
81
  /**
47
82
  * Searches indexed communication channel records by subject and participant
48
83
  * identifiers.
@@ -1,5 +1,6 @@
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
+ import { buildProfessionalIdentityVpPayload, buildUnsignedProfessionalIdentityVpJwt, getProfessionalIdentitySameAs, getProfessionalIdentityVC, } from 'gdc-common-utils-ts';
3
4
  import { requireClientMethod, submitAndPollWithClient, } from './client-port.js';
4
5
  /**
5
6
  * Professional-oriented facade for runtime actions that belong to the
@@ -31,6 +32,34 @@ export class ProfessionalSdk {
31
32
  requestSmartToken(input) {
32
33
  return requireClientMethod(this.client, 'requestSmartToken')(input);
33
34
  }
35
+ /**
36
+ * Returns the normalized public continuity aliases that would be embedded in
37
+ * the professional identity VC for SMART/OpenID4VP flows.
38
+ */
39
+ getIdentitySameAs(input) {
40
+ return getProfessionalIdentitySameAs(input);
41
+ }
42
+ /**
43
+ * Builds the canonical professional identity VC used by the shared SMART VP
44
+ * helpers.
45
+ */
46
+ getIdentityVC(input) {
47
+ return getProfessionalIdentityVC(input);
48
+ }
49
+ /**
50
+ * Builds the canonical professional identity VP payload used by the shared
51
+ * SMART/OpenID4VP helpers.
52
+ */
53
+ buildIdentityVpPayload(input) {
54
+ return buildProfessionalIdentityVpPayload(input);
55
+ }
56
+ /**
57
+ * Builds one unsigned compact VP JWT for the canonical professional
58
+ * identity payload.
59
+ */
60
+ buildUnsignedIdentityVpJwt(input, options = {}) {
61
+ return buildUnsignedProfessionalIdentityVpJwt(input, options);
62
+ }
34
63
  /**
35
64
  * Executes one clinical `Bundle/_search` using the professional actor
36
65
  * session and tenant route context.
@@ -51,6 +80,20 @@ export class ProfessionalSdk {
51
80
  ingestCommunicationAndUpdateIndex(ctx, input) {
52
81
  return requireClientMethod(this.client, 'ingestCommunicationAndUpdateIndex')(ctx, input);
53
82
  }
83
+ /**
84
+ * Registers one FHIR resource or raw document artifact on blockchain before
85
+ * the artifact is attached to a Communication.
86
+ */
87
+ registerBlockchainArtifactAndUpdateIndex(ctx, input) {
88
+ return requireClientMethod(this.client, 'registerBlockchainArtifactAndUpdateIndex')(ctx, input);
89
+ }
90
+ /**
91
+ * Converts a paginated vital-sign search response into one Communication
92
+ * carrying the selected day-batch artifacts and submits it.
93
+ */
94
+ submitVitalSignBatchCommunicationFromSearchResponse(ctx, input) {
95
+ return requireClientMethod(this.client, 'submitVitalSignBatchCommunicationFromSearchResponse')(ctx, input);
96
+ }
54
97
  /**
55
98
  * Searches indexed communication channel records by subject and participant
56
99
  * identifiers.
@@ -2,7 +2,7 @@ import type { SubmitAndPollResult } from 'gdc-sdk-core-ts';
2
2
  import type { ProfileLoadRequest } from 'gdc-sdk-core-ts';
3
3
  import type { RouteContext } from './individual-onboarding.js';
4
4
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from './smart-token.js';
5
- import type { ClinicalBundleSearchInput } from './resource-operations.js';
5
+ import type { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput } from './resource-operations.js';
6
6
  import { type BackendProfessionalProfile, type BackendProfileRuntimeClient } from './backend-profile-runtime.js';
7
7
  /**
8
8
  * Backend use-case facade for the current professional happy path.
@@ -33,4 +33,9 @@ export declare class ProfessionalBackendRuntime {
33
33
  * Reads the latest IPS-oriented bundle through the professional facade.
34
34
  */
35
35
  getLatestIps(profile: BackendProfessionalProfile, ctx: RouteContext, input: Omit<ClinicalBundleSearchInput, 'includedTypes'>): Promise<SubmitAndPollResult>;
36
+ /**
37
+ * Registers one FHIR resource or raw artifact on blockchain before it is
38
+ * attached to a communication.
39
+ */
40
+ registerBlockchainArtifactAndUpdateIndex(profile: BackendProfessionalProfile, ctx: RouteContext, input: BlockchainArtifactRegistrationInput): Promise<SubmitAndPollResult>;
36
41
  }
@@ -38,4 +38,11 @@ export class ProfessionalBackendRuntime {
38
38
  getLatestIps(profile, ctx, input) {
39
39
  return profile.sdk.getLatestIps(ctx, input);
40
40
  }
41
+ /**
42
+ * Registers one FHIR resource or raw artifact on blockchain before it is
43
+ * attached to a communication.
44
+ */
45
+ registerBlockchainArtifactAndUpdateIndex(profile, ctx, input) {
46
+ return profile.sdk.registerBlockchainArtifactAndUpdateIndex(ctx, input);
47
+ }
41
48
  }
@@ -1,4 +1,5 @@
1
1
  import { CommunicationAttachedBundleSession, IndividualBundleVault, buildVitalSignObservationClaims, createSummaryOperationRequestParameters, createSummaryOperationRequestParametersResource, summarizeClinicalBundle, toClinicalResourceExpandedViews, type BuildVitalSignObservationClaimsInput } from 'gdc-common-utils-ts';
2
+ import type { BundleEntry, BundleJsonApi } from 'gdc-common-utils-ts/models/bundle';
2
3
  import type { BackendOrganizationControllerProfile, BackendProfessionalProfile } from './backend-profile-runtime.js';
3
4
  export type IpsRequestDraft = Readonly<{
4
5
  subjectId: string;
@@ -29,6 +30,17 @@ declare class ProfessionalSubjectIpsWorkspace {
29
30
  processResponseBundleIps(body: unknown): ProcessedClinicalBundleResponse;
30
31
  rememberResponseBundleIps(body: unknown): Promise<IndividualBundleVault>;
31
32
  addVitalSign(input: BuildVitalSignObservationClaimsInput): Promise<IndividualBundleVault>;
33
+ buildVitalSignBatchCommunicationFromSearchResponse(searchResponse: unknown, selectedResourceIds?: readonly string[]): import("./resource-operations.js").CommunicationIngestionInput;
34
+ buildBlockchainArtifactBundleFromSearchResponse(searchResponse: unknown, selectedResourceIds?: readonly string[]): Readonly<{
35
+ availableResourceIds: readonly string[];
36
+ anchoredResourceIds: readonly string[];
37
+ unanchoredResourceIds: readonly string[];
38
+ selectedResourceIds: readonly string[];
39
+ missingResourceIds: readonly string[];
40
+ returnedCount: number;
41
+ totalCount: number;
42
+ bundle: BundleJsonApi<BundleEntry>;
43
+ }>;
32
44
  get cache(): IndividualBundleVault;
33
45
  }
34
46
  declare class ProfessionalSubjectWorkspace {
@@ -1,5 +1,6 @@
1
1
  // Copyright 2026 Antifraud Services Inc. under the Apache License, Version 2.0.
2
2
  import { CommunicationAttachedBundleSession, IndividualBundleVault, VaultMemRepository, buildVitalSignObservationClaims, createConsentAccessEditor, createInvoiceBundleEditor, createSummaryOperationRequestParameters, createSummaryOperationRequestParametersResource, createSummaryOperationRequestReferencePath, readEmployeeSearchResults, summarizeClinicalBundle, summarizeLicenseListRecords, toClinicalResourceExpandedViews, } from 'gdc-common-utils-ts';
3
+ import { buildBlockchainArtifactBundleFromSearchResponse, buildVitalSignBatchCommunicationFromSearchResponse } from './resource-operations.js';
3
4
  function normalizeSectionList(sectionList) {
4
5
  return Array.from(new Set((sectionList || []).map((item) => String(item || '').trim()).filter(Boolean)));
5
6
  }
@@ -69,6 +70,20 @@ class ProfessionalSubjectIpsWorkspace {
69
70
  await this.bundleVault.upsertVitalSign(input);
70
71
  return this.bundleVault;
71
72
  }
73
+ buildVitalSignBatchCommunicationFromSearchResponse(searchResponse, selectedResourceIds) {
74
+ return buildVitalSignBatchCommunicationFromSearchResponse({
75
+ subject: this.subjectId,
76
+ searchResponse,
77
+ selectedResourceIds,
78
+ });
79
+ }
80
+ buildBlockchainArtifactBundleFromSearchResponse(searchResponse, selectedResourceIds) {
81
+ return buildBlockchainArtifactBundleFromSearchResponse({
82
+ subject: this.subjectId,
83
+ searchResponse,
84
+ selectedResourceIds,
85
+ });
86
+ }
72
87
  get cache() {
73
88
  return this.bundleVault;
74
89
  }