Medical Scribe Dictation#
Convert unstructured physician dictation into professionally formatted SOAP (Subjective, Objective, Assessment, Plan) notes with medical terminology normalization and clinical quality assurance.
When to Use#
- Use this skill when the task is to Convert physician verbal dictation into structured SOAP notes. Trigger.
- Use this skill for academic writing tasks that require explicit assumptions, bounded scope, and a reproducible output format.
- Use this skill when you need a documented fallback path for missing inputs, execution errors, or partial evidence.
Key Features#
See ## Features above for related details.
- Scope-focused workflow aligned to: Convert physician verbal dictation into structured SOAP notes. Trigger.
- Packaged executable path(s):
scripts/main.py.
- Reference material available in
references/ for task-specific guidance.
- Structured execution path designed to keep outputs consistent and reviewable.
Dependencies#
openai or anthropic - LLM for structure extraction
spacy + scispacy - Medical NLP processing
faster-whisper (optional) - Local STT
pydantic - Data validation
Example Usage#
See ## Usage above for related details.
bash
cd "20260318/scientific-skills/Academic Writing/medical-scribe-dictation"
python -m py_compile scripts/main.py
python scripts/main.py --help
Example run plan:
- Confirm the user input, output path, and any required config values.
- Edit the in-file
CONFIG block or documented parameters if the script uses fixed settings.
- Run
python scripts/main.py with the validated inputs.
- Review the generated output and return the final artifact with any assumptions called out.
Implementation Details#
See ## Workflow above for related details.
- Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable.
- Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script.
- Primary implementation surface:
scripts/main.py.
- Reference guidance:
references/ contains supporting rules, prompts, or checklists.
- Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints.
- Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects.
Quick Check#
Use this command to verify that the packaged script entry point can be parsed before deeper execution.
bash
python -m py_compile scripts/main.py
Audit-Ready Commands#
Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.
bash
python -m py_compile scripts/main.py
python scripts/main.py --help
python scripts/main.py -h
python scripts/main.py --help
Workflow#
- Confirm the user objective, required inputs, and non-negotiable constraints before doing detailed work.
- Validate that the request matches the documented scope and stop early if the task would require unsupported assumptions.
- Use the packaged script path or the documented reasoning path with only the inputs that are actually available.
- Return a structured result that separates assumptions, deliverables, risks, and unresolved items.
- If execution fails or inputs are incomplete, switch to the fallback path and state exactly what blocked full completion.
Features#
- Speech-to-Text Processing: Transcribe audio or process pre-transcribed text
- SOAP Structure Generation: Auto-organize clinical content into standard sections
- Medical Terminology Handling: Normalize abbreviations, expand acronyms, verify drug names
- Clinical Quality Checks: Flag missing required elements, suggest clarifications
- Multi-Specialty Support: Adaptable templates for internal medicine, surgery, pediatrics, etc.
Usage#
Processing Pre-Transcribed Text#
text
python scripts/main.py --input "patient presents with..." --output-format soap
Processing Audio File (requires whisper/faster-whisper)#
text
python scripts/main.py --audio consultation.wav --output note.md
Python API#
python
from scripts.main import MedicalScribe
scribe = MedicalScribe(specialty="internal_medicine")
soap_note = scribe.process_dictation(transcription_text)
print(soap_note.to_markdown())
Parameters#
ParameterTypeDefaultDescriptioninputstring-Raw transcribed text or path to text fileaudiostring-Path to audio file (wav/mp3/m4a)specialtystring"general"Medical specialty for context hintsoutput-formatstring"soap"Output format: soap, ehr, narrativelanguagestring"auto"Language code (en/zh/es/...)confidence-thresholdfloat0.85Minimum confidence for auto-acceptance
SOAP Output Structure#
markdown
# Clinical Note - [Date]
## Subjective
Chief Complaint:
History of Present Illness:
Review of Systems:
Past Medical History:
Medications:
Allergies:
Social History:
Family History:
## Objective
Vital Signs:
Physical Examination:
Diagnostic Studies:
## Assessment
Primary Diagnosis:
Differential Diagnoses:
Clinical Reasoning:
## Plan
Diagnostic:
Therapeutic:
Patient Education:
Follow-up:
Technical Architecture#
Components#
- Transcription Module (optional): Whisper-based STT with medical vocabulary fine-tuning
- Segmentation Engine: NLP-based section identification and content classification
- Terminology Processor: Medical NER (Named Entity Recognition) and normalization
- SOAP Assembler: Structured output generation with specialty-specific formatting
- Quality Validator: Completeness checks and clinical red-flag detection
Technical Difficulty#
High - Requires medical domain expertise, complex NLP pipelines, and clinical validation.
Known Limitations#
- Medical terminology accuracy depends on speech clarity
- Ambiguous dictation may require human clarification
- Drug name verification recommended before finalizing
- Does not replace physician review for critical cases
References#
See references/ for:
soap-templates.md - Specialty-specific SOAP templates
medical-abbreviations.json - Common abbreviation mappings
terminology-sources.md - Medical ontology references (SNOMED CT, ICD-10)
example-cases.md - Sample dictations with expected outputs
Safety Notes#
⚠️ Clinical Validation Required: All generated notes must be reviewed by the attending physician before entering the medical record.
⚠️ No Diagnostic Authority: This tool structures clinical information but does not provide diagnostic suggestions.
Risk Assessment#
Risk IndicatorAssessmentLevelCode ExecutionPython/R scripts executed locallyMediumNetwork AccessNo external API callsLowFile System AccessRead input files, write output filesMediumInstruction TamperingStandard prompt guidelinesLowData ExposureOutput files saved to workspaceLow
Security Checklist#
- No hardcoded credentials or API keys
- No unauthorized file system access (../)
- Output does not expose sensitive information
- Prompt injection protections in place
- Input file paths validated (no ../ traversal)
- Output directory restricted to workspace
- Script execution in sandboxed environment
- Error messages sanitized (no stack traces exposed)
- Dependencies audited
Prerequisites#
text
# Python dependencies
pip install -r requirements.txt
Evaluation Criteria#
Success Metrics#
- Successfully executes main functionality
- Output meets quality standards
- Handles edge cases gracefully
- Performance is acceptable
Test Cases#
- Basic Functionality: Standard input → Expected output
- Edge Case: Invalid input → Graceful error handling
- Performance: Large dataset → Acceptable processing time
Lifecycle Status#
-
Current Stage: Draft
-
Next Review Date: 2026-03-06
-
Known Issues: None
-
Planned Improvements:
- Performance optimization
- Additional feature support
Output Requirements#
Every final response should make these items explicit when they are relevant:
- Objective or requested deliverable
- Inputs used and assumptions introduced
- Workflow or decision path
- Core result, recommendation, or artifact
- Constraints, risks, caveats, or validation needs
- Unresolved items and next-step checks
Error Handling#
- If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
- If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
- If
scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.
- Do not fabricate files, citations, data, search results, or execution outcomes.
This skill accepts requests that match the documented purpose of medical-scribe-dictation and include enough context to complete the workflow safely.
Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:
medical-scribe-dictation only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.
Response Template#
Use the following fixed structure for non-trivial requests:
- Objective
- Inputs Received
- Assumptions
- Workflow
- Deliverable
- Risks and Limits
- Next Checks
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.