-
Notifications
You must be signed in to change notification settings - Fork 33
Making Requests to BFD
This page contains useful information for making requests to the BFD server.
This document details the HTTP headers that should be included when calling BFD, to ensure that proper audit information is available to the BFD team. Future versions of BFD may enforce/require some or all of these headers.
These fields allow engineers & operators to read the BFD logs and see exactly why data was requested.Some of this information is redundant with information already captured elsewhere, but experience has shown it to be very helpful when investigating issues.
For synchronous (i.e. non-bulk) requests, BFD users SHALL include meaningful values for as many as possible of the following HTTP headers.
-
BlueButton-OriginalQueryId
: a unique ID (e.g. UUID) generated by the frontend system, per HTTP request to that frontend system.- This ID SHALL be included in all log events for the frontend system.
- This allows requests to be traced across systems.
-
BlueButton-OriginalQueryCounter
: start at1
and increment for every request to BFD with the sameBlueButton-OriginalQueryId
value. -
BlueButton-OriginalQueryTimestamp
: an ISO-8601 UTC timestamp representing (roughly) when the original request reached the frontend system. -
BlueButton-DeveloperId
: the unique ID in the frontend system for the developer/vendor of the third-party application. -
BlueButton-Developer
: the human-readable name in the frontend system for the developer/vendor of the third-party application. -
BlueButton-ApplicationId
: the unique ID in the frontend system for the application/client that will receive the data. -
BlueButton-Application
: the human-readable name in the frontend system for the application/client that will receive the data. -
BlueButton-UserId
: the unique ID in the frontend system for the user (e.g. beneficiary) that data is being requested on behalf of. -
BlueButton-User
: the human-readable login ID (e.g. email address) in the frontend system for the user (e.g. beneficiary) that the data is being requested on behalf of. -
BlueButton-BeneficiaryId
: the unique beneficiary ID (e.g.Patient.id
) from BFD for the user the beneficiary whose data is being requested. -
x-forwarded-for
: a standard header for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or a load balancer.
For asynchronous (i.e. bulk) requests, BFD users SHALL include meaningful values for as many as possible of the following HTTP headers.
-
BlueButton-OriginalQueryId
: (see above; same thing)- For asynchronous jobs, users SHALL use the
BlueButton-OriginalQueryId
for the HTTP request that created/submitted/whatever the job.
- For asynchronous jobs, users SHALL use the
-
BULK-CLIENTID
: a unique identifier of the bulk client for whom this request is for (i.e. UUID, ACO ID, NPI, Part D Contract) -
BULK-CLIENTNAME
: a human readable name for the bulk client for whom this request is for to aid in tracing and debugging. -
BULK-JOBID
: a unique identifier for the job (Job ID, UUID, etc.)
This document details the request options that can be used when calling BFD. Future versions of BFD may apply some of these options automatically, based on other request details (e.g. authentication/authorization).
Some data fields are optional; they're only included when the request is configured to do so.
- HTTP Header:
IncludeIdentifiers
- Note: This is only supported in v1; this header will have no effect in v2. V2 will always return unhashed MBIs, and does not return HICNs with or without the header.
- Operations: all
/Patient
requests - Default value:
false
- Supported values:
false
,true
,hicn
,mbi
- Description:
Do not set this header more than once; an arbitrary value will be selected if that happens.
When set to
mbi
, BFD will include all of the known MBIs for the requested beneficiary (unhashed). When set tohicn
, BFD will include all of the known HICNs for the requested beneficiary (unhashed). When set totrue
, BFD will include all of the known MBIs and HICNs for the requested beneficiary (unhashed). When set tofalse
, BFD will not include any (unhashed) MBIs or HICNs for the requested beneficiary.
- HTTP Header:
IncludeAddressFields
- Operations: all
/Patient
requests - Default value:
false
- Supported values:
false
,true
- Description:
When set to
true
, BFD will include all of the detailed address data for the requested beneficiary. When set tofalse
, BFD will not include detailed address data for the requested beneficiary. Please note that, even whenfalse
county and ZIP/postal codes will still be included for the specified beneficiary.
- Operations: all
- HTTP Header:
IncludeTaxNumbers
- Operations: all
/ExplanationOfBenefit
,/Claim
, and/ClaimResponse
requests - Default value:
false
- Supported values:
false
,true
- Description:
When set to
true
, BFD will include the National Provider Identifier (NPI) tax number(s) of the health care provider of services to a beneficiiary. When set tofalse
, BFD will not include the tax numbers for the requested beneficiary.
- Operations: all
- _elements parameter:
- Operations: V2
/ExplanationOfBenefit
requests using POST only - Supported values: Any element or element path in the response, starting below entry.resource
- Description:
- Must be passed as a POST body parameter to the supported operation request
- Attempting to use _elements on GET request will result in a 400 error
- Must be a comma separated list of elements to include in the response
- All fields in the response below the specified elements will be returned
- Element paths are permitted, and all fields below the final node in the path will be returned
- Element value filtering is not supported (i.e. filtering on a specific extension url value)
- Elements outside the specified requested paths will NOT be returned in the response, except for R4 FHIR spec required fields
- In order to return a CARIN compliant response, it is recommended to use the following element paths in addition to your requested filters: identifier.value,identifier.type,status,use,billablePeriod.start,insurer,provider,related.relationship,related.reference,payee.type,payee.party,outcome,careTeam.provider,careTeam.role,supportingInfo,insurance.focal,insurance.coverage,item.sequence,item.noteNumber,item.adjudication,total,payment.type,processNote,patient.meta.lastUpdated,patient.identifier,patient.deceased,patient.address.country
- See https://www.hl7.org/fhir/search.html#elements for an overview of the general functionality in the FHIR spec
- Must be passed as a POST body parameter to the supported operation request
- Operations: V2
- Home
- For BFD Users
- Making Requests to BFD
- API Changelog
- Migrating to V2 FAQ
- Synthetic and Synthea Data
- BFD SAMHSA Filtering