five

Patient Matching Middleware API

收藏
RapidAPI2026-04-13 更新2026-04-15 收录
下载链接:
https://rapidapi.com/Everonu/api/patient-matching-middleware-api
下载链接
链接失效反馈
官方服务:
资源简介:
Deterministic patient matching API. Resolve duplicates, cluster likely matches, and generate merge suggestions from demographics only—no external lookups.
创建时间:
2026-04-13
原始信息汇总

Patient Matching Middleware API 数据集概述

基本信息

  • API名称: Patient Matching Middleware API
  • 提供商: everonu
  • 类别: Medical
  • 当前版本: v1
  • 基础URL: https://matchpulse.p.rapidapi.com/v1
  • 认证方式: 在请求头中提供 x-rapidapi-key: YOUR_RAPIDAPI_KEYContent-Type: application/json

核心功能描述

Patient Matching Middleware API 是一个确定性的、可解释的患者匹配引擎,用于健康IT工作流。它仅使用人口统计数据(无需外部数据源,非黑盒机器学习)来匹配、聚类和去重患者记录。

核心能力包括

  • 单次与批量匹配:将候选者与名册或存储的索引进行评分。每个结果都包含每字段因素、冲突和推荐操作(链接、审查或创建新记录)。
  • 聚类检测:提交患者列表并获取分组的重复项及其置信度分数。
  • 合并建议:提供两条记录,接收包含冲突解决和风险说明的逐字段合并计划。
  • 标准化:在匹配前清理和标准化姓名、电话号码和地址。
  • 租户索引:可选择存储患者以进行跨会话的索引匹配,默认情况下为脱敏存储。
  • 审计日志:每个API调用都记录有元数据(无PHI)以供合规。

匹配工作原理:跨名字、姓氏、出生日期、电话、电子邮件、地址和标识符使用加权Jaro-Winkler相似度。分数映射到四个确定性决策:no_matchpossible_matchlikely_matchexact_match。支持每个请求自定义阈值。

默认隐私设计

  • no_store: true — 除非您选择加入,否则不会持久化任何内容。
  • redact_output: true — 默认情况下从响应中剥离PII。
  • 审计事件不包含任何PHI。

集成构建:可与任何FHIR、HL7或自定义EHR管道协同工作。您提供患者数据;MatchPulse处理匹配逻辑。适用于中间件层、数据迁移工具和MPI实现。

定价层级

功能 免费 ($0/月) 专业版 ($25/月) 超值版 ($75/月) 超级版 ($150/月)
请求数/月 200 25,000 100,000 5,500,000
速率限制 10 请求/分钟 60 请求/分钟 240 请求/分钟 600 请求/分钟
索引模式 25K 患者 500K 患者 5M 患者
审计保留 30 天 90 天 180 天

所有计划均通过RapidAPI计费。所有匹配端点默认 no_store=true — 除非您明确启用保留,否则不会持久化PHI。

患者对象模式

json { "patient_id": "string (optional)", "first_name": "string (required)", "last_name": "string (required)", "dob": "YYYY-MM-DD (required)", "sex": "M | F | X | U (optional)", "phone": "string (optional)", "email": "string (optional)", "address": { "line1": "string", "city": "string", "state": "string", "postal": "string", "country": "string" }, "identifiers": { "mrn": "string", "external_id": "string" } }

评分与决策

引擎使用跨人口统计数据的加权Jaro-Winkler相似度,默认阈值如下:

决策 分数范围 推荐操作
no_match < 0.65 create_new
possible_match 0.65 – 0.79 human_review
likely_match 0.80 – 0.92 human_review
exact_match ≥ 0.93 merge_candidate

字段权重:dob 25%、last_name 20%、first_name 15%、phone 15%、address 10%、email 8%、identifiers 5%、sex 2%。阈值可通过 options.thresholds 对象在每个请求中自定义。

端点列表

健康检查

  • 端点: GET /health
  • 描述: 健康检查。无需认证。
  • 请求示例: curl https://matchpulse.p.rapidapi.com/v1/health
  • 成功响应 (200): json { "ok": true, "service": "matchpulse", "version": "1.0.0", "timestamp": "2026-04-13T12:00:00.000Z" }

