agentleFS
aks129aks129/HealthClawGuardrails/skills/healthex-export-redacted/SKILL.md

healthex-export-redacted

Skill33 starsChanged 4 months agoMITView on GitHub

HealthEx → HealthClaw-redacted export via the official MCP Python SDK (mcp>=1.2). Use when: (1) Pulling fresh clinical data from HealthEx as the upstream source of truth (not from the local HealthClaw store), (2) Writing a PHI-redacted snapshot to disk before any ingest, so the raw MCP response never hits the filesystem, (3) Producing a single-file JSON or NDJSON bundle for downstream import via `/import`, (4) Running the pipeline headlessly from a Telegram bot or cron on the Mac mini. For the older direct-REST pull against the local FHIR store, see the `healthex-export` skill.

The file

Files
SKILL.md

HealthEx Export (MCP, Redacted)

scripts/export_healthex_mcp.py is the current HealthEx pull path. It:

  1. Opens a Streamable HTTP MCP session to https://api.healthex.io/mcp
  2. Optionally calls update_records + check_records_status to refresh
  3. Invokes each clinical tool (get_health_summary, get_conditions, get_medications, get_allergies, get_immunizations, get_vitals, get_labs, get_procedures, get_visits, search_clinical_notes)
  4. Redacts PHI in-process before anything touches disk — via scripts/healthclaw_redact.py, which mirrors the HealthClaw guardrail proxy's redaction rules
  5. Writes the result as JSON (default) or NDJSON (one resource per line)

The raw MCP response is never written. Only the redacted payload goes to disk.

Quick Start

# Set the HealthEx token (use macOS Keychain on the Mac mini)
export HEALTHEX_AUTH_TOKEN="$(security find-generic-password -s healthex -w)"

# Default — all tools, local redaction, single JSON file
python scripts/export_healthex_mcp.py \
    --tenant-id my-tenant \
    --output exports/healthex-$(date +%Y-%m-%d).json

# NDJSON (one line per FHIR resource — easier to diff / grep)
python scripts/export_healthex_mcp.py \
    --tenant-id my-tenant \
    --output exports/healthex-$(date +%Y-%m-%d).ndjson

# Only the tools you need
python scripts/export_healthex_mcp.py \
    --tenant-id my-tenant \
    --output exports/labs-only.json \
    --tools get_labs get_conditions

# Proxy mode — redact via a running HealthClaw guardrail server instead
python scripts/export_healthex_mcp.py \
    --tenant-id my-tenant \
    --output exports/snap.json \
    --redact-mode proxy \
    --healthclaw-url https://healthclaw.io

# Synthetic-only escape hatch (keeps PHI in output — NEVER use on real data)
python scripts/export_healthex_mcp.py \
    --tenant-id desktop-demo \
    --output exports/demo-raw.json \
    --no-redact

Redaction Rules (identical to the HealthClaw proxy)

FieldRule
HumanName.given / family / textCollapsed to initials ("E. V.")
Address.line / city / postalCodeDropped (state + country kept)
Identifier.value (MRN, member, subscriber)SHA-256, optional HEALTHCLAW_REDACT_SALT
birthDateTruncated to YYYY
telecom[].value (phone / email / fax / sms)Replaced with "***"
Patient.photoRemoved entirely
text.div narrativeEmptied
note[] (Condition / Observation / …)Emptied
Generic flat-dict PHI keys (ssn, dob, …)Wiped at any nesting depth
code.coding, valueQuantity, datesPreserved — clinical signal intact

_meta.redaction_stats in the output counts every redaction performed.

Telegram / OpenClaw Integration

Bots call this via the /export slash command registered in scripts/bot_commands.py → cmd_export(). The bot resolves HEALTHEX_AUTH_TOKEN from (1) environment, (2) macOS Keychain service healthex. Output lands in ~/.healthclaw/exports/healthex-<date>.json.

Typical end-to-end flow over Telegram:

  1. /export — pulls HealthEx, redacts, writes bundle
  2. /import <path printed by /export> — ingests into local HealthClaw
  3. /conditions / /labs / /summary — agent reads from local store

Smoke Test

tests/test_healthclaw_redact.py exercises both the redaction rules and the end-to-end export flow against a mocked MCP session. Part of the CI suite:

uv run python -m pytest tests/test_healthclaw_redact.py -v

For a one-off CLI check without pytest, scripts/smoke_test.py runs the same assertions and prints a redaction summary.

Relationship to healthex-export (legacy)

The older healthex-export skill and scripts/export_healthex_legacy.py pull from the local HealthClaw FHIR store via direct REST. Keep for tenant-to-tenant copies. Use this skill when the source of truth is HealthEx itself and you want the MCP SDK + in-process redaction.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.