Identify the PDQm Patient Demographics Supplier actor endpoint; the supplier exposes a FHIR R4 Patient search endpoint conforming to the IHE PDQm v3.1.0 IG
Submit a PDQm query (IHE transaction ITI-78): GET [base]/Patient?family=<last-name>&given=<first-name>&birthdate=<date> using standard FHIR Patient search parameters; PDQm mandates support for family, given, identifier, telecom, gender, birthdate, address, and mothersMaidenName
For cross-domain queries, include the targetSystem parameter (PDQm-specific) to restrict results to identifiers from a specific patient identity domain: GET [base]/Patient?identifier=<value>&targetSystem=<system-oid>
Parse the returned FHIR Bundle (type=searchset) and inspect each Patient entry; evaluate match quality using Bundle.entry.search.score if the server provides it, or using your own criteria on returned demographics
Handle the 'too many results' response: the supplier MAY return an OperationOutcome with a warning and a partial result set — implement UI flows for disambiguation when multiple candidate patients are returned
If needed, narrow the query iteratively by adding more demographics (e.g., adding address or telecom) until a single match or a manageable candidate set is returned
Known gotchas
PDQm ITI-78 is a FHIR Patient search, not a custom operation — do not invoke a named operation ($match) for PDQm; $match is a separate FHIR base operation for probabilistic matching and is not part of PDQm ITI-78
The targetSystem search parameter is PDQm-specific and is not in the base FHIR Patient search specification; servers that do not implement the PDQm profile will not recognize it
PDQm v3.1.0 is based on FHIR R4 and is published by IHE at profiles.ihe.net — do not confuse it with the HL7 FHIR base Patient $match operation or with IHE PIXm, which handles identifier cross-referencing rather than demographics query
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp