View a markdown version of this page

$inquireOpération FHIR pour HealthLake - AWS HealthLake

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

$inquireOpération FHIR pour HealthLake

L'$inquireopération vous permet de vérifier le statut d'une demande d'autorisation préalable soumise précédemment. Cette opération met en œuvre le guide de mise en œuvre du Da Vinci Prior Authorization Support (PAS), fournissant un flux de travail standardisé basé sur le FHIR pour récupérer la décision d'autorisation actuelle.

Comment ça marche

  • Soumettre une demande : vous envoyez un bundle FHIR contenant la réclamation que vous souhaitez vérifier et les informations justificatives

  • Rechercher : HealthLake recherche le correspondant ClaimResponse dans votre magasin de données

  • Récupérer : le statut d'autorisation le plus récent est récupéré

  • Répondre : vous recevez une réponse immédiate avec le statut d'autorisation actuel (en file d'attente, approuvé, refusé, etc.)

Note

$inquireest une opération en lecture seule qui permet de récupérer le statut d'autorisation existant. Il ne modifie ni ne met à jour aucune ressource de votre banque de données.

Point de terminaison d’API

POST /datastore/{datastoreId}/r4/Claim/$inquire Content-Type: application/fhir+json

Structure de la demande

Exigences relatives au bundle

Votre demande doit être une ressource FHIR Bundle contenant :

  • Bundle.type : Doit être "collection"

  • Bundle.entry : Doit contenir exactement une ressource Claim avec :

    • use = "preauthorization"

    • status = "active"

  • Ressources référencées : Toutes les ressources référencées par la réclamation doivent être incluses dans le bundle

Requête par exemple

Les ressources de votre bundle d'entrée servent de modèle de recherche. HealthLake utilise les informations fournies pour localiser le correspondant ClaimResponse.

Ressources requises

Ressource Cardinalité Profil Description
Réclamation 1 Demande de réclamation PAS L'autorisation préalable que vous demandez
Patient 1 Patient bénéficiaire du PAS Informations démographiques sur les patients
Organisation (assureur) 1 Organisation d'assurance PAS Compagnie d'assurance
Organisation (fournisseur) 1 Organisation demandeuse du PAS Prestataire de santé qui a soumis la demande

Critères de recherche importants

HealthLake recherche l' ClaimResponse utilisation de :

  • Référence du patient tirée de la réclamation

  • Référence de l'assureur tirée de la réclamation

  • Référence du fournisseur figurant dans la réclamation

  • Date de création à partir de la réclamation (en tant que filtre temporel)

Demandes spécifiques au patient uniquement

Toutes les demandes doivent être liées à un patient en particulier. Les requêtes à l'échelle du système sans identification du patient ne sont pas autorisées.

Exemple de demande