患者匹配

  • 端点: POST /patient/match

  • 描述: 将单个候选者与患者名册进行匹配。返回最佳匹配项,包含可解释的分数、因素、冲突和推荐操作。

  • 模式:

    • inline — 您在请求中提供名册。
    • indexed — 与您预上传的患者索引匹配(需要专业版及以上层级并启用保留)。
  • 请求示例: bash curl -X POST https://matchpulse.p.rapidapi.com/v1/patient/match -H "x-rapidapi-key: YOUR_KEY" -H "Content-Type: application/json" -d { "candidate": { "first_name": "Jane", "last_name": "Smith", "dob": "1985-03-15", "phone": "555-0142" }, "mode": "inline", "roster": [ { "patient_id": "p1", "first_name": "Janet", "last_name": "Smith", "dob": "1985-03-15", "phone": "5550142" }, { "patient_id": "p2", "first_name": "Jane", "last_name": "Smyth", "dob": "1985-03-15" } ], "options": { "max_results": 5, "no_store": true } }

  • 成功响应 (200): json { "decision": "likely_match", "match_score": 0.8721, "best_matches": [ { "patient_id": "p1", "score": 0.8721, "decision": "likely_match", "factors": [ { "field": "dob", "contribution": 0.25, "evidence": "exact" }, { "field": "last_name", "contribution": 0.20, "evidence": "exact" }, { "field": "phone", "contribution": 0.15, "evidence": "normalized exact" }, { "field": "first_name", "contribution": 0.1388, "evidence": "JaroWinkler 0.926" } ], "conflicts": [], "recommended_action": "human_review" } ], "request_id": "a1b2c3d4-..." }

批量患者匹配

  • 端点: POST /patient/match/bulk

  • 描述: 在单个调用中将多个候选者与共享名册进行匹配。每个候选者独立评分。最多200个候选者,最多2000条名册记录。

  • 请求示例: bash curl -X POST https://matchpulse.p.rapidapi.com/v1/patient/match/bulk -H "x-rapidapi-key: YOUR_KEY" -H "Content-Type: application/json" -d { "candidates": [ { "first_name": "Jane", "last_name": "Smith", "dob": "1985-03-15" }, { "first_name": "Robert", "last_name": "Johnson", "dob": "1972-08-22" } ], "roster": [ { "patient_id": "p1", "first_name": "Janet", "last_name": "Smith", "dob": "1985-03-15" }, { "patient_id": "p2", "first_name": "Bob", "last_name": "Johnson", "dob": "1972-08-22" } ] }

  • 成功响应 (200): json { "results": [ { "candidate_index": 0, "decision": "likely_match", "match_score": 0.87, "best_matches": [ ... ] }, { "candidate_index": 1, "decision": "possible_match", "match_score": 0.72, "best_matches": [ ... ] } ], "request_id": "b2c3d4e5-..." }

患者聚类

  • 端点: POST /patient/cluster

  • 描述: 使用不相交集检测患者列表中的重复聚类。将可能指向同一个人的患者分组。最多2000名患者。

  • 请求示例: bash curl -X POST https://matchpulse.p.rapidapi.com/v1/patient/cluster -H "x-rapidapi-key: YOUR_KEY" -H "Content-Type: application/json" -d { "patients": [ { "patient_id": "p1", "first_name": "John", "last_name": "Doe", "dob": "1990-01-01" }, { "patient_id": "p2", "first_name": "Jon", "last_name": "Doe", "dob": "1990-01-01" }, { "patient_id": "p3", "first_name": "Jane", "last_name": "Smith", "dob": "1985-05-20" } ], "options": { "threshold": 0.80 } }

  • 成功响应 (200): json { "clusters": [ { "cluster_id": "c1", "members": ["p1", "p2"], "confidence": 0.91, "summary": "last_name: exact + dob: exact + first_name: JaroWinkler 0.933" } ], "request_id": "c3d4e5f6-..." }

