Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
$bulk-member-matchOperation für HealthLake
AWS HealthLake unterstützt den $bulk-member-match Vorgang zur asynchronen Verarbeitung von Matchanfragen für mehrere Mitglieder. Dieser Vorgang ermöglicht es Organisationen im Gesundheitswesen, die eindeutigen Identifikatoren von Hunderten von Mitgliedern in verschiedenen Gesundheitssystemen effizient abzugleichen, indem demografische Informationen und Informationen zur Deckung in einer einzigen Sammelanfrage verwendet werden. Diese Fähigkeit ist für den groß angelegten payer-to-payer Datenaustausch, die Umstellung von Mitgliedern und die Einhaltung der CMS-Vorschriften unerlässlich und entspricht der FHIR-Spezifikation.
Anmerkung
Die $bulk-member-match Operation basiert auf einer zugrunde liegenden FHIR-Spezifikation, die sich derzeit in der Erprobung befindet und sich ändern kann. Im Zuge der Weiterentwicklung der Spezifikation werden das Verhalten und die Schnittstelle dieser API entsprechend aktualisiert. Entwicklern wird empfohlen, die HealthLake AWS-Versionshinweise und die entsprechenden Aktualisierungen der FHIR-Spezifikation zu verfolgen, um über alle Änderungen, die sich auf ihre Integrationen auswirken könnten, auf dem Laufenden zu bleiben.
Dieser Vorgang ist besonders nützlich, wenn Sie:
Führen Sie während der offenen Anmeldezeiträume einen maßstabsgetreuen Abgleich der Mitglieder durch
Erleichtern Sie den Massenwechsel zwischen den Kostenträgern
Support umfangreicher CMS-Compliance-Datenaustauschanforderungen
Passen Sie Mitgliedskohorten aus allen Gesundheitsnetzwerken effizient an
Reduzieren Sie API-Aufrufe und verbessern Sie die betriebliche Effizienz bei Matching-Szenarien mit hohem Volumen
Usage
Der $bulk-member-match Vorgang ist ein asynchroner Vorgang, der mit der POST-Methode für Gruppenressourcen aufgerufen wird:
POST [base]/Group/$bulk-member-match
Nachdem Sie eine Sammelabgleichsanfrage eingereicht haben, können Sie den Auftragsstatus wie folgt abfragen:
GET [base]/$bulk-member-match-status/{jobId}
Unterstützte Parameter
HealthLake unterstützt die folgenden $bulk-member-match FHIR-Parameter:
| Parameter | Typ | Erforderlich | Description |
|---|---|---|---|
|
Patient |
Ja |
Patientenressource mit demografischen Informationen für das abzugleichende Mitglied. |
|
Abdeckung |
Ja |
Informationsquelle, die für den Abgleich mit vorhandenen Datensätzen verwendet wird. |
|
Abdeckung |
Nein |
Coverage-Ressource, die während des Abgleichs verknüpft werden soll. |
|
Zustimmung |
Ja |
Die Zustimmungsressource für Autorisierungszwecke wird ebenfalls gespeichert. Dies unterscheidet sich von einzelnen Vorgängen |
POST-Anfrage zur Einreichung eines Match-Jobs für mehrere Mitglieder
Das folgende Beispiel zeigt eine POST-Anfrage zum Einreichen eines Match-Jobs für mehrere Mitglieder. Jedes Mitglied ist in einen MemberBundle Parameter eingeschlossen, der die erforderlichen MemberPatientCoverageToMatch, und Consent Ressourcen sowie einen optionalen Wert enthältCoverageToLink.
POST [base]/Group/$bulk-member-match Content-Type: application/fhir+json { "resourceType": "Parameters", "parameter": [ { "name": "MemberBundle", "part": [ { "name": "MemberPatient", "resource": { "resourceType": "Patient", "identifier": [ { "system": "http://example.org/patient-id", "value": "patient-0" } ], "name": [ { "family": "Smith", "given": ["James"] } ], "gender": "male", "birthDate": "1950-01-01" } }, { "name": "CoverageToMatch", "resource": { "resourceType": "Coverage", "status": "active", "identifier": [ { "system": "http://example.org/coverage-id", "value": "cov-0" } ], "subscriberId": "sub-0", "beneficiary": { "reference": "Patient/patient123" }, "relationship": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/subscriber-relationship", "code": "self" } ] }, "payor": [ { "reference": "Organization/org123" } ] } }, { "name": "Consent", "resource": { "resourceType": "Consent", "status": "active", "scope": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/consentscope", "code": "patient-privacy" } ] }, "category": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", "code": "IDSCL" } ] } ], "patient": { "reference": "Patient/patient123" }, "performer": [ { "reference": "Patient/patient123" } ], "sourceReference": { "reference": "http://example.org/DocumentReference/consent-source" }, "policy": [ { "uri": "http://hl7.org/fhir/us/davinci-hrex/StructureDefinition-hrex-consent.html#regular" } ], "provision": { "type": "permit", "period": { "start": "2024-01-01", "end": "2025-12-31" }, "actor": [ { "role": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type", "code": "performer" } ] }, "reference": { "identifier": { "system": "http://hl7.org/fhir/sid/us-npi", "value": "9876543210" }, "display": "Old Health Plan" } }, { "role": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType", "code": "IRCP" } ] }, "reference": { "identifier": { "system": "http://hl7.org/fhir/sid/us-npi", "value": "0123456789" }, "display": "New Health Plan" } } ], "action": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/consentaction", "code": "disclose" } ] } ] } } }, { "name": "CoverageToLink", "resource": { "resourceType": "Coverage", "status": "active", "identifier": [ { "system": "http://example.org/coverage-link-id", "value": "cov-link-0" } ], "subscriberId": "new-sub-0", "beneficiary": { "reference": "Patient/patient123" }, "relationship": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/subscriber-relationship", "code": "self" } ] }, "payor": [ { "identifier": { "system": "http://hl7.org/fhir/sid/us-npi", "value": "0123456789" }, "display": "New Health Plan" } ] } } ] } ] }
Antwort auf den Auftrag mit Ausgabe abgeschlossen
Wenn der Job abgeschlossen ist, enthält die Antwort Job-Metadaten und eine FHIR-Parameter-Ressource, die drei Gruppenressourcen enthält, die die Vergleichsergebnisse kategorisieren.
{ "datastoreId": "datastoreId", "jobId": "jobId", "status": "COMPLETED", "submittedTime": "2026-03-20T18:45:26.321Z", "numberOfMembers": 3, "numberOfMembersProcessedSuccessfully": 3, "numberOfMembersWithCustomerError": 0, "numberOfMembersWithServerError": 0, "output": { "resourceType": "Parameters", "meta": { "profile": [ "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/pdex-parameters-multi-member-match-bundle-out" ] }, "parameter": [ { "name": "MatchedMembers", "resource": { "resourceType": "Group", "id": "group1", "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Matched members group</div>" }, "contained": [ { "resourceType": "Patient", "id": "1", "identifier": [ { "system": "http://example.org/patient-id", "value": "patient-0" } ], "name": [ { "family": "Smith", "given": ["James"] } ], "gender": "male", "birthDate": "1950-01-01" } ], "type": "person", "actual": true, "code": { "coding": [ { "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/PdexMultiMemberMatchResultCS", "code": "match", "display": "Matched" } ] }, "quantity": 1, "member": [ { "entity": { "extension": [ { "url": "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/base-ext-match-parameters", "valueReference": { "reference": "#1" } } ], "reference": "Patient/patient123" } } ] } }, { "name": "NonMatchedMembers", "resource": { "resourceType": "Group", "id": "Group2", "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Non-matched members group</div>" }, "contained": [ { "resourceType": "Patient", "id": "1", "identifier": [ { "system": "http://example.org/patient-id", "value": "patient-501" } ], "name": [ { "family": "Carter", "given": ["Emily"] } ], "gender": "female", "birthDate": "1985-06-15" } ], "type": "person", "actual": true, "code": { "coding": [ { "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/PdexMultiMemberMatchResultCS", "code": "nomatch", "display": "Not Matched" } ] }, "quantity": 1, "member": [ { "entity": { "extension": [ { "url": "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/base-ext-match-parameters", "valueReference": { "reference": "#1" } } ], "reference": "Patient/patient123" } } ] } }, { "name": "ConsentConstrainedMembers", "resource": { "resourceType": "Group", "id": "group3", "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Consent constrained members group</div>" }, "contained": [ { "resourceType": "Patient", "id": "1", "identifier": [ { "system": "http://example.org/patient-id", "value": "patient-502" } ], "name": [ { "family": "Nguyen", "given": ["David"] } ], "gender": "male", "birthDate": "1972-11-22" } ], "type": "person", "actual": true, "code": { "coding": [ { "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/PdexMultiMemberMatchResultCS", "code": "consentconstraint", "display": "Consent Constraint" } ] }, "quantity": 1, "member": [ { "entity": { "extension": [ { "url": "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/base-ext-match-parameters", "valueReference": { "reference": "#1" } } ], "reference": "Patient/123" } } ] } } ] } }
Ressourcen der Ausgabegruppe
Der abgeschlossene Job gibt eine Parameter-Ressource zurück, die drei Gruppenressourcen enthält:
- MatchedMembers Group (Gruppieren)
Enthält Patientenreferenzen für alle Mitglieder, die erfolgreich zugeordnet wurden, und wird nicht als Einwilligungsbeschränkung eingestuft.
Das Group.quantity Feld enthält die Gesamtzahl der Mitglieder in jeder ihrer jeweiligen Gruppen.
- NonMatchedMembers Group (Gruppieren)
Enthält Verweise auf Mitglieder, bei denen keine Übereinstimmung gefunden wurde oder bei denen mehrere Treffer identifiziert wurden.
- ConsentConstrainedMembers Group (Gruppieren)
-
Enthält Patientenreferenzen für alle Mitglieder, die erfolgreich zugeordnet wurden, wenn Einwilligungsbeschränkungen die gemeinsame Nutzung von Daten verhindern. Eine Zustimmungsressource gilt als eingeschränkt, wenn die beiden folgenden Bedingungen erfüllt sind:
-
Die Richtlinien-URI endet auf
#sensitive— Dies ist das klarste und direkteste Signal. Der übermittelnde Zahler sagt ausdrücklich: „Die Daten dieses Mitglieds sind sensibel — gehen Sie vorsichtig damit um.“"policy": [{ "uri": "...hrex-consent.html#sensitive" }] -
Die Art der Bereitstellung auf oberster Ebene ist
deny— Das Mitglied hat die gemeinsame Nutzung von Daten weitgehend abgelehnt."provision": { "type": "deny" }
-
Integration mit $ davinci-data-export
Die von zurückgegebene MatchedMembers Gruppenressource $bulk-member-match kann direkt mit dem $davinci-data-export Vorgang zum Abrufen von Massendaten von Mitgliedern verwendet werden:
POST [base]/Group/{matched-group-id}/$davinci-data-export GET [base]/Group/{matched-group-id}
Diese Integration ermöglicht effiziente Workflows, bei denen Sie zuerst übereinstimmende Mitglieder in großen Mengen identifizieren und dann ihre vollständigen Gesundheitsdaten mithilfe der resultierenden Gruppenressource exportieren.
Leistungsmerkmale
Der $bulk-member-match Vorgang ist für die Verarbeitung großer Datenmengen konzipiert und läuft asynchron:
Parallelität: Maximal 5 gleichzeitige Operationen pro Datenspeicher.
Skalierbarkeit: Verarbeitet bis zu 500 Mitglieder pro Anfrage (Nutzlastlimit von 5 MB).
Parallele Operationen: Kompatibel mit gleichzeitigen Import-, Export- oder Massenlöschvorgängen.
Autorisierung
Die API verwendet SMART auf dem FHIR-Autorisierungsprotokoll mit den folgenden erforderlichen Bereichen:
system/Patient.read— Erforderlich, um Patientenressourcen zu suchen und abzugleichen.system/Coverage.read— Erforderlich, um die Versicherungsinformationen zu validieren.system/Group.write— Erforderlich, um Ressourcen für Ergebnisgruppen zu erstellen.system/Organization.read— Befriedigend, erforderlich, wenn sich der Versicherungsschutz auf Organisationen bezieht.system/Practitioner.read— Befriedigend, erforderlich, wenn sich der Versicherungsschutz auf Praktiker bezieht.system/PractitionerRole.read— Befristet, erforderlich, wenn sich der Versicherungsschutz auf die Rollen von Praktikern bezieht.system/Consent.write— Befriedigend, erforderlich, wenn Ressourcen für die Einwilligung bereitgestellt werden.
Der Vorgang unterstützt auch die AWS IAM Signature Version 4 (Sigv4) -Autorisierung für programmatischen Zugriff.
Fehlerbehandlung
Der Vorgang behandelt die folgenden Fehlerbedingungen:
400 Bad Request: Ungültiges Anforderungsformat, fehlende erforderliche Parameter oder die Nutzlast überschreitet die Größenbeschränkungen (500 Mitglieder oder 5 MB).
422 Unverarbeitbare Entität: Verarbeitungsfehler bei der Auftragsausführung.
Fehler einzelner Mitglieder: Wenn ein bestimmtes Mitglied die Verarbeitung nicht durchführt, wird der Vorgang mit den verbleibenden Mitgliedern fortgesetzt und enthält Fehlerdetails in der NonMatchedMembers Gruppe mit den entsprechenden Ursachencodes. Beispiel: Wenn
MemberBundlebei einem Patienten derbirthDateParameter fehlt, wird der folgende Fehler zurückgegeben:"errors": [ { "memberIndex": 1, "jsonBlob": { "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "invalid", "diagnostics": "MemberPatient.birthDate is required" } ], "statusCode": 400 } } ]
Fehlerdetails sind über den Endpunkt für die Statusabfrage verfügbar und beinhalten:
numberOfMembersWithCustomerError: Anzahl der Mitglieder mit Überprüfungs- oder Eingabefehlern.numberOfMembersWithServerError: Anzahl der Mitglieder mit serverseitigen Verarbeitungsfehlern.
Zugehörige -Vorgänge
$member-matchOperation für HealthLake— Vorgang zum Abgleich einzelner Mitglieder.
FHIR R4-Betrieb $davinci-data-export für HealthLake— Massenexport von Daten mithilfe von Gruppenressourcen.
FHIR R4 für $operations HealthLake— Vollständige Liste der unterstützten Operationen.