SDK
Build with the TS SDK.
Pattern (b) — TypeScript SDK consumed by widgets and direct integrations. Composes substrate-types canonical (ppiaId + PortablePatientIdentityAssertion + AuditSignature.signingParty + SubstrateEventRecord + InclusionProofAttestation). Sandbox-tier release packaging Sprint 9; production-grade Q3 2026.
Install
# npm
npm install @shn/sdk
# pnpm
pnpm add @shn/sdk
# yarn
yarn add @shn/sdkInitialize
import { SmartHealthClient } from '@shn/sdk';
const client = new SmartHealthClient({
apiKey: process.env.SHN_SANDBOX_API_KEY!, // sandbox-... prefix
endpoint: 'https://api-sandbox.smarthealthnetwork.org',
});Federated Prior Auth (UC22)
import { FederatedPriorAuth } from '@shn/sdk/federated-prior-auth';
// Provider files prior auth request (Mode A institutional-operator)
const queryId = await FederatedPriorAuth.fileRequest(client, {
patientPpiaId: 'ppia:...',
encounterId: 'enc:...',
useAuthorityTemplateId: 'UC22-imaging-encounter-prior-auth',
});
// Substrate routes payload-blind to provider's data layer per ADR-031
// Provider's data layer evaluates against Council-published Use Authority template
// Result returns to payer (Mode B) + provider + patient (Mode C); records never leave provider
// Listen for evaluation result via SSE
const subscription = FederatedPriorAuth.subscribeResult(client, queryId, (result) => {
console.log(result.outcome); // 'approved' | 'denied' | 'criteria-not-met'
console.log(result.auditTrail); // PPIA-attested two-views audit chain entry
});Six commitments preserved at SDK layer
- Non-aggregation default — SDK invokes per-operation evaluation; no aggregation pattern
- Federation by default — SDK composes Federated [use case] canonical pattern
- Per-operation authority evaluation — SDK-initiated operations evaluated runtime at smart-gateway per ADR-031
- Patient-fiduciary doctrine — SDK does not generate or transmit patient private key (NO-SHT-BACKDOOR per ADR-032)
- Hub payload-blindness — SDK invocations route through Hub payload-blind transport
- Two-views audit chain — SDK emits substrate-event-records signed at audit-signing-service Step 6 endpoint per ADR-022