教程
如何下载代码并运行一次患者匹配。
第 1 步:获取代码
git clone https://github.com/electronic-patient-record/electronic-patient-record.git
cd electronic-patient-record/electronic-patient-record-matcher-with-rust
第 2 步:创建两份记录
患者匹配用于评估两份记录是否指向同一个人。创建一个名为 a.json 的文件:
{"names":[{"family":"Rivers","given":["Morgan"]}],"birth_date":"1980-02-14"}
创建一个名为 b.json 的文件,名字中有一处拼写错误:
{"names":[{"family":"Rivers","given":["Morgen"]}],"birth_date":"1980-02-14"}
第 3 步:运行匹配器
cargo run -- a.json b.json
输出包含一个决定和每个字段的结果:
{ "score": 0.98, "decision": "auto_link", "fields": [
{ "field": "family_name", "similarity": 1.0, "note": "similarity 1.00" },
{ "field": "given_name", "similarity": 0.93, "note": "similarity 0.93" },
{ "field": "birth_date", "similarity": 1.0, "note": "similarity 1.00" },
{ "field": "sex", "similarity": null, "note": "sex unknown on one or both records" }
] }
以上输出已缩短。sex 缺失,因此相似度为 null,不计入得分。
第 4 步:删除一个字段
从 b.json 中删除 "birth_date" 字段,保持 JSON 有效,然后再次运行。姓名仍然匹配,得分仍然较高,但决定变为 review,需要人工检查。conflicts 给出了原因:birth date not available to confirm the link。
这些阈值尚未经过验证。
第 5 步:运行测试
cargo test
第 6 步:后续步骤
- 临床界面: 在
electronic-patient-record-ui-with-svelte中运行pnpm install,然后运行pnpm dev。它需要 Node 26 和 pnpm,实时数据还需要 API。 - API: 它强制登录,因此需要身份提供方。README 中有命令,其余内容见用于开发的 Keycloak。
- 规范: 从索引开始。
- 贡献: 请参阅关于。