Implementing The Functionality Of A Large Silverlight Application In New Technology – Part 1 – Technology Choices

The challenge

Optimium Health delivers and supports a workflow guidance tool. The tool is composed of multiple servers performing such functions as document production, eFax generation, eMail generation, and on-demand report support. An additional component is the user interface which is used both by end users and system administrators. The user interface and the product is referred to as Optimi$er.2012.

The environment of the server is Microsoft Windows Server and the user interface is a Microsoft Silverlight application hosted in Internet Information Services (IIS) and deployed in Microsoft Internet Explorer. Silverlight enjoyed great popularity particularly for video streaming (2008 Summer Olympics in Beijing, 2010 Winter Olympics in Vancouver, 2008 political conventions, Amazon Video & Netflix [Source: Wikipedia]).

The Adobe Flash plugin dominated and was subject to many security breaches. This was the genesis of a movement away from browser plugins. Microsoft announced in July 2015 that Silverlight End Of Life (EOL) would be October 12, 2021.

Replacing a large application with an extensive user interface with backing logic became a strategic concern but not one that overrode the necessity of enhancing and extending the Silverlight client.

Initial technology candidates

An initial survey of browser client technologies performed in 2018 resulted in a dismal set of options.

AngularJS was a client library written in JavaScript that was initially developed in 2009; Although still supported, it was superseded by Angular. AngularJS and JavaScript were deemed too low level with primitive tooling, a type unsafe environment, and lowering popularity due to the release of Angular.

Angular V4 was the latest in a TypeScript rewrite of AngularJS. Tooling was still relatively primitive but at least the language was type-safe.

Aurelia was a new Typescript library favoring convention over configuration. It had no track record as a useful library in actual use however, the creators had a successful previous library (Durandal) and were bent on radically improving the implementation.

Uno platform was released in early 2018. It was a multiplatform tool supporting Windows desktop, Android, iOS, and web browsers. Developed as an internal tool at nVentive, it was later open-sourced.

A choice is made

A decision was made in early 2018 to prototype a client replacement with Angular V5. Basic functionality was created. Data support was a large ‘sticking’ point with the conversion from the C# types supported by the server and the JavaScript types.

There was enough “friction” between the language types to make the examination of other frameworks continue. The plan at this time was to build a minimally viable client during 2019 that addressed one of the four major areas of functionality.

A dark horse appears at the end of 2017 and beginning of 2018

A series of blog posts on the Microsoft Developer site appeared at the end of 2017 and into 2018. These posts detailed an experimental technology (called Blazor) which would bring the .Net environment to the server. This was pretty exciting in that it would remove the ‘friction’ between client and server in much the same way as Silverlight did more than a decade earlier. The major difference was that no plugin was required and the execution could be upon and modern browser (Google Chrome, Mozilla Firefox, Microsoft Edge).

A prototype client was developed and followed the pre-release cadence of the experimental Blazor implementation. The prototype quickly surpassed the Angular prototype in functionality and reliability.

Microsoft emphasized the experimental nature of Blazor throughout 2018 and it wasn’t until October that a full commitment to Blazor was announced. The commitment was to ship the server hosted model of Blazor by the end of 2019 as of October 2019. Blazor became an official part of .Net 3.0 preview 4 in April of 2019.

Switching horses midstream and initial implementation

After the commitment by Microsoft the decision was clear that a Blazor client was to be the preferred technology. The initial implementation would be of the OR Tracking application (a new facet of Optimi$er). The intent was to improve communication and safety of the intra-operative processes.

Optimium Health and a large hospital group partner iteratively developed the tracking application through most of 2019 with a goal of live implementation in Q1 2020. The development process was smooth and we were ready to perform the initial implementation in March of 2020, calling the product Optimi$er.2020;

COVID-19

An odd thing happened while getting ready to implement, that being a global pandemic of a seriously deadly virus with the moniker of COVID-19. All plans for implementation of the OR Tracking application got put on hold while everyone tried to ascertain how to live safely in this new environment.

Finalization of the replacement application

