openevidence-data-handling
Outlines data classification and retention policies to ensure HIPAA compliance for clinical AI queries.
Install
mkdir -p .claude/skills/openevidence-data-handling && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5474" && unzip -o skill.zip -d .claude/skills/openevidence-data-handling && rm skill.zipInstalls to .claude/skills/openevidence-data-handling
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Data Handling for OpenEvidence.Key capabilities
- →De-identify clinical query text using regex patterns
- →Validate clinical queries for PHI and length constraints
- →Enforce data retention schedules for clinical evidence
- →Apply AES-256 encryption to PHI and patient-contextualized data
- →Export evidence summaries with post-processing de-identification
How it works
The skill provides functions to sanitize clinical queries by replacing identifiers like MRNs and SSNs with redacted placeholders before transmission. It also enforces data lifecycle policies, including specific retention periods and encryption standards for different clinical data types.
Inputs & outputs
When to use openevidence-data-handling
- →Configuring data retention policies
- →Implementing PHI de-identification
- →Ensuring HIPAA compliance
- →Securing clinical evidence data flows
About this skill
OpenEvidence Data Handling
Overview
OpenEvidence provides AI-powered clinical evidence synthesis for healthcare professionals. Data types include clinical queries (potentially containing PHI), evidence citations from medical literature, patient-contextualized responses, research paper references, and usage analytics. All data handling must comply with HIPAA (PHI safeguards, minimum necessary standard, BAA requirements), GDPR for EU clinicians, and FDA guidance on clinical decision support. Query data may contain patient identifiers, diagnoses, or treatment details that require de-identification before storage or analytics.
Data Classification
| Data Type | Sensitivity | Retention | Encryption |
|---|---|---|---|
| Clinical queries (may contain PHI) | Critical | De-identify within 24h, purge raw in 7 days | AES-256 + TLS, field-level for PHI |
| Evidence citations | Low | Indefinite (public literature) | TLS in transit |
| Patient-contextualized responses | High (derived PHI) | 30 days max, then de-identify | AES-256 at rest |
| Research paper metadata | Low | Indefinite | TLS in transit |
| Clinician usage analytics | Medium | 1 year (de-identified) | AES-256 at rest |
Data Import
interface ClinicalQuery {
queryId: string; clinicianId: string; queryText: string;
patientContext?: { age?: number; sex?: string; conditions?: string[] };
timestamp: string;
}
async function submitClinicalQuery(query: ClinicalQuery): Promise<string> {
const sanitized = { ...query, queryText: deidentifyPHI(query.queryText) };
const res = await fetch('https://api.openevidence.com/v1/query', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.OPENEVIDENCE_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify(sanitized),
});
return (await res.json()).evidenceId;
}
function deidentifyPHI(text: string): string {
return text
.replace(/\b(MRN|mrn)[:\s]?\d{6,}\b/g, '[MRN_REDACTED]')
.replace(/\b\d{3}-\d{2}-\d{4}\b/g, '[SSN_REDACTED]')
.replace(/\b(DOB|dob)[:\s]?\d{1,2}\/\d{1,2}\/\d{2,4}\b/g, '[DOB_REDACTED]')
.replace(/\b[A-Z][a-z]+ [A-Z][a-z]+, (MD|DO|NP|PA)\b/g, '[PROVIDER_REDACTED]');
}
Data Export
async function exportEvidenceSummary(queryIds: string[]) {
const summaries = [];
for (const id of queryIds) {
const res = await fetch(`https://api.openevidence.com/v1/evidence/${id}`, {
headers: { Authorization: `Bearer ${process.env.OPENEVIDENCE_API_KEY}` },
});
const data = await res.json();
summaries.push({ queryId: id, citations: data.citations,
summary: deidentifyPHI(data.summary), confidence: data.confidenceScore });
}
return summaries;
}
Data Validation
function validateClinicalQuery(q: ClinicalQuery): string[] {
const errors: string[] = [];
if (!q.queryId) errors.push('Missing query ID');
if (!q.clinicianId) errors.push('Missing clinician identifier');
if (!q.queryText || q.queryText.length < 10) errors.push('Query too short for meaningful evidence retrieval');
if (q.queryText.length > 5000) errors.push('Query exceeds 5000 char limit');
if (/\b\d{3}-\d{2}-\d{4}\b/.test(q.queryText)) errors.push('CRITICAL: SSN detected in query text');
if (/\b(MRN|mrn)[:\s]?\d{6,}\b/.test(q.queryText)) errors.push('CRITICAL: MRN detected in query text');
if (q.timestamp && isNaN(Date.parse(q.timestamp))) errors.push('Invalid timestamp');
return errors;
}
Compliance
- HIPAA: BAA executed with OpenEvidence before any PHI transmission
- HIPAA: PHI de-identified using Safe Harbor method before storage/analytics
- HIPAA: Minimum necessary standard enforced — only transmit required clinical context
- HIPAA: Audit trail for all PHI access with clinician ID, timestamp, and query purpose
- HIPAA: Breach notification procedure documented (72-hour window)
- GDPR: EU clinician data subject rights (access, erasure, portability)
- FDA: Clinical decision support disclaimer included in all evidence responses
- Data retention: raw queries purged at 7 days, de-identified analytics retained 1 year
Error Handling
| Issue | Cause | Fix |
|---|---|---|
| PHI detected in stored query | De-identification regex missed a pattern | Add pattern to deidentifyPHI, re-scan stored queries |
| API 403 on query submission | BAA not on file or expired API credentials | Verify BAA status, rotate API key |
| Evidence response contains patient name | Upstream model hallucinated PHI | Post-process all responses through de-identification before display |
| Audit log gap | Logging service outage during query window | Replay from API request logs, flag gap in compliance report |
| Export exceeds size limit | Too many citations in bulk export | Paginate export, limit to 50 evidence summaries per request |
Resources
Next Steps
See openevidence-security-basics.
When not to use it
- →Transmitting PHI without an executed BAA
- →Storing raw clinical queries beyond the 7-day limit
- →Processing queries exceeding the 5000 character limit
Prerequisites
Limitations
- →De-identification relies on regex and may miss patterns
- →Bulk exports are limited to 50 evidence summaries per request
- →Raw clinical queries must be purged within 7 days
How it compares
Unlike standard API integrations, this workflow mandates specific de-identification regex patterns and strict retention schedules to maintain HIPAA and GDPR compliance.
Compared to similar skills
openevidence-data-handling side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| openevidence-data-handling (this skill) | 1 | 27d | Review | Intermediate |
| security-header-generator | 5 | 9mo | Caution | Intermediate |
| backend-security-coder | 24 | 4mo | No flags | Intermediate |
| api-security-best-practices | 15 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
security-header-generator
Dexploarer
Generates security HTTP headers (CSP, HSTS, CORS, etc.) for web applications to prevent common attacks. Use when user asks to "add security headers", "setup CSP", "configure CORS", "secure headers", or "HSTS setup".
backend-security-coder
sickn33
Expert in secure backend coding practices specializing in input validation, authentication, and API security. Use PROACTIVELY for backend security implementations or security code reviews.
api-security-best-practices
davila7
Implement secure API design patterns including authentication, authorization, input validation, rate limiting, and protection against common API vulnerabilities
springboot-security
affaan-m
Spring Security best practices for authn/authz, validation, CSRF, secrets, headers, rate limiting, and dependency security in Java Spring Boot services.
windows-kernel-security
gmh5225
Guide for Windows kernel security research including driver development, system callbacks, security features, and kernel exploitation. Use this skill when working with Windows drivers, PatchGuard, DSE, or kernel-level security mechanisms.
django-security
affaan-m
Django security best practices, authentication, authorization, CSRF protection, SQL injection prevention, XSS prevention, and secure deployment configurations.