gdc-sdk-node-ts 2.3.2 → 2.3.4

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.
@@ -21,6 +21,7 @@ const capabilityMap = {
21
21
  [ActorCapabilities.IndividualImportIps]: ActorCapabilities.IndividualImportIps,
22
22
  [ActorCapabilities.IndividualGenerateDigitalTwin]: ActorCapabilities.IndividualGenerateDigitalTwin,
23
23
  [ActorCapabilities.IndividualIngestCommunication]: ActorCapabilities.IndividualIngestCommunication,
24
+ [ActorCapabilities.IndividualReadClinicalSummary]: ActorCapabilities.IndividualReadClinicalSummary,
24
25
  [ActorCapabilities.IndividualUpsertRelatedPerson]: ActorCapabilities.IndividualUpsertRelatedPerson,
25
26
  [ActorCapabilities.IndividualMemberDisable]: ActorCapabilities.IndividualMemberDisable,
26
27
  [ActorCapabilities.IndividualMemberPurge]: ActorCapabilities.IndividualMemberPurge,
@@ -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 { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput } from './resource-operations.js';
7
+ import type { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput, ClinicalSummaryReadResult, ClinicalSummaryRequestInput } 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
  /**
@@ -17,8 +17,8 @@ import type { ProfileLoadRequest } from 'gdc-sdk-core-ts';
17
17
  * - load an individual-controller profile
18
18
  * - start individual registration/bootstrap
19
19
  * - confirm the returned order/offer
20
- * - search the subject clinical index
21
- * - request the latest IPS-oriented bundle
20
+ * - request the available subject clinical summary through Communication
21
+ * - use direct index searches only for compatibility/specialized queries
22
22
  */
23
23
  export declare class IndividualControllerBackendRuntime {
24
24
  private readonly profileRuntime;
@@ -47,8 +47,13 @@ export declare class IndividualControllerBackendRuntime {
47
47
  */
48
48
  confirmIndividualOrganizationOrder(profile: BackendIndividualControllerProfile, input: IndividualOrganizationConfirmOrderInput): Promise<SubmitAndPollResult>;
49
49
  /**
50
- * Searches the current subject clinical bundle index through the loaded
51
- * individual-controller facade.
50
+ * Reads the authoritative subject document through the canonical
51
+ * `Communication -> Subject/$summary -> FHIR Parameters` lifecycle.
52
+ */
53
+ requestClinicalSummary(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: ClinicalSummaryRequestInput): Promise<ClinicalSummaryReadResult>;
54
+ /**
55
+ * Compatibility/specialized direct search over the subject bundle index.
56
+ * Prefer `requestClinicalSummary(...)` for the available clinical document.
52
57
  */
53
58
  searchClinicalBundle(profile: BackendIndividualControllerProfile, ctx: RouteContext, input: ClinicalBundleSearchInput): Promise<SubmitAndPollResult>;
54
59
  /**
@@ -10,8 +10,8 @@ import { loadBackendIndividualControllerProfile, } from './backend-profile-runti
10
10
  * - load an individual-controller profile
11
11
  * - start individual registration/bootstrap
12
12
  * - confirm the returned order/offer
13
- * - search the subject clinical index
14
- * - request the latest IPS-oriented bundle
13
+ * - request the available subject clinical summary through Communication
14
+ * - use direct index searches only for compatibility/specialized queries
15
15
  */
16
16
  export class IndividualControllerBackendRuntime {
17
17
  constructor(profileRuntime) {
@@ -51,8 +51,15 @@ export class IndividualControllerBackendRuntime {
51
51
  return profile.sdk.confirmIndividualOrganizationOrder(input);
52
52
  }
53
53
  /**
54
- * Searches the current subject clinical bundle index through the loaded
55
- * individual-controller facade.
54
+ * Reads the authoritative subject document through the canonical
55
+ * `Communication -> Subject/$summary -> FHIR Parameters` lifecycle.
56
+ */
57
+ requestClinicalSummary(profile, ctx, input) {
58
+ return profile.sdk.requestClinicalSummary(ctx, input);
59
+ }
60
+ /**
61
+ * Compatibility/specialized direct search over the subject bundle index.
62
+ * Prefer `requestClinicalSummary(...)` for the available clinical document.
56
63
  */
57
64
  searchClinicalBundle(profile, ctx, input) {
58
65
  return profile.sdk.searchClinicalBundle(ctx, input);
@@ -11,7 +11,7 @@ import { type SmartTokenRequestInput } from './smart-token.js';
11
11
  import { type EmployeeDeviceActivationRequestInput, type EmployeeDeviceActivationResult } from './device-activation.js';
12
12
  import { type OrganizationLicenseOrderConfirmInput } from './organization-license-order.js';
13
13
  import { type IndividualOrganizationBootstrapInput, type IndividualOrganizationStartResult } from './individual-start.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
+ import { type CommunicationIngestionInput, type BlockchainArtifactRegistrationInput, type VitalSignBatchCommunicationFromSearchResponseInput, type CommunicationParticipantRuntimeSearchInput, type ClinicalBundleSearchInput, type ClinicalSummaryReadResult, type ClinicalSummaryRequestInput, 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';
15
15
  import type { LegalOrganizationOrderInput } from './host-onboarding.js';
16
16
  import type { SmartTokenExchangeResult } from './smart-token.js';
17
17
  import type { NodeRuntimeClient, PollOptions, PollResult, SubmitAndPollResult, SubmitPayload, SubmitResponse } from './orchestration/client-port.js';
@@ -402,6 +402,15 @@ export declare class HttpRuntimeClient implements NodeRuntimeClient {
402
402
  * @param input Communication payload plus route/format options.
403
403
  */
404
404
  ingestCommunicationAndUpdateIndex(ctx: RouteContext, input: CommunicationIngestionInput): Promise<SubmitAndPollResult>;
405
+ /**
406
+ * Reads the authoritative clinical document currently available for one
407
+ * subject through an auditable `Communication` request to `Subject/$summary`.
408
+ *
409
+ * Unlike `ingestCommunicationAndUpdateIndex(...)`, this method does not
410
+ * represent a write or projection lifecycle. It returns the GW document and
411
+ * a `BundleReader` for section-by-section navigation.
412
+ */
413
+ requestClinicalSummary(ctx: RouteContext, input: ClinicalSummaryRequestInput): Promise<ClinicalSummaryReadResult>;
405
414
  /**
406
415
  * Renders and submits one canonical clinical outbox job without requiring
407
416
  * BFF, portal or assistant consumers to know GW wire envelopes.
@@ -12,7 +12,7 @@ import { activateEmployeeDeviceWithActivationCodeWithDeps, activateEmployeeDevic
12
12
  import { extractOfferIdFromResponseBody, extractOfferPreviewFromResponseBody, } from './order-offer-summary.js';
13
13
  import { confirmOrganizationLicenseOrderWithDeps } from './organization-license-order.js';
14
14
  import { startIndividualOrganizationWithDeps } from './individual-start.js';
15
- import { createOrganizationEmployeeWithDeps, disableIndividualMemberWithDeps, disableIndividualOrganizationWithDeps, disableOrganizationEmployeeWithDeps, listIndividualLicenseOffersWithDeps, listIndividualLicenseOrdersWithDeps, listIndividualLicensesWithDeps, addFreeIndividualMemberLicensesWithDeps, issueIndividualMemberLicenseWithDeps, transitionIndividualMemberLicenseWithDeps, listOrganizationLicenseOffersWithDeps, listOrganizationLicenseOrdersWithDeps, listOrganizationLicensesWithDeps, grantProfessionalAccessWithDeps, ingestCommunicationAndUpdateIndexWithDeps, buildVitalSignBatchCommunicationFromSearchResponse, registerBlockchainArtifactAndUpdateIndexWithDeps, revokeProfessionalAccessWithDeps, searchCommunicationParticipantsWithDeps, purgeIndividualMemberWithDeps, purgeIndividualOrganizationWithDeps, purgeOrganizationEmployeeWithDeps, searchIndividualLicensesWithDeps, searchIndividualLicenseOffersWithDeps, searchIndividualLicenseOrdersWithDeps, searchOrganizationLicensesWithDeps, searchOrganizationLicenseOffersWithDeps, searchOrganizationLicenseOrdersWithDeps, searchOrganizationEmployeesWithDeps, searchClinicalBundleWithDeps, searchLatestIpsWithDeps, upsertRelatedPersonAndPollWithDeps, normalizeCommunicationPathFormatSegment, } from './resource-operations.js';
15
+ import { createOrganizationEmployeeWithDeps, disableIndividualMemberWithDeps, disableIndividualOrganizationWithDeps, disableOrganizationEmployeeWithDeps, listIndividualLicenseOffersWithDeps, listIndividualLicenseOrdersWithDeps, listIndividualLicensesWithDeps, addFreeIndividualMemberLicensesWithDeps, issueIndividualMemberLicenseWithDeps, transitionIndividualMemberLicenseWithDeps, listOrganizationLicenseOffersWithDeps, listOrganizationLicenseOrdersWithDeps, listOrganizationLicensesWithDeps, grantProfessionalAccessWithDeps, ingestCommunicationAndUpdateIndexWithDeps, buildVitalSignBatchCommunicationFromSearchResponse, registerBlockchainArtifactAndUpdateIndexWithDeps, requestClinicalSummaryWithDeps, revokeProfessionalAccessWithDeps, searchCommunicationParticipantsWithDeps, purgeIndividualMemberWithDeps, purgeIndividualOrganizationWithDeps, purgeOrganizationEmployeeWithDeps, searchIndividualLicensesWithDeps, searchIndividualLicenseOffersWithDeps, searchIndividualLicenseOrdersWithDeps, searchOrganizationLicensesWithDeps, searchOrganizationLicenseOffersWithDeps, searchOrganizationLicenseOrdersWithDeps, searchOrganizationEmployeesWithDeps, searchClinicalBundleWithDeps, searchLatestIpsWithDeps, upsertRelatedPersonAndPollWithDeps, normalizeCommunicationPathFormatSegment, } from './resource-operations.js';
16
16
  import { submitAndPollWithMethods } from './orchestration/client-port.js';
17
17
  import { buildRuntimeHeaders, fetchWithTimeout, parseResponseBody, pollBatchResponseWithRuntimeConfig, postJsonWithRuntimeConfig, postRenderedWithRuntimeConfig, } from './runtime-transport.js';
18
18
  import { activateOrganizationInGatewayFromIcaProofWithDeps, submitLegalOrganizationIssueWithDeps, submitLegalOrganizationVerificationTransactionWithDeps, submitOrganizationDidBindingWithDeps, } from './runtime-host-submission.js';
@@ -743,6 +743,19 @@ export class HttpRuntimeClient {
743
743
  submitAndPoll: this.submitAndPoll.bind(this),
744
744
  });
745
745
  }
746
+ /**
747
+ * Reads the authoritative clinical document currently available for one
748
+ * subject through an auditable `Communication` request to `Subject/$summary`.
749
+ *
750
+ * Unlike `ingestCommunicationAndUpdateIndex(...)`, this method does not
751
+ * represent a write or projection lifecycle. It returns the GW document and
752
+ * a `BundleReader` for section-by-section navigation.
753
+ */
754
+ async requestClinicalSummary(ctx, input) {
755
+ return requestClinicalSummaryWithDeps(ctx, input, {
756
+ submitSummaryCommunication: this.submitCommunicationOutboxJobAndPoll.bind(this),
757
+ });
758
+ }
746
759
  /**
747
760
  * Renders and submits one canonical clinical outbox job without requiring
748
761
  * BFF, portal or assistant consumers to know GW wire envelopes.
@@ -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, BlockchainArtifactRegistrationInput, CommunicationParticipantRuntimeSearchInput, ClinicalBundleSearchInput, VitalSignBatchCommunicationFromSearchResponseInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IndividualMemberLicenseAddInput, IndividualMemberLicenseInvitationInput, IndividualMemberLicenseTransitionInput, IpsOrFhirImportInput, OrganizationEmployeeCreationInput, OrganizationEmployeeLifecycleInput, OrganizationEmployeeSearchInput, RevokeProfessionalAccessInput, RevokeProfessionalAccessResult, RelatedPersonUpsertInput } from '../resource-operations.js';
16
+ import type { CommunicationIngestionInput, BlockchainArtifactRegistrationInput, CommunicationParticipantRuntimeSearchInput, ClinicalBundleSearchInput, ClinicalSummaryReadResult, ClinicalSummaryRequestInput, VitalSignBatchCommunicationFromSearchResponseInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IndividualMemberLicenseAddInput, IndividualMemberLicenseInvitationInput, IndividualMemberLicenseTransitionInput, IpsOrFhirImportInput, OrganizationEmployeeCreationInput, OrganizationEmployeeLifecycleInput, OrganizationEmployeeSearchInput, RevokeProfessionalAccessInput, RevokeProfessionalAccessResult, RelatedPersonUpsertInput } from '../resource-operations.js';
17
17
  /**
18
18
  * Shared node-runtime activation input.
19
19
  *
@@ -89,6 +89,7 @@ export type RuntimeClient = {
89
89
  disableIndividualOrganization?: (ctx: RouteContext, input: IndividualOrganizationLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
90
90
  purgeIndividualOrganization?: (ctx: RouteContext, input: IndividualOrganizationLifecycleInput, pollOptions?: PollOptions) => Promise<SubmitAndPollResult>;
91
91
  ingestCommunicationAndUpdateIndex?: (ctx: RouteContext, input: CommunicationIngestionInput) => Promise<SubmitAndPollResult>;
92
+ requestClinicalSummary?: (ctx: RouteContext, input: ClinicalSummaryRequestInput) => Promise<ClinicalSummaryReadResult>;
92
93
  registerBlockchainArtifactAndUpdateIndex?: (ctx: RouteContext, input: BlockchainArtifactRegistrationInput) => Promise<SubmitAndPollResult>;
93
94
  searchCommunicationParticipants?: (ctx: RouteContext, input: CommunicationParticipantRuntimeSearchInput) => Promise<SubmitAndPollResult>;
94
95
  grantProfessionalAccess?: (ctx: RouteContext, input: GrantProfessionalAccessInput) => Promise<GrantProfessionalAccessResult>;
@@ -7,7 +7,7 @@ import type { IndividualOrganizationConfirmOrderInput, RouteContext } from '../i
7
7
  import type { IndividualOrganizationBootstrapInput, IndividualOrganizationStartResult } from '../individual-start.js';
8
8
  import type { NodeCapability } from '../session.js';
9
9
  import type { IndividualOrganizationLifecycleInput } from 'gdc-sdk-core-ts';
10
- import type { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IndividualMemberLicenseAddInput, IndividualMemberLicenseInvitationInput, IndividualMemberLicenseTransitionInput, IpsOrFhirImportInput, LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput, RevokeProfessionalAccessInput, RevokeProfessionalAccessResult, RelatedPersonUpsertInput } from '../resource-operations.js';
10
+ import type { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput, ClinicalSummaryReadResult, ClinicalSummaryRequestInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IndividualMemberLifecycleInput, IndividualMemberLicenseAddInput, IndividualMemberLicenseInvitationInput, IndividualMemberLicenseTransitionInput, IpsOrFhirImportInput, LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput, RevokeProfessionalAccessInput, RevokeProfessionalAccessResult, RelatedPersonUpsertInput } from '../resource-operations.js';
11
11
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
12
12
  /**
13
13
  * Individual-controller oriented facade over a `NodeRuntimeClient`.
@@ -90,6 +90,14 @@ export declare class IndividualControllerSdk {
90
90
  * Ingests a FHIR `Communication` and waits for indexing.
91
91
  */
92
92
  ingestCommunicationAndUpdateIndex(ctx: RouteContext, input: CommunicationIngestionInput): Promise<SubmitAndPollResult>;
93
+ /**
94
+ * Reads the subject's available clinical document through
95
+ * `Communication -> Subject/$summary -> FHIR Parameters`.
96
+ *
97
+ * The returned `BundleReader` navigates the authoritative GW document by
98
+ * section. This method never ingests resources or updates the index.
99
+ */
100
+ requestClinicalSummary(ctx: RouteContext, input: ClinicalSummaryRequestInput): Promise<ClinicalSummaryReadResult>;
93
101
  /**
94
102
  * Registers one FHIR resource or raw artifact on blockchain before it is
95
103
  * attached to a subject communication.
@@ -128,6 +128,17 @@ export class IndividualControllerSdk {
128
128
  assertFacadeCapability(this.capabilities, ActorCapabilities.IndividualIngestCommunication, ActorKinds.IndividualController, 'ingestCommunicationAndUpdateIndex');
129
129
  return requireClientMethod(this.client, 'ingestCommunicationAndUpdateIndex')(ctx, input);
130
130
  }
131
+ /**
132
+ * Reads the subject's available clinical document through
133
+ * `Communication -> Subject/$summary -> FHIR Parameters`.
134
+ *
135
+ * The returned `BundleReader` navigates the authoritative GW document by
136
+ * section. This method never ingests resources or updates the index.
137
+ */
138
+ requestClinicalSummary(ctx, input) {
139
+ assertFacadeCapability(this.capabilities, ActorCapabilities.IndividualReadClinicalSummary, ActorKinds.IndividualController, 'requestClinicalSummary');
140
+ return requireClientMethod(this.client, 'requestClinicalSummary')(ctx, input);
141
+ }
131
142
  /**
132
143
  * Registers one FHIR resource or raw artifact on blockchain before it is
133
144
  * attached to a subject communication.
@@ -2,7 +2,7 @@ import { type IndividualMemberCredentialInput, type IndividualMemberVpPayloadInp
2
2
  import { type NodeRuntimeClient } from './client-port.js';
3
3
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
4
4
  import type { RouteContext } from '../individual-onboarding.js';
5
- import type { ClinicalBundleSearchInput, CommunicationIngestionInput, RelatedPersonUpsertInput } from '../resource-operations.js';
5
+ import type { ClinicalBundleSearchInput, ClinicalSummaryReadResult, ClinicalSummaryRequestInput, CommunicationIngestionInput, RelatedPersonUpsertInput } from '../resource-operations.js';
6
6
  export declare class IndividualMemberSdk {
7
7
  private readonly client;
8
8
  constructor(client: NodeRuntimeClient);
@@ -23,6 +23,8 @@ export declare class IndividualMemberSdk {
23
23
  * SMART token and accepted RelatedPerson/Consent relationship.
24
24
  */
25
25
  ingestCommunicationAndUpdateIndex(ctx: RouteContext, input: CommunicationIngestionInput): Promise<import("gdc-sdk-core-ts/polling-model.js").SubmitAndPollResult>;
26
+ /** Reads the member-authorized `$summary` document without mutating the subject index. */
27
+ requestClinicalSummary(ctx: RouteContext, input: ClinicalSummaryRequestInput): Promise<ClinicalSummaryReadResult>;
26
28
  /** Reads subject-scoped clinical documents permitted to this member. */
27
29
  searchClinicalBundle(ctx: RouteContext, input: ClinicalBundleSearchInput): Promise<import("gdc-sdk-core-ts/polling-model.js").SubmitAndPollResult>;
28
30
  /** Reads the latest permitted IPS document for the selected subject. */
@@ -28,6 +28,10 @@ export class IndividualMemberSdk {
28
28
  ingestCommunicationAndUpdateIndex(ctx, input) {
29
29
  return requireClientMethod(this.client, 'ingestCommunicationAndUpdateIndex')(ctx, input);
30
30
  }
31
+ /** Reads the member-authorized `$summary` document without mutating the subject index. */
32
+ requestClinicalSummary(ctx, input) {
33
+ return requireClientMethod(this.client, 'requestClinicalSummary')(ctx, input);
34
+ }
31
35
  /** Reads subject-scoped clinical documents permitted to this member. */
32
36
  searchClinicalBundle(ctx, input) {
33
37
  return requireClientMethod(this.client, 'searchClinicalBundle')(ctx, input);
@@ -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 { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, DigitalTwinGenerationInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, IpsOrFhirImportInput, LicenseListRuntimeSearchInput, LicenseOfferRuntimeSearchInput, LicenseOrderRuntimeSearchInput } from '../resource-operations.js';
4
+ import type { BlockchainArtifactRegistrationInput, ClinicalBundleSearchInput, ClinicalSummaryReadResult, ClinicalSummaryRequestInput, 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
+ /** Reads the current subject through Communication `$summary`; it performs no ingestion. */
18
+ requestClinicalSummary(ctx: RouteContext, input: ClinicalSummaryRequestInput): Promise<ClinicalSummaryReadResult>;
17
19
  /** Registers one FHIR resource or raw artifact on blockchain before communication. */
18
20
  registerBlockchainArtifactAndUpdateIndex(ctx: RouteContext, input: BlockchainArtifactRegistrationInput): Promise<SubmitAndPollResult>;
19
21
  /** Searches indexed communication channel records by subject and participant identifiers. */
@@ -20,6 +20,10 @@ export class PersonalSdk {
20
20
  ingestCommunicationAndUpdateIndex(ctx, input) {
21
21
  return requireClientMethod(this.client, 'ingestCommunicationAndUpdateIndex')(ctx, input);
22
22
  }
23
+ /** Reads the current subject through Communication `$summary`; it performs no ingestion. */
24
+ requestClinicalSummary(ctx, input) {
25
+ return requireClientMethod(this.client, 'requestClinicalSummary')(ctx, input);
26
+ }
23
27
  /** Registers one FHIR resource or raw artifact on blockchain before communication. */
24
28
  registerBlockchainArtifactAndUpdateIndex(ctx, input) {
25
29
  return requireClientMethod(this.client, 'registerBlockchainArtifactAndUpdateIndex')(ctx, input);
@@ -2,7 +2,7 @@ import { type ProfessionalEmployeeCredentialInput, type ProfessionalSmartVpPaylo
2
2
  import { type NodeRuntimeClient, type PollOptions, type SubmitAndPollResult, type SubmitPayload } from './client-port.js';
3
3
  import type { RouteContext } from '../individual-onboarding.js';
4
4
  import type { SmartTokenExchangeResult, SmartTokenRequestInput } from '../smart-token.js';
5
- import type { BlockchainArtifactRegistrationInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, ClinicalBundleSearchInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, VitalSignBatchCommunicationFromSearchResponseInput } from '../resource-operations.js';
5
+ import type { BlockchainArtifactRegistrationInput, CommunicationIngestionInput, CommunicationParticipantRuntimeSearchInput, ClinicalBundleSearchInput, ClinicalSummaryReadResult, ClinicalSummaryRequestInput, GrantProfessionalAccessInput, GrantProfessionalAccessResult, VitalSignBatchCommunicationFromSearchResponseInput } from '../resource-operations.js';
6
6
  /**
7
7
  * Professional-oriented facade for runtime actions that belong to the
8
8
  * professional actor itself after tenant and employee provisioning have already
@@ -59,6 +59,8 @@ export declare class ProfessionalSdk {
59
59
  * session and tenant route context.
60
60
  */
61
61
  searchClinicalBundle(ctx: RouteContext, input: ClinicalBundleSearchInput): Promise<SubmitAndPollResult>;
62
+ /** Reads the consent-authorized clinical `$summary` document without ingestion. */
63
+ requestClinicalSummary(ctx: RouteContext, input: ClinicalSummaryRequestInput): Promise<ClinicalSummaryReadResult>;
62
64
  /**
63
65
  * Reads the latest IPS-oriented document projection available to the
64
66
  * professional actor for one subject.
@@ -67,6 +67,10 @@ export class ProfessionalSdk {
67
67
  searchClinicalBundle(ctx, input) {
68
68
  return requireClientMethod(this.client, 'searchClinicalBundle')(ctx, input);
69
69
  }
70
+ /** Reads the consent-authorized clinical `$summary` document without ingestion. */
71
+ requestClinicalSummary(ctx, input) {
72
+ return requireClientMethod(this.client, 'requestClinicalSummary')(ctx, input);
73
+ }
70
74
  /**
71
75
  * Reads the latest IPS-oriented document projection available to the
72
76
  * professional actor for one subject.
@@ -1,10 +1,12 @@
1
1
  import type { DeviceAppType } from 'gdc-common-utils-ts/constants/device';
2
+ import { type ClinicalSummaryReadResult, type ClinicalSummaryRequestInput } from 'gdc-sdk-core-ts';
2
3
  import type { LicenseOfferSearchState, LicenseOrderSearchState } from 'gdc-common-utils-ts/utils/license-commercial-search';
3
4
  import type { LicenseListSearchState } from 'gdc-common-utils-ts/utils/license-list-search';
4
5
  import type { BundleSearchQuery, CommMsgExtendedCommunicationOutboxJob, CommunicationOutboxJob, CommunicationInput, DateRange, EmployeeSearchValue, IndividualOrganizationLifecycleInput, TransportProfile } from 'gdc-sdk-core-ts';
5
6
  import type { BundleEntry, BundleJsonApi } from 'gdc-common-utils-ts/models/bundle';
6
7
  import type { SubmitAndPollResult } from './orchestration/client-port.js';
7
8
  import type { RouteContext } from './individual-onboarding.js';
9
+ export type { ClinicalSummaryReadResult, ClinicalSummaryRequestInput, } from 'gdc-sdk-core-ts';
8
10
  export type OrganizationEmployeeCreationInput = {
9
11
  /**
10
12
  * Canonical employee/person claims sent to CORE GW.
@@ -675,6 +677,19 @@ export declare function searchCommunicationParticipantsWithDeps(routeCtx: RouteC
675
677
  intervalMs?: number;
676
678
  }) => Promise<SubmitAndPollResult>;
677
679
  }): Promise<SubmitAndPollResult>;
680
+ /**
681
+ * Requests the subject's available clinical document through the canonical
682
+ * auditable read lifecycle:
683
+ *
684
+ * `Communication -> Subject/$summary -> FHIR Parameters -> Bundle document`.
685
+ *
686
+ * The dependency name intentionally says `submit`, not `ingest`: GW receives a
687
+ * Communication transport record, but the business operation is a read and
688
+ * must not be exposed to applications as index ingestion.
689
+ */
690
+ export declare function requestClinicalSummaryWithDeps(routeCtx: RouteContext, input: ClinicalSummaryRequestInput, deps: {
691
+ submitSummaryCommunication: (ctx: RouteContext, input: CommunicationIngestionInput) => Promise<SubmitAndPollResult>;
692
+ }): Promise<ClinicalSummaryReadResult>;
678
693
  export declare function searchClinicalBundleWithDeps(routeCtx: RouteContext, input: ClinicalBundleSearchInput, deps: {
679
694
  bundleSearchPath: (ctx: RouteContext) => string;
680
695
  bundleSearchPollPath: (ctx: RouteContext) => string;
@@ -757,4 +772,3 @@ export declare function generateDigitalTwinFromSubjectDataWithDeps(routeCtx: Rou
757
772
  }) => Promise<SubmitAndPollResult>;
758
773
  }): Promise<SubmitAndPollResult>;
759
774
  export declare function normalizeCommunicationPathFormatSegment(raw?: string): string;
760
- export {};
@@ -3,7 +3,7 @@ import { HealthcareBasicSections, ResourceTypesFhirR4 } from 'gdc-common-utils-t
3
3
  import { Format } from 'gdc-common-utils-ts/constants/Schemas';
4
4
  import { RelatedPersonClaim } from 'gdc-common-utils-ts/models/interoperable-claims/related-person-claims';
5
5
  import { buildCommunicationParticipantSearchBundle, buildBlockchainArtifactDocumentReference, BundleQuery, createInteroperableResourceOperationEditor, IndividualOrganizationLifecycleEditor, LicenseOfferSearchEditor, LicenseOrderSearchEditor, InteroperableLifecycleStatuses, LicenseListSearchEditor, buildLicenseIssueEntry, buildLicensePurchaseEntry, } from 'gdc-common-utils-ts';
6
- import { addFhirResourceToCommunication, createCommunicationResource, } from 'gdc-sdk-core-ts';
6
+ import { addFhirResourceToCommunication, createCommunicationResource, buildClinicalSummaryCommunicationJob, readClinicalSummaryOperationResult, } from 'gdc-sdk-core-ts';
7
7
  import { GwCoreLifecycleRequestMethod, GwCoreLifecycleRequestType, GwCoreLifecycleTodo, } from './constants/lifecycle.js';
8
8
  import { buildEmployeeBatchEntry, buildEmployeeSearchBundle, ConsentClaims, } from 'gdc-sdk-core-ts';
9
9
  export async function createOrganizationEmployeeWithDeps(routeCtx, input, options, deps) {
@@ -390,6 +390,26 @@ export async function searchCommunicationParticipantsWithDeps(routeCtx, input, d
390
390
  };
391
391
  return deps.submitAndPoll(deps.communicationSearchPath(routeCtx), deps.communicationSearchPollPath(routeCtx), payload, input.pollOptions);
392
392
  }
393
+ /**
394
+ * Requests the subject's available clinical document through the canonical
395
+ * auditable read lifecycle:
396
+ *
397
+ * `Communication -> Subject/$summary -> FHIR Parameters -> Bundle document`.
398
+ *
399
+ * The dependency name intentionally says `submit`, not `ingest`: GW receives a
400
+ * Communication transport record, but the business operation is a read and
401
+ * must not be exposed to applications as index ingestion.
402
+ */
403
+ export async function requestClinicalSummaryWithDeps(routeCtx, input, deps) {
404
+ const communicationJob = buildClinicalSummaryCommunicationJob(input);
405
+ const operation = await deps.submitSummaryCommunication(routeCtx, {
406
+ communicationJob,
407
+ clinicalFormat: input.clinicalFormat || 'api',
408
+ transportProfile: input.transportProfile,
409
+ pollOptions: input.pollOptions,
410
+ });
411
+ return readClinicalSummaryOperationResult(operation);
412
+ }
393
413
  export async function searchClinicalBundleWithDeps(routeCtx, input, deps) {
394
414
  const query = buildBundleSearchQuery(input);
395
415
  const payload = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gdc-sdk-node-ts",
3
- "version": "2.3.2",
3
+ "version": "2.3.4",
4
4
  "description": "Next-generation Node runtime package for the GDC SDK family",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Antifraud Services Inc.",
@@ -13,6 +13,7 @@
13
13
  "scripts": {
14
14
  "build": "tsc -p tsconfig.json",
15
15
  "type-check": "tsc -p tsconfig.json --noEmit",
16
+ "prepublishOnly": "npm run type-check && npm test",
16
17
  "local:close": "PORTS=3000 bash ./scripts/local-close.sh",
17
18
  "docker:close": "PORTS=8000 bash ./scripts/local-close.sh",
18
19
  "test": "npm run build && node --test tests/*.test.mjs",