After several months of being stopped in the implementation of the OR Tracking application, the remainder of 2020 and first half of 2021 was devoted to transitioning the Pre-Anesthesia and Surgical Office portions of Optimi$er.2021 (renamed from Optimi$er.2020 because we wanted nothing to do with 2020). The first preview release of Optimi$er.2021 occurred in July. A full transition in two of three departments occurred in October with the third department expecting to finaliz

Blazor: Easily switch between client side and server side execution

Blazor as part of ASP.Net Core 3.0 will be shipping in approximately a month. As a generally available release Blazor is supported with server side execution. Even though client side execution is possible, it will remain in a preview state for at least the remainder of the year. Even if the intent for your project is to target server side there are some useful aspects to host your project in wasm on the client. Notably, the ability to use the browser development tools to understand just what your carefully crafted css is actually doing is priceless. If you are going to target the wasm deployment of your project it is still useful to change to server side for debugging at this point in time.

The source code for this project is available on BitBucket at https://bitbucket.org/MarkStegaOHI/blazor-cse-sse/src/master/. This post will just highlight the key aspects of making the switch easy. It is probably best to clone the repository and follow along using Visual Studio 2019 16.3.0 Preview 3.0 and ASP.Net Core 3.0 Preview 9. The project will be updated to ASP.Net Core 3.0 when it is released.

Solution configurations

There are four configurations in the solution. Using the Visual Studio configuration manager you can choose between debug and release and also between client side & server side execution. The key differences in each configuration is the definition of either ClientSideExecution or ServerSideExecution and DEBUG or RELEASE defined constants. So making the switch is as simple as choosing the desired project configuration.

Solution projects

The names of the projects may seem a bit odd; Just understand that this project was pared down from a very large project ‘in progress’ and in the large project the names make sense. The solution is architected in an MVVM style. Most of what appears in the demo project is simply the collection of view components in their simplest form.

GeneralComponents

This project is a Net Standard 2.0 Razor Class Library and implements the UI and backing logic. OptimiserComponents contains the usual Blazor suspects of MainLayout.razor, NavMenu.razor, and the _Imports.razor files as well as other useful components. These projects do not change with the server or client side execution.

Optimiser.Blazor

This project is the Blazor stub defined by program.cs & startup.cs with the packages of “Microsoft.AspNetCore.Blazor” and “Microsoft.AspNetCore.Blazor.Build”. It is only invoked for a client side execution, it is totally ignored for server side execution.

Optimiser.Web

This project is an ASP.Net Core 3.0 server. It uses the defined constants to determine if it is going to host the Blazor project on the server or to simply act as a launch pad for the client side assets. In real life the server presents a REST api for use by the client in either mode. The key to the switch is in startup.cs where the methods Startup and Configure are customized via the defined constants. This project is always the startup project in VS.

Further enhancements

It would be easy to add the development web server and a copy of the wwwroot folder from the Optimiser.Web project to the Optimiser.Blazor project. This would allow a third ‘mode’ of execution which would be to select the Optimiser.Blazor project as startup. But since that is just another client side execution scenario it is only mentioned here as a possibility.

Blazor: Two way data binding workaround with date input

Blazor is an experimental framework that implements many essential elements of a C#/HTML/CSS framework. See https://blazor.net/index.html for details.

Two way data binding is available for many elements but two notable missing elements are the input elements radio buttons and  dates as of Blazor 0.5.1. The radio button issue has a clean workaround by jsakamoto in https://dev.to/j_sakamoto/workaround-how-to-two-way-data-binding-of-radio-button-input-with-blazor-spa-v050-31fd. This post offers a workaround for dates.

Start with a definition of the date field in your cshtml file like:

<input type="date" onchange="@SelectedDateChanged" id="scheduleDate"/>

In the code-behind file define SelectedDateChanged and OnAfterRenderAsync as

        protected DateTime pSelectedDate { get; set; }
        protected async void SelectedDateChanged()
        {
            string selectedDateAsString = await JSRuntime.Current.InvokeAsync("customizationJsFunctions.getSelectedDate");
            try
            {
                pSelectedDate = Convert.ToDateTime(selectedDateAsString);
            }
            catch
            {
                pSelectedDate = DateTime.Now;
            }
            StateHasChanged();
        }


        protected override async Task OnAfterRenderAsync()
        { 
            if (pSelectedDate != DateTime.MinValue)
            {
                string selectedDateAsString = pSelectedDate.ToString("yyyy-MM-dd");

                await JSRuntime.Current.InvokeAsync("customizationJsFunctions.setSelectedDate", selectedDateAsString);
            }
        }

