Install any skill in seconds. Free to start, no credit card required.
Get Started Free →電子医療記録(EMR)パターン、相互運用性、およびHL7/FHIR統合。
.claude/skills/affaan-m-healthcare-emr-patterns/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 51% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 73% | 0% |
构建电子病历(EMR)和电子健康档案(EHR)系统的模式。优先考虑患者安全、临床准确性和医生工作效率。
每个设计决策必须通过以下问题评估:"这会对患者造成伤害吗?"
临床就诊应在单页上垂直流动——无需切换标签页:
患者头部信息(固定显示 — 始终可见)
├── 人口学信息、过敏史、当前用药
│
就诊流程(垂直滚动)
├── 1. 主诉(结构化模板 + 自由文本)
├── 2. 现病史
├── 3. 体格检查(按系统分类)
├── 4. 生命体征(自动触发临床评分)
├── 5. 诊断(ICD-10/SNOMED 搜索)
├── 6. 用药(药品数据库 + 相互作用检查)
├── 7. 检查(实验室/影像学医嘱)
├── 8. 计划与随访
└── 9. 签名 / 锁定 / 打印typescriptinterface ClinicalTemplate { id: string; name: string; // e.g., "Chest Pain" chips: string[]; // clickable symptom chips requiredFields: string[]; // mandatory data points redFlags: string[]; // triggers non-dismissable alert icdSuggestions: string[]; // pre-mapped diagnosis codes }
任何模板中的危险信号必须触发可见且不可关闭的警报——而非通知提示。
用户选择药物
→ 检查当前用药是否存在相互作用
→ 检查就诊用药是否存在相互作用
→ 检查患者过敏史
→ 根据体重/年龄/肾功能验证剂量
→ 若为严重相互作用:完全阻止开药
→ 临床医生必须记录覆盖理由才能继续操作
→ 若为重大相互作用:显示警告,要求确认
→ 将所有警报和覆盖理由记录在审计追踪中关键相互作用默认阻止开药。临床医生必须明确覆盖,并在审计追踪中记录原因。系统绝不允许静默通过关键相互作用。
临床就诊一旦签署:
生命体征显示: 当前值带正常范围高亮(绿/黄/红),与上次对比的趋势箭头,自动计算的临床评分(NEWS2、qSOFA),内联升级指导。
检验结果展示: 正常范围高亮,与上次值对比,关键值带不可关闭警报,采集/分析时间戳,待处理医嘱及预期周转时间。
处方PDF: 一键生成,包含患者基本信息、过敏史、诊断、药物详情(通用名+商品名、剂量、给药途径、频率、疗程)、临床医生签名栏。
医疗界面的要求比典型网页应用更严格:
any类型处理临床数据结构医生为患者 #4521 开启接诊
→ 固定头部显示:"Rajesh M, 58岁, 男性, 过敏史: 青霉素, 当前用药: 二甲双胍 500mg"
→ 主诉:选择"胸痛"模板
→ 点击标签:"胸骨后", "向左臂放射", "压榨性"
→ 红色预警"压榨性胸骨后胸痛"触发不可关闭的警报
→ 检查:心血管系统 — "S1 S2 正常,无杂音"
→ 生命体征:心率 110, 血压 90/60, 血氧饱和度 94%
→ NEWS2 自动计算:评分 8, 风险 高, 显示升级警报
→ 诊断:搜索"ACS" → 选择 ICD-10 I21.9
→ 用药:选择阿司匹林 300mg
→ CDSS 检查与二甲双胍的相互作用:无相互作用
→ 签署接诊 → 锁定,此后仅可添加补充说明医生为患者 #4521 开具华法林处方
→ CDSS 检测到:华法林 + 阿司匹林 = 严重相互作用
→ 用户界面:红色不可关闭的模态框阻止开药
→ 医生点击“输入理由并覆盖”
→ 输入:“获益大于风险 — 已监测 INR 方案”
→ 覆盖理由及警报记录在审计追踪中
→ 处方在记录覆盖后继续执行Encounter #E-2024-0891 signed by Dr. Shah at 14:30
→ All fields locked — no edit buttons visible
→ "Add Addendum" button available
→ Dr. Shah clicks addendum, adds: "Lab results received — Troponin elevated"
→ New record E-2024-0891-A1 linked to original
→ Timeline shows both: original encounter + addendum with timestamps| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 33,959 | 29,482 | -13% | 1 | 1 | 0% | 4,902 | 6,231 | +27% | 0 | 0 | — |
case-02 | pass→pass | 32,317 | 24,222 | -25% | 1 | 1 | 0% | 4,076 | 5,421 | +33% | 0 | 0 | — |
case-03 | pass→pass | 22,771 | 24,456 | +7% | 1 | 1 | 0% | 3,624 | 5,547 | +53% | 0 | 0 | — |
case-04 | pass→pass | 34,887 | 21,032 | -40% | 1 | 1 | 0% | 3,451 | 5,058 | +47% | 0 | 0 | — |
case-05 | fail→pass | 22,716 | 20,577 | -9% | 1 | 1 | 0% | 3,318 | 5,003 | +51% | 0 | 0 | — |
case-06 | pass→pass | 21,321 | 19,467 | -9% | 1 | 1 | 0% | 2,982 | 4,534 | +52% | 0 | 0 | — |
case-07 | fail→pass | 23,267 | 24,607 | +6% | 1 | 1 | 0% | 4,165 | 6,088 | +46% | 0 | 0 | — |
case-08 | fail→fail | 26,205 | 22,247 | -15% | 1 | 1 | 0% | 3,644 | 4,856 | +33% | 0 | 0 | — |
case-09 | fail→pass | 29,792 | 26,347 | -12% | 1 | 1 | 0% | 4,556 | 6,093 | +34% | 0 | 0 | — |
case-10 | pass→pass | 23,352 | 23,048 | -1% | 1 | 1 | 0% | 3,523 | 5,110 | +45% | 0 | 0 | — |
case-11 | pass→pass | 24,501 | 22,306 | -9% | 1 | 1 | 0% | 3,675 | 5,251 | +43% | 0 | 0 | — |
case-12 | pass→pass | 31,103 | 22,051 | -29% | 1 | 1 | 0% | 3,190 | 4,616 | +45% | 0 | 0 | — |
case-13 | pass→pass | 25,733 | 20,912 | -19% | 1 | 1 | 0% | 3,966 | 4,641 | +17% | 0 | 0 | — |
case-14 | pass→pass | 21,006 | 18,198 | -13% | 1 | 1 | 0% | 2,905 | 4,325 | +49% | 0 | 0 | — |
case-15 | fail→fail | 20,558 | 19,451 | -5% | 1 | 1 | 0% | 2,941 | 4,265 | +45% | 0 | 0 | — |
case-16 | pass→pass | 26,612 | 26,390 | -1% | 1 | 1 | 0% | 3,885 | 6,005 | +55% | 0 | 0 | — |
case-17 | pass→pass | 21,231 | 19,194 | -10% | 1 | 1 | 0% | 3,094 | 4,657 | +51% | 0 | 0 | — |
case-18 | fail→pass | 34,462 | 30,206 | -12% | 1 | 1 | 0% | 2,946 | 5,093 | +73% | 0 | 0 | — |
case-19 | fail→pass | 26,499 | 28,542 | +8% | 1 | 1 | 0% | 3,690 | 5,896 | +60% | 0 | 0 | — |
case-20 | pass→pass | 26,852 | 29,003 | +8% | 1 | 1 | 0% | 4,896 | 7,613 | +55% | 0 | 0 | — |
case-21 | pass→pass | 25,390 | 24,955 | -2% | 1 | 1 | 0% | 4,618 | 6,360 | +38% | 0 | 0 | — |
case-22 | pass→fail | 23,137 | 21,911 | -5% | 1 | 1 | 0% | 4,197 | 5,690 | +36% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.