From c1db221874bfe0ff3fa38f3415f16705cfd83b43 Mon Sep 17 00:00:00 2001
From: Carl Partridge
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
-H "Authorization: Bearer {access_token}" \
--v
+-i
diff --git a/_includes/build/requesting_data_all_three.html b/_includes/build/requesting_data_all_three.html
index 80edcbf..e7308ca 100644
--- a/_includes/build/requesting_data_all_three.html
+++ b/_includes/build/requesting_data_all_three.html
@@ -32,19 +32,22 @@
+-i
curl -X GET "https://api.bcda.cms.gov/api/v1/Group/all/\$export" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
-H "Authorization: Bearer {access_token}" \
--v
cURL Commands to start a job
+ -H "Authorization: Bearer {access_token}" \
+ -i
curl -X GET "https://api.bcda.cms.gov/api/v2/Group/all/\$export" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
- -H "Authorization: Bearer {access_token}"
+ -H "Authorization: Bearer {access_token}" \
+ -i
curl -X GET "https://api.bcda.cms.gov/api/v2/Group/all/\$export?_type=ExplanationOfBenefit,Patient" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
- -H "Authorization: Bearer {access_token}"
+ -H "Authorization: Bearer {access_token}" \
+ -i
curl -X GET "https://api.bcda.cms.gov/api/v2/Group/all/\$export?_type=Patient" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
- -H "Authorization: Bearer {access_token}"
cURL Commands to start a job
+ -H "Authorization: Bearer {access_token}" \
+ -i
curl -X GET "https://api.bcda.cms.gov/api/v2/Group/runout/\$export" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
- -H "Authorization: Bearer {access_token}"
+ -H "Authorization: Bearer {access_token}" \
+ -i
curl -X GET "https://api.bcda.cms.gov/api/v2/Group/runout/\$export?_type=ExplanationOfBenefit,Patient" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
- -H "Authorization: Bearer {access_token}"
+ -H "Authorization: Bearer {access_token}" \
+ -i
curl -X GET "https://api.bcda.cms.gov/api/v2/Group/runout/\$export?_type=Patient" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
- -H "Authorization: Bearer {access_token}"
cURL Command using the _since parameter within the /Group endpoint
+ -H "Authorization: Bearer {access_token}" \
+ -i
curl -X GET "https://api.bcda.cms.gov/api/v2/Group/all/\$export?_type=Patient&_since=2020-02-13T08:00:00.000-05:00" \
-H "Accept: application/fhir+json" \
-H "Prefer: respond-async" \
- -H "Authorization: Bearer {access_token}"
Response Example: Successful Request
diff --git a/_includes/build/requesting_filtered_data_since_Patient.html b/_includes/build/requesting_filtered_data_since_Patient.html
index 2c614df..182dca6 100644
--- a/_includes/build/requesting_filtered_data_since_Patient.html
+++ b/_includes/build/requesting_filtered_data_since_Patient.html
@@ -16,7 +16,8 @@ 202 Accepted
cURL Command using the _since parameter within the /Patient endpoint
+ -H "Authorization: Bearer {access_token}" \
+ -i
curl -X GET "https://api.bcda.cms.gov/api/v2/Patient/\$export?_type=Patient&_since=2020-02-13T08:00:00.000-05:00" \
-H "Accept: application/fhir+json" \
-H "Prefer: respond-async" \
- -H "Authorization: Bearer {access_token}"
Response Example: Successful Request
diff --git a/_includes/guide/bcda_v2.html b/_includes/guide/bcda_v2.html
index 201e7f0..711e495 100644
--- a/_includes/guide/bcda_v2.html
+++ b/_includes/guide/bcda_v2.html
@@ -24,14 +24,14 @@ 202 Accepted
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
-H "Authorization: Bearer {access_token}" \
--v
+-i
diff --git a/_includes/guide/try_the_api.html b/_includes/guide/try_the_api.html
index cc865b8..5f393bf 100644
--- a/_includes/guide/try_the_api.html
+++ b/_includes/guide/try_the_api.html
@@ -105,17 +105,16 @@
+-i
curl -X GET "https://sandbox.bcda.cms.gov/api/v1/Group/all/\$export" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
-H "Authorization: Bearer {access_token}" \
--v
With our new access token, we are able to make more requests to the API. We will now tell the server to deliver our data.
- In this example, we requested data from the /Patient endpoint with no date filter (no _since parameter) and no specified resource type (no _type parameter). We included the long string of characters from the previous step (our access token) in the authorization header (-H "Authorization: Bearer "). Notice that we needed to include the word "Bearer" followed by a space before the access token. We also added "-v" in order to see the Job ID. + In this example, we requested data from the /Patient endpoint with no date filter (no _since parameter) and no specified resource type (no _type parameter). We included the long string of characters from the previous step (our access token) in the authorization header (-H "Authorization: Bearer "). Notice that we needed to include the word "Bearer" followed by a space before the access token. We also added "-i" in order to see the Job ID.
curl -X GET "https://sandbox.bcda.cms.gov/api/v2/Group/all/\$export" \
--H "accept: application/fhir+json" \
--H "Prefer: respond-async" \
--H "Authorization: Bearer {access_token}" \
--v
-
+ -H "accept: application/fhir+json" \
+ -H "Prefer: respond-async" \
+ -H "Authorization: Bearer {access_token}" \
+ -i
@@ -150,8 +149,7 @@
curl -X GET "https://sandbox.bcda.cms.gov/api/v2/jobs/42" \
-H "accept: application/fhir+json" \
--H "Authorization: Bearer {access_token}"
-
+-H "Authorization: Bearer {access_token}"
Access to the Claim and ClaimResponse resources is handled within BCDA on a per ACO (Accountable Care Organization) ID level. There are no required changes to credentials for those REACH ACOs who would like access to the V2 endpoint. The BCDA V2 service supports the same functionality as V1 API endpoints in both the sandbox and production API environments. All V2 endpoints should work as described in the existing BCDA documentation. To transition from V1 to your BCDA V2 endpoints, replace ‘v1’ in the API call URLs with ‘v2’, as in the cURL example below:
curl -X GET "https://sandbox.bcda.cms.gov/api/v1/Patient/\$export" \
--H "accept: application/fhir+json" \
--H "Prefer: respond-async" \
--H "Authorization: Bearer {access_token}" \
--v
-
+ -H "accept: application/fhir+json" \
+ -H "Prefer: respond-async" \
+ -H "Authorization: Bearer {access_token}" \
+ -i
In Medicare Fee-for-Service (FFS), in the timeline of a supplier order and partially adjudicated data, there is no pre-authorization information available. In BCDA, we only see partially adjudicated claims for actual claims, not for the pre-authorization type or a pre-determination type.
From aed97863a04e65fbfc684af3ad0d40f8dc910148 Mon Sep 17 00:00:00 2001
From: Carl Partridge
curl -d "" -X POST "https://sandbox.bcda.cms.gov/auth/token" \
- --user 2462c96b-6427-4efb-aed7-118e20c2e997:8e87f0ebc50d10f1bc9734329a9900179b84ccd39e4d0920b905cc359cf6e94a6e760bbe3a0890c7 \
+ --user {client_id}:{client_secret} \
-H "accept: application/json"
curl -X GET "https://api.bcda.cms.gov/api/v2/attribution_status" \
- -H "accept: application/json" \
- -H "Authorization: Bearer {access_token}"
+ -H "accept: application/json" \
+ -H "Authorization: Bearer {access_token}"
{
diff --git a/_includes/build/bcda_v2.html b/_includes/build/bcda_v2.html
index beab519..65493a1 100644
--- a/_includes/build/bcda_v2.html
+++ b/_includes/build/bcda_v2.html
@@ -23,14 +23,14 @@
curl -X GET "https://api.bcda.cms.gov/api/v2/Group/all/\$export" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
--H "Authorization: Bearer {access_token}" \
+-H "Authorization: Bearer {access_token}" \
-i
curl -X GET "https://api.bcda.cms.gov/api/v1/Group/all/\$export" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
--H "Authorization: Bearer {access_token}" \
+-H "Authorization: Bearer {access_token}" \
-i
diff --git a/_includes/build/best_practices_download_speed.html b/_includes/build/best_practices_download_speed.html
index 62fd0d0..8b583f2 100644
--- a/_includes/build/best_practices_download_speed.html
+++ b/_includes/build/best_practices_download_speed.html
@@ -10,9 +10,9 @@
Sample cURL Command to Download the Data
- curl "https://sandbox.bcda.cms.gov/data/42/afd22dfa-c239-4063-8882-eb2712f9f638.ndjson" \
--H "Authorization: Bearer {access_token}" \
--H "Accept-Encoding: gzip"
+ curl "{output_url}" \
+ -H "Authorization: Bearer {access_token}" \
+ -H "Accept-Encoding: gzip"
diff --git a/_includes/build/cancelling_jobs.html b/_includes/build/cancelling_jobs.html
index 42d2cc2..4cce62c 100644
--- a/_includes/build/cancelling_jobs.html
+++ b/_includes/build/cancelling_jobs.html
@@ -5,7 +5,7 @@ Step 1: Obtain an Access Token
Step 2: Send a Request to Cancel a Job
Request to Cancel a Job
- DELETE /api/v2/jobs/{jobId}
+ DELETE /api/v2/jobs/{job_id}
Request Headers
Authorization: Bearer {access_token}
diff --git a/_includes/build/requesting_data_all_three.html b/_includes/build/requesting_data_all_three.html
index e7308ca..ec0e45d 100644
--- a/_includes/build/requesting_data_all_three.html
+++ b/_includes/build/requesting_data_all_three.html
@@ -58,7 +58,7 @@ Response Example: Too Many Requests
429 Too Many Requests
Response Headers
- Content-Location: https://api.bcda.cms.gov/api/v2/jobs/42
+ Content-Location: https://api.bcda.cms.gov/api/v2/jobs/{job_id}
Start a Job Explanation
This operation will start a data export job. We have provided three example requests and three example cURL statements to start a job for:
@@ -88,14 +88,14 @@ Start a Job Explanation
Step 3: Check the job status
Request to check the job status
- GET https://api.bcda.cms.gov/api/v2/jobs/42
+ GET https://api.bcda.cms.gov/api/v2/jobs/{job_id}
Request Headers
Authorization: Bearer {access_token}
Accept: application/fhir+json
cURL Command to check the job status
- curl -X GET "https://api.bcda.cms.gov/api/v2/jobs/42" \
+ curl -X GET "https://api.bcda.cms.gov/api/v2/jobs/{job_id}" \
-H "accept: application/fhir+json" \
-H "Authorization: Bearer {access_token}"
@@ -107,19 +107,19 @@ Response Example: Completed Job
"output": [
{
"type": "ExplanationOfBenefit",
- "url": "https://api.bcda.cms.gov/data/42/afd22dfa-c239-4063-8882-eb2712f9f638.ndjson"
+ "url": "{output_url}"
},
{
"type": "Coverage",
- "url": "https://api.bcda.cms.gov/data/42/f76a0b76-48ed-4033-aad9-d3eec37e7e83.ndjson"
+ "url": "{output_url}"
},
{
"type": "Patient",
- "url": "https://api.bcda.cms.gov/data/42/f92dcf16-63a2-448e-a12a-3bf677f966ed.ndjson"
+ "url": "{output_url}"
}
],
"error": [],
- "JobID": 42
+ "JobID": {job_id}
}
@@ -135,14 +135,14 @@ Check the Job Status Explanation
Step 4: Download the data
Request to download the data
- GET https://api.bcda.cms.gov/data/42/afd22dfa-c239-4063-8882-eb2712f9f638.ndjson
+ GET {output_url}
Request Headers
Authorization: Bearer {access_token}
Accept-Encoding: gzip
cURL Command to download the data
- curl -X GET "https://api.bcda.cms.gov/data/42/afd22dfa-c239-4063-8882-eb2712f9f638.ndjson" \
+ curl -X GET "{output_url}" \
-H "Accept-Encoding: gzip" \
-H "Authorization: Bearer {access_token}"
diff --git a/_includes/build/requesting_data_runouts.html b/_includes/build/requesting_data_runouts.html
index 0b715de..a198829 100644
--- a/_includes/build/requesting_data_runouts.html
+++ b/_includes/build/requesting_data_runouts.html
@@ -46,7 +46,7 @@ Response Example: Successful Request
202 Accepted
Response Headers
- Content-Location: https://api.bcda.cms.gov/api/v2/jobs/42
+ Content-Location: https://api.bcda.cms.gov/api/v2/jobs/{job_id}
Start a Job using 'runout' with /Group Explanation
This operation will start a data export job. We have provided three example requests and three example cURL statements to start a job for:
diff --git a/_includes/build/requesting_filtered_data_since_Group.html b/_includes/build/requesting_filtered_data_since_Group.html
index 3a4239c..be68fcc 100644
--- a/_includes/build/requesting_filtered_data_since_Group.html
+++ b/_includes/build/requesting_filtered_data_since_Group.html
@@ -30,7 +30,7 @@ Response Example: Too Many Requests
429 Too Many Requests
Response Headers
-Content-Location: https://api.bcda.cms.gov/api/v2/jobs/42
+Content-Location: https://api.bcda.cms.gov/api/v2/jobs/{job_id}
Start a Job using _since within the /Group endpoint Explanation
diff --git a/_includes/build/requesting_filtered_data_since_Patient.html b/_includes/build/requesting_filtered_data_since_Patient.html
index 182dca6..1686d0d 100644
--- a/_includes/build/requesting_filtered_data_since_Patient.html
+++ b/_includes/build/requesting_filtered_data_since_Patient.html
@@ -26,7 +26,7 @@ Response Example: Too Many Requests
429 Too Many Requests
Response Headers
-Content-Location: https://api.bcda.cms.gov/api/v2/jobs/42
+Content-Location: https://api.bcda.cms.gov/api/v2/jobs/{job_id}
Start a Job using _since within the /Patient endpoint Explanation
diff --git a/_includes/guide/bcda_v2.html b/_includes/guide/bcda_v2.html
index 711e495..304bd6e 100644
--- a/_includes/guide/bcda_v2.html
+++ b/_includes/guide/bcda_v2.html
@@ -23,14 +23,14 @@
curl -X GET "https://sandbox.bcda.cms.gov/api/v2/Group/all/\$export" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
--H "Authorization: Bearer {access_token}" \
+-H "Authorization: Bearer {access_token}" \
-i
curl -X GET "https://sandbox.bcda.cms.gov/api/v1/Group/all/\$export" \
-H "accept: application/fhir+json" \
-H "Prefer: respond-async" \
--H "Authorization: Bearer {access_token}" \
+-H "Authorization: Bearer {access_token}" \
-i
diff --git a/_includes/guide/try_the_api.html b/_includes/guide/try_the_api.html
index 5f393bf..30fcf26 100644
--- a/_includes/guide/try_the_api.html
+++ b/_includes/guide/try_the_api.html
@@ -87,7 +87,7 @@
If the request was successful, we will receive a response with the code 200 containing a few headers. The first header ("access token") contains a long string of characters. This is our access token which must be attached to all of our other requests to the API.
{
-"access_token": "eyJhbGciOiJSUzUxMiIsInR5c...",
+"access_token": "{access_token}",
"token_type":"bearer"
}
@@ -124,7 +124,7 @@ Response Example after Starting a Job
If the request was successful, we will receive a response with the code 202 containing a few headers. One of the headers (Content-Location) will contain a URL. Notice that the URL ends in a number. This is the Job ID of the job we just started. In the next step, we will use this URL and Job ID to check if the server is done preparing our file(s).
202 Accepted
-Content-Location: https://sandbox.bcda.cms.gov/api/v2/jobs/42
+Content-Location: https://sandbox.bcda.cms.gov/api/v2/jobs/{job_id}
@@ -147,9 +147,9 @@
Sample cURL Command to Check the Job Status
-curl -X GET "https://sandbox.bcda.cms.gov/api/v2/jobs/42" \
--H "accept: application/fhir+json" \
--H "Authorization: Bearer {access_token}"
+curl -X GET "https://sandbox.bcda.cms.gov/api/v2/jobs/{job_id}" \
+ -H "accept: application/fhir+json" \
+ -H "Authorization: Bearer {access_token}"
Response Example after Checking on a Job
@@ -201,9 +201,9 @@
Sample cURL Command to Download the Data
-curl "https://sandbox.bcda.cms.gov/data/42/afd22dfa-c239-4063-8882-eb2712f9f638.ndjson" \
--H "Authorization: Bearer {access_token}" \
--H "Accept-Encoding: gzip"
+curl "{output_url}" \
+ -H "Authorization: Bearer {access_token}" \
+ -H "Accept-Encoding: gzip"
Response Example after Downloading the Data
From 7cead962eca133d4f22a44ad344bdefbf0cfcaf6 Mon Sep 17 00:00:00 2001
From: Carl Partridge
Date: Tue, 5 Nov 2024 16:29:05 -0500
Subject: [PATCH 3/9] BCDA-8393 Update a few small things, add links (#215)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## 🎫 Ticket
https://jira.cms.gov/browse/BCDA-8393
## 🛠 Changes
A few small changes. Adding some links, removal of a word.
## ℹ️ Context
A few small changes from the most recent friction log.
## 🧪 Validation
Verified changes locally.
---
_includes/data/claims_data_avail.html | 2 +-
_includes/data/how_to_use_bcda_data.html | 6 +++---
_includes/guide/type_parameter.html | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/_includes/data/claims_data_avail.html b/_includes/data/claims_data_avail.html
index c0b6cca..4c55b03 100644
--- a/_includes/data/claims_data_avail.html
+++ b/_includes/data/claims_data_avail.html
@@ -1,5 +1,5 @@
- Since the Beneficiary Claims Data API (BCDA) shares fully adjudicated Medicare claims data (Part A, B, and D), claims data availability relies on how quickly a claim has been submitted, processed, and approved. Per Section 6404 of the Affordable Care Act, the maximum period for submission of all Medicare Fee-for-Service claims has been reduced to no more than 12 months (1 calendar year) after the date services were furnished. CMS typically receives claims 3-4 weeks after care has been provided. Once received by CMS, it is possible for claims to undergo more than one round of processing to make adjustments, edits, and cancellations. Data will only be available via the API once a claim has been approved. For more details on claims submission and approval timeframes, please review this white paper which outlines the lifecycle of a Medicare claim, as well as timeframes for submission and approval (pages 11, 12, and 22 have details on month-over-month statistics).
+
Since the Beneficiary Claims Data API (BCDA) shares fully adjudicated Medicare claims data (Part A, B, and D), claims data availability relies on how quickly a claim has been submitted, processed, and approved. Per Section 6404 of the Affordable Care Act, the maximum period for submission of all Medicare Fee-for-Service claims has been reduced to no more than 12 months (1 calendar year) after the date services were furnished. CMS typically receives claims 3-4 weeks after care has been provided. Once received by CMS, it is possible for claims to undergo more than one round of processing to make adjustments, edits, and cancellations. Data will only be available via the API once a claim has been approved. For more details on claims submission and approval timeframes, please review this white paper which outlines the lifecycle of a Medicare claim, as well as timeframes for submission and approval (pages 11, 12, and 22 have details on month-over-month statistics).
Once a claim has been submitted, processed, and approved, BCDA receives the data on a weekly cadence, while Claim and Claim Line Feed (CCLF) files receive them monthly. New data is loaded from the CCW every weekend. In the event of a delay, there will be an announcement in the BCDA Google Group with updates on when the data will be refreshed.
diff --git a/_includes/data/how_to_use_bcda_data.html b/_includes/data/how_to_use_bcda_data.html
index f78cfe2..9b19d25 100644
--- a/_includes/data/how_to_use_bcda_data.html
+++ b/_includes/data/how_to_use_bcda_data.html
@@ -4,9 +4,9 @@
For adjudicated claims, BCDA serves data according to the bulk FHIR specification using three FHIR resources: ExplanationOfBenefit (EOB), Patient, and Coverage. This means that your claims data will be delivered through three FHIR resource types rather than 12 CCLF files.
- - The ExplanationOfBenefit (EOB) resource type provides similar information to what is provided in CCLF files 1-7. The EOB files contain lines within an episode of care, including where and when the service was performed, the diagnosis codes, the provider who performed the service, and the cost of care.
- - The Patient resource type provides similar information to what is provided in CCLF files 8 and 9. This is where you get your information about who your beneficiaries are, their demographic information, and updates to their patient identifiers.
- - The Coverage resource type provides information about beneficiaries’ insurance coverage, including information about dual coverage.
+ - The ExplanationOfBenefit (EOB) resource type provides similar information to what is provided in CCLF files 1-7. The EOB files contain lines within an episode of care, including where and when the service was performed, the diagnosis codes, the provider who performed the service, and the cost of care.
+ - The Patient resource type provides similar information to what is provided in CCLF files 8 and 9. This is where you get your information about who your beneficiaries are, their demographic information, and updates to their patient identifiers.
+ - The Coverage resource type provides information about beneficiaries’ insurance coverage, including information about dual coverage.
For partially adjudicated claims two FHIR resources are available to REACH ACOs: Claim and ClaimResponse.
diff --git a/_includes/guide/type_parameter.html b/_includes/guide/type_parameter.html
index 71454e4..a6223fa 100644
--- a/_includes/guide/type_parameter.html
+++ b/_includes/guide/type_parameter.html
@@ -1,5 +1,5 @@
- The _type parameter allows you to request different Resource Types from the API. Instead of receiving data from all three Resource Types when no _type parameter is specified, you will be able to use the _type parameter to submit one or more Resource Types. The API will then produce data from the specified Resource Types.
+ The _type parameter allows you to request different Resource Types from the API. Instead of receiving data from all Resource Types when no _type parameter is specified, you will be able to use the _type parameter to submit one or more Resource Types. The API will then produce data from the specified Resource Types.
From 0954e434069e531ef11daf7850a88c9496b1c12d Mon Sep 17 00:00:00 2001
From: Greg Pfadenhauer
Date: Thu, 7 Nov 2024 14:18:51 -0500
Subject: [PATCH 4/9] Remove option 1 to request a token using curl (#216)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Address feedback from Karley's review of staging r79
## 🎫 Ticket
https://cmsgov.slack.com/archives/CHG7Q7XNH/p1730998587225749
## 🛠 Changes
Remove option 1 to request a token using curl
## ℹ️ Context
we don't provide a sample command on how to actually encode the
credentials, and it's cleaner to just point everyone to the curl command
with the --user flag
## 🧪 Validation
Validated in staging
---
_includes/build/access_token.html | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/_includes/build/access_token.html b/_includes/build/access_token.html
index c7eca9c..61ec270 100644
--- a/_includes/build/access_token.html
+++ b/_includes/build/access_token.html
@@ -32,15 +32,9 @@
Access Token cURL Command
-
- cURL Option 1: This cURL command requires separate Base64 encoding. We have concatenated the Base64 encoding of the ‘Client ID : Secret’ as the argument to the -H flag. Please note that the URL in the Production environment will be different.
-
-curl -d "" -X POST "https://sandbox.bcda.cms.gov/auth/token" \
- -H "accept: application/json" \
- -H "authorization: Basic MjQ2MmM5NmItNjQyNy00ZWZiLWFlZDctMTE4ZTIwYzJlOTk3OjhlODdmMGViYzUwZDEwZjFiYzk3MzQzMjlhOTkwMDE3OWI4NGNjZDM5ZTRkMDkyMGI5MDVjYzM1OWNmNmU5NGE2ZTc2MGJiZTNhMDg5MGM3"
- cURL Option 2: This cURL command encodes your credentials into Base64.
+ This command takes advantage of curl’s built-in ability to Base-64 encode your credentials, request, and receive your token in a single step. The authorization in your request header will be substituted with "--user {client_id}:{client_secret}"
curl -d "" -X POST "https://sandbox.bcda.cms.gov/auth/token" \
From 73d5ec025dbf3fc942e5e0fb08858f6da73e727a Mon Sep 17 00:00:00 2001
From: austincanada <162146803+austincanada@users.noreply.github.com>
Date: Wed, 20 Nov 2024 11:44:04 -0500
Subject: [PATCH 5/9] Austin/bcda 8262 tealium snippet (#218)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## 🎫 Ticket
https://jira.cms.gov/browse/8262
## 🛠 Changes
Updated Tealium snippet change
## ℹ️ Context
Needed to add an additional Tealium script
## 🧪 Validation
Available within stage.bcda.gov and BlastX team validation.
---
assets/js/tagging.js | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/assets/js/tagging.js b/assets/js/tagging.js
index 9c45220..7b2a902 100644
--- a/assets/js/tagging.js
+++ b/assets/js/tagging.js
@@ -2,12 +2,18 @@
---
(function(a,b,c,d){
- a='https://tags.tiqcdn.com/utag/cmsgov/cms-general/{{ jekyll.environment }}/utag.js';
+ a='https://tealium-tags.cms.gov/cms-general/{{ jekyll.environment }}/utag.js';
b=document;c='script';d=b.createElement(c);d.src=a;
d.type='text/java'+c;d.async=true;
a=b.getElementsByTagName(c)[0];a.parentNode.insertBefore(d,a);
})();
+(function(a,b,c,d){
+ a='https://tealium-tags.cms.gov/cms-general/{{ jekyll.environment }}/utag.sync.js';
+ b=document;c='script';d=b.createElement(c);d.src=a;
+ a=b.getElementsByTagName(c)[0];a.parentNode.insertBefore(d,a);
+})();
+
function metricTagging(category, action, label) {
utag.link({ ga_event_category: category, ga_event_action: action, ga_event_label: label });
};
From 4d21de388cba7c8fe27f1099f35dc2f1743776f0 Mon Sep 17 00:00:00 2001
From: Greg Pfadenhauer
Date: Wed, 20 Nov 2024 11:51:14 -0500
Subject: [PATCH 6/9] BCDA-8434 Update credential management guidelines (#217)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## 🎫 Ticket
https://jira.cms.gov/browse/bcda-8434
## 🛠 Changes
Added the updated credential management instructions to build.html and
included a small announcement in updates.html
## ℹ️ Context
This content was originally drafted to be a new subpage in a redesigned
version of the site, but can be dropped into the current site. It will
be helpful for new model entities joining in 2025 and getting started
with BCDA.
## 🧪 Validation
1. Published to staging site for review by @phamjennifer
2. Validated links from side navigation and from updates.html work as
intended to /build.html#bcda-credentials
---
_includes/build/bcda_credentials.html | 44 +++++++++++++++------------
_updates/2024-11-18.html | 14 +++++++++
build.html | 4 +--
3 files changed, 41 insertions(+), 21 deletions(-)
create mode 100644 _updates/2024-11-18.html
diff --git a/_includes/build/bcda_credentials.html b/_includes/build/bcda_credentials.html
index 272130a..a3550df 100644
--- a/_includes/build/bcda_credentials.html
+++ b/_includes/build/bcda_credentials.html
@@ -1,22 +1,28 @@
-
- In production, BCDA protects its endpoints with OAuth2 access tokens.
-
+Production credentials authorize your organization's access to the Beneficiary Claims Data API (BCDA). Eligible model entities can manage BCDA credentials by logging into their model-specific system:
+
+ - ACOs in the Medicare Shared Savings Program: Credential delegates can manage and create credentials from ACO Management System (ACO-MS).
+ - REACH ACOs and KCEs or KCF practices in the Kidney Care Choices Model: The following roles can manage and create credentials from 4innovation (4i):
+ - Executive Contact
+ - Entity Primary Contact
+ - Entity Secondary Contact
+ - DUA Requestor
+ - DUA Custodian
+
+
+
+Your registered contact can contact the ACO-MS and 4i help desk to assign these roles.
-
+Create your credentials
+BCDA credentials are formatted as a client ID and secret, which your organization will use every time it requests an authentication token. Production credentials are sensitive information and must be stored securely.
+Create BCDA credentials by visiting the API Credentials page in your model-specific system. Choose the BCDA Credentials tab, then select Create New API Credentials. You'll need to provide a public, static IP address for every system, including vendors, that will access the API (up to 8 IP addresses). It may take up to an hour for the allow list to be updated.
-
-Model Entities Gain Access to BCDA through ACO-MS or 4i
-
+Rotate your credentials
+Your organization's credentials will expire and deactivate after a set period of time. You can rotate BCDA credentials in the API Credentials page to generate a new, active client ID and secret.
+You'll need to rotate credentials every 90 days in 4i or every 12 months in ACO-MS. Once you choose the BCDA Credentials tab, select the rotate icon under the Actions column.
-
-
ACOs in the Medicare Shared Savings Program: Create and manage your organization's BCDA credentials from the ACO Management System.
-REACH ACOs and KCEs or KCFs in the Kidney Care Choices Model: Create and manage your organization's BCDA credentials from the 4i portal.
-When creating new credentials, be prepared to provide the IP address(es) for each system that will make requests to BCDA. It may take up to an hour for the allow list to be updated after the IP address(es) are added.
-
+Revoke your credentials
+You may need to revoke (deactivate) your organization's credentials if they are leaked or compromised. You can create new credentials as a replacement afterward.
+Revoke BCDA credentials in the API Credentials page. Choose the BCDA Credentials tab, then select the delete (x) icon under the Actions column.
+
+If your credentials have been compromised
+Please revoke or rotate your BCDA credentials immediately. Afterward, notify the BCDA team at bcapi@cms.hhs.gov to review recent activity.
\ No newline at end of file
diff --git a/_updates/2024-11-18.html b/_updates/2024-11-18.html
new file mode 100644
index 0000000..022a4e3
--- /dev/null
+++ b/_updates/2024-11-18.html
@@ -0,0 +1,14 @@
+---
+---
+
+
+ Updated guidance on managing BCDA credentials
+
+
+ November 20, 2024
+
+
+ The BCDA team has updated our guidance for model entities managing their BCDA credentials in 4i and ACO-MS. Please visit Manage your BCDA Credentials for model specific instructions on how to manage and create BCDA credentials for your organization.
+ No action is required for BCDA users, but we hope the updated guidance is helpful!
+
+
\ No newline at end of file
diff --git a/build.html b/build.html
index 30e84c8..07685f4 100644
--- a/build.html
+++ b/build.html
@@ -38,7 +38,7 @@
- Obtain your BCDA Credentials
+ Manage your BCDA Credentials
{% include build/bcda_credentials.html %}
From 89372eb354944e256596746519066421970230f7 Mon Sep 17 00:00:00 2001
From: Carl Partridge
Date: Tue, 17 Dec 2024 14:01:07 -0500
Subject: [PATCH 7/9] BCDA-8390-adjust-file-download-copy (#219)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## 🎫 Ticket
https://jira.cms.gov/browse/BCDA-8390
## 🛠 Changes
Adjusting the file download curl command to specifically download a file
as output instead of return bits from the request as well as adjust the
copy to acknowledge that the file downloaded is a gzip and will need to
be extracted to be used.
## ℹ️ Context
## 🧪 Validation
Site build and review locally.
---
_includes/build/best_practices_download_speed.html | 5 +++--
_includes/build/requesting_data_all_three.html | 5 +++--
_includes/guide/try_the_api.html | 3 ++-
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/_includes/build/best_practices_download_speed.html b/_includes/build/best_practices_download_speed.html
index 8b583f2..cfb00a2 100644
--- a/_includes/build/best_practices_download_speed.html
+++ b/_includes/build/best_practices_download_speed.html
@@ -4,7 +4,7 @@
- Requesting compressed data can help increase your download speed. You can request compressed data files by specifying the `Accept-Encoding: gzip` header in your download requests.
+ Requesting compressed data can help increase your download speed. You can request compressed data files by specifying the `Accept-Encoding: gzip` header in your download requests. Note that the file downloaded will be a gzip file which you will need to extract into its ndjson format.
@@ -12,7 +12,8 @@
curl "{output_url}" \
-H "Authorization: Bearer {access_token}" \
- -H "Accept-Encoding: gzip"
+ -H "Accept-Encoding: gzip" \
+ --output "your-file-name"
diff --git a/_includes/build/requesting_data_all_three.html b/_includes/build/requesting_data_all_three.html
index ec0e45d..c353495 100644
--- a/_includes/build/requesting_data_all_three.html
+++ b/_includes/build/requesting_data_all_three.html
@@ -144,7 +144,8 @@ Request Headers
cURL Command to download the data
curl -X GET "{output_url}" \
-H "Accept-Encoding: gzip" \
- -H "Authorization: Bearer {access_token}"
+ -H "Authorization: Bearer {access_token}" \
+ --output "your-file-name"
Response Example
@@ -173,7 +174,7 @@
Files expire after 24 hours.
- The "Accept-Encoding: gzip" header is optional, but will return a significantly smaller (about 30X smaller) file with a faster download speed. Follow our recommended best practices for speeding up downloads.
+ The "Accept-Encoding: gzip" header is optional, but will return a significantly smaller (about 30X smaller) file with a faster download speed. Follow our recommended best practices for speeding up downloads. Note that the file downloaded will be a gzip file which you will need to extract into its ndjson format.
The response will be the requested data as FHIR resources in NDJSON format. Each file related to a different resource type will appear separately and labeled as to which resource type it contains. Examples of data from each Resource Type are available in the guide to working with BCDA data.
diff --git a/_includes/guide/try_the_api.html b/_includes/guide/try_the_api.html
index 30fcf26..5ed16c4 100644
--- a/_includes/guide/try_the_api.html
+++ b/_includes/guide/try_the_api.html
@@ -203,7 +203,8 @@
curl "{output_url}" \
-H "Authorization: Bearer {access_token}" \
- -H "Accept-Encoding: gzip"
+ -H "Accept-Encoding: gzip" \
+ --output "your-file-name"
Response Example after Downloading the Data
From 3cbb8286a117c7828126a29d3f901945894627eb Mon Sep 17 00:00:00 2001
From: Carl Partridge
Date: Tue, 17 Dec 2024 15:30:10 -0500
Subject: [PATCH 8/9] BCDA-8392-add-runout-description (#220)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## 🎫 Ticket
https://jira.cms.gov/browse/BCDA-8392
## 🛠 Changes
Added runout data description.
## ℹ️ Context
## 🧪 Validation
Site build and review locally.
---------
Co-authored-by: Greg Pfadenhauer
---
build.html | 3 +++
1 file changed, 3 insertions(+)
diff --git a/build.html b/build.html
index 07685f4..d120fd3 100644
--- a/build.html
+++ b/build.html
@@ -247,6 +247,9 @@
Request runouts data with /Group and `runout`
+
+ Use /Group/runout at the beginning of a new Performance Year (PY) to retrieve runouts data for the the previous PY. Runouts data includes claims data for Medicare enrollees who were attributed to your model entity the previous year but not the current year. These claims will have a service date no later than December 31 of the previous year.
+
{% include build/requesting_data_runouts.html %}
From a5e91531b717703a6a9fb48369afe4939b4126b5 Mon Sep 17 00:00:00 2001
From: Greg Pfadenhauer
Date: Wed, 18 Dec 2024 14:56:10 -0500
Subject: [PATCH 9/9] Correct credential expiration in ACO-MS (#221)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Credentials expire after 90 days regardless of which portal they were
created in
## 🎫 Ticket
N/A
## 🛠 Changes
Corrected information on when credentials expire
## ℹ️ Context
## 🧪 Validation
---
_includes/build/bcda_credentials.html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/_includes/build/bcda_credentials.html b/_includes/build/bcda_credentials.html
index a3550df..57d9e0c 100644
--- a/_includes/build/bcda_credentials.html
+++ b/_includes/build/bcda_credentials.html
@@ -18,11 +18,11 @@ Create your credentials
Rotate your credentials
Your organization's credentials will expire and deactivate after a set period of time. You can rotate BCDA credentials in the API Credentials page to generate a new, active client ID and secret.
-You'll need to rotate credentials every 90 days in 4i or every 12 months in ACO-MS. Once you choose the BCDA Credentials tab, select the rotate icon under the Actions column.
+You'll need to rotate credentials every 90 days in 4i or ACO-MS. Once you choose the BCDA Credentials tab, select the rotate icon under the Actions column.
Revoke your credentials
You may need to revoke (deactivate) your organization's credentials if they are leaked or compromised. You can create new credentials as a replacement afterward.
Revoke BCDA credentials in the API Credentials page. Choose the BCDA Credentials tab, then select the delete (x) icon under the Actions column.
If your credentials have been compromised
-Please revoke or rotate your BCDA credentials immediately. Afterward, notify the BCDA team at bcapi@cms.hhs.gov to review recent activity.
\ No newline at end of file
+Please revoke or rotate your BCDA credentials immediately. Afterward, notify the BCDA team at bcapi@cms.hhs.gov to review recent activity.