As you can see there are two calls to JSInterop. Define the following script:

    <script>
        window.customizationJsFunctions = {
            getSelectedDate: function () {
                return document.getElementById("scheduleDate").value;
            },
            setSelectedDate: function (selectedDate) {
                document.getElementById("scheduleDate").value = selectedDate;
                return "OK";
            }
        };
    </script>

And with this you have the equivalent functionality of data binding with the input date element.

HDM Provides Tips for EHR Interoperability

Health Data Management wrote a brief set of top level tips to be considered to improve EHR interoperability.

Tip #3 (“Embrace user centered design”) is critical to the success of any guided workflow. Quoting the tip, “Most of the criticism and dissatisfaction with EHRs stem from enforced workflows and user interfaces. Healthcare organizations will need to invest in providing flexibility that reflects actual care processes rather than institutional ideas of how care should be delivered.”

Our experience at Optimium Health is that this particular piece of advice is the most important of the series. Whether the application is from the EHR vendor, an ISV such as ourselves, or an in-house developed application the overall success will be determined by the level of engagement with the “front line” staff during the specification and development process.

By embracing the end user, one can create a workflow that is natural and very easy to in-service. The workflow can then create a standard of care that requires no “work arounds” that are so often seen in applications built without the experience of the end user. Of course, blindly implementing an existing workflow without consideration of the “why” of certain steps/flows is also problematic. Creating an assisted workflow of a bad or sub-optimal process just results in a bad or sub-optimal electronic form of the same. Changing a workflow and adding best practice steps can get you to a more elegant and sustainable endpoint.

One addition to the tip is to be on the lookout for the following: Adjunct spreadsheets, colored sticky labels, colored file folders, and sorted piles of folders. These are all indicators of a workflow that is crying out for additional help. Of course, this means that you have to be out and about with the front line staff to get this close to the care experience; but this is a topic for another post…

Advisory Board Formation

Wednesday, April 24th, 2013 – Annapolis, MD; USA

Optimium Health, Inc. is pleased to announce that Todd Lazenby and Hank Steinbrecher have joined its Advisory Board. Todd brings considerable experience from the world of private equity and investment banking and has a passion for helping young companies achieve commercial and financial success. Hank has a proven track record taking an underdeveloped organization and fueling its growth to a level of international recognition by forming strategic partnerships, gaining grassroots support and participation, and developing a long-term vision for success and growth.

R. Todd Lazenby – Finance

Todd is the founding partner of Victory Partners, LLC and Royal Ascot Partners, LLC. He brings 22 years of private equity, investment banking, and corporate finance experience to the firm, having held increasing senior level positions in start-ups, mid-sized and Fortune 500 companies. He has built an investment firm that has made control investments in companies comprising over $300 million in enterprise value and has arranged and overseen in excess of $2.5 billion in capital markets and mergers & acquisitions transactions. Prior to founding VP and RAP, Todd was the Managing Partner of Summit Capital Partners, LLC in Los Angeles, then the managing partner of WP Capital Partners, L.P. in Dallas, both merchant banking firms representing middle market companies on a national basis.

Todd holds a JD from UC Berkeley Boalt Hall School of Law, an MS from Stanford University Graduate School of Business, and an MBA and a BS in Communications from Florida State University.

Hank Steinbrecher – Business Development

National Soccer Hall of Famer Hank Steinbrecher has had a life-long relationship with sport and possesses the strategic thinking skills that have made U.S. Soccer an international force. As Secretary General of the United States Soccer Federation and CEO of US Soccer throughout the 1990’s, Hank took a lead role in securing sponsors to fund its grassroots outreach and financial growth. By the end of the decade, the U.S. Men had appeared in three World Cups, won a Gold Cup, and established a national fan base. For the U.S. Women, success meant two Women’s World Cup crowns and their first of four Olympic Gold Medals. Hank was also at the forefront of the Soccer Summit, bringing together leaders from across the American soccer landscape to chart the course of the sport into the next millennium. That course would eventually result in the U.S. hosting the 1994 World Cup and the birth of Major League Soccer, the highest level of professional club soccer ever seen in the United States.

