New Zealand NHI IG
1.6.5 - Release

New Zealand NHI IG - Local Development build (v1.6.5) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## : Find patient matches using MPI based logic - XML Representation

Draft as of 2023-06-12

Raw xml | Download

    <OperationDefinition xmlns="http://hl7.org/fhir">
      <id value="Patient-match"/>
      <text>
        <status value="generated"/>
        <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: OperationDefinition Patient-match</b></p><a name="Patient-match"> </a><a name="hcPatient-match"> </a><p>URL: [base]/Patient/$match</p><h3>Parameters</h3><table class="grid"><tr><td><b>Use</b></td><td><b>Name</b></td><td><b>Scope</b></td><td><b>Cardinality</b></td><td><b>Type</b></td><td><b>Binding</b></td><td><b>Documentation</b></td></tr><tr><td>IN</td><td>resource</td><td/><td>1..1</td><td><a href="http://hl7.org/fhir/R4/patient.html">Patient</a></td><td/><td><div><p>Use this to provide an entire set of patient details for the MPI to match against (e.g. POST a patient record to Patient/$match).</p>
    </div></td></tr><tr><td>IN</td><td>onlyCertainMatches</td><td/><td>0..1</td><td><a href="http://hl7.org/fhir/R4/datatypes.html#boolean">boolean</a></td><td/><td><div><p>When set to TRUE = Validate, When set to FALSE = NHI Search</p>
    </div></td></tr><tr><td>IN</td><td>count</td><td/><td>0..1</td><td><a href="http://hl7.org/fhir/R4/datatypes.html#integer">integer</a></td><td/><td><div><p>The maximum number of records to return. If no value is provided, the server decides how
    many matches to return. Note that clients should be careful when using this, as it may
    prevent probable - and valid - matches from being returned</p>
    </div></td></tr><tr><td>OUT</td><td>return</td><td/><td>1..1</td><td><a href="http://hl7.org/fhir/R4/bundle.html">Bundle</a></td><td/><td><div><p>A bundle containing a set of Patient records that represent possible matches, optionally it may also contain an OperationOutcome with further information about the search results (such as warnings or information messages, such as a count of records that were close but eliminated) If the operation was unsuccessful, then an OperationOutcome may be returned along with a BadRequest status Code (e.g. security issue, or insufficient properties in patient fragment - check against profile)</p>
    </div></td></tr><tr><td>OUT</td><td>failure</td><td/><td>0..1</td><td><a href="http://hl7.org/fhir/R4/operationoutcome.html">OperationOutcome</a></td><td/><td><div><p>Error response</p>
    </div></td></tr></table><div><p>The response is a bundle containing a patient record (validate) or records (match). For match the records are ordered from most likely to least likely. If there are no patient matches an empty search set with no error will be returned. All patient records SHALL have a search score from 0 to 1, where 1 is the most certain match, along with  &quot;match-grade&quot; that indicates the MPI's position on the match quality.</p>
    </div></div>
      </text>
      <url
           value="https://nhi-ig.hip.digital.health.nz/OperationDefinition/Patient-match"/>
      <version value="1.6.5"/>
      <name value="Match"/>
      <title value="Find patient matches using MPI based logic"/>
      <status value="draft"/>
      <kind value="operation"/>
      <experimental value="false"/>
      <date value="2023-06-12T12:47:40+10:00"/>
      <publisher value="Te Whatu Ora"/>
      <contact>
        <name value="Te Whatu Ora"/>
        <telecom>
          <system value="email"/>
          <value value="mailto:integration@health.govt.nz"/>
        </telecom>
      </contact>
      <description
                   value="A Master Patient Index ([MPI](http://en.wikipedia.org/wiki/Enterprise_master_patient_index)
       ) is a service used to manage patient identification in a context where multiple patient
       databases exist. Healthcare applications and middleware use the MPI to match patients
       between the databases, and to store new patient details as they are encountered. MPIs
       are highly specialized applications, often tailored extensively to the institution's particular
       mix of patients. MPIs can also be run on a regional and national basis.

    To ask an MPI to match a patient, clients use the &amp;quot;$match&amp;quot; operation, which
       accepts a patient resource which may be only partially complete. The data provided is
       interpreted as an MPI input and processed by an algorithm of some kind that uses the data
       to determine the most appropriate matches in the patient set.  Note that different MPI
       matching algorithms have different required inputs. The generic $match operation does
       not specify any particular algorithm, nor a minimum set of information that must be provided
       when asking for an MPI match operation to be performed, but many implementations will
       have a set of minimum information, which may be declared in their definition of the $match
       operation by specifying a profile on the resource parameter, indicating which properties
       are required in the search.  The patient resource submitted to the operation does not
       have to be complete, nor does it need to pass validation (i.e. mandatory fields don't
       need to be populated), but it does have to be a valid instance, as it is used as the reference
       data to match against."/>
      <affectsState value="false"/>
      <code value="match"/>
      <comment
               value="The response is a bundle containing a patient record (validate) or records (match). For match the records are ordered from most likely to least likely. If there are no patient matches an empty search set with no error will be returned. All patient records SHALL have a search score from 0 to 1, where 1 is the most certain match, along with  &quot;match-grade&quot; that indicates the MPI's position on the match quality."/>
      <resource value="Patient"/>
      <system value="false"/>
      <type value="true"/>
      <instance value="false"/>
      <parameter>
        <name value="resource"/>
        <use value="in"/>
        <min value="1"/>
        <max value="1"/>
        <documentation
                       value="Use this to provide an entire set of patient details for the MPI to match against (e.g. POST a patient record to Patient/$match)."/>
        <type value="Patient"/>
      </parameter>
      <parameter>
        <name value="onlyCertainMatches"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <documentation
                       value="When set to TRUE = Validate, When set to FALSE = NHI Search"/>
        <type value="boolean"/>
      </parameter>
      <parameter>
        <name value="count"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <documentation
                       value="The maximum number of records to return. If no value is provided, the server decides how
         many matches to return. Note that clients should be careful when using this, as it may
         prevent probable - and valid - matches from being returned"/>
        <type value="integer"/>
      </parameter>
      <parameter>
        <name value="return"/>
        <use value="out"/>
        <min value="1"/>
        <max value="1"/>
        <documentation
                       value="A bundle containing a set of Patient records that represent possible matches, optionally it may also contain an OperationOutcome with further information about the search results (such as warnings or information messages, such as a count of records that were close but eliminated) If the operation was unsuccessful, then an OperationOutcome may be returned along with a BadRequest status Code (e.g. security issue, or insufficient properties in patient fragment - check against profile)"/>
        <type value="Bundle"/>
      </parameter>
      <parameter>
        <name value="failure"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <documentation value="Error response"/>
        <type value="OperationOutcome"/>
      </parameter>
    </OperationDefinition>