Client Registries and OpenCR
Data Use Community Presentation
Richard Stanley, Senior Product Manager
Outline
Problem Statement
What is the problem?
Example
Indicator Reporting -- Interruptions in HIV Treatment
Solution
What is the solution?
How is it done?
Where does record linkage happen?
Client Registries
What is a Registry?
What is a Client Registry?
What is in a Client Registry?
What can be stored
What is not stored
Use Cases
Example
Indicator Reporting -- Interruptions in HIV Treatment
ART Clinic 2
ART Clinic 1
Hospital
ID #456
ID #2001
ID #40393
Without Record Linkage
March visit to ART Clinic 2
January visit to ART Clinic 1
July visit to District Hospital
ART Clinic 2
ART Clinic 1
Hospital
ID #456
ID #2001
ID #40393
Without Record Linkage
March visit to ART Clinic 2
January visit to ART Clinic 1
July visit to District Hospital
District Data Manager
Sees duplicate patients in the reporting system
ART Clinic 2
ART Clinic 1
Hospital
ID #456
Unique ID: ek76382
ID #2001
Unique ID: ek76382
ID #40393
Unique ID: ek76382
With Record Linkage
March visit to ART Clinic 2
January visit to ART Clinic 1
July visit to District Hospital
Client Registry
Unique ID: ek76382
ART Clinic 1 ART Clinic 2 Hospital
ID #456 ID#2001 ID #40393
ART Clinic 2
ART Clinic 1
Hospital
ID #456
Unique ID: ek76382
ID #2001
Unique ID: ek76382
ID #40393
Unique ID: ek76382
With Record Linkage
March visit to ART Clinic 2
January visit to ART Clinic 1
July visit to District Hospital
District Data Manager
Sees a Single Person
Linked ID ek76382
Use Case: HIV Reporting
HIV Reporting Scenario
How it works
Value add
Use Case: Patient Safety
Patient Safety Scenario
How it works
Value add
Use Case: Viral Load Tests
Viral Load Tests Scenario
How it works
Value add
Open Client Registry
OpenCR
OpenCR is Available Today
Available today at https://openclientregistry.org
Multiple rounds of investment
Open standards, open source community
OpenCR Key Features
Requirements | Features |
Enterprise scale: Performant at a national or regional scale. | Proven architecture: Built for Linux on ElasticSearch and HAPI FHIR Server. Can use any enterprise database. |
Flexible matching: Many different identifiers and algorithms can be used for matching. | Adapts to any matching use case: Probabilistic and deterministic matching. Diverse decision rules and algorithms. |
Change matches: Manually make corrections to automatic linkages. | User interface for human adjudication of records |
Fits into many architectures: Bring your preferred EMR, tools, database. | Vendor agnostic: Not dependent on a vendor-specific platform/EMR |
OpenCR Additional Features
Requirements | Features |
Lightweight: Easily customizable and written in a popular cross-platform language. | Leverages proven applications: Small JavaScript application but most of the work is done by HAPI FHIR and ElasticSearch. JavaScript is extremely popular and easy for junior developers to manage. |
Incremental deployment: Can grow as new systems are added. | Any system can use it: Standards-based. FHIR structures are the data models, not custom ones. Module for OpenMRS and any system that can speak FHIR. |
OpenCR is a Global Good
Administrative Interface
Patient Record View
Patient History
Action Required
Move Records between IDs
Implementation
Lessons Learnt
Constraints
Solutions
Client Registry Governance and IT
Governance
Data and IT
How to Implement Record Linkage
More at:
openclientregistry.org
Contact:
rstanley@intrahealth.org
Additional Slides
Patient Record Linkage
Goal: Provide Unique Identifiers
Overview of Patient Record Linkage
Steps in Record Linkage
Steps | Description |
1. Comparison | Identify similar record pairs using decision rules, algorithms, and blocking |
2. Classification | Sort records into matches, non-matches, and potential matches that require clerical review |
3. Evaluation | Compare results against the ground truth of true matches to determine if you set the right threshold |
Record Linkage Process
Database A
Pre-processing
Blocking
Comparison
Classification
Clerical Review
Non Matches
Matches
Potential Matches
Evaluation
Pre-processing: cleaning and segmenting fields into well-defined and consistent output variables
Comparison: identifying the similarity between two records seeking comparison vectors
Evaluation: comparing match results with the known ground truth or gold standard
Indexing/blocking: the strategy that reduces the number of paris of records to be considered
(Christen et al. 2002, 2004, 2012)
adapted by Mayer Antoine
Record Pairs
Record Pairs
Record Pairs
Record Pairs
Records
Classification: based on comparison results, records are found to be matches, non-matches, or potential matches
Evaluation and Data
Evaluation
Data
Classification & Evaluation
Source. McFarlane, T. D., Dixon, B. E., & Grannis, S. J. (2016). Client registries: identifying and linking patients. In Health Information Exchange (pp. 163-182). Academic Press.
Match Quality: Confusion Matrix
Precision: Correct matches (TP) among matches made by algorithm (TP+FP)
| Yes | No |
Yes | True Positive (TP) | False Positive (FP) |
No | False Negative (FN) | True Negative (TN) |
Matched?
Should match?
Recall: Correct matches (TP) among all true matches in the set (TP+FN)
OpenCR Technical
Functionality of OpenCR
Architecture
OpenCR Record Linkage
Database A
Pre-processing
Blocking
Comparison
Classification
Clerical Review
Pre-processing:
Point of Service (POS) system sends pre-processed records to the OpenCR API
Comparison:
ElasticSearch identifies the similarity between two records seeking comparison vectors
Indexing/blocking: OpenCR API queries ElasticSearch with user-configured search criteria
Record Pairs
Record Pairs
Records
Clerical Review:
A GUI allows users to browse and break matches
Classification:
ElasticSearch returns potential matches. OpenCR creates or updates links to matches and assigns or updates a CRUID.
CRUID