рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд░реЛрдЧреА рдорд┐рд▓рд╛рди рдЪрд▓рд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ред
рдЗрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдирдореВрдирд╛ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реЛрдЧреА рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдЖрдкрдХреЛ Git рдФрд░ Rust рдЪрд╛рд╣рд┐рдП; рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА Rust рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рддрдп рдХрд░рддреА рд╣реИ, рдФрд░ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдЕрдкрдиреЗ рдЖрдк рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЪрд░рдг 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 рдореЗрдВред
- рд╡рд┐рдирд┐рд░реНрджреЗрд╢: рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред
- рдпреЛрдЧрджрд╛рди: рдкрд░рд┐рдЪрдп рджреЗрдЦреЗрдВред