Archive for October, 2020

Last week it came to light that Public Health England (PHE) had “lost” nearly 16,000 COVID-19 Test Results.

The issue arose by the way the health agency compiled results from the various commercial firms paid by the UK government to analyze Coronavirus swab tests of the public, to discover who has the virus.

These private firms provided their data in the form of CSV (Comma Separated Values) files – essentially text files.

PHE had set up an automatic process to pull this data together into Microsoft Excel templates so that it could then be uploaded to a central system. From there it could be made available to the NHS Test and Trace team, as well as other government agencies.

The problem was that PHE’s own developers picked an old Excel file format to do this – XLS.

Excel’s XLS file format dates back to 1987, and was superseded by XLSX in 2007.

In the original XLS format, each file could only handle around 65,000 rows of data. The more modern XLSX format can handle one million-plus rows!

As a consequence of using the outdated XLS format, nearly 16,000 positive Covid-19 test results were “truncated” and not correctly recorded.

Whilst the 15,841 individuals who tested positive were themselves notified of their result and told to self-isolate, the people they’d been in recent contact with weren’t.

It’s estimated that in the region of 40,000+ contacts were not traced by the NHS’s Test & Trace team simply as a result of PHE using obsolete software.

Why were Public Health England using 13+ year old software?

There are many reasons why many organizations continue to use outdated software in their operations.

These may include;

Cost

One of the most common reasons for not updating software is the cost. For large organizations which may have thousands of workstations and devices, the cost to keep software up-to-date can be prohibitive. Good businesses will plan and budget for these large expenditures and take advantage of bulk discounts and site-wide software licenses.

Compatibility

Most businesses use multiple software products from different vendors. Often compatibility between these products is required. Not all software titles used by a business are regularly updated by their developers. Some may not have been updated for several years! Often a factor preventing organizations from updating software to more recent versions is when there’s a risk that doing so would break compatibility with other software they use that’s not been updated for years.

This is actually one of the reasons that Internet Explorer 6 and then 8 stayed around for so long. These were aging browsers, but many 3rd party web applications which hadn’t been updated in years wouldn’t run in more modern browsers. This effectively forced Microsoft to continue providing support for their fledgling browser for years.

Human Resources

Some organizations lack the in-house personnel or expertise to roll out company-wide software updates. Again, cost can be a key factor here.

Other organizations “outsource” their IT, and rely on a 3rd party provider to keep all their software up-to-date. Most IT providers will routinely do this. However, some take the attitude that if the customer doesn’t know – or isn’t asking – about updating software on their systems, then why do it?

Business Interruption

Some organizations are concerned that a large scale roll-out of a software update company wide could cause or “down-time” or other unintended issues. This may intern affect staffs ability to do their work.

A “phased” upgrade approach – rather than updating every device at the same time – may be more sensible. However, this approach could result in compatibility issues if some staff are using a newer version of certain software, at the same time that other staff are still using the older version.


We suspect in the PHE case, the key factor inhibiting upgrading from 13+ year old software was cost.

When it comes to publicly-funded health services, the general public would rather their taxes be spent on front-line services, rather than on back-end computer systems and software.

As this case has highlighted though, running obsolete software can potentially put peoples lives at risk!

Why keep your MIDAS system up-to-date?

We know many of our self-hosted customers continue to run obsolete and out-dated versions of our MIDAS room booking software.

We’ve been developing our software for over 15 years now, and regularly release software updates. Yes, we’re aware that there some very old MIDAS systems still in operation.

We strongly encourage all customers to keep their MIDAS systems up-to-date.

For our cloud-hosted customers, we do this for you! You’ll always be running the most recent version of our software, as we seamlessly keep your system updated.

For self-hosted customers, you can quickly check for updates with just a couple of clicks. Simply login to your system and go to MIDAS Admin Options → Manage MIDAS → Update.

You’ll need an active Support Subscription in order to obtain updates. If you don’t have a subscription, or your subscription has elapsed, you can quickly purchase/renew at mid.as/renew.

Updating means that you’ll have access to all the very latest new and improved features. More importantly, ensuring you’re running the most recent version means you’re not missing out on any important security patches and updates to keep your MIDAS system safe & secure.

We’d therefore like to encourage all self-hosted customers to take a few moments to check your MIDAS system is up-to-date.