POST /datastore/example-datastore/r4/Claim/$inquire Content-Type: application/fhir+json Authorization: Bearer <your-token> { "resourceType": "Bundle", "id": "PASClaimInquiryBundleExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-inquiry-request-bundle"] }, "identifier": { "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER", "value": "5269368" }, "type": "collection", "timestamp": "2005-05-02T14:30:00+05:00", "entry": [ { "fullUrl": "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample", "resource": { "resourceType": "Claim", "id": "MedicalServicesAuthorizationExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim-inquiry"] }, "status": "active", "type": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/claim-type", "code": "professional" }] }, "use": "preauthorization", "patient": { "reference": "Patient/SubscriberExample" }, "created": "2005-05-02T11:01:00+05:00", "insurer": { "reference": "Organization/InsurerExample" }, "provider": { "reference": "Organization/UMOExample" } } }, { "fullUrl": "http://example.org/fhir/Patient/SubscriberExample", "resource": { "resourceType": "Patient", "id": "SubscriberExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary"] }, "name": [{ "family": "SMITH", "given": ["JOE"] }], "gender": "male" } }, { "fullUrl": "http://example.org/fhir/Organization/UMOExample", "resource": { "resourceType": "Organization", "id": "UMOExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"] }, "name": "Provider Organization" } }, { "fullUrl": "http://example.org/fhir/Organization/InsurerExample", "resource": { "resourceType": "Organization", "id": "InsurerExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"] }, "name": "Insurance Company" } } ] }

Format de la réponse

Réponse positive (200 OK)

Vous recevrez un ensemble de réponses aux demandes de renseignements PAS contenant :

  • ClaimResponseavec le statut d'autorisation actuel ; multiple ClaimResponses'il correspond aux critères de recherche

  • Toutes les ressources originales de votre demande (renvoyées)

  • Horodatage du moment où la réponse a été assemblée

ClaimResponse Résultats possibles

Outcome Description
queued La demande d'autorisation est toujours en attente d'examen
complete La décision d'autorisation a été prise (vérifier si elle est disposition approuvée/refusée)
error Une erreur s'est produite lors du traitement
partial Autorisation partielle accordée
{ "resourceType": "Bundle", "identifier": { "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER", "value": "5269367" }, "type": "collection", "timestamp": "2005-05-02T14:30:15+05:00", "entry": [ { "fullUrl": "http://example.org/fhir/ClaimResponse/InquiryResponseExample", "resource": { "resourceType": "ClaimResponse", "id": "InquiryResponseExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claimresponse-inquiry"] }, "status": "active", "type": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/claim-type", "code": "professional" }] }, "use": "preauthorization", "patient": { "reference": "Patient/SubscriberExample" }, "created": "2005-05-02T11:05:00+05:00", "insurer": { "reference": "Organization/InsurerExample" }, "request": { "reference": "Claim/MedicalServicesAuthorizationExample" }, "outcome": "complete", "disposition": "Approved", "preAuthRef": "AUTH12345" } }, { "fullUrl": "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample", "resource": { "resourceType": "Claim", "id": "MedicalServicesAuthorizationExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim-inquiry"] }, "status": "active", "type": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/claim-type", "code": "professional" }] }, "use": "preauthorization", "patient": { "reference": "Patient/SubscriberExample" }, "created": "2005-05-02T11:01:00+05:00", "insurer": { "reference": "Organization/InsurerExample" }, "provider": { "reference": "Organization/UMOExample" } } }, { "fullUrl": "http://example.org/fhir/Patient/SubscriberExample", "resource": { "resourceType": "Patient", "id": "SubscriberExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary"] }, "name": [{ "family": "SMITH", "given": ["JOE"] }], "gender": "male" } }, { "fullUrl": "http://example.org/fhir/Organization/UMOExample", "resource": { "resourceType": "Organization", "id": "UMOExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"] }, "name": "Provider Organization" } }, { "fullUrl": "http://example.org/fhir/Organization/InsurerExample", "resource": { "resourceType": "Organization", "id": "InsurerExample", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"] }, "name": "Insurance Company" } } ] }

Réponses d'erreur

400 Requête erronée

Renvoyé lorsque le format de demande n'est pas valide ou que la validation échoue.

{ "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "required", "diagnostics": "Reference 'Patient/SubscriberExample' at path 'patient' for 'CLAIM' resource not found(at Bundle.entry[0].resource)" } ] }

401 Accès non autorisé

Renvoyé lorsque les informations d'authentification sont manquantes ou non valides.

{ "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "forbidden", "diagnostics": "Invalid authorization header" } ] }

403 Forbidden

Renvoyé lorsque l'utilisateur authentifié n'est pas autorisé à accéder à la ressource demandée.

{ "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "exception", "diagnostics": "Insufficient SMART scope permissions." } ] }

400 Quand aucun n'est trouvé

Renvoyé lorsqu'aucune correspondance n' ClaimResponse est trouvée pour la demande.

{ "resourceType": "OperationOutcome", "issue": [{ "severity": "error", "code": "not-found", "diagnostics": "Resource not found. No ClaimResponse found from the input Claim that matches the specified Claim properties patient, insurer, provider, and created(at Bundle.entry[0].resource)" }] }

415 Type de média non pris en charge

Renvoyé lorsque l'en-tête Content-Type n'est pas application/fhir+json.

{ "resourceType": "OperationOutcome", "issue": [{ "severity": "error", "code": "value", "diagnostics": "Incorrect MIME-type. Update request Content-Type header." }] }

429 Trop de demandes

Renvoyé lorsque les limites de débit sont dépassées.

{ "resourceType": "OperationOutcome", "issue": [{ "severity": "error", "code": "throttled", "diagnostics": "Rate limit exceeded. Please retry after some time." }] }

Règles de validation

HealthLake effectue une validation complète de votre demande :

Validation du bundle

  • Doit être conforme au profil du bundle PAS Inquiry Request

  • Bundle.typedoit être "collection"

  • Doit contenir exactement une ressource de réclamation

  • Toutes les ressources référencées doivent être incluses dans le bundle

Validation des réclamations

  • Doit être conforme au profil PAS Claim Inquiry

  • Claim.usedoit être "preauthorization"

  • Claim.statusdoit être "active"

  • Champs obligatoires : patientinsurer,provider, created

Validation des ressources

  • Toutes les ressources doivent être conformes à leurs profils d'enquête PAS respectifs

  • Les ressources de soutien requises doivent être présentes (patient, organisme assureur, organisme fournisseur)

  • Les références croisées doivent être valides et résolvables dans le bundle

Spécifications de performance

Métrique Spécification de 
Limite du nombre de ressources 500 ressources par bundle
Limite de taille du bundle 5 Mo maximum

Autorisations requises

Pour utiliser l'$inquireopération, assurez-vous que votre rôle IAM possède les éléments suivants :

  • healthlake:InquirePreAuthClaim- Pour appeler l'opération

SMART sur les oscilloscopes FHIR

Étendue minimale requise :

  • SMART version 1 : user/ClaimResponse.read

  • SMART v2 : user/ClaimResponse.s

Remarques de mise en œuvre importantes

Comportement de recherche

Lorsque vous soumettez une demande, recherchez l' HealthLake utilisateur à l' ClaimResponse aide de :

  • Référence du patient tirée de la demande d'entrée

  • Référence de l'assureur tirée de la demande d'entrée

  • Référence du fournisseur à partir de la demande d'entrée

  • Date de création à partir de la demande d'entrée (en tant que filtre temporel)

Correspondances multiples : si plusieurs ClaimResponses correspondent à vos critères de recherche, HealthLake renvoie tous les résultats correspondants. Vous devez utiliser l'ClaimResponse.createdhorodatage le plus récent pour identifier le dernier statut.

Demandes mises à jour

Si vous avez soumis plusieurs mises à jour pour la même autorisation préalable (par exemple, Claim v1.1, v1.2, v1.3), l'$inquireopération récupérera la version ClaimResponse associée à la version la plus récente en fonction des critères de recherche fournis.

Fonctionnement en lecture seule

L'$inquireopération :

  • Récupère le statut d'autorisation existant

  • Renvoie le plus récent ClaimResponse

  • Ne modifie ni ne met à jour aucune ressource

  • Ne crée pas de nouvelles ressources

  • Ne déclenche pas de nouveau traitement d'autorisation

Exemple de flux de travail

Flux de travail typique de demande d'autorisation préalable

1. Provider submits PA request POST /Claim/$submit → Returns ClaimResponse with outcome="queued" 2. Payer reviews request (asynchronous) → Updates ClaimResponse status internally 3. Provider checks status POST /Claim/$inquire → Returns ClaimResponse with outcome="queued" (still pending) 4. Provider checks status again later POST /Claim/$inquire → Returns ClaimResponse with outcome="complete", disposition="Approved"
  • Claim/$submit- Soumettre une nouvelle demande d'autorisation préalable ou mettre à jour une demande existante

  • Patient/$everything- Récupérez les données complètes du patient pour le contexte de l'autorisation préalable