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.