Clinical Office:MPage Edition is packed with features designed to make development of your Cerner MPages as quick and easy as possible. Using Angular ( as a development platform in combination with Clinical Office you will be able to rapidly develop Cerner MPages at a pace you have never before experienced.

The features in Clinical Office:MPage Edition can be divided into three areas. Those areas are:

  • Data services & CCL library

    Data services represent the core functionality of Clinical Office:MPage Edition. Built around the Cerner data model, we have combined Angular services with custom CCL code which handles clinical data retrieval and presentation of that data as a usable object in Angular.

  • Advanced queue management

    Our advanced queue management takes the hassle out of working with the Cerner XMLCCLRequest object offering an easy way to submit CCL requests to multiple queues without worrying about resource management. Simply make a CCL request and the data is pushed to the appropriate data service when your clinical information is retieved from Cerner.

  • Angular Templates

    Our Angular templates extend the functionality of our data services by adding pre-built components that can be easily dropped into your MPage application.

    During development, our log template gives you an easy way to view data requests to CCL and the returning output to the Clinical Office data services.

Data Services & CCL Library

Data Services represent the primary functionality of Clinical Office:MPage Edition. Each data service consists of an Angular service which is used by your MPage code to communicate with CCL and to map the returning data to usable JavaScript objects that you can interact with in Angular. Each data service additionally has one or more CCL scripts responsible for collecting the data represented by the data service (e.g. PersonService calls the 1CO_MPAGE_PERSON CCL script).

Once you have injected a Clinical Office data service into your Angular code, accessing the associated information is a simple as a call to the get method of the data service. For example, injecting the PersonService service into a variable called person opens up all of the person related data to your Angular code. Collecting and viewing data is a simple method call. For example, calling person.get().nameFullFormatted will display the name of the patient in your HTML. If the patient hasn't been loaded, the same call to the get method runs the assoiciated CCL script and loads the data.

The data services below are listed alphabetically and grouped by their current development status.

Currently Available

The following data services have been fully developed, tested and documented. Clicking the name of each service will take you to the API documentation for the service.

AllergyService Patient Allergies
APOService Address, phone number and organization data
BaseDataService Base class to create your own custom data services
CodeValueService Code values and aliases
CustomService Template CCL script and instructions for integrating your custom CCL into Clinical Office
DM Info Support CustomService includes supporting CCL and methods for handling read/write/update/delete operations in the DM_INFO table.
DiagnosisService Diagnosis with nomenclature
EncounterService All encounter information (e.g. aliases, prsnl, etc.)
mPageService MPage queue and communications
PersonService All person information (e.g. aliases, names, orgs, etc.)
ProblemService Problem data

Adding New Functionality

The list of features above by no means covers all of the data available in Cerner but instead covers data that is common in many MPages. Most often, your MPages will require some custom CCL code to collect additional data from Cerner. While it is possible to write data services for all of the data in Cerner, creating custom CCL code for specific MPages will yield better performing applications.

The CustomService data service is your key to getting your data from CCL into your MPage. Simply write the CCL code you need following our guidelines for the CustomService and your data will be available in your MPage with very little effort.

Our CCL team is also available to write custom CCL that will integrate with the CustomService if needed. Contact our Sales department for more information.

Advanced Queue Management

Communicating with CCL in a Cerner MPage requires the use of the Cerner provided XMLCCLRequest object. XMLCCLRequest has the ability to open up multiple instances that can asynchronously communicate to CCL. Traditionally you would specify the thread you wished to use, call the CCL script from that thread and build custom logic to watch the thread for data to return. While this works, it was up to the MPage developer to determine which queue to use for each CCL script (e.g. Person/Encounter => Queue 1, Labs => Queue 2, Code Values => Queue 3, etc.). No matter how well the MPage developer managed this, there would still often be times where some queues had too many requests running at once while other queues sat idle.

When designing Clinical Office, we wanted to eliminate the problem of queue management. Our goal was to have a single entry point for all CCL requests and not worry about which queue was going to run our script. Instead of specifying a queue, we just ask for our script to run and whichever queue is available is the one that is going to be used. If no queues are available because too many jobs are running, our CCL request simply gets put on hold until a queue is available.

Once the CCL is executed and data returned to our MPage, our custom data services are intelligent enough to know which data belongs to that service and appropriately maps the data.

We have also included a very flexible payload system to offer you the control of bulk loading data services from the same thread. This gives you the ability to fine tune the management of your CCL calls to meet the specific performance needs of the MPage you are developing.

Angular Templates

Clinical Office:MPage Edition comes with a growing library of Angular templates and pipes (filters) that you can use to quickly add functionality to your MPage. Most of the time, implementation effort is as simple as inserting the custom HTML tag name for the template or referencing the pipe when displaying your data in HTML.

MPage Log Component

The MPage log component will display all activity between your MPage and CCL in real-time and is a fantastic debugging tool. The MPage log component is called by adding <mpage-log-component></mpage-log-component> to your HTML and by turning on logging in the mPageService.