After 10 years at the helm of US Soccer, Hank is now President of Touchline Consultants Inc. Touchline specializes in strategic planning for sports organizations, management of large international sporting events, and developing sales, marketing and distribution strategies for major product companies.

Silverlight 5.0 and https Extended Validation

I’ve set up a web application for a client and ran into a problem with https Extended Validation. The site design called for use of extended validation in order to provide an extra layer of comfort for the end users. I spun up the site only to have the following displayed in Chrome and Firefox:


ChromeError

FirefoxError

IE was OK:

IEShoodFail


Not a very successful display of the EV work. Chrome was actually quite helpful with an extended message about a file that was downloaded. So it took some work with the Chrome developer tools to discover that the root of the problem was an image that was being downloaded from Microsoft. If you look at the .aspx or .html page created to host a Silverlight app, the Silverlight plugin has an image that is displayed if Silverlight is not installed (<img src=”https://go.microsoft.com/fwlink/?LinkId=161376″ alt=”Get Microsoft Silverlight” style=”border-style:none”/>). This clearly breaks the EV check as information would come from a non-validated site. The solution is simple. Simply host the image on the web site with the desired EV, ala (<img src=”SLMedallion_ENU.png” alt=”Get Microsoft Silverlight” style=”border-style: none”/>)

Now the browsers show up like this:
ChromeGood
FirefoxGood
IEStillBad

So Chrome, Firefox, & IE do the right thing and have the EV shown as the company name in green (URL mostly redacted).

[EDIT 2015-10-02] When this post was written all three browsers showed an EV failure when an element in the HTML was from a non-EV site (April 2012). Retested on October 2015 with current browser versions and the behavior is now correct across all three browsers when EV succeeds. However, IE shows success when both Firefox & Chrome show extended validation issues in the original test. Given that the image is not actually rendered it isn’t really clear which behavior is correct. <ms>

January 2012 Viewpoints – Patient Care Transitions

Momentum For Our Mission

Our Mission is to drive operational excellence in healthcare organizations through leading-edge process management innovations that streamline enterprise workflow, improve financial return, and enhance the patient experience.

Since our introductory newsletter in October 2011 we have grown from a handful of readers to over 400 seasoned healthcare and related industry professionals. Most of you are also part of our Linked-In community and we appreciate that additional connection. For those of you with whom we are not yet “linked-in”, please join us at LinkedIn.

We have also been busy speaking with industry leaders, hospital administrators, practice managers, physicians and consultants about critical “pain points” in healthcare operations. What became very clear is that patient handoffs or “transitions in care” are a common challenge with few proven solutions in sight. Process inefficiencies, which in some cases are a matter of life and death and in all cases are a matter of waste leading to higher costs and lower revenues, are present even in hospitals and practices with advanced EHR, PM and legacy IT systems. This is not a shortcoming of the systems, but rather a “gap” in the availability of information “bridges” that better connects people and improves the orchestration of the work that these people need to get done.

For this reason, this newsletter will feature one of the initiatives we are working on to address the challenge of transitions in care. As before, we welcome your feedback and the opportunity to discuss these and other process or workflow issues your organization may have.

OHI Feature: Patient Care Transitions

One of the many challenges facing provider organizations is how patients are transitioned from one physician’s care to another in terms of the exchange or “handoff” of critical information. Optimium Health believes that optimizing information exchange from one caregiver to another through process automation will secure three key benefits: 1) improve patient safety, 2) enhance patient and provider satisfaction, and, 3) increase provider financial performance.

An October 2010 Joint Commission study across ten hospitals of national prominence indicated that 37% of patient handoffs were defective and did not allow the receiver to safely care for the patient. Additionally, 21% of the senders were dissatisfied with the quality of the handoff. Further, the commission study stated that handoff failures account for 80% of all adverse events.

