Approximately 40 million women are screened using mammography in the US every year and hundreds of millions more are screened in programs running around the globe. Widely available breast screening is one of the key public health success stories of the past century. However, at this scale such programs are not without their challenges. With one to two per cent of images being rejected on analysis due to poor image quality, hundreds of thousands of women need to be recalled for additional imaging, causing inconvenience and delaying treatment.

New Zealand headquartered Volpara is focused on improving the mammography process. Volpara®Enterprise™ software is a SaaS based tool for assessing patient-specific x-ray dose, breast density and image quality. Power BI Embedded and other Microsoft Azure services allows Volpara to scale this system elastically, manage operating costs, and meet the market with accelerated feature development. Microsoft Azure also provides the necessary regulatory compliance capabilities to meet the needs of the healthcare industry.

Technologies Used

  • Power BI Embedded
  • Azure SQL Database
  • Azure Storage (Blobs and Tables)
  • Azure Service Bus (Queues and Topics)
  • Azure Web Apps and Azure Web Jobs
  • Azure Active Directory
  • Azure Stream Analytics
  • Azure Application Insights
  • Power Update by Power Vision

Customer profile

Volpara Health Technologies Limited | Wellington, New Zealand

Volpara Health Technologies Limited is a leading provider of breast imaging analytics and analysis products that improve clinical decision-making and the early detection of breast cancer. Every day, Volpara software helps clinicians better understand their patients and administrators better understand their practices. Volpara is a global software company based in Wellington, New Zealand. With a diverse research team led by internationally recognized experts in medical physics, as well as proprietary medical imaging technology covered by multiple patents and trademarks, Volpara applies science to the solving of clinical problems around the world. Volpara aims to move the mammography world towards improved clinical decision-making and the earlier detection of breast cancer, improving patient outcomes and reducing the cost of breast cancer worldwide.

Problem statement

Every year, all 8,700 mammography clinics in the United States are inspected by the Food and Drug Administration (FDA). On October 21, 2016, the FDA notified all mammography facilities that MQSA inspections would be expanded under a new initiative called Enhancing Quality Using the Inspection Program (EQUIP).

Approximately 40 million women are screened using mammography in the US every year, with one to two per cent of those images being rejected on analysis due to poor image quality. Although this might not sound like much, it equates to between 400,000 and 800,000 women needing to be recalled for additional imaging. This is not only inconvenient for both the patient and doctor, but can also mean that diagnosis and treatment are delayed. This additional imaging also hits the mammography clinics’ bottom line, as it is not reimbursed by insurers.

EQUIP promotes clinical image quality by requiring that all clinics:

  • Establish and implement a regular image quality review process;
  • Ensure corrective actions are in place, including extra training and process review; and
  • Continue to comply with the standards of the accreditation body

While meeting the requirements of EQUIP is a regulatory task, Volpara believes that sites can take on the spirit of the FDA requirements and actually improve the quality of the mammography services they offer. Volpara provides the tools that sites need to do that.

Even though EQUIP is a US FDA initiative, other countries typically look to the US as a benchmark for the development of their own standards. In fact, EQUIP was a hot topic of discussion at the 2016 Radiological Society of North America (RSNA) conference in Chicago, which attracts a broad international audience.


Version 1.0 of VolparaEnterprise software has been developed over recent years and uses a range of Microsoft Azure services. The most recent iteration aimed to replace an existing third party visualization tool with Power BI Embedded, to migrate to more recent Azure ARM-based services, and to improve the functionality of the analytics web apps.

Solution Components

The solution uses a set of very loosely coupled micro-services, hosted on Azure Web Apps and Web Jobs.

  • Messages are passed between these services using Service Bus topics and queues.
  • Incoming data is uploaded from an on-premises server that is collocated with the mammography equipment at each hospital/clinic location.
  • Access control is managed using Azure AD. Federation with Volpara’s own Azure AD allows admin roles and service principals to easily be added to customer deployments.
  • The solution provides rich, interactive analytics using Power BI Embedded.
  • The data in Power BI Embedded is refreshed on a schedule using a third-party tool called Power Update, running on a lightweight VM, and is shared between all the customers.
  • Application Insights provides application-usage telemetry that inform design and prioritization decisions.

Solution Component Diagram

At present the solution is not multi-tenant. Instead, a copy of the solution is deployed into a separate subscription for each customer. This includes all the necessary components, such as the services, databases and storage accounts. Maintaining separate deployments has several important benefits:

  1. Keeping each customer’s data completely separate from the others, makes it easier to meet the demands of complex healthcare regulation around the world.
  2. The wide geographic spread of Azure datacenters allows latency from a customer office to be minimized by deploying the solution closer to the customer.
  3. Microsoft Azure offers data center locations operated specifically for particular regulatory environments; for example, the Azure Region in Germany meets specific requirements for EU-based customers.
  4. It is easier to do custom billing for customers with different usage profiles and business models.

