Healthcare Eval Harness

作者 affaan-mef648e01899b无许可证275K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库3天前更新

ヘルスケアAIモデル評価ハーネス、臨床メトリクス、およびレギュレーション遵守の検証。

AI 生成的概览

定义五类医疗测试框架及通过阈值,用于把关临床应用的部署。

功能
该技能提供运行医疗评估框架的说明,用于在部署前验证临床软件。它定义五个测试类别——CDSS 准确性、PHI 泄露、数据完整性、临床工作流和集成合规——每类对应一个测试路径模式和要求的通过率。它提供示例命令、通过/失败矩阵、CI/CD 流水线配置、反模式以及评估报告示例格式。其产出是根据关键门禁是否达到 100%、高优先级门禁是否达到 95% 而给出的部署结论。
适用场景
适用于部署 EMR/EHR 应用之前、修改临床决策支持逻辑、患者数据模式或访问控制之后,以及为医疗应用配置 CI/CD 流水线时。也用于解决临床模块中的合并冲突之后。
运行要求
需要测试运行器(示例使用 Jest,但类别被描述为与框架无关)、Node.js 和 npm,以及用于通过率计算的 shell 工具 jq 和 bc。该技能不附带脚本,仅为说明文档,并假定已存在按所引用测试路径组织的测试套件。

Healthcare Eval Harness — Patient Safety Verification

Automated verification system for healthcare application deployments. A single CRITICAL failure blocks deployment. Patient safety is non-negotiable.

Note: Examples use Jest as the reference test runner. Adapt commands for your framework (Vitest, pytest, PHPUnit, etc.) — the test categories and pass thresholds are framework-agnostic.

When to Use

  • Before any deployment of EMR/EHR applications
  • After modifying CDSS logic (drug interactions, dose validation, scoring)
  • After changing database schemas that touch patient data
  • After modifying authentication or access control
  • During CI/CD pipeline configuration for healthcare apps
  • After resolving merge conflicts in clinical modules

How It Works

The eval harness runs five test categories in order. The first three (CDSS Accuracy, PHI Exposure, Data Integrity) are CRITICAL gates requiring 100% pass rate — a single failure blocks deployment. The remaining two (Clinical Workflow, Integration) are HIGH gates requiring 95%+ pass rate.

Each category maps to a Jest test path pattern. The CI pipeline runs CRITICAL gates with --bail (stop on first failure) and enforces coverage thresholds with --coverage --coverageThreshold.

Eval Categories

1. CDSS Accuracy (CRITICAL — 100% required)

Tests all clinical decision support logic: drug interaction pairs (both directions), dose validation rules, clinical scoring vs published specs, no false negatives, no silent failures.

bash
npx jest --testPathPattern='tests/cdss' --bail --ci --coverage

2. PHI Exposure (CRITICAL — 100% required)

Tests for protected health information leaks: API error responses, console output, URL parameters, browser storage, cross-facility isolation, unauthenticated access, service role key absence.

bash
npx jest --testPathPattern='tests/security/phi' --bail --ci

3. Data Integrity (CRITICAL — 100% required)

Tests clinical data safety: locked encounters, audit trail entries, cascade delete protection, concurrent edit handling, no orphaned records.

bash
npx jest --testPathPattern='tests/data-integrity' --bail --ci

4. Clinical Workflow (HIGH — 95%+ required)

Tests end-to-end flows: encounter lifecycle, template rendering, medication sets, drug/diagnosis search, prescription PDF, red flag alerts.

bash
tmp_json=$(mktemp)npx jest --testPathPattern='tests/clinical' --ci --json --outputFile="$tmp_json" || truetotal=$(jq '.numTotalTests // 0' "$tmp_json")passed=$(jq '.numPassedTests // 0' "$tmp_json")if [ "$total" -eq 0 ]; then  echo "No clinical tests found" >&2  exit 1firate=$(echo "scale=2; $passed * 100 / $total" | bc)echo "Clinical pass rate: ${rate}% ($passed/$total)"

5. Integration Compliance (HIGH — 95%+ required)

Tests external systems: HL7 message parsing (v2.x), FHIR validation, lab result mapping, malformed message handling.

bash
tmp_json=$(mktemp)npx jest --testPathPattern='tests/integration' --ci --json --outputFile="$tmp_json" || truetotal=$(jq '.numTotalTests // 0' "$tmp_json")passed=$(jq '.numPassedTests // 0' "$tmp_json")if [ "$total" -eq 0 ]; then  echo "No integration tests found" >&2  exit 1firate=$(echo "scale=2; $passed * 100 / $total" | bc)echo "Integration pass rate: ${rate}% ($passed/$total)"