While EHR systems provide significant data capture and storage, most do not offer a means to improve caregiver workflow processes that are manually intensive and, therefore, are ripe for errors, omissions, and duplications. Optimium Health can use an EHR system as a foundation technology and then overlay the OPTIMI$ER process engine to create tailored dashboards, checklists, alerts, and information bridges that will facilitate caregiver handoffs.

This kind of data “push” and “pull” interoperability will enhance the value of an EHR system, as well as other systems like lab, scheduling, etc. that currently operate as information “silos” versus a vertically integrated information exchange. The net result is significantly improved:

  • Accuracy by reducing errors, omissions, and duplications;
  • Timeliness by the use of proactive dashboards and alerts;
  • Safety by improving the accuracy of the handoffs
  • Satisfaction of the patients and caregivers by creating the safer and more efficient environment

Specifically, OPTIMI$ER can positively impact perioperative care orchestration and information exchange. Why is this area of interest to us? Operating rooms account for approximately 42% of a hospital’s revenue. And yet, a poor on-time start rate for the first case of the day is recognized as the principal cause of inefficiency in the operating room. The average OR starts on time 27 percent of the time which is clearly a disastrous performance. And, according to the Health Financial Management Association (HFMA) “…improving throughput by just one additional procedure per day per OR suite can generate anywhere from $4M to $7M in additional revenue for the average-sized organization”. OPTIMI$ER has been designed to address the specific workflow issues that cause such an outstandingly bad performance across the majority of the 34,000 operating rooms.

Leveraging Today’s Healthcare IT

Today’s healthcare providers face constant pressure to improve the quality, safety, and efficiency of care while reducing costs and increasing revenue. Many incentives encourage providers to improve performance (such as financial incentives to demonstrate meaningful use of electronic health records [EHR] technology)—and increasingly, the healthcare community is being asked to do more with less. These pressures extend to all aspects of the organization, from clinical operations to revenue cycle and administrative processes.

Investments in process optimization, throughput, and workflow efficiency technologies offer a way for providers to meet operational goals against the backdrop of an ever-more daunting strategic agenda.

Article Reference: John Glaser/Ray Hess “Leveraging Healthcare IT to Improve Operational Performance

OHI Feature: What’s Ahead?

Upcoming examples for how handoffs in the perioperative setting can be improved through workflow automation: scheduling, surgical checklists, supply audit trail.

October 2011 Viewpoints – Bringing Workflow Optimization to Healthcare Organizations

Optimium Health: An Introduction

Vicki Harrison and Dr. Mark Stega have combined their respective healthcare experience to form Optimium Health Incorporated (OHI), a consulting and technology solutions firm that works with healthcare provider organizations, physician practices, hospitals and health systems. The changing needs of the market today require organizations to run more efficiently, optimizing their performance to gain financial benefit, while at the same time, improving quality and their bottom line. Thus, OHI’s mission is to drive operational excellence with leading-edge process management solutions designed to optimize enterprise workflow, improve financial return, and enhance the patient experience.

What we saw missing within current healthcare consulting and technology offerings is the ability to create repeatable and sustainable processes. These are needed to drive efficiency, provide rapid ROI, optimize the performance of both people and technology, and allow for measuring and improving quality. Technology vendors provide technology, which in most cases requires the user to modify the way they do work in order to utilize the technology. Consulting firms provide recommendations and some very modest tools and materials to implement change. Neither works particularly well in isolation over the mid to long term.

Optimium Health, Inc. approaches the problem from a different perspective. We can enhance the sustainability, accuracy, and repeatability by applying workflow automation tools to a complex set of processes.

Our workflow engine, known as OPTIMI$ER™, uses a set of automation tools that guide the worker through each step of a process, immediately alerting the worker to missed steps in the processes being performed before the missed step negatively impacts the process. OPTIMI$ER assures that steps in a process are identical from one worker to another, assuring consistent repeatable and sustainable processes that are documented and measurable. Reports are available in real-time and easily configurable.

OPTIMI$ER will provide leverage for consulting firms who want to enhance the deliverable to their client by increasing the areas of opportunity. OPTIMI$ER will enhance the efficiencies and interoperability of legacy technology systems within an organization by adding a process layer that monitors and orchestrates workflow.

