Download OpenAPI specification:Download
Create a new algorithm in the MPI database.
:param data: The algorithm data :returns: The created algorithm
label required | string (Label) ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
Description (string) or Description (null) (Description) | |
is_default | boolean (Is Default) Default: false |
include_multiple_matches | boolean (Include Multiple Matches) Default: true |
required | Array of items (Belongingness Ratio) = 2 items |
required | Array of objects (Passes) |
{- "label": "string",
- "description": "string",
- "is_default": false,
- "include_multiple_matches": true,
- "belongingness_ratio": [
- 1,
- 1
], - "passes": [
- {
- "blocking_keys": [
- "BIRTHDATE"
], - "evaluators": [
- {
- "feature": "BIRTHDATE",
- "func": "func:recordlinker.linking.matchers.feature_match_any"
}
], - "rule": "func:recordlinker.linking.matchers.eval_perfect_match",
- "kwargs": { }
}
]
}
{- "label": "string",
- "description": "string",
- "is_default": false,
- "include_multiple_matches": true,
- "belongingness_ratio": [
- 1,
- 1
], - "passes": [
- {
- "blocking_keys": [
- "BIRTHDATE"
], - "evaluators": [
- {
- "feature": "BIRTHDATE",
- "func": "func:recordlinker.linking.matchers.feature_match_any"
}
], - "rule": "func:recordlinker.linking.matchers.eval_perfect_match",
- "kwargs": { }
}
]
}
Get an algorithm by its label from the MPI database.
:param label: The algorithm label :returns: algorithm
label required | string (Label) |
{- "label": "string",
- "description": "string",
- "is_default": false,
- "include_multiple_matches": true,
- "belongingness_ratio": [
- 1,
- 1
], - "passes": [
- {
- "blocking_keys": [
- "BIRTHDATE"
], - "evaluators": [
- {
- "feature": "BIRTHDATE",
- "func": "func:recordlinker.linking.matchers.feature_match_any"
}
], - "rule": "func:recordlinker.linking.matchers.eval_perfect_match",
- "kwargs": { }
}
]
}
Update an existing algorithm in the MPI database.
:param label: The algorithm label :param data: The algorithm data :returns: The updated algorithm
label required | string (Label) |
label required | string (Label) ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
Description (string) or Description (null) (Description) | |
is_default | boolean (Is Default) Default: false |
include_multiple_matches | boolean (Include Multiple Matches) Default: true |
required | Array of items (Belongingness Ratio) = 2 items |
required | Array of objects (Passes) |
{- "label": "string",
- "description": "string",
- "is_default": false,
- "include_multiple_matches": true,
- "belongingness_ratio": [
- 1,
- 1
], - "passes": [
- {
- "blocking_keys": [
- "BIRTHDATE"
], - "evaluators": [
- {
- "feature": "BIRTHDATE",
- "func": "func:recordlinker.linking.matchers.feature_match_any"
}
], - "rule": "func:recordlinker.linking.matchers.eval_perfect_match",
- "kwargs": { }
}
]
}
{- "label": "string",
- "description": "string",
- "is_default": false,
- "include_multiple_matches": true,
- "belongingness_ratio": [
- 1,
- 1
], - "passes": [
- {
- "blocking_keys": [
- "BIRTHDATE"
], - "evaluators": [
- {
- "feature": "BIRTHDATE",
- "func": "func:recordlinker.linking.matchers.feature_match_any"
}
], - "rule": "func:recordlinker.linking.matchers.eval_perfect_match",
- "kwargs": { }
}
]
}
Compare a PII Record with records in the Master Patient Index (MPI) to check for matches with existing patient records If matches are found, returns the patient and person reference id's
required | object (PIIRecord) A PIIRecord to be checked |
Algorithm (string) or Algorithm (null) (Algorithm) Optionally, a string that maps to an algorithm label stored in algorithm table | |
External Person Id (string) or External Person Id (null) (External Person Id) The External Identifier, provided by the client, for a unique patient/person that is linked to patient(s) |
{- "record": {
- "external_id": "string",
- "birth_date": "2019-08-24",
- "sex": "M",
- "mrn": "string",
- "address": [ ],
- "name": [ ],
- "telecom": [ ],
- "ssn": "string",
- "race": "AMERICAN_INDIAN",
- "gender": "FEMALE",
- "drivers_license": {
- "value": "string",
- "authority": "string"
}
}, - "algorithm": "string",
- "external_person_id": "string"
}
{- "patient_reference_id": "266c775e-4b03-489b-b290-03181bfdfea2",
- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92",
- "results": [
- {
- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92",
- "belongingness_ratio": 1
}
], - "prediction": "match"
}
Compare a FHIR bundle with records in the Master Patient Index (MPI) to check for matches with existing patient records If matches are found, returns the FHIR bundle with updated references to existing patients. This is a special endpoint that allows integration into a DIBBs pipeline, as it accepts and returns FHIR bundles.
bundle required | object (Bundle) A FHIR bundle containing a patient resource to be checked for links to existing patient records |
Algorithm (string) or Algorithm (null) (Algorithm) Optionally, a string that maps to an algorithm label stored in algorithm table | |
External Person Id (string) or External Person Id (null) (External Person Id) The External Identifier, provided by the client, for a unique patient/person that is linked to patient(s) |
{- "bundle": { },
- "algorithm": "string",
- "external_person_id": "string"
}
{- "patient_reference_id": "266c775e-4b03-489b-b290-03181bfdfea2",
- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92",
- "results": [
- {
- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92",
- "belongingness_ratio": 1
}
], - "updated_bundle": { },
- "prediction": "match"
}
Compare a FHIR bundle with records in the Master Patient Index (MPI) to check for matches with existing patient records If matches are found, returns the patient and person reference id's
bundle required | object (Bundle) A FHIR bundle containing a patient resource to be checked for links to existing patient records |
Algorithm (string) or Algorithm (null) (Algorithm) Optionally, a string that maps to an algorithm label stored in algorithm table | |
External Person Id (string) or External Person Id (null) (External Person Id) The External Identifier, provided by the client, for a unique patient/person that is linked to patient(s) |
{- "bundle": { },
- "algorithm": "string",
- "external_person_id": "string"
}
{- "patient_reference_id": "266c775e-4b03-489b-b290-03181bfdfea2",
- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92",
- "results": [
- {
- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92",
- "belongingness_ratio": 1
}
], - "prediction": "match"
}
Create a new Person in the MPI database and link the Patient to them.
patient_reference_id required | string <uuid> (Patient Reference Id) |
{- "patient_reference_id": "266c775e-4b03-489b-b290-03181bfdfea2",
- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92"
}
Update the Person linked on the Patient.
patient_reference_id required | string <uuid> (Patient Reference Id) |
person_reference_id required | string <uuid> (Person Reference Id) |
External Person Id (string) or External Person Id (null) (External Person Id) |
{- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92",
- "external_person_id": "string"
}
{- "patient_reference_id": "266c775e-4b03-489b-b290-03181bfdfea2",
- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92"
}
Seed a batch of records into the database. This endpoint can be used to initialize the MPI with existing Person clusters. The endpoint accepts a list of clusters, such that each cluster represents a Person and contains a list of patient records associated with that Person. This endpoint will create a new Person record for each cluster and create a new Patient records for each patient in the cluster.
The endpoint will return a list of Person objects, each containing a person_reference_id and a list of Patient objects, each containing patient_reference_ids.
NOTE: MySQL does not support bulk insert, so when using this dialect, each patient record will be inserted individually. This will be slower than using a dialect that supports bulk insert.
NOTE: The maximum number of clusters that can be seeded in a single request is 100.
required | Array of objects (Clusters) |
{- "clusters": [
- {
- "records": [
- {
- "external_id": "string",
- "birth_date": "2019-08-24",
- "sex": "M",
- "mrn": "string",
- "address": [ ],
- "name": [ ],
- "telecom": [ ],
- "ssn": "string",
- "race": "AMERICAN_INDIAN",
- "gender": "FEMALE",
- "drivers_license": {
- "value": "string",
- "authority": "string"
}
}
], - "external_person_id": "string"
}
]
}
{- "persons": [
- {
- "person_reference_id": "8e5a91ce-4436-4673-9cc9-9835a59dfb92",
- "external_person_id": "string",
- "patients": [
- {
- "patient_reference_id": "266c775e-4b03-489b-b290-03181bfdfea2",
- "external_patient_id": "string"
}
]
}
]
}