合并建议

  • 端点: POST /patient/merge/suggest

  • 描述: 为两个被识别为重复的患者生成合并计划。返回要保留的字段、要合并的字段、任何需要手动审查的冲突以及风险说明。

  • 请求示例: bash curl -X POST https://matchpulse.p.rapidapi.com/v1/patient/merge/suggest -H "x-rapidapi-key: YOUR_KEY" -H "Content-Type: application/json" -d { "primary": { "first_name": "John", "last_name": "Doe", "dob": "1990-01-01", "phone": "555-1234", "email": "john@example.com", "identifiers": { "mrn": "MRN001" } }, "duplicate": { "first_name": "Jon", "last_name": "Doe", "dob": "1990-01-01", "phone": "555-5678", "email": "jdoe@example.com" } }

  • 成功响应 (200): json { "merge_plan": { "keep_fields": { "dob": "1990-01-01", "first_name": "John", "last_name": "Doe", "mrn": "MRN001" }, "merge_fields": { "phones": ["5551234", "5555678"], "emails": ["john@example.com", "jdoe@example.com"] }, "conflicts": [ { "field": "email", "primary": "john@example.com", "duplicate": "jdoe@example.com", "resolution": "manual_review" } ] }, "risk_notes": [ "Identity resolution aid; human review recommended for ambiguous matches." ], "request_id": "d4e5f6g7-..." }

姓名标准化

  • 端点: POST /normalize/name

  • 描述: 标准化患者姓名 — 转换为小写,去除特殊字符,压缩空白。

  • 请求示例: bash curl -X POST https://matchpulse.p.rapidapi.com/v1/normalize/name -H "x-rapidapi-key: YOUR_KEY" -H "Content-Type: application/json" -d { "value": " OBrien-Smith " }

  • 成功响应 (200): json { "original": " OBrien-Smith ", "normalized": "obrien-smith", "type": "name", "request_id": "e5f6g7h8-..." }

电话标准化

  • 端点: POST /normalize/phone

  • 描述: 标准化电话号码 — 去除格式,移除国家代码前缀 1

  • 请求示例: bash curl -X POST https://matchpulse.p.rapidapi.com/v1/normalize/phone -H "x-rapidapi-key: YOUR_KEY" -H "Content-Type: application/json" -d { "value": "+1 (555) 014-2000" }

  • 成功响应 (200): json { "original": "+1 (555) 014-2000", "normalized": "5550142000", "type": "phone", "request_id": "f6g7h8i9-..." }

地址标准化

  • 端点: POST /normalize/address

  • 描述: 标准化地址 — 转换为小写,缩写街道类型(Street→st, Avenue→ave等),去除标点,分词以便比较。

  • 请求示例: bash curl -X POST https://matchpulse.p.rapidapi.com/v1/normalize/address -H "x-rapidapi-key: YOUR_KEY" -H "Content-Type: application/json" -d { "address": { "line1": "123 North Main Street, Apt. 4B", "city": "Springfield", "state": "IL", "postal": "62704" } }

  • 成功响应 (200): json { "original": { "line1": "123 North Main Street, Apt. 4B", "city": "Springfield", "state": "IL", "postal": "62704" }, "normalized": { "tokens": ["123", "n", "main", "st", "apt", "4b"], "city": "springfield", "state": "il", "postal": "62704" }, "type": "address", "request_id": "g7h8i9j0-..." }

索引更新/插入

  • 端点: POST /index/upsert

  • 描述: 将患者上传到您的租户索引,以便与 indexed 匹配模式一起使用。需要专业版及以上层级和 retention: true

  • 请求示例: bash curl -X POST https://matchpulse.p.rapidapi.com/v1/index/upsert -H "x-rapidapi-key: YOUR_KEY" -H "Content-Type: application/json" -d { "patients": [ { "patient_id": "p100", "first_name": "Alice", "last_name": "Wong", "dob": "1992-07-14", "phone": "555-9999" } ], "options": { "retention": true } }

  • 成功响应 (200): json { "upserted": 1, "request_id": "h8i9j0k1-..." }

索引删除

  • 端点: POST /index/delete

  • 描述: 按ID从您的租户索引中移除患者。

  • 请求示例: bash curl -X POST https://matchpulse.p.rapidapi.com/v1/index/delete -H "x-rapidapi-key: YOUR_KEY" -H "Content-Type: application/json" -d { "action": "delete", "patient_ids": ["p100"] }

  • 成功响应 (200): json { "deleted": 1, "request_id": "i9j0k1l2-..." }

索引统计

  • 端点: GET /index/stats
  • 描述: 获取您的租户患者索引的统计信息。
  • 请求示例: curl https://matchpulse.p.rapidapi.com/v1/index/stats -H "x-rapidapi-key: YOUR_KEY"
  • 成功响应 (200): json { "total_patients": 1, "last_updated": "2026-04-13T12:00:00.000Z", "request_id": "j0k1l2m3-..."
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作