As regulation further evolves, some or all of the application will be made multi-tenanted, and provisions in the architecture are already in place to enable that.

The downsides of a single tenant model are increased application deployment times and an increased failure and management footprint. These are mitigated using a host of Microsoft tools such as Visual Studio Team Services and Application Insights for application lifecycle management, and application monitoring. Octopus Deploy is used to manage and automate deployments to different environments, and integrates with Visual Studio Team Services to complete the pipeline.

Analytics Data Flow

The solution’s data flow is mostly based around transferring messages using Service Bus Topics and Queues. This decouples the various components from each other, allowing them to be updated, deployed, and scaled independently. In the case of partial service deployments, services that introduce breaking changes to the message format, publish messages to a new versioned topic or queue, from which it is consumed by other services that are compatible with the new format. A deprecated or superceded service is decommissioned once the message sources it subscribes to are drained, either by it’s continued operation or by a message migration operation. This means that different versions of a service can continue to run in parallel if required.

The data flow for the analytics process is as follows:

Analytics Dataflow Diagram


A custom server application, hosted on the customer’s premises, uploads data to the system. This server is connected, via a range of proprietary and open-standard interfaces, to the physical imaging equipment. Once new images are uploaded to blob storage, a message is appended to a queue, starting the processing phase. Given the nature of the hardware connection, Volpara Enterprise software will always be a hybrid solution. Azure Service Bus provides an excellent mechanism to support this deployment topology in a reliable and efficient fashion.

Storage Explorer - Data Blobs Azure Portal - Service Bus messages


Several services are piped together using Service Bus topics. These services perform various functions, such as processing the images for other services. Processing of images include resizing and sharpening images, as required. Some services analyze the images using advanced, proprietary machine learning models to classify the images and extract characteristics. The metadata generated from these operations, and extracted from the imaging files, is saved in Azure SQL databases. Processed images are saved back into blob storage. The micro-services architecture enables dealing with changes in the logic or operating parameters of specific services, by constructing new ad-hoc pipelines to reprocess data using only effected components.

Volpara Imaging Set View


Users can view the results of the processing and any derived data using a web app running in a browser. The web pages have a Power BI Embedded control, hosted in each customer’s subscription. This service makes reports available that are initially generated as PBIX files in Power BI Desktop and then uploaded to the Power BI Embedded service. Each customer has one workspace collection, with different workspaces for different user roles. Some reports are uploaded into multiple workspaces. This ensures that users can only see the level of detail that they need to. Reports were built by the Volpara development team, as well as Subject Matter Experts. Thanks to Power BI’s intuitive report builder interface, these SME’s did not require additional training in web development. Power BI Embedded’s client-side JavaScript API’s makes it is possible to signal between interactions happening inside and outside of reports. This allows Volpara to use a combination of a custom web page as a homepage and Power BI Embedded reports on the same page. The homepage visualizes data using HTML-based controls from SyncFusion, connected to real-time data from their API. The Power BI Embedded report is loaded in the background when the homepage is displayed. The navigation structure on that page can seamlessly switch between the homepage, and various pages inside a Power BI Embedded report without reloading the report. The JavaScript APIs also allow filter selections and data selection activities to be shared across the homepage and the different Power BI report pages.

Volpara Analytics Home page Volpara Analytics Report page 1 Volpara Analytics Report page 2


Due to different regulatory requirements around the world, data isolation is required for some customers. This is provided by seperating customer deployments into individual subscriptions, each with it’s own data stores. User identity is determined by the Azure AD tenant that they sign into for the app. Each customer subscription has it’s own Azure AD instance, federated with the Volpara Azure AD for admin and servicing. The subscription’s Azure AD can be used to enable federation with customer’s own directory services, enabling single-sign on. Row Level Security is provided by tagging requests with user, role and organisational identifiers, and filtering in the queries. This follows the pattern discussed in the documentation on Row Level Security, which uses the USERNAME() function in DAX expressions as a filter value. The on-premises data upload service makes use of write-only SAS tokens to upload data to blob storage. This means that a compromised client can’t be used to access any data. In the worst case, it can only upload junk data, which can be detected by a validation service and cause keys to be recycled for that customer.

Lessons learned

Power BI Embedded data refreshing

Initially all the reports were directly connected to the database, querying data using DirectQuery. While this worked well in Power BI Desktop, it unfortunately introduced too much latency when exploring the interactive controls in Power BI Embedded in the browser. Working with technical evangelists from the Microsoft DX team in New Zealand, Volpara interacted with the Power BI team and provided feedback on this issue to the development team. While this issue is being addressed, a workaround was implemented using a third party product called Power Update by Power Vision. This is a service that runs on a VM in the Volpara management subscription. It makes it extremely easy to set up centralized scheduled and ad-hoc refreshes of Power BI reports for all the customers. This made it viable to import the data directly into the report, rather than rely on DirectQuery. The benefit is that the system can now have very fast query times, leading to improved responsiveness of the Power BI interactive reports, while maintaining an acceptable refresh cycle.

