Build Better Oracle Cerner MPages

Clinical Office: MPage Developer is an elegantly structured framework for creating Oracle Cerner MPages. Designed with rapid development and professional quality as core goals, MPage Developer offers an MPage programmer a refined experience through carefully crafted templates, Cerner tailored components, advanced data collection features and exceptional debugging capabilities.

To achieve our rapid development goals, MPages created with MPage Developer start with pre-built templates designed for either full-page MPage use or as a component embedded in the Cerner component framework. These templates a ready with everything you need to start developing your MPage.

Once your development experience begins, implementing our data services offers simple implementation of what are normally complex CCL communication routines. Data queue management is automatic and MPage Developer is smart enough to know if you are running from an MPage or if it needs to use the Discern Web services to run CCL scripts.

Our custom components have been designed for the purpose of running in a Cerner MPage. For some components this means direct integration to CCL scripts, while other components interpret Cerner specific data entities to display properly without having to write any display logic. You can pass a data object directly from your CCL script to our MPage table component, and it will render the component with proper titles and removal of "id" and "cd" fields.

Our MPage Log component offers extensive debugging information you can't find anywhere else. Using a keyboard short-cut in a running MPage, you can quickly see the payload calls made to CCL along with any CCL or Angular/JavaScript runtime errors. A debug button allows you the ability to replay a CCL payload from the Cerner back-end or DiscernVisualDeveloper giving you the ability to debug your CCL scripts outside the running MPage. The MPage log also offers the ability to see the data you have loaded from CCL in a categorized list.

Built with Angular

MPage Developer is built using Google Angular. Angular is a professional JavaScript framework that is ideal for Cerner MPage Development.

You may not currently use Angular, as it is one of several popular JavaScript frameworks on the market. For this reason, as part of your Clinical Office: MPage Developer license, all new purchases will receive access to our remote instructor led training course free of charge.

Our goal is to ensure that you can start writing MPages immediately, and the best path to that goal is through education.

Components Built For Cerner Millennium

Clinical Office: MPage Developer components are designed specifically for use in Cerner Millennium. We have spent countless hours ensuring that our components work seamlessly inside Cerner workflow components as well as in standalone MPages. We have learned through first-hand experience that Cerner workflow components can have undesired effects when working with third party components. To remedy this problem, all MPage Developer components have been built to run completely isolated in their own shadow DOM preventing your custom MPage components from affecting other components and vice versa.

Our components are geared to work with Cerner data and CCL. A great example is our MPage Select component which offers properties for Cerner code sets as well as custom CCL scripts with intelligent limits and filtering. Imagine the effort required to build a single select drop-down for a large code set such as code set 72. You would need to load the code set (or some of it), populate the select component, and render it without affecting performance. With a typical data set of nearly 100,000 items in code set 72, this single select drop-down can severely impact the performance of your MPage. The MPage Select component solves this issue (and many more), with a single line of code.

<mpage-select label="Event Name" [(ngModel)]="eventValues" [codeSet]="72" [multiple]="true"/>

Tables are a critical piece in any MPage, and our MPage Table component offers a large feature set requiring one line of code to implement. At a minimum, a data object is the only requirement, however other options exist to handle additional functionality such as context menus, click interceptions and more.

<mpage-table [data]="tableData()" />
MPage Table

The MPage Table component takes care of a great deal automatically including:

  1. Column titles are interpreted from field names (e.g. lastName = Last Name, testDtTm = Test Date/Time, etc.)
  2. Fields ending in Cd (eventCd) and Id (personId) are disabled unless specified in your configuration.
  3. Filters are automatically populated based on the content of your table and table preferences. Tables with fewer unique values for a column will offer a drop-down select of items, where other columns will offer a text search. Date and Date/Time columns offer even more advanced range checking.
  4. Column sizes are calculated based on a sample of your table data and the available container space. If the width of your table is less than the container size, columns are equally expanded to fit the container, where wider tables are presented with a horizontal scrollbar.
  5. Columns are highly configurable allowing the ability to rearrange columns, change sorting and labels directly from the MPage unless disabled in your code.

A full list of all components included in Clinical Office: MPage Developer can be found in our Components Documentation.

Data Services

Whether you are connecting to your Cerner through PowerChart, DA2 or through a web browser, collecting data is simple with MPage Developer. Our MPage service seamlessly connects asynchronously through Cerner's XMLCCLRequest method or through a standard HttpRequest if XMLCCLRequest is not available.

Advanced Queue Management

Our MPage service has been designed to ensure that a single MPage doesn't use more than it's fair share of resources with an advanced queue management system. Set to a default of 2 queues, you can adjust the number of queues available to meet your individual business needs with the setMaxInstances method.

this.MPage.setMaxInstances(2, true, 'CHART');

When a CCL request is made, it is added to the queue if all available queues are busy and won't run until a queue is available. In traditional MPage development, the programmer is responsible for controlling which XMLCCLRequest object is used for each call. With MPage Developer, the programmer no longer needs to worry about this and scripts will optimally run on the first available queue.

CCL Packet Flexibility

MPage Developer has been designed to allow extensive flexibility when it comes to running CCL scripts. A single call can call one CCL script, or several at the same time. This gives you the ability to optimize your CCL calls for the specific needs of your individual MPage resulting in high efficiency content loads.

Pre-built Data Services Save You Time

