Developer documentation

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/sdk

Initialize

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