Skip to content

Add tobacco, alcohol and drug SDOH determinant extractors #307

Description

@maziyarpanahi

Summary

OM-056 must extract the substance-use SDOH determinants (the SHAC Tobacco, Alcohol, and Drug categories), each with a Status (current/past/none/unknown) and Extent/amount attribute. This is the substance-use slice of the SDOH epic, plugging into the SDOHFinding skeleton. It is high population-health value and rules-tractable on the Social History section. Synthetic/public schema only; real SHAC stays DUA eval-only.

Scope

  • Register tobacco, alcohol, and drug determinant extractors against the clinical/sdoh.py registry, each emitting SDOHFinding(category, status, extent/amount, temporality).
  • Detect trigger cues per category (e.g. tobacco: 'smoker', 'pack-years', 'quit'; alcohol: 'drinks', 'ETOH', 'denies alcohol'; drug: 'IVDU', 'denies illicit drugs') and parse Status none/current/past + amount (pack-years, drinks/week).
  • Reuse the OM-041 negation/temporality results when available to set status (e.g. 'denies tobacco' -> none, 'former smoker' -> past) and degrade gracefully without context.
  • Tests: '30 pack-year smoker, quit 2010' -> tobacco status=past, extent=30 pack-years; 'denies alcohol' -> alcohol status=none; 'occasional IVDU' -> drug status=current.

Acceptance criteria

  • Tobacco/alcohol/drug extractors emit SDOHFinding with correct category, status (none/current/past), and parsed extent (test across the listed examples).
  • Status reflects negation/temporality cues (denies->none, former->past).
  • Extractors register via the SDOH registry without editing the dispatcher.
  • test suite green: .venv/bin/python -m pytest tests/ -q

Out of scope

  • Employment and housing/food determinants (sibling tasks).
  • Training on real SHAC (DUA, eval-only).
  • The SDOHFinding schema/skeleton itself (consumed).

Files

  • openmed/clinical/sdoh.py
  • openmed/clinical/data/sdoh_substance_cues.yaml
  • tests/unit/clinical/test_sdoh_substance.py

Task: OM-142 · Milestone: Backlog · Priority: P2 · Size: M
Depends on: — · Blocks: —
Roadmap: section 5.5 (lines 664-674, SHAC Alcohol/Tobacco/Drug); decomposes OM-056
Spec: PLANS/V2/EXECUTION/tasks/OM-142.md

Metadata

Metadata

Assignees

Labels

P2Mediumcontributor-reservedReserved for external/community contributors; automation must skipfeatureNew capabilitygood first issueGood for newcomershelp wantedExtra attention is neededroadmap-v2OpenMed V2 roadmap backlog

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions