跳到正文
cccskills
Claude 官方免费在 GitHub 公开

clinical-note-extract-skill

Extract structured data from clinical notes with span-level provenance and null-safety. Use when users say "extract [variables] from this note", "abstract this chart", "pull structured data from these notes", "what does this note say about [field]", or when building a chart-abstraction, registry, or cohort dataset from unstructured clinical text.

中文简介正在准备中。当前显示原文说明。

实测评分 未实测

查看安装方法

包含的文件(13)

  • SKILL.md5.9 KB
  • assets/sample-note.md1.6 KB
  • assets/sample-schemas/ade.json724 B
  • assets/sample-schemas/pft.json1.3 KB
  • README.md5.2 KB
  • references/01-define-schema.md3.0 KB
  • references/02-extract.md3.0 KB
  • references/03-review.md1.5 KB
  • references/assertion-classes.md2.8 KB
  • references/failure-modes.md3.5 KB
  • references/rules.md3.5 KB
  • scripts/batch.ts2.8 KB
  • workflows/extract-batch.js2.8 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Clinical Note Extraction

Structured extraction from clinical notes against a user-defined schema, with span citations for every value and explicit nulls for every absence. One note or many — the path is the same: an isolated no-tools worker extracts each note, then a deterministic validation pass verifies spans and codes.

This is the extraction primitive that care-gap reasoning, adverse-event detection, trial-eligibility screening, prior-auth evidence assembly, and registry abstraction sit on.

Steps

1  Define schema   — references/01-define-schema.md
2  Extract         — workflows/extract-batch.js (one isolated worker per note)
3  Validate        — span check + run each field's `check`
4  Report          — references/03-review.md

Step 1 — Define schema

Read references/01-define-schema.md. Turn the user's request into a schema: each field is {desc, finding?, check?}. desc says what to look for in the note's own terms; finding: true means classify assertion; check is how step 3 validates (open-ended — {kind: "terminology"|"range"|"date"|"pattern"|"enum"|..., ...params}). Confirm with the user before extracting.

Step 2 — Extract

However the user supplied notes — pasted text, file paths, a directory, PDFs, a FHIR connector, a database query — resolve each to plain text using whatever tools you have, then call the saved workflow with one {id, text} per note. The workflow's input contract is the only strict piece; how you get there is yours to figure out. It runs one note-extract-worker agent per note (no tools — note text is untrusted), each following references/rules.md, and returns one schema-enforced record per note:

Workflow({
  scriptPath: "<this skill dir>/workflows/extract-batch.js",
  args: {
    notes:  [{id, text}, ...],     // one or many
    schema: <the schema from step 1>,
    rules:  <Read references/rules.md verbatim>
  }
})

Workers have no tools — they return only what they read (value, span, presence/temporality/experiencer, null_reason, unit). All checks happen in step 3. Because note text rides inline in args, the workflow path tops out at a few dozen notes per call. For larger corpora, run bun <this skill dir>/scripts/batch.ts <notes-dir> <schema.json> records.jsonl instead — it reads files in trusted code and spawns one tool-disabled extraction per note with the same rules, then resume at step 3 over the resulting records.jsonl.

Step 3 — Validate

Runs here in the calling session. Deterministic — no model judgment. For every record:

  1. Span check. For every non-null field, confirm span appears verbatim in that note's source text. Attach span_verified.
  2. Run each field's check. Dispatch on check.kind:
    • terminology — dedupe (check.via, value) across all records, look each up via whatever connector answers to via, attach {code, code_status, display}. No connector for that via → code_status: "unvalidated", name it in the report.
    • range — value vs [min, max] and unit vs check.unit; attach range_flag.
    • date — confirm value parses as a date; attach date_ok.
    • pattern / enum — match; attach check_ok.
    • other / no check — nothing to attach.

A field is trustworthy when span_verified and its check (if any) passed. Adding a check kind = add a branch here; nothing upstream changes.

Step 4 — Report

Read references/03-review.md. Produce one row per (note, field): note_id | field | value | presence/temporality/experiencer | span | check. Below it, the completion summary: fields requested / populated / null, and per check.kind what passed vs flagged (name any terminology via that lacked a connector). Never let a failed check or unverified span pass silently.

Offer to write records + report to ~/.claude/data/healthcare/clinical-note-extract/<run-id>/. That directory is local working state, not an archive: do not copy it to shared drives or external systems without the user's explicit instruction, and tell the user it can be deleted once they have what they need — extracted records carry whatever PHI was in the source notes.

Output contract

Worker emits, per field: {value, span, location, presence?, temporality?, experiencer?, null_reason?, unit?} — only what it read. Step 3 attaches span_verified plus whatever the field's check produced (code/code_status/display for terminology, range_flag for range, etc.).

Optional — export as FHIR

If the user wants FHIR resources instead of flat records, the assertion axes map directly:

recordFHIR
experiencer != patientFamilyMemberHistory.condition (not Condition)
presence: absent → verificationStatus: refuted; possible → unconfirmed; present → confirmedCondition.verificationStatus
temporality: historical → inactive; current → activeCondition.clinicalStatus
temporality: hypotheticalno native field — omit, or use a RiskAssessment resource
value + terminology check resultCondition.code as a CodeableConcept ({text: value, coding: [{system, code, display}]})
span + locationCondition.note or a provenance extension

This is a deterministic transform over the validated records — no model call. Offer it when the user names FHIR as the target; otherwise the flat records are the default.

Prerequisites

Connectors for whatever check.via values the schema names. Missing ones don't block extraction — those fields stay unvalidated and the report names them.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Generate clinical trial protocols for medical devices or drugs. This skill should be used when users say "Create a clinical trial protocol", "Generate protocol for [device/drug]", "Help me design a clinical study", "Research similar trials for [intervention]", or when developing FDA submission documentation for investigational products.

中文简介正在准备中。当前显示原文说明。

anthropics/healthcare4292026年8月27日 更新

contracts

Claude 官方免费

Answer a question across a corpus of contract documents with verified citations. Use when the user asks what a contract says, which contracts have a clause, what changed between amendments, or any question that needs reading and citing across a set of contract files. The corpus must be on the local filesystem (see README).

中文简介正在准备中。当前显示原文说明。

anthropics/healthcare4292026年8月27日 更新

doc-extract

Claude 官方免费

Extract plain text from a document file - PDF, DOCX, XLSX, PPTX, RTF, or plain text/markdown/HTML. Use when a binary document needs to be turned into text, for example a contract PDF or an EHR DocumentReference attachment. Other skills (fhir) invoke scripts/extract.ts directly; the contracts MCP server bundles its own copy (servers/documents/src/extract.mjs) so its bundle stays self-contained — port fixes to both.

中文简介正在准备中。当前显示原文说明。

anthropics/healthcare4292026年8月27日 更新

fhir

Claude 官方免费

Connect to a hospital's FHIR R4 server (Epic, Oracle Health/Cerner, MEDITECH, athenahealth, or any SMART-on-FHIR endpoint), pull a patient's clinical data and notes, and extract structured findings. Use when users say "connect to the EHR", "connect to Epic/Cerner", "pull notes for patient X", "what do the last 6 months of notes say about Y", or any task that starts from a live EHR rather than pasted text.

中文简介正在准备中。当前显示原文说明。

anthropics/healthcare4292026年8月27日 更新

fhir-developer-skill

Claude 官方免费

FHIR API development guide for building healthcare endpoints. Use when: (1) Creating FHIR REST endpoints (Patient, Observation, Encounter, Condition, MedicationRequest), (2) Validating FHIR resources and returning proper HTTP status codes and error responses, (3) Implementing SMART on FHIR authorization and OAuth scopes, (4) Working with Bundles, transactions, batch operations, or search pagination. Covers FHIR R4 resource structures, required fields, value sets (status codes, gender, intent), coding systems (LOINC, SNOMED, RxNorm, ICD-10), and OperationOutcome error handling.

中文简介正在准备中。当前显示原文说明。

anthropics/healthcare4292026年8月27日 更新

fraud-detection

Claude 官方免费

Screen a Medicare/Medicaid claims corpus for fraud, waste, and abuse and produce ranked, fully-cited investigation referrals for an SIU / program-integrity team. Use when asked to run a fraud sweep, screen claims for FWA, find billing anomalies, or generate investigation referrals over a claims dataset.

中文简介正在准备中。当前显示原文说明。

anthropics/healthcare4292026年8月27日 更新

查看 anthropics 的全部技能

报告此技能的问题