Steps to implement
  1. Download and install Power Update on a virtual machine.
  2. Open the Power Update management console. Power Update Management Console
  3. Click the “New” button to create a new update task.
  4. Follow the instructions in the wizard to configure the new scheduled update tasks. Power Update Management Console Power Update Management Console Power Update Management Console Power Update Management Console Power Update Management Console

When the task is triggered, Power Update will download and open the PBIX report file with Power BI Desktop in the background. It will then refresh the imported data, and reupload the file to Power BI Embedded. It can optionally be configured to also adjust the data connection after uploading the refreshed file. The only constraint to the frequency of updates, is the time that it takes to run the task. The task can be run as often as is possible given the time it takes to refresh the data and upload the file to the Power BI Embedded service. Power Update also enables management of Power BI Desktop and Power BI service files.

Power BI Embedded SDKs

Initially, the analytics web pages were not designed as Single Page Apps. That meant that each report page was rendered separately using the ASP.NET MVC C# SDK. Changes between reports were effected by performing a postback and re-rendering the reporting controls. This was a poor user experience, as it takes too long to perform this roundtrip to the server. Client-side updates using the JavaScript SDK were implemented, eliminating the need for full-page refreshes as users changed their view. The various selection events exposed by the JavaScript API also allowed interaction between the hosting page and the report, so extra interactive features could be introduced. The open source Power BI JavaScript SDK is used for this. You can see an interactive demo with sample code of the SDK’s capabilities on the Power BI JavaScript Demo site. Volpara implemented several of their own extensions to further improve on Power BI for their specific circumstances, such as background loading of reports and real-time data updates in a custom homepage.


Power BI provides a range of rich visualization capabilities out of the box. It also allows for simple extensibility with both JavaScript and R packages. Volpara use a range of the out of the box capabilities and took advantage of some of these extension points:

  • Grid Visualization The out-of-the-box table selection visualization component did not implement a required on-selection event. Volpara could easily replace this with an alternative matrix visual, recently released by Microsoft as a preview. This visualization did have the appropriate data selection events, which allowed for seamless interactivity between the various on-screen visualizations. Volpara Analytics Grid Vizualisation

  • R Visualization Volpara investigated using the R framework and GGPlot2, for advanced visualizations but found that these didn’t match the fidelity of the JavaScript visualizations and so chose not to use them. They expect to return to this area of functionality for more advanced charting requirements at a later time.

Resource Localization

Power BI Embedded offers no current support for built-in resource localization. To support multiple languages, separate reports must be maintained for individual locales. In addition, UI elements such as table headings are displayed from the data model with no way of being overwritten.


  • Switching to Power BI Embedded delivered significant savings to Volpara over their previous provider.
  • Savings were realized in both in licensing fees, and the cost of ownership by shifting from an IaaS-based data visualization framework to a PaaS model, while delivering improved scalability out of the box.
  • The growing marketplace for Power BI visualizations further enables Volpara to focus on their core business.
  • The ability to create reports with an intuitive graphical tool allows Volpara to increase their use of internal SME without advanced software development skills.
  • Power BI Embedded and the wider Azure portfolio of services is hugely beneficial to writing modern, scalable applications based on micro-services.
  • The Azure services provide a lot of infrastructure and functionality that otherwise would have taken a very long time to build, and be costly to maintain.
  • A faster time to market gives Volpara more time to focus on saving lives.
  • Azure offers compliance capabilities, including several unique data center geographies that make it uniquely well positioned for the delivery of a healthcare application via the cloud.


  • A well structured microservices architecture can make a system more robust and flexible.
  • A Single Page Web App user interface can provide a richer and more satisfying user experience.
  • The latency when interacting with reports by changing pages, filters and selections in Power BI Embedded is higher than with Power BI desktop when using Direct Query and may necessitate importing data into the report. Power Update is a useful tool to automate the data refresh.
  • The flexibility offered by custom visuals can be very useful when the in-box visuals don’t meet the requirements. It is relatively easy to integrate existing JavaScript & HTML components into a Power BI dashboard.
  • Getting the best out of the R visualizations in Power BI will require some effort. The R ecosystem offers a huge range of advanced charting capabilities, but taking advantage of these in such a way as to make them appear a seamless part of the overall dashboard remains challenging.

Future development

The Volpara®Enterprise™ 2.0 software is now in production, and being used by clinics and practices around the world. Ongoing development aims to evolve the solution into a multi-tenanted application and to improve the user interaction latencies using Redis caching services. Further work to federate with customers’ Active Directory and automate user management is also scheduled. Expansion of features include additional machine learning scenarios and real-time feedback on the quality of a scan.

“I think the true benefit of Volpara will actually be borne into the future. In a year or so from now, I’m confident that we’ll be able to sit down with our insurance carriers, and we’ll be able to justifiably defend the need for additional imaging services, based on the analysis of a computer program.” John Bellomo, Practice Administrator, Southtowns Radiology Associates

Additional resources