Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
$bulk-member-matchoperasi untuk HealthLake
AWS HealthLake mendukung $bulk-member-match operasi untuk memproses beberapa permintaan kecocokan anggota secara asinkron. Operasi ini memungkinkan organisasi perawatan kesehatan untuk secara efisien mencocokkan ratusan pengidentifikasi unik anggota di berbagai sistem perawatan kesehatan menggunakan informasi demografis dan cakupan dalam satu permintaan massal. Kemampuan ini sangat penting untuk pertukaran payer-to-payer data skala besar, transisi anggota, dan persyaratan kepatuhan CMS dan mengikuti spesifikasi FHIR.
catatan
$bulk-member-matchOperasi ini didasarkan pada spesifikasi FHIR yang mendasari yang saat ini eksperimental dan dapat berubah. Seiring berkembangnya spesifikasi, perilaku dan antarmuka API ini akan diperbarui sesuai dengan itu. Pengembang disarankan untuk memantau catatan HealthLake rilis AWS dan pembaruan spesifikasi FHIR yang relevan agar tetap mendapat informasi tentang perubahan apa pun yang dapat memengaruhi integrasi mereka.
Operasi ini sangat berguna ketika Anda perlu:
Memproses pencocokan anggota pada skala selama periode pendaftaran terbuka
Memfasilitasi transisi anggota massal antar pembayar
Mendukung persyaratan pertukaran data kepatuhan CMS skala besar
Secara efisien mencocokkan kelompok anggota di seluruh jaringan perawatan kesehatan
Minimalkan panggilan API dan tingkatkan efisiensi operasional untuk skenario pencocokan volume tinggi
Penggunaan
$bulk-member-matchOperasi ini adalah operasi asinkron yang dipanggil pada sumber daya Grup menggunakan metode POST:
POST [base]/Group/$bulk-member-match
Setelah mengirimkan permintaan kecocokan massal, Anda dapat melakukan polling status pekerjaan menggunakan:
GET [base]/$bulk-member-match-status/{jobId}
Parameter yang didukung
HealthLake mendukung $bulk-member-match parameter FHIR berikut:
| Parameter | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
|
Pasien |
Ya |
Sumber daya pasien yang berisi informasi demografis agar anggota dicocokkan. |
|
Cakupan |
Ya |
Sumber daya cakupan yang akan digunakan untuk pencocokan dengan catatan yang ada. |
|
Cakupan |
Tidak |
Sumber daya cakupan yang akan ditautkan selama proses pencocokan. |
|
Persetujuan |
Ya |
Sumber daya persetujuan untuk tujuan otorisasi juga disimpan. Ini berbeda dengan |
Permintaan POST untuk mengirimkan pekerjaan kecocokan anggota massal
Contoh berikut menunjukkan permintaan POST untuk mengirimkan pekerjaan kecocokan anggota massal. Setiap anggota dibungkus dalam MemberBundle parameter yang berisi yang diperlukanMemberPatient,CoverageToMatch, dan Consent sumber daya, bersama dengan opsionalCoverageToLink.
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" } ] } } ] } ] }
Menyelesaikan respons pekerjaan dengan output
Ketika pekerjaan selesai, respons mencakup metadata pekerjaan dan sumber daya Parameter FHIR yang berisi tiga sumber daya Grup yang mengkategorikan hasil pencocokan.
{ "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" } } ] } } ] } }
Sumber daya Grup Keluaran
Pekerjaan yang diselesaikan mengembalikan sumber daya Parameter yang berisi tiga sumber daya Grup:
- MatchedMembers Kelompok
Berisi referensi Pasien untuk semua anggota yang berhasil dicocokkan dan tidak dikategorikan sebagai kendala persetujuan.
Group.quantityBidang berisi jumlah total anggota di masing-masing kelompok masing-masing.
- NonMatchedMembers Kelompok
Berisi referensi ke anggota di mana tidak ada kecocokan yang ditemukan atau beberapa kecocokan diidentifikasi.
- ConsentConstrainedMembers Kelompok
-
Berisi referensi Pasien untuk semua anggota yang berhasil dicocokkan di mana kendala persetujuan mencegah berbagi data. Sumber daya Persetujuan dianggap dibatasi ketika kedua kondisi berikut hadir:
-
URI kebijakan berakhir
#sensitive— Ini adalah sinyal paling jelas dan paling langsung. Pembayar yang mengirimkan secara eksplisit mengatakan: “Data anggota ini sensitif — tangani dengan hati-hati.”"policy": [{ "uri": "...hrex-consent.html#sensitive" }] -
Jenis ketentuan tingkat atas adalah
deny— Anggota secara luas menolak berbagi data."provision": { "type": "deny" }
-
Integrasi dengan $ davinci-data-export
Sumber daya MatchedMembers Grup yang dikembalikan oleh $bulk-member-match dapat langsung digunakan dengan $davinci-data-export operasi untuk mengambil data anggota massal:
POST [base]/Group/{matched-group-id}/$davinci-data-export GET [base]/Group/{matched-group-id}
Integrasi ini memungkinkan alur kerja yang efisien di mana Anda pertama kali mengidentifikasi anggota yang cocok secara massal, kemudian mengekspor catatan kesehatan lengkap mereka menggunakan sumber daya Grup yang dihasilkan.
Karakteristik kinerja
$bulk-member-matchOperasi ini dirancang untuk pemrosesan volume tinggi dan berjalan secara asinkron:
Konkurensi: Maksimum 5 operasi bersamaan per penyimpanan data.
Skalabilitas: Menangani hingga 500 anggota per permintaan (batas muatan 5 MB).
Operasi paralel: Kompatibel dengan operasi impor, ekspor, atau penghapusan massal bersamaan.
Otorisasi
API menggunakan SMART pada protokol otorisasi FHIR dengan cakupan wajib berikut:
system/Patient.read— Diperlukan untuk mencari dan mencocokkan sumber daya pasien.system/Coverage.read— Diperlukan untuk memvalidasi informasi cakupan.system/Group.write— Diperlukan untuk membuat sumber daya Grup hasil.system/Organization.read— Bersyarat, diperlukan jika cakupan referensi organisasi.system/Practitioner.read— Bersyarat, diperlukan jika cakupan referensi praktisi.system/PractitionerRole.read— Bersyarat, diperlukan jika cakupan referensi peran praktisi.system/Consent.write— Bersyarat, diperlukan jika sumber daya persetujuan disediakan.
Operasi ini juga mendukung otorisasi AWS IAM Signature Version 4 (SiGv4) untuk akses terprogram.
Penanganan kesalahan
Operasi menangani kondisi kesalahan berikut:
400 Permintaan Buruk: Format permintaan tidak valid, parameter yang diperlukan tidak ada, atau muatan melebihi batas ukuran (500 anggota atau 5 MB).
422 Entitas yang Tidak Dapat Diproses: Memproses kesalahan selama eksekusi pekerjaan.
Kesalahan anggota individu: Ketika anggota tertentu gagal untuk memproses, operasi berlanjut dengan anggota yang tersisa dan mencakup rincian kesalahan dalam NonMatchedMembers Grup dengan kode alasan yang sesuai. Misalnya,
MemberBundledengan Pasien yang hilangbirthDateparameter akan mengembalikan kesalahan berikut:"errors": [ { "memberIndex": 1, "jsonBlob": { "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "invalid", "diagnostics": "MemberPatient.birthDate is required" } ], "statusCode": 400 } } ]
Detail kesalahan tersedia melalui titik akhir pemungutan suara status dan termasuk:
numberOfMembersWithCustomerError: Hitungan anggota dengan validasi atau kesalahan input.numberOfMembersWithServerError: Hitungan anggota dengan kesalahan pemrosesan sisi server.
Operasi terkait
$member-matchoperasi untuk HealthLake— Operasi pencocokan anggota individu.
Operasi FHIR R4 $davinci-data-export untuk HealthLake— Ekspor data massal menggunakan sumber daya Grup.
FHIR $operations R4 untuk HealthLake— Daftar lengkap operasi yang didukung.