Experience @ FUJIFILM

Overview

Finite Wisdom has worked with FUJIFILM Medical Systems for 19 years, 2000 through 2019. For the last yew years, we focused our efforts on a web administration tool named SWAT.

What's changed?

The current development effort with SWAT is more of a technology refresh than a simple re-skinning of the user interface. There are substantial changes in progress, as summarized in the information that follows. For brevity, we will refer to the refreshed SWAT as rSWAT in these notes, to avoid ambiguity with the previous SWAT application.

User interface

Consolidated UI

The latest version of SWAT provides a single, consolidated user interface for most administrative tools. These include the following disparate applications:

  • SWAT

  • Document Config

  • Dictation Config

Responsive design

The latest version of SWAT is built using a front-end framework for creating responsive web applications that gracefully adapt to the size of the display device. Many, but not yet all of the features in SWAT will run on the desktop, tablets or phones.

Ajax

rSWAT uses Ajax to submit forms (add, edit, duplicate) without reloading the page. This allows any errors detected by the server (for example, "Compression name already exists") to be displayed on the form itself, rather than a subsequent page informing the user to employ the "Back" button to return to the form to remedy the error.

Themes

SWAT supports multiple visual themes or skins. At present, there are two themes: "light" and "dark", as defined by the client’s User Interface team. Themes can be swapped on the fly using toggle buttons in the footer.

Popovers and growls

rSWAT uses popovers and growls to display secondary information, rather than the intrusive and modal JavaScript alert box.

Smart lists

All list-oriented data in rSWAT can be sorted on any single column and filtered on any combination of columns. Both sorting and filtering work in any language.

Dashboard

SWAT introduces an administrative dashboard providing insight into the "system at a glance." At present, the dashboard includes:

  • Database information - connections, memory usage, backups, etc.

  • Study-related information

  • Modality-related information

  • Sender-related information

We fully expect that the functionality provided by the dashboard will grow over time.

"Find anything" box

SWAT provides a "Find anything" box in the header. In this box, the user can type a few letters of a command, for example: "conf". SWAT will list all commands containing those letters, after which the user can select one to invoke that command. The intention is to help guide users that are unfamiliar with the new UI structure but know what they are looking for.

History

SWAT has always recorded the configuration changes that are made on many of the pages in the application. This information was made available in the Event List tool. In this latest version, we extend this mechanism to show both (A) the history for a class of items, e.g. all compression changes and (B) the history for a specific item, e.g. compression "Low Rate Lossy". Note that not all classes support history for a specific item, e.g. "Priority Codes". That is because the database does not provide a unique, unmodifiable key for these classes.

Architecture

Cross-browser and cross-platform

SWAT has always supported only a single browser: Internet Explorer for Microsoft Windows (Win/IE). This is because SWAT depends on both ActiveX controls and IE-specific JavaScript. This version of SWAT supports all modern web browsers on all modern platforms and has been qualified for use on Chrome and IE for Windows. For any situations in which reliance on an ActiveX control could not be eliminated, the feature in question has been disabled when SWAT is running in any browser other than Win/IE.

Ajax

rSWAT uses Ajax to submit forms (add, edit, duplicate) without reloading the page. This allows any errors detected by the server (for example, "Compression name already exists") to be displayed on the form itself, rather than a subsequent page informing the user to employ the "Back" button to return to the form to remedy the error.

Model-view-controller

rSWAT is designed using the model-view-controller software architectural pattern. This design provides a clear separation of concerns between the data model, display view and the logic that coordinates the two.

Improved source code organization

In SWAT, all 525 source code files are stored in a single, web-accessible directory. This lack of structure is cumbersome at best and insecure at worst, since there are 525 potential attack vectors. In rSWAT, there is only a single web-accessible file: index.asp. All other source code files are structured within a private directory hierarchy that is inaccessible from the web.

Security

Identity Provider

rSWAT will integrate with the Identity Provider developed for FUJIFILM Medical System. This will provide improved authentication and authorization mechanisms for rSWAT.

CSRF protection

rSWAT will protect against cross-site request forgery. SWAT offers no such protection.

Technologies used

Screen shots