Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | lawrence-boyd |
View: | 213 times |
Download: | 0 times |
Elysium Next Generation Master Patient Index (MPI)
Scott ParkeyResearch Engineer
© Axolotl Corp. 2010
Introduction
Founded in 1995, Axolotl provides Health Information Exchange (HIE) products and services to the RHIO and hospital system markets.
Axolotl’s Elysium® Exchange solutions are used by more than 25,000 physicians, 80,000 healthcare professionals, 200 hospitals, 3 Statewide HIEs and 18 RHIOs - touching the lives of more than 25 million patients.
HIE in 60 secondsFacilitate the exchange of health information between:
• Hospital EMR systems• Emergency departments• Provider offices• Labs• Pharmacies• Imaging facilities• Public health agencies• Payers (mostly for eligibility checks)
Patient Matching in a HIE
• We integrate a wide variety of– software (EMR, PHR, lab, pharmacy,
biosurveillance, etc.)– underlying data models– data exchange formats
• There may be some trusted, shared identifiers between existing systems, but these are uncommon.
New MPI Goals• Updated technology: improve performance,
scalability, availability, automate maintenance• Maintain full RIM fidelity in demographic records• Fully implement the HL7v3 patient / person
classes and IHE’s PIX / PDQ profiles• Probabilistic scoring• Support for advanced matching options (name
morphology, edit distance)• Allow for finer-grained configuration of search
and matching rules
Implementation
• Direct storage and manipulation of CDA fragments (patient demographics only) in DB2 pureXML– Native, efficient tree-based XML representation– XML indexing by XPath– Adheres to the SQLXML standard
• Matching algorithm– Pre-filter– Score– Evaluation
Implementation
• Custom HL7v3 Java library– Constructing CDA fragments from Java objects– Constructing Java objects from CDA fragments for
matching algorithms
• Simple RIM-based configuration
Use of RIM / CDAPatient Data (XML in DB2)
<ClinicalDocument> <recordTarget> <patientRole> <patient> <name> <given>John</given> <family>Public</family> </name> …</…>
Match Score Configuration
Data Element MatchType Positive Negative NoResult
/ClinicalDocument/…/patient/name/given Equals +10 -10 0
Prefilter Query (pseudo-code)
select * from MPI.PATIENT_DATAwhere XMLEXISTS(‘…$PATIENTDATA/ClinicalDocument/recordTarget/patientRole/patient[name/given=$given and birthTime/@value=$birthTime]’[OR …]
Patient 3 Data
<ClinicalDocument> <recordTarget> <patientRole> …. <patient> <name> <given>John</given> <given>Q</given> <family>Public</family> </name> … </patient> </patientRole> </recordTarget></ClinicalDocument>
Patient Database
Patient 1
Patient 2
Patient 3
Patient 4
Patient 5
Patient 6
Patient 7
Family name: Public?
Patient Database
Patient 1
Patient 2
Patient 3
Patient 4
Patient 5
Patient 6
Patient 7
xquery/SQLXML
Prefiltered results
Patient 3
Patient 6
Patient 7
Family name: Public?
Match score
Patient 3 5
Patient 6 3
Patient 7 1
Patient 3 Data
<ClinicalDocument> <recordTarget> <patientRole> …. <patient> <name> <given>John</given> <given>Q</given> <family>Public</family> </name> … </patient> </patientRole> </recordTarget></ClinicalDocument>
IHE Profiles
• MPI will be able to form the basis of IHE profile implementations
• PDQ– Matching queries to records
• PIX– Cross-referencing different records– ID correlation: send ID, return matching IDs
• More
Questions?