Skip to main content

ConsentManager

A widget for displaying, signing, and managing patient consent documents. Supports all four FHIR consent scopes, multiple verifications, and provision rules.

Usage

import { ConsentManager } from '@clinikapi/react';

<ConsentManager
  proxyUrl="/api/clinik"
  patientId="pt_abc123"
  theme="light"
/>

Props

PropTypeRequiredDescription
proxyUrlstringYesBackend proxy URL
patientIdstringYesPatient ID
theme'light' | 'dark'NoColor theme
ScopeDescription
patient-privacyPrivacy and data sharing (HIPAA notices)
researchResearch participation
treatmentTreatment consent
adrAdvance directive

Features

  • Consent document display with scope and category
  • Digital signature capture
  • Status tracking (draft → proposed → active → rejected → inactive)
  • Multiple verification entries
  • Policy URI linking
  • Provision rules (permit/deny) with nested exceptions
  • Source document attachment support

Proxy Action

The widget sends consents.sign with:
{
  "action": "consents.sign",
  "data": {
    "patientId": "pt_abc123",
    "status": "active",
    "scope": "patient-privacy",
    "category": "hipaa-notice",
    "verification": [{
      "verified": true,
      "verifiedWith": "pt_abc123",
      "verificationDate": "2025-01-15T10:00:00Z"
    }]
  }
}

Advanced: Provisions with Data Control

For more complex consent scenarios, your proxy can pass full provision rules:
{
  "provision": {
    "type": "permit",
    "period": { "start": "2025-01-01", "end": "2025-12-31" },
    "purpose": [{ "code": "TREAT", "display": "Treatment" }],
    "action": [{ "code": "access", "display": "Access" }],
    "data": [
      { "meaning": "instance", "reference": "DiagnosticReport/lab_001" }
    ]
  }
}