Clinical Office: MPage Developer comes preloaded with several Data Services designed to save you time when writing MPages. Common data entities such as code values, person, encounter, address, allergy records and more are a simple matter of referencing the service name and pointing it to an appropriate id number.

Custom Data at Your Fingertips

The star of MPage Developer data services is the Custom service. The custom service allows you the ability to run your CCL scripts and retrieve them for use anywhere in your MPage application with a simple get method.

this.customService.get('myAwesomeCCLScript');

As with all services included in MPage Developer, you can bundle multiple custom service calls together with or without our other services in the same CCL call.

Custom service also offers a path to writing data to custom tables in your MPage through our custom cust_co_reference table or Cerner's dm_info table. The cust_co_reference table and supporting CCL code has been designed to allow for very large storage of content. Set at 32,000 characters, if your data exceeds the row size, new rows are added until all content is stored. This allows for storage of complex JSON data, images and more.

Live Development and Debugging

Angular offers a fantastic Proxy service that allows running your MPage while you make code changes. Our MPage templates have been set up to allow configuration of your Discern Web Services address, and providing your development machine has access to those web services, you can perform real-time development.

During development and in PowerChart, you can use the built-in browser development tools which is great for finding syntax errors in your code. This can be done with any framework you may be using to develop your MPages and is a valuable development tool. Cerner's MPage components also offer BlackBird logging which has very limited usefulness.

The Clinical Office: MPage Developer Difference

Clinical Office: MPage Developer goes significantly beyond standard debugging tools by offering features not found elsewhere including:

  • Real-time CCL error notifications. Users see CCL errors as they happen and are notified that they should call the helpdesk.
  • Packet replay allows testing of a CCL script in the back-end after it has run or failed to run in the MPage. Simply click the debug button in the MPage Log. This will trigger creation of a transaction file where you can run a CCL script to execute the code on the back-end as if it had been run from the MPage. You can then make CCL code changes and re-test until everything works.
  • All content loaded into our data services (including CustomService) is available to you through the MPage Log in a simple to navigate interface. This will greatly assist you in seeing if the data you are looking for has loaded helping you track down bugs quickly.
  • The MPage Log also allows monitoring run times of your CCL scripts helping you identify performance bottlenecks.

The video below demonstrates the CCL error notifications and the debugger in action. Be sure to turn your audio on.

Performance

Over the years, we have seen many MPages that are slow and unresponsive. This is due to several reasons ranging from poor technology choices, too many HTML elements, excessive source code and poor performing CCL scripts. Clinical Office: MPage Developer excels at solving these problems.

  • Angular is an ever improving platform that somehow seems to be faster with every version. The original version of Clinical Office: MPage Edition (original name) ran on Angular 2 and at the time was fast. Jump ahead to today and Angular has updated every 6 months with performance and feature improvements.
  • Our components and services have been designed to radically reduce the number of lines of code you need to complete a task resulting in cleaner and easier to maintain MPage source code.
  • Where possible, our components use virtual scrolling techniques to drastically reduce the number of HTML elements shown on screen at once, resulting in exceptional rendering performance.
  • Our MPage Log component gives you the tools you need to see if CCL scripts are performing poorly Our data services offer bundling options to run your code as a single call or with other CCL calls resulting in higher CCL efficiency.

Extensive Documentation and Free Training

Developing anything without proper documentation can be tough. We have made it a goal to provide as much documentation as possible to help you create your MPages. Our documentation consists of detailed reference as well as tutorials. They have been split into categories of Documentation and Tutorials in order to better serve your specific needs. If you know what you are looking for, the documentation reference will give you the details you need, where the tutorials will help you learn how to perform a task.

Documentation is great, but nothing beats learning how to do something from a live instructor that you can ask questions. We want you to succeed in your MPage development efforts, and to do so in the most effective manner involves training. With that said, all new purchases of Clinical Office: MPage Developer include our 3-day live instructor led training course.

If you need to train additional staff later, extra classes can be purchased for a fee.

Commercial Quality MPages

Hospital employees, independent consultants and commercial software vendors all choose Clinical Office: MPage Developer to create professional commercial grade MPages. Our clients know that they can count on MPage Developer to significantly reduce their development time without sacrificing performance, reliability, usability or visual aesthetics.

Cerner MPages built with Clinical Office: MPage Developer can range from simple displays to fully featured data entry systems and have been running in both small and large hospital systems for years.

Clinical Office: MPage Reports is a fantastic example of what can be accomplished with MPage Developer. Developed in under 120 hours (3 weeks), MPage Reports completely replaces the standard CCL grid view with a powerful MPage. The majority of the work in MPage Reports consisted of the supporting CCL code, import/manipulation of the text data and the GUI for the saved views. The table features heavily demonstrated in the video below are all standard features of the MPage Table component.

Due to our strict policy concerning client privacy, we won't name-drop our clients in our promotional content. We understand that this may make your decision to purchase Clinical Office: MPage Developer a little difficult, however, we believe that the extensive documentation and videos provided on our site will help you determine if Clinical Office: MPage Developer will meet your unique needs.

Support

MPage Developer is not just a product we sell, but also a product we use every day developing MPages for our Cerner clients. If there is a bug found, our team will find it and deal with it quickly. However, if you do find a bug, please report it in our Support Discussions on GitHub describing the problem, and we will get right on a fix. Once we have fixed any bugs, an update package will be released and the revision history will be documented in the support discussions.