What is Cypress?

Cypress is the rigorous and repeatable testing tool of Electronic Health Records (EHR) and EHR modules in calculating CMS quality reporting programs electronic Clinical Quality Measures (eCQMs). The Cypress tool is open source and freely available for use or adoption by the health IT community including EHR vendors and testing labs. Cypress serves as the official testing tool for the EHR Certification program supported by the Office of the National Coordinator for Health IT (ONC).

Who is funding the Cypress project?

The Cypress project is being stewarded by The MITRE Corporation and is being funded by the Centers for Medicare & Mediciad (CMS) and the Office of the National Coordinator for Health Information Technology (ONC) within the United States Department of Health and Human Services (HHS).

What is the objective of Cypress?

The objective of Cypress is to enable repeatable and rigorous testing of an EHR's ability to accurately calculate eCQMs used in CMS quality reporting programs. Cypress has been recognizied by ONC as the official eCQM testing tool for use in CMS quality reporting programs eCQM certification.

Who are the intended users of Cypress?

Cypress has been designed to support both the EHR vendor and ATL testing community. Cypress provides both of these types of organizations with a tool to verify the accurate calculation of eCQMs used in CMS quality reporting programs.

What is basic Concept of Operations for use of Cypress?

Cypress is a web-based application that automates the verification of the accuracy of eCQMs calculation, and the validity of the various data standards that are dependencies to eCQMs. Cypress may be used in pre-testing mode by EHR vendors. Cypress is used in production mode by all Authorized Testing Labs (ATLs). Cypress test data is presented to EHRs for both the EP/EC and EH tests via both interoperable XML standards, or via visual presentation for manual input of the patient-level clinical data.

Testing the accuracy of eCQM calculation is provided via the Cypress EP/EC and EH Patient Test Data. The Cypress EP and EH Test Data was designed to exercise the MU Stage 2 EP and EH eCQMs. The Cypress Test Data is used to generate the scorecards that EHR vendors must meet. Vendors are able to inspect this test data prior to certification with an Authorized Testing Lab (ATL). Testing the validity of data standards is provided via the Cypress QRDA Category 1 Test Data. The Cypress Test Data includes synthetic patient records, designed to exercise all of the eCQMs used in CMS quality reporting programs. The Cypress Test Data is used by EHR vendors to generate QRDA Category 1 XML files for each of the EP or EH eCQMs and the aggregate QRDA Category 3 XML files for "Import and Calculate" tests. Cypress will automatically validate and report on errors or warnings associated with these QRDA Category 1 and QRDA Category 3 XML files.

For EP/EC CQM testing by ATLs, Cypress v2 will introduce a level of dynamic variability in the patient data at runtime to ensure that EHR systems are accurately supporting. For EH eCQM testing by ATLs, Cypress v2 will only provide static testing of the patient-level data. Dynamic testing of EH eCQMs will be addressed at a later release of Cypress after v2 has been finalized.

How can Cypress be used by EHR vendors?

Cypress is a free open source tool that is readily available for EHR vendors to download and test their system's ability to accurately calculate eCQMs used in CMS quality reporting programs. Cypress has been designed to make this internal testing and validation process easier for EHR software vendors. It is unlikely that a vendor would want to integrate the Cypress testing software with their product.

Is Cypress used to report Clinical Quality Measure data?

No. Cypress is designed to test the data calculations that would be used in such a report. Cypress would ensure that the software used to produce the report is calculating the eCQMs used in CMS quality reporting programs correctly, but is not designed to export the report itself.

Why do the generated QRDA patients have entries with dates that are outside of the Reporting/Measurement Period?

Cypress will export all entries in the patient record that belong to the relevant value sets for the data criterion for the measure, regardless of date. This is because some measures require data that is outside of the designated Measure Period. As a result, no date filtering on the data is done when the patients are generated.

Why do the test patients have different naming conventions at certain times versus others?

The test file names will differ depending on their use. Most important to know is that if you are creating a test in the Cypress software, a realistic patient name is randomly assigned to those records (e.g. Arlene Maxwell and Randall Vasquez). The name assigned to that record will differ each time a new test is created. However, any other time you view the patient files outside of the testing scenario, the patient records will take on a clinical naming convention (e.g. SCIP_Adult A, NEWBORN A and VTE_Adult C).

If the patient is included in the IPP, but not in the numerator, and I include data elements that support the numerator, will this be cause to fail the QRDA-I test based on a "too much data" criterion?

Inclusion of data elements that satisfy the eCQMs data criteria, but are not strictly required according to the scoop/filter criteria will not generate errors or warnings from Cypress.

What does open source software mean?

Open source software is a term used to describe software that is available in source code form and is generally free to use. The source code may be used to study and understand business logic coded into the software product and may also be included in derivative forms of the software product as allowed by the copyright holders.

Can I contribute software source code to Cypress?