A New Calendar Widget

If you’ve previously used MIDAS, you’ll be familiar with the small calendar “widget” that appears throughout the software allowing you to select dates.

MIDAS v4.26 (and later) now use a slightly different calendar “widget” to previous versions.

Here’s a comparison of the two:

The calendar widget in v4.25 (and earlier)
The calendar widget in v4.25 (and earlier)
The new calendar widget in v4.26+
The new calendar widget in v4.26+

What’s changed?

We’ve been developing MIDAS for over 15 years now! Ever since our very first release we’ve been using a JavaScript calendar widget originally called “DHTML Calendar”. This was later renamed to “Dynarch Calendar” – or “JSCal2” for short.

From MIDAS v4.26 we’ve dropped JSCal2 in favor of jQuery UI’s “datepicker”.

Why the change?

Back when we started development on MIDAS in 2005, there were very few calendar widgets available that allowed embedding a fully-featured date picker into a web page. After testing a number of alternatives at the time, we chose the “DHTML Calendar” as it was known back then.

This was a freely available calendar widget that had been in active development by the author for two years previous. It provided all the functionality that we needed for use in MIDAS.

Development of the “DHTML Calendar” continued over the years, with regular releases. A re-written “version 2” was then released and the project renamed to “Dynarch Calendar” (JSCal2).

Unfortunately, development of JSCal2 ceased in 2010.

Since then, JSCal2 has continued to function with the odd “patch” or two we’ve made.

However, there comes a time when a decision has to be made about the feasibility of continuing with JSCal2 going forward. We’ve now made that decision and have decided to drop JSCal2 in favor of jQuery UI’s “datepicker”.

jQuery UI’s “datepicker” is in active development and is arguably one of the most popular date pickers/calendar widgets in use today. It has both a large user and developer base and is well-supported.

What are the benefits of the new calendar widget?

In recent years, the limitations of JSCal2 have become more apparent.

For example, to select multiple dates in a JSCal2 calendar, a user would need to hold down the Control (Ctrl) or Command (Cmnd) key on their keyboard whilst clicking on a date.

Several years ago become the advent of tablets and touch screen devices this wasn’t a problem – as everyone used a keyboard.

However, in today’s world that’s not always the case, and so we needed a calendar widget that would allow selecting multiple dates regardless of whether the user was using a keyboard or not.

We’ve been able to achieve this with the new calendar widget in MIDAS v4.26.

There are also performance benefits over the new calendar widget. Web standards and performance have improved and evolved over the years. The now obsolete JSCal2 – whilst very advanced for its time, is no longer advanced or efficient by today’s modern standards.

What differences will I see?

Probably the first thing you’ll notice with the new calendar widget is its size (compare the two images above). The old JSCal2 widget was quite small and not idea for use on touch-devices. The new widget uses a slightly larger font and increased spacing. This not only helps make it more legible, but easier to use on smaller touch screens.

You’ll also notice that the top part of the calendar widget has changed.

Previously, the top of the calendar contained four arrow buttons, allowing you to jump forward or back by either a month or a year at a time. Additionally, you could also click the Month/Year heading to select a specific month/year to jump to.

The new calendar widget only has two arrow buttons, allowing you to jump backwards or forwards by a month at a time. However, the main month/year header is actually now two separate drop-down lists making it really easy to select a month or year to quickly jump to.

Why use a “widget” at all?

Back when we started MIDAS development there were few native interactive elements you could embed within a web page that would work in all web browsers.

You could essentially include very basic form elements – text inputs, drop-down lists, check/radio boxes, and the like.

There was no native way to include a calendar or date picker within a web page.

Today the range of native interactive elements available include a whole host of controls; including color pickers, sliders, email address and telephone inputs, and even date pickers.

Unfortunately support for native date pickers at present isn’t universal among web browsers. Safari browsers for example have no support as yet for native date pickers.

Those browsers which do native support a date picker element, all render them differently, and only provide very basic date picking functionality. At present, there is no support for selecting multiple dates, for example.

Native date pickers are still in their “infancy”. There may come a time when MIDAS can utilize native date pickers rather than a 3rd party calendar “widget”. For now though, the new calendar widget we’re introducing in v4.26 offers all the functionality we need and should do for the foreseeable future.