Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Extract medical entities (symptoms, medications, lab values, diagnoses) from patient messages.
Extract medical entities (symptoms, medications, lab values, diagnoses) from patient messages.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Extract structured medical information from unstructured patient messages.
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)
[ { "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." } ]
[ { "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." } ]
Name, severity (mild/moderate/severe), duration, onset, progression (improving/stable/worsening)
Name, dosage, frequency, route, context (new/existing/stopped)
Type (BP, glucose, cholesterol, etc.), value, unit, timestamp, normal range
Name, context (confirmed/suspected/ruled out)
Temperature, heart rate, respiratory rate, oxygen saturation, blood pressure
Type (appointment, refill, question, callback), urgency, reason
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")
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)
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
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.