Yes. Code contributions, bug fixes, and ideas for new features are all welcome for the Cypress project. A requirement for contributing software is that any and all software contributed to Cypress must be released under an Apache 2 open source distribution license, and that you transfer copyright of any code or patches you submit to the project.

To submit a new feature or bug fix for consideration into the Cypress repository, setup an account on GitHub, fork the Cypress code, and create a branch of Cypress on your repository. Send the link to the Cypress branch to the Cypress talk email list. In this email, cite either an existing bug or feature from the Cypress project tracker to specify the changes that you are contributing.

If you have suggestions on new features, or want to report a bug that has not yet been tracked, send an email to the talk email list with either the details for how to reproduce a bug, or a detailed description about a feature that you would like to see added to Cypress.

Can anyone unilaterally change the Cypress source code?

No. If you make changes to your copy of the Cypress code there is no guarantee that the changes will be accepted back to the Cypress project. This rigor is required to ensure the highest quality of the Cypress software. Any source code contributions are publicly reviewed and vetted by the Cypress project's governing organizations.

Any potential Cypress bug fix or Cypress feature contribution will be vetted by the Cypress project's governing bodies. Code contributions must have quality unit testing coverage that exceeds a 50% threshold, and must have reasonable and mature cyclomatic code complexity. There is a Ruby code convention requirement that can be found here. There is a Google's JavaScript style guide that can be found here. The Cypress code attempts to follow these guides as much as possible. Any contributions should follow these conventions.

How is communication managed on the Cypress project?

The most prominent activities are always published on the project website. Whenever possible, please make use of our FAQ section before exploring other communication channels.

Where do I send questions about Cypress?

Cypress JIRA Issue Tracker tracks issues related to certification testing tools used for the eCQMs used in CMS quality reporting programs. Issues can include questions on the test cases and implementation discrepancies.

The Cypress Talk List can be used to request information about the project's plans and activities. The link to join is below:

  • project-cypress-talk@googlegroups.com - to which anyone can subscribe to. Additionally, anyone is free to submit questions about the project to this list. To prevent spam, all messages are first reviewed by the Cypress project team before being forwarded to the distribution list.

Please note that communications to the Cypress talk list are publicly available to the broader community. Also, to ensure that you are included in responses to questions, please join the group or check the google groups website via the registration links above.

Is there a Cypress Talk List FAQ?

Frequently asked questions on the Cypress Talk List can be found here.

Who can I contact for clarification on the licensing terms of the UMLS Metathesaurus?

The Cypress software is provided via the open source Apache 2 distribution license. For questions regarding the licensing categories on the use of the clinical codes within the Cypress bundle that are available via the National Library of Medicine's (NLM's) Metathauraus, you need to contact the NLM. The Cypress project cannot provide either vendors or healthcare providers with guidance on these NLM licensing restrictions as they relate to the clinical codes.

What standards does Cypress use?

For testing Clinical Quality Measures, Cypress can generate the HL7 Quality Reporting Document Architecture (QRDA) Category 1 XML to represent patient-level data that can be integrated into an EHR system that needs to calculate the results of either an Eligible Clinician, Eligible Professional (EP/EC) or Eligible Hospital (EH) Clinical Quality Measure. Cypress supports tests that use the HL7 Quality Reporting Document Architecture (QRDA) Category 3 XML standard for reporting the aggregate Clinical Quality Measure result output. Cypress also supports tests using the HL7 Quality Reporting Document Architecture (QRDA) Category 1 XML standard for testing the ability of systems to report individual patient-level data as system output for the purposes of calculating Clinical Quality Measure results.

How is Cypress related to popHealth?

Similar to Cypress, popHealth is another open source healthcare project being supported by the Office of the National Coordinator for Health Information Technology. Cypress shares some of the same foundational software architecture as popHealth. Cypress is designed to support the accurate testing of eCQMs. popHealth is an open source reference implementation for reporting on the results of eCQMs used in CMS quality reporting programs. popHealth can integrate directly with an Electronic Health Record system to support this, Cypress cannot. Cypress is designed to test EHR systems and EHR software modules such as popHealth.

What programming languages does Cypress use?

Cypress runs on the Ruby on Rails open source web application framework. Cypress uses the MongoDB open source document database. Developing new software with Cypress, and/or adding new customized features will require non-trivial software development knowledge of both the Ruby and JavaScript programming languages.

How does Cypress address versioning of software modules?

The details for the versioning of the Cypress software and its sub-module dependencies are available via the Cypress developer wiki here.

Where can I find details of changes introduced in various versions of Cypress?

The details for the changes to bug fixes as well as features introduced/removed in the various upgrades and new versions of the Cypress software are updated and posted here.

Where can I submit issues or bugs in the JIRA tracker?

The Jira bug tracker for issues related to Cypress is available here.

Where can I find information about the HL7 QRDA specifications?

The HL7 QRDA Category 1 specification can be accessed here and the QRDA Category 3 specification can be accessed here.