{"skill":{"slug":"medical-entity-extractor","displayName":"Medical Entity Extractor","summary":"Extract medical entities (symptoms, medications, lab values, diagnoses) from patient messages.","description":"---\nname: medical-entity-extractor\ndescription: Extract medical entities (symptoms, medications, lab values, diagnoses) from patient messages.\nlicense: MIT\nmetadata:\n  author: \"NAPSTER AI\"\n  maintainer: \"NAPSTER AI\"\n  openclaw:\n    requires:\n      bins: []\n---\n\n# Medical Entity Extractor\n\nExtract structured medical information from unstructured patient messages.\n\n## What This Skill Does\n\n1. **Symptom Extraction**: Identifies symptoms, severity, duration, and progression\n2. **Medication Extraction**: Finds medication names, dosages, frequencies, and side effects\n3. **Lab Value Extraction**: Parses lab results, vital signs, and measurements\n4. **Diagnosis Extraction**: Identifies mentioned diagnoses and conditions\n5. **Temporal Extraction**: Captures when symptoms started, how long they've lasted\n6. **Action Items**: Identifies requested actions (appointments, refills, questions)\n\n## Input Format\n\n```json\n[\n  {\n    \"id\": \"msg-123\",\n    \"priority_score\": 78,\n    \"priority_bucket\": \"P1\",\n    \"subject\": \"Medication side effects\",\n    \"from\": \"patient@example.com\",\n    \"date\": \"2026-02-27T10:30:00Z\",\n    \"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.\"\n  }\n]\n```\n\n## Output Format\n\n```json\n[\n  {\n    \"id\": \"msg-123\",\n    \"entities\": {\n      \"symptoms\": [\n        {\n          \"name\": \"dizziness\",\n          \"severity\": \"moderate\",\n          \"duration\": \"3 days\",\n          \"onset\": \"since starting new medication\"\n        }\n      ],\n      \"medications\": [\n        {\n          \"name\": \"Lisinopril\",\n          \"dosage\": \"10mg\",\n          \"frequency\": null,\n          \"context\": \"new medication\"\n        }\n      ],\n      \"lab_values\": [\n        {\n          \"type\": \"blood_pressure\",\n          \"value\": \"145/92\",\n          \"unit\": \"mmHg\",\n          \"timestamp\": \"this morning\"\n        }\n      ],\n      \"diagnoses\": [\n        {\n          \"name\": \"hypertension\",\n          \"context\": \"implied by blood pressure medication\"\n        }\n      ],\n      \"action_items\": [\n        {\n          \"type\": \"medication_review\",\n          \"reason\": \"possible side effect (dizziness)\"\n        }\n      ]\n    },\n    \"summary\": \"Patient reports dizziness after starting Lisinopril 10mg 3 days ago. BP elevated at 145/92. Possible medication side effect requiring review.\"\n  }\n]\n```\n\n## Entity Types\n\n### Symptoms\n- Name, severity (mild/moderate/severe), duration, onset, progression (improving/stable/worsening)\n\n### Medications\n- Name, dosage, frequency, route, context (new/existing/stopped)\n\n### Lab Values\n- Type (BP, glucose, cholesterol, etc.), value, unit, timestamp, normal range\n\n### Diagnoses\n- Name, context (confirmed/suspected/ruled out)\n\n### Vital Signs\n- Temperature, heart rate, respiratory rate, oxygen saturation, blood pressure\n\n### Action Items\n- Type (appointment, refill, question, callback), urgency, reason\n\n## Medical Terminology Handling\n\nThe skill recognizes:\n- Common abbreviations (BP, HR, RR, O2 sat, etc.)\n- Brand and generic medication names\n- Lay terms for medical conditions (\"sugar\" → diabetes, \"heart attack\" → MI)\n- Temporal expressions (\"since yesterday\", \"for the past week\")\n\n## Integration\n\nThis skill can be invoked via the OpenClaw CLI:\n\n```bash\nopenclaw skill run medical-entity-extractor --input '[{\"id\":\"msg-1\",\"priority_score\":78,...}]' --json\n```\n\nOr programmatically:\n\n```typescript\nconst result = await execFileAsync('openclaw', [\n  'skill', 'run', 'medical-entity-extractor',\n  '--input', JSON.stringify(scoredMessages),\n  '--json'\n]);\n```\n\n**Recommended Model**: Claude Sonnet 4.5 (`openclaw models set anthropic/claude-sonnet-4-5`)\n\n## Privacy & Security\n\n- All processing happens locally via OpenClaw\n- No data is sent to external services (except Claude API for LLM processing)\n- Extracted entities remain in your local environment\n\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":1236,"installsAllTime":15,"installsCurrent":15,"stars":0,"versions":1},"createdAt":1772192877846,"updatedAt":1778491660149},"latestVersion":{"version":"1.0.0","createdAt":1772192877846,"changelog":"Initial release of medical-entity-extractor.\n\n- Extracts structured medical entities (symptoms, medications, lab values, diagnoses, action items) from patient messages.\n- Supports detailed outputs including severity, duration, context, and temporal expressions.\n- Recognizes medical abbreviations, lay terms, and both brand/generic medication names.\n- Designed for local processing with OpenClaw, preserving privacy.\n- Provides both CLI and programmatic integration options.","license":null},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"binubmuse","userId":"s17f8hmqkefr6avrxvkpe22dvd8851fe","displayName":"binubmuse","image":"https://avatars.githubusercontent.com/u/90269022?v=4"},"moderation":null}