Pass/Fail Matrix

CategoryThresholdOn Failure
CDSS Accuracy100%BLOCK deployment
PHI Exposure100%BLOCK deployment
Data Integrity100%BLOCK deployment
Clinical Workflow95%+WARN, allow with review
Integration95%+WARN, allow with review

CI/CD Integration

yaml
name: Healthcare Safety Gateon: [push, pull_request]
jobs:  safety-gate:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: actions/setup-node@v4        with:          node-version: '20'      - run: npm ci
      # CRITICAL gates — 100% required, bail on first failure      - name: CDSS Accuracy        run: npx jest --testPathPattern='tests/cdss' --bail --ci --coverage --coverageThreshold='{"global":{"branches":80,"functions":80,"lines":80}}'
      - name: PHI Exposure Check        run: npx jest --testPathPattern='tests/security/phi' --bail --ci
      - name: Data Integrity        run: npx jest --testPathPattern='tests/data-integrity' --bail --ci
      # HIGH gates — 95%+ required, custom threshold check      # HIGH gates — 95%+ required      - name: Clinical Workflows        run: |          TMP_JSON=$(mktemp)          npx jest --testPathPattern='tests/clinical' --ci --json --outputFile="$TMP_JSON" || true          TOTAL=$(jq '.numTotalTests // 0' "$TMP_JSON")          PASSED=$(jq '.numPassedTests // 0' "$TMP_JSON")          if [ "$TOTAL" -eq 0 ]; then            echo "::error::No clinical tests found"; exit 1          fi          RATE=$(echo "scale=2; $PASSED * 100 / $TOTAL" | bc)          echo "Pass rate: ${RATE}% ($PASSED/$TOTAL)"          if (( $(echo "$RATE < 95" | bc -l) )); then            echo "::warning::Clinical pass rate ${RATE}% below 95%"          fi
      - name: Integration Compliance        run: |          TMP_JSON=$(mktemp)          npx jest --testPathPattern='tests/integration' --ci --json --outputFile="$TMP_JSON" || true          TOTAL=$(jq '.numTotalTests // 0' "$TMP_JSON")          PASSED=$(jq '.numPassedTests // 0' "$TMP_JSON")          if [ "$TOTAL" -eq 0 ]; then            echo "::error::No integration tests found"; exit 1          fi          RATE=$(echo "scale=2; $PASSED * 100 / $TOTAL" | bc)          echo "Pass rate: ${RATE}% ($PASSED/$TOTAL)"          if (( $(echo "$RATE < 95" | bc -l) )); then            echo "::warning::Integration pass rate ${RATE}% below 95%"          fi

Anti-Patterns

  • Skipping CDSS tests "because they passed last time"
  • Setting CRITICAL thresholds below 100%
  • Using --no-bail on CRITICAL test suites
  • Mocking the CDSS engine in integration tests (must test real logic)
  • Allowing deployments when safety gate is red
  • Running tests without --coverage on CDSS suites

Examples

Example 1: Run All Critical Gates Locally

bash
npx jest --testPathPattern='tests/cdss' --bail --ci --coverage && \npx jest --testPathPattern='tests/security/phi' --bail --ci && \npx jest --testPathPattern='tests/data-integrity' --bail --ci

Example 2: Check HIGH Gate Pass Rate

bash
tmp_json=$(mktemp)npx jest --testPathPattern='tests/clinical' --ci --json --outputFile="$tmp_json" || truejq '{  passed: (.numPassedTests // 0),  total: (.numTotalTests // 0),  rate: (if (.numTotalTests // 0) == 0 then 0 else ((.numPassedTests // 0) / (.numTotalTests // 1) * 100) end)}' "$tmp_json"# Expected: { "passed": 21, "total": 22, "rate": 95.45 }

Example 3: Eval Report

## Healthcare Eval: 2026-03-27 [commit abc1234]
### Patient Safety: PASS
| Category | Tests | Pass | Fail | Status ||----------|-------|------|------|--------|| CDSS Accuracy | 39 | 39 | 0 | PASS || PHI Exposure | 8 | 8 | 0 | PASS || Data Integrity | 12 | 12 | 0 | PASS || Clinical Workflow | 22 | 21 | 1 | 95.5% PASS || Integration | 6 | 6 | 0 | PASS |
### Coverage: 84% (target: 80%+)### Verdict: SAFE TO DEPLOY

来源与署名

来源:affaan-m/ecc位于docs/ja-JP/skills/healthcare-eval-harness提交ef648e0

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架