From abridge-pack
Executes Abridge production readiness checklist for clinical AI deployment in healthcare, validating HIPAA compliance, EHR integration, infrastructure, and provider setup.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin abridge-packThis skill is limited to using the following tools:
Production readiness checklist for deploying Abridge clinical AI in a healthcare organization. Clinical documentation systems are safety-critical — this checklist covers HIPAA compliance, EHR integration validation, provider onboarding, and rollback procedures.
Deploys Abridge clinical AI integration to HIPAA-compliant GCP Cloud Run, AWS ECS, or Azure Container Apps using Docker and secure scripts.
Provides production checklist for OpenEvidence apps: pre-launch steps, TypeScript health check example, monitoring, alerting, and rollback procedures. Useful before SaaS/healthcare deployments.
Provides production deployment checklist for TwinMind integrations, covering authentication, security, data privacy, infrastructure provisioning, and monitoring setup.
Share bugs, ideas, or general feedback.
Production readiness checklist for deploying Abridge clinical AI in a healthcare organization. Clinical documentation systems are safety-critical — this checklist covers HIPAA compliance, EHR integration validation, provider onboarding, and rollback procedures.
// src/prod/readiness-check.ts
interface ReadinessResult {
check: string;
status: 'pass' | 'fail' | 'warn';
detail: string;
}
async function runReadinessChecks(): Promise<ReadinessResult[]> {
const results: ReadinessResult[] = [];
// 1. API connectivity
try {
const res = await fetch(`${process.env.ABRIDGE_BASE_URL}/health`, {
headers: { 'Authorization': `Bearer ${process.env.ABRIDGE_CLIENT_SECRET}` },
});
results.push({ check: 'API Health', status: res.ok ? 'pass' : 'fail', detail: `HTTP ${res.status}` });
} catch (err) {
results.push({ check: 'API Health', status: 'fail', detail: (err as Error).message });
}
// 2. FHIR endpoint
try {
const res = await fetch(`${process.env.EPIC_FHIR_BASE_URL}/metadata`);
results.push({ check: 'FHIR Server', status: res.ok ? 'pass' : 'fail', detail: `HTTP ${res.status}` });
} catch (err) {
results.push({ check: 'FHIR Server', status: 'fail', detail: (err as Error).message });
}
// 3. TLS version
results.push({
check: 'TLS Version',
status: process.env.NODE_TLS_MIN_VERSION === 'TLSv1.3' ? 'pass' : 'warn',
detail: `Min TLS: ${process.env.NODE_TLS_MIN_VERSION || 'not set'}`,
});
// 4. Secrets not in env file
const envFiles = ['.env', '.env.local', '.env.production'];
for (const f of envFiles) {
try {
const content = await import('fs').then(fs => fs.readFileSync(f, 'utf8'));
if (content.includes('ABRIDGE_CLIENT_SECRET')) {
results.push({ check: `Secrets in ${f}`, status: 'fail', detail: 'Credentials in file — use secret manager' });
}
} catch { /* file doesn't exist — good */ }
}
// 5. Audit logging
results.push({
check: 'Audit Logging',
status: process.env.AUDIT_LOG_ENABLED === 'true' ? 'pass' : 'fail',
detail: 'HIPAA requires audit trail for all PHI access',
});
return results;
}
// Run and display
runReadinessChecks().then(results => {
console.log('\n=== Abridge Production Readiness ===\n');
for (const r of results) {
const icon = r.status === 'pass' ? 'PASS' : r.status === 'warn' ? 'WARN' : 'FAIL';
console.log(`[${icon}] ${r.check}: ${r.detail}`);
}
const failures = results.filter(r => r.status === 'fail');
console.log(`\n${failures.length === 0 ? 'READY FOR PRODUCTION' : `${failures.length} BLOCKING ISSUES`}`);
});
#!/bin/bash
# scripts/abridge-rollback.sh
# Rollback Abridge integration — revert to manual documentation
echo "=== Abridge Rollback Procedure ==="
# 1. Disable Abridge in EHR
echo "Step 1: Disable Abridge module in Epic App Orchard"
echo " - Navigate to Epic > Admin > App Orchard > Abridge"
echo " - Set status: DISABLED"
# 2. Notify providers
echo "Step 2: Send notification to enrolled providers"
echo " - Subject: Abridge temporarily offline — use manual documentation"
# 3. Verify EHR still accepts manual notes
echo "Step 3: Verify manual note creation in Epic works"
curl -X POST "${EPIC_FHIR_BASE_URL}/DocumentReference" \
-H "Authorization: Bearer $EPIC_TOKEN" \
-H "Content-Type: application/fhir+json" \
-d '{"resourceType":"DocumentReference","status":"current","content":[{"attachment":{"contentType":"text/plain","data":"'"$(echo 'Manual note test' | base64)"'"}}]}'
echo "=== Rollback Complete ==="
| Metric | Target | Alert Threshold |
|---|---|---|
| Note generation latency | < 30s | > 60s |
| API error rate | < 1% | > 5% |
| Provider adoption | > 80% in 30 days | < 50% |
| Note acceptance rate | > 90% | < 70% |
| Patient summary delivery | < 5s | > 15s |
For version upgrades, see abridge-upgrade-migration.