Skip to content

CMSgov/bluebutton-site-static

Repository files navigation

CMS Blue Button 2.0 API Static Site

A static Jekyll site for the Blue Button 2.0 API splash page: https://bluebutton.cms.gov.

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.

Get CSS/Styles Working

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 git@github.com: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.

Dockerized Setup

Requirements for Docker

It is assumed that you have the following installed on your local machine:

Running the local site using Docker

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

Setup without Docker

We recommend using Docker, but if this is a barrier, you can set up your local environment manually.

Requirements for non-Docker setup

Installation

  1. $ gem install bundler <—install Gem bundler
  2. $ bundle install <—install Gem bundles

Build

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.

Resolving potential errors

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.

Making changes

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.

Deploy

For information about deploying to the static site, please referernce the following document in confluence: HOW-TO Static Site Updates.

Codebook

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.

RDA API Data Dictionary

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.