Skip to content

MONAHRQ Extensibility

Chris Carlson edited this page Sep 6, 2017 · 4 revisions

MONAHRQ was designed with modularity in mind. Many core components are implemented as modules using techniques described in this document, such as Monahrq.Wing.Ahrq and Monahrq.Wing.HospitalCompare.

MONAHRQ component overview

MONAHRQ offers four options to developers wishing to extend its functionality:

Name Applications Language
XML Wing
  • Defining a custom Data Set
  • Creating new reports
  • Defining measures and topics
XML
Report Definition
  • Creating a new report
XML
Flutter
  • Writing the web UI for a report
AngularJS
.NET Wing
  • Defining a custom Data Set
  • Customizing the import or mapping process for a Data Set
  • Generating data for a new report
  • Defining measures and topics
  • Changing other aspects of MONAHRQ’s behavior
.NET

ℹ️ Report definitions may be included as part of an XML Wing

Wings (XML) and Flutters

The Open Source XML Wings and Flutters Framework allows developers to define custom data set types (Wings) and associated reports using only XML, and custom UIs for generated reports (Flutters) using AngularJS.

Wings and Flutters developed using this framework are loaded into MONAHRQ by the Host User through the "Manage Wings & Flutters" tab of the Settings library.

See https://github.com/AHRQ/MONAHRQ-Framework 🔗 for more information on the open source MONAHRQ framework.

Report Definitions

Report definitions are XML files parsed by MONAHRQ at runtime. They may be embedded in an XML Wing or added to the MONAHRQ program directory as a stand-alone report. For more information, see Report Definition File.

.NET Wings

A .NET Wing is the most feature-rich option for extending MONAHRQ’s functionality. It is implemented as a .NET class library that exports new types using MEF and Prism. The bulk of this document is applicable to .NET Wings. For more information, see Writing a .NET Wing.