The end result is that an ROI is achievable in less than three months, either through revenue recovery or reallocation of staff. Because OPTIMI$ER is working in the background, it has little to no impact on the way the work is done and the learning curve is nearly immediate.

Optimizing The Way Healthcare Systems Work

The Problem: Approximately 25% of all medical practice income is lost in one of the following ways: Under pricing, under coding, missed charges or non reimbursed claims. An average of 3-5% of annual practice revenue is lost because the practice failed to bill for services and procedures that the physicians performed.[Source : “Billing Problems? Consider Your Charge Ticket” by Deborah Grider, CPC-EM (Appeared in 2008 Physician Practice)] Many things can contribute to the problem. For example, how are the following questions being answered: Who is doing the coding? How are charge tickets processed through the practice? How are patients scheduled or seen in an emergent encounter? When a patient is seen at the hospital ED, how does the practice receive the billing information? How are charge tickets rectified?

Without processes in place to track workflows and identify breakdowns, a provider organization may have no idea how much revenue is being lost.

Our Philosophy: We begin by understanding the needs of people, reviewing the processes in place and then adapting the technology.

Our Solution:

OPTIMI$ER™ transforms predominantly manual labor intensive vertical “silo” workflows that unintentionally create an office environment ripe for errors, inefficiencies and inconsistencies into “integrated” horizontal workflows between department staff, practice managers, physicians and hospitals/surgi-centers.

Through the use of business intelligence, rules, alerts, and directing work to the appropriate person, OPTIMI$ER connects people, process and technology to create a dynamic horizontal workflow environment. It breaks down static, workflow “silos” and the accompanying barriers to efficiency. By optimizing clinical processes, an organization can realize improved financial returns, increased operational efficiencies and enhanced cross department communication while reducing errors, duplications and missed steps in the process.

Our Results:

The financial benefits of OPTIMI$ER tend to fall into three areas of improvement: a) throughput b) resource allocation c) revenue capture.

By way of example, in an orthopedic group with 9 physicians, OPTIMI$ER helped to find $950,000 in non-billed charges over a 12 month period. This resulted in approximately $350,000 in additional revenue that otherwise would have been lost.

Furthermore, due to the efficiency provided by OPTIMI$ER, the number of schedulers required to schedule procedures was reduced from 5.5 to 2.5 resulting in an additional savings of $100,000 in FTE overhead.

On the softer side, there were fewer missed surgeries due to scheduling mishaps which led to increased satisfaction for physicians, schedulers, and patients.

For a copy of OHI’s Orthopaedic Practice Whitepaper, please contact us using the contact form available in the menu above.

Top 10 IT Priorities for Healthcare

Healthcare IT News, August 17, 2011

Revenue cycle management, HIEs and Massachusetts are among the healthcare topics that every organization should have in mind for 2011 and beyond, according to HIMSS Analytics.

Included in the recent HIMSS Analytics report, “Essentials of the U.S. Hospital IT Market – 6th Edition,” is an outline of the top health IT issues that will have a significant impact on the industry in the next few years. Among them are:

Revenue Cycle Management

The PPACA regulations for Medicare reimbursements will pose a great challenge to hospitals as they work to maintain their revenue cycle operations. Keeping tabs on RCM vendors’ communications and strategies is key.

Interoperability

The Health Level 7 document proves that the industry is still paying attention to the need for standards, but vendors must see demand for its use. Semantic interoperability is another key issue – monitor ONC and meaningful use regulations for a standard medical vocabulary.

For the full article, click on this link.

OHI “Viewpoints”: What’s Ahead

While this issue of OHI “Viewpoints” is simply to provide a brief overview of who we are and what we do, subsequent issues will aim to open a two-way dialogue with our readers. Our focus will be on the various workflow challenges facing healthcare organizations today and how practices, hospitals and support services have overcome them. Additionally, we will highlight industry reports that may be useful references as you evaluate priorities for and options available to your enterprise.

We invite you to contact us using the “Contact Us” form from the menu above for further information about Optimium Health or with suggestions for future “Viewpoints” content. And please forward our newsletter to colleagues you think would be interested in hearing from us.

We intend to publish “Viewpoints” 4-6 times per year.