Convert physician verbal dictation into structured SOAP notes. Trigger.
Convert unstructured physician dictation into professionally formatted SOAP (Subjective, Objective, Assessment, Plan) notes with medical terminology normalization and clinical quality assurance.
See ## Features above for related details.
scripts/main.py.references/ for task-specific guidance.openai or anthropic - LLM for structure extractionspacy + scispacy - Medical NLP processingfaster-whisper (optional) - Local STTpydantic - Data validationSee ## Usage above for related details.
cd "20260318/scientific-skills/Academic Writing/medical-scribe-dictation"
python -m py_compile scripts/main.py
python scripts/main.py --help
Example run plan:
CONFIG block or documented parameters if the script uses fixed settings.python scripts/main.py with the validated inputs.See ## Workflow above for related details.
scripts/main.py.references/ contains supporting rules, prompts, or checklists.Use this command to verify that the packaged script entry point can be parsed before deeper execution.
python -m py_compile scripts/main.py
Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.
python -m py_compile scripts/main.py
python scripts/main.py --help
python scripts/main.py -h
python scripts/main.py --help
python scripts/main.py --input "patient presents with..." --output-format soap
python scripts/main.py --audio consultation.wav --output note.md
from scripts.main import MedicalScribe
scribe = MedicalScribe(specialty="internal_medicine")
soap_note = scribe.process_dictation(transcription_text)
print(soap_note.to_markdown())
| Parameter | Type | Default | Description |
|---|---|---|---|
input | string | - | Raw transcribed text or path to text file |
audio | string | - | Path to audio file (wav/mp3/m4a) |
specialty | string | "general" | Medical specialty for context hints |
output-format | string | "soap" | Output format: soap, ehr, narrative |
language | string | "auto" | Language code (en/zh/es/...) |
confidence-threshold | float | 0.85 | Minimum confidence for auto-acceptance |
# 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:
High - Requires medical domain expertise, complex NLP pipelines, and clinical validation.
See references/ for:
soap-templates.md - Specialty-specific SOAP templatesmedical-abbreviations.json - Common abbreviation mappingsterminology-sources.md - Medical ontology references (SNOMED CT, ICD-10)example-cases.md - Sample dictations with expected outputs⚠️ 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 Indicator | Assessment | Level |
|---|---|---|
| Code Execution | Python/R scripts executed locally | Medium |
| Network Access | No external API calls | Low |
| File System Access | Read input files, write output files | Medium |
| Instruction Tampering | Standard prompt guidelines | Low |
| Data Exposure | Output files saved to workspace | Low |
# Python dependencies
pip install -r requirements.txt
Every final response should make these items explicit when they are relevant:
scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.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-dictationonly handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.
Use the following fixed structure for non-trivial requests:
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.