Medical Entity Extractor
v1.0.0Extract medical entities (symptoms, medications, lab values, diagnoses) from patient messages.
MIT-0
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
Name, description, and SKILL.md outputs align with a medical-entity-extraction purpose — the extraction fields and examples are coherent. However, the skill references using the Claude API/Anthropic model while declaring no required credentials, endpoints, or environment variables, which is inconsistent with the stated purpose of local processing.
Instruction Scope
The SKILL.md stays focused on extracting medical entities and does not instruct access to unrelated files or system paths. But it contains a direct contradiction: 'All processing happens locally via OpenClaw' followed immediately by 'No data is sent to external services (except Claude API for LLM processing)'. That grants the skill broad discretion to send sensitive PHI to an external LLM without describing where/how API credentials are supplied or where data would be transmitted.
Install Mechanism
Instruction-only skill with no install spec and no code files — lowest install risk. Nothing is downloaded or written to disk by an installer in the package.
Credentials
Requires no environment variables or credentials in registry metadata, yet recommends and explicitly references an external Anthropic model (Claude Sonnet 4.5). Sending data to an external LLM normally requires API credentials/config and network access; the absence of declared env vars or configuration guidance is a proportionality and transparency gap. Also, the skill intends to process sensitive medical (PHI) data but provides no guidance about HIPAA/compliance or how to keep data local.
Persistence & Privilege
always is false and there is no indication the skill requests persistent system-wide privileges or modifies other skills. Autonomous invocation is allowed (platform default) but not combined with 'always:true' or other elevated privileges.
What to consider before installing
This skill appears to do what it says (medical entity extraction) but contains a key contradiction: it claims local processing while also recommending the Claude API/Anthropic model and gives no instructions for supplying API keys or controlling network use. Before installing or using it: 1) Confirm whether your OpenClaw setup will run the LLM locally or will send text to Anthropic; if it's the latter, get details on network endpoints and where API keys are configured. 2) Never run this on real patient-identifiable data until you verify where data will be transmitted and whether the external service and your organization meet legal/compliance (e.g., HIPAA) requirements. 3) Ask the publisher for source code or a provenance URL (there is no homepage/source listed) and for explicit instructions on how to configure model selection and credentials. 4) If you must process real PHI, prefer a verified local model or an explicitly approved, contractually-secure external endpoint and test first with de-identified data. If the publisher cannot clarify where data goes or how credentials are provided, treat the skill as unsafe for sensitive patient data.Like a lobster shell, security has layers — review code before you run it.
latest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
Medical Entity Extractor
Extract structured medical information from unstructured patient messages.
What This Skill Does
- Symptom Extraction: Identifies symptoms, severity, duration, and progression
- Medication Extraction: Finds medication names, dosages, frequencies, and side effects
- Lab Value Extraction: Parses lab results, vital signs, and measurements
- Diagnosis Extraction: Identifies mentioned diagnoses and conditions
- Temporal Extraction: Captures when symptoms started, how long they've lasted
- Action Items: Identifies requested actions (appointments, refills, questions)
Input Format
[
{
"id": "msg-123",
"priority_score": 78,
"priority_bucket": "P1",
"subject": "Medication side effects",
"from": "patient@example.com",
"date": "2026-02-27T10:30:00Z",
"body": "I've been feeling dizzy since starting the new blood pressure medication (Lisinopril 10mg) three days ago. My BP this morning was 145/92."
}
]
Output Format
[
{
"id": "msg-123",
"entities": {
"symptoms": [
{
"name": "dizziness",
"severity": "moderate",
"duration": "3 days",
"onset": "since starting new medication"
}
],
"medications": [
{
"name": "Lisinopril",
"dosage": "10mg",
"frequency": null,
"context": "new medication"
}
],
"lab_values": [
{
"type": "blood_pressure",
"value": "145/92",
"unit": "mmHg",
"timestamp": "this morning"
}
],
"diagnoses": [
{
"name": "hypertension",
"context": "implied by blood pressure medication"
}
],
"action_items": [
{
"type": "medication_review",
"reason": "possible side effect (dizziness)"
}
]
},
"summary": "Patient reports dizziness after starting Lisinopril 10mg 3 days ago. BP elevated at 145/92. Possible medication side effect requiring review."
}
]
Entity Types
Symptoms
- Name, severity (mild/moderate/severe), duration, onset, progression (improving/stable/worsening)
Medications
- Name, dosage, frequency, route, context (new/existing/stopped)
Lab Values
- Type (BP, glucose, cholesterol, etc.), value, unit, timestamp, normal range
Diagnoses
- Name, context (confirmed/suspected/ruled out)
Vital Signs
- Temperature, heart rate, respiratory rate, oxygen saturation, blood pressure
Action Items
- Type (appointment, refill, question, callback), urgency, reason
Medical Terminology Handling
The skill recognizes:
- Common abbreviations (BP, HR, RR, O2 sat, etc.)
- Brand and generic medication names
- Lay terms for medical conditions ("sugar" → diabetes, "heart attack" → MI)
- Temporal expressions ("since yesterday", "for the past week")
Integration
This skill can be invoked via the OpenClaw CLI:
openclaw skill run medical-entity-extractor --input '[{"id":"msg-1","priority_score":78,...}]' --json
Or programmatically:
const result = await execFileAsync('openclaw', [
'skill', 'run', 'medical-entity-extractor',
'--input', JSON.stringify(scoredMessages),
'--json'
]);
Recommended Model: Claude Sonnet 4.5 (openclaw models set anthropic/claude-sonnet-4-5)
Privacy & Security
- All processing happens locally via OpenClaw
- No data is sent to external services (except Claude API for LLM processing)
- Extracted entities remain in your local environment
Files
1 totalSelect a file
Select a file to preview.
Comments
Loading comments…
