For clinicians who type their own notes

Nothing listens. Nothing leaves. You stay the author.

MedSeek turns the notes you already type into checked SBAR handovers, SOAP notes, admission H&Ps, and discharge summaries - blocking unsafe drafts until gaps have owners, scoring patient instructions against a 6th-8th grade target, and citing every lookup with source and retrieval date.

dsh plugin --profile web add dsh-medseek@0.1.3
Read the eval report

Requires DeepSeek Harness (free, open source) and Node 22 or later. Restart the web GUI after install.

Runs locally Apache-2.0 No telemetry Hash-chained audit trail

Refuses unsafe drafts

Discharge stays blocked while pending results lack owners. Allergies and medication reconciliation must be explicit at admission. Enforced in code, not suggested.

De-identifies first

HIPAA Safe Harbor category scrubbing with published corpus numbers and an explicit residual-risk statement. It assists de-identification; it does not certify it.

Auditable by construction

Every tool execution writes a content-free hash-chained receipt you can verify yourself. No note text, no queries - digests only.

Who types it

Three shifts, one minute to review

Inpatient staff nurse

12-hour shift, 4 to 6 patients. Handover at both ends — paste flowsheet rows, get an SBAR or I-PASS scaffold, completeness check before you sign. No re-typing from scattered charts.

Weekly: SBAR at handover · MedlinePlus handout before discharge teaching

Hospitalist / resident

Census 12 to 18, daily admits and discharges. Discharge summary refuses to pass while pending results have no owner — fixing the 65% hole Kripalani described. I-PASS for night cross-cover.

Weekly: discharge drafts daily · label lookups on rounds · PubMed for teaching

Outpatient GP

20 plus visits at 15 to 30 minutes, portal inbox that never empties. Patient instructions back to 6th to 8th grade plus an NLM handout in one turn. No portal paste into chatbots required.

Weekly: instruction rewrites · patient education lookups · PubMed checks

All three share one trait from the PRD: they will use a tool weekly only if it starts from text they already have and returns something they can review in under a minute.

Evaluation

Measured on a published corpus, not vibes

95.9%recall* 100%precision 100%detection 0false alarms

*synthetic corpus - regenerate: pnpm eval · Read the eval report →

Numbers with a reproduction path

Measured on a published corpus, not vibes

On our fully synthetic annotated evaluation corpus: identifier recall 95.9%, precision 100%; completeness detection 100% with zero false alarms. Regex detection fails silently in the dangerous direction - so the tool labels uncertainty instead of claiming certification. Regenerate the numbers yourself: pnpm eval. Read the eval report →

How it looks in practice

Paste, scaffold, validate — gaps in plain text

Every drafting tool does the same two-call rhythm. First call returns the checklist and guidance. You draft each field from text already in the conversation. Second call validates: missing required fields, unresolved pending markers, error-prone abbreviations, and an assembled draft with a review banner and a next-step line.

Lookup tools do the inverse: they return source, identifier, link, and retrieval date so the citation survives copy-paste. Empty means no results, never a filled gap.

See the gates → · How we measure → · Audit receipts →

$ sbar_handover_draft({format:"sbar"}) → scaffold SBAR structure (IHI SBAR): Situation (required): one-sentence reason for handover. Background (required): relevant history and context. Assessment (required): problems addressed and risk descriptively. Recommendation (required): what is needed and who owns it. $ sbar_handover_draft({filled_fields:{...}}) → validated DRAFT — review required S: Rapid response, 68M post-PCI day 2, hypotensive B: Afib on apixaban, last troponin 1.2 A: Suspected bleed — Hgb 7.1 down from 9.4 R: Hold next dose pending attending, recheck Hgb 0600 Gaps (0): Structural check passed. Next: Present the draft to the clinician for review.
Enforcement model

Drafts, never directives

MedSeek restructures clinician-supplied text and retrieves public reference material. A named clinician reviews everything before it is used. It does not diagnose, prescribe, compute doses, rank differentials, score drug interactions, or assign billing code levels. It is not a medical device. See the enforcement model →

BLOCKED
pending result - no owner
PASSED
owner assigned - summary completes
Local by design

Local by design

The drafting, checklist, and de-identification tools make zero network calls. Lookup tools send terms and codes only - never identifiers - to exactly nine allowlisted hosts, and an egress guard denies calls whose arguments look like they carry patient identifiers. No telemetry anywhere in the bundle.

  • eutils.ncbi.nlm.nih.gov
  • pmc.ncbi.nlm.nih.gov
  • www.ebi.ac.uk
  • api.fda.gov
  • rxnav.nlm.nih.gov
  • dailymed.nlm.nih.gov
  • connect.medlineplus.gov
  • clinicaltables.nlm.nih.gov
  • clinicaltrials.gov
New in 0.1.3

Feynman parity for the clinical reference surface

Eight additional narrow, citable lookup modes - PMC ID conversion, related articles, Europe PMC search and open-access full-text sections, FAERS adverse events, FDA recalls, Drugs@FDA applications and counts plus pharmacologic classes and generic equivalents, and ClinicalTrials details, eligibility, investigators, and endpoints. Nine allowlisted hosts, twelve lookup tools, seven drafting tools. Read the gap audit →