A static Jekyll site for the Blue Button 2.0 API splash page: https://bluebutton.cms.gov.
The Blue Button 2.0 API provides Medicare enrollee claims data to applications using the OAuth2.0 authorization flow. We aim to provide a developer-friendly, standards-based API that enables people with Medicare to connect their claims data to the applications, services, and research programs they trust.
A list of core team members responsible for the code and documentation in this repository can be found in COMMUNITY.md.
├── assets
│ ├── csv
│ ├── developer-resources
│ ├── ig
│ ├── img
│ ├── js
│ ├── public_open_source
│ ├── zip
├── blog
├── css
├── fhir
│ ├── CodeSystem
│ ├── StructureDefinition
├── ops
├── resources
├── selenium_tests
The following guide is for members of the project team who have access to the repository as well as code contributors. The main difference between internal and external contributions is that external contributors will need to fork the project and will not be able to merge their own pull requests. For more information on contributing, see: CONTRIBUTING.md.
See below for instructions to install locally and make changes to the code.
NOTE: Internal software engineers or other interested parties should follow the documentation for running a Dockerized local development enviornment. For more information see the Dockerized Setup section.
We've moved the CSS for this application and our Sandbox application into a consolidated Blue Button 2.0 API CSS repository so that we can more easily keep things consistent and deploy changes more quickly.
You'll need to clone/download the BlueButton CSS repository to get started. If you're using a terminal on a Mac/Linux machine, navigate into the bluebutton-site-static
repository and then run the following command:
git clone [email protected]:CMSgov/bluebutton-css.git
If you need to make CSS changes, make them within this directory and commit them to that repository. These changes will be ignored by the git status of the bluebutton-site-static
project, but you will see any CSS changes take effect locally.
For more instructions on how to make changes to this css, view the readme inside of the bluebutton-css
directory.
It is assumed that you have the following installed on your local machine:
To startup the Docker containerized BB2 server, run the following command:
docker-compose up -d
Alternatively, to also monitor the web server logging:
docker-compose up -d
docker-compose logs -f | grep web
press Ctrl C will stop monitor logging.
For static site development, open the following in your browser to view the changes being developed: http://localhost:4000
After making changes, you may need to refresh your browser a few times for them to show up. You may also need to restart the web service using the following command:
docker-compose restart web
To cleanup/remove the setup run the following:
docker-compose down
docker rmi bluebutton-site-static_web
We recommend using Docker, but if this is a barrier, you can set up your local environment manually.
- Jekyll currently using 4.3.4
- chruby or rbenv or rvm to install versioned ruby - as mentioned in Jekyll installation guide. Currently using ruby version 3.3.5
$ gem install bundler
<—install Gem bundler$ bundle install
<—install Gem bundles
Jekyll builds the CSS and HTML pages. Run bundle exec jekyll serve
from the project root for a local build. By default, the site will run in http://localhost:4000/
. You can also run bundle exec jekyll build
to compile the site files into the _site
directory.
When running bundle exec jekyll serve
, if you get an error including cannot load such file -- webrick (LoadError)
, run bundle add webrick && bundle install
to resolve it.
For information about deploying to the static site, please referernce the following document in confluence: HOW-TO Static Site Updates.
The _codebook
directory and the corresponding Jekyll plugin are used to create the variables resources. Example: Claim Medicare Non Utilization Days Count. Although these URLs show little to no usage from analytics, they are used as URIs and are integral to the Beneficiary FHIR Data (BFD) endpoint responses Changing the URIs requires retiring all of the BFD v1 and v2 APIs and releasing a new v3 with different URIs. Any additions or changes to these URIs should involve the BFD team.
Partially adjudicated claims data (FISS and MCS) sourced from the RDA API has its own data dictionary published as a spreadsheet.
A CSV file exported from the spreadsheet and stored in the _data
directory and its
corresponding Jekyll plugin are used to create the variables resources. Example:
Billing Type Code. The plugin is similar to the one for
codebooks but uses Jekyll's built-in support for parsing CSV data rather than parsing XML files.
As with the codebook, any additions or changes to these URIs should involve the BFD team.
This project follows standard GitHub flow practices:
- Make changes in feature branches and merge to
main
frequently - Pull-requests are reviewed before merging
- Tests should be written for changes introduced
- Each change should be deployable to production
Make changes on a new branch and create pull requests to merge them into the master branch when ready.
When creating a new branch, use the naming convention [your-github-username]/[jira-ticket-number]-[description]
. For example, mrengy/BB2-1511-layout-narrow-browser
.
You'll need to use a Github Personal Access Token instead of a password in order to push changes.
Thank you for considering contributing to an Open Source project of the US Government! For more information about our contribution guidelines, see CONTRIBUTING.md.
The Blue Button Web Server team is taking a community-first and open source approach to the product development of this tool. We believe government software should be made in the open and be built and licensed such that anyone can download the code, run it themselves without paying money to third parties or using proprietary software, and use it as they will.
We know that we can learn from a wide variety of communities, including those who will use or will be impacted by the tool, who are experts in technology, or who have experience with similar technologies deployed in other spaces. We are dedicated to creating forums for continuous conversation and feedback to help shape the design and development of the tool.
We also recognize capacity building as a key part of involving a diverse open source community. We are doing our best to use accessible language, provide technical and process documents, and offer support to community members with a wide variety of backgrounds and skillsets.
Principles and guidelines for participating in our open source community are can be found in COMMUNITY.md. Please read them before joining or starting a conversation in this repo or one of the channels listed below. All community members and participants are expected to adhere to the community guidelines and code of conduct when participating in community spaces including: code repositories, communication channels and venues, and events.
For more information about our governance, see GOVERNANCE.md.
If you have ideas for how we can improve or add to our capacity building efforts and methods for welcoming people into our community, please let us know at [email protected]. If you would like to comment on the tool itself, please let us know by filing an issue on our GitHub repository.
We adhere to the CMS Open Source Policy. If you have any questions, just shoot us an email.
Submit a vulnerability: Vulnerability reports can be submitted through Bugcrowd. Reports may be submitted anonymously. If you share contact information, we will acknowledge receipt of your report within 3 business days.
For more information about our Security, Vulnerability, and Responsible Disclosure Policies, see SECURITY.md.
A Software Bill of Materials (SBOM) is a formal record containing the details and supply chain relationships of various components used in building software.
In the spirit of Executive Order 14028 - Improving the Nation's Cyber Security, a SBOM for this repository is provided here: https://github.com/CMSGov/bluebutton-web-server/network/dependencies.
For more information and resources about SBOMs, visit: https://www.cisa.gov/sbom.
This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication as indicated in LICENSE.
All contributions to this project will be released under the CC0 dedication. By submitting a pull request or issue, you are agreeing to comply with this waiver of copyright interest.