We use FHIR, but we've had a few customer accidentally create a new Patient instead of finding and adding data to an existing patient creating duplicate entries for the same real-life patient.

I'd like to search for patients with same DOB and similar names and then offer them UI in the app to merge their records.

My questions are:

1. What's the most efficient way to do this search in FHIR without having to retrieve and compare every Patient resource?
2. What's the cleanest way to transfer related patient resources to one of the patients as part of a merge?

Thanks in advance.