The multi-part Medical Web Viewer demo is an example implementation of extending information generally stored in PACS to various web clients including sample smart clients and HTTP clients utilizing the various components provided in the LEADTOOLS Web Viewer Framework.
The server side demo provides many services for clients over the web to perform queries, storage and DICOM object retrieval with a management system all built on top of the Medical Web Viewer Framework.
The thin client demo uses the HTTP client to manage, store, query and retrieve information stored on the server using the exposed web methods. It retrieves only the preview series and full resolution images from the server side DICOM object as JPEG images.
The thick client demo shows the utilization of the framework in a smart client interface along with background multi-threaded image streaming, smart image caching and use of the Medical Image Viewer control in a WinForms setting for creating a feature rich application.
Please note that the Medical Web Viewer demo is only one implementation demonstrating the feature of different components of the Medical Web Viewer framework. Developers can use a subset of the components to implement other types of web-based imaging applications such as document management and viewing applications.
This topic describes how the Medical Web Viewer Demo uses the framework components in its implementation.
Note: At the time this version of LEADTOOLS Medical Web Viewer Framework was released, the Microsoft No-Touch Deployment technology that LEADTOOLS uses to host the Rich Viewer control was not supported in .NET 4.0.
Server Side implementation of the Medical Web Viewer Demo:
The server side implementation uses the DICOM WCF service and incorporates the default plug-ins to provide a query service, storage service, DICOM object retrieval service and management service to web clients using fully secure and encrypted communication.
The WCF service is hosted in IIS to support full HTTP communication with the service clients. This enables independent platform communication and full interoperability.
Also the demo WCF service is configured to use message SOAP security using the client’s username and password credentials and server X.509 certificate hosting.
Authentication and authorization for web clients is performed using the default ASP.NET SqlMembershipProvider and SqlRoleProvider which are configured to connect to a SQL database.
The plug-in implementation uses the security model to provide authorization and access rights for the data being retrieved from the service. Different access rights are given for pre-configured roles to access the patient’s information.
The provided Store plug-in extracts the patient/study information from previously
uploaded DICOM dataset to populate the database and generate preview and/or, full
resolution pre-compressed images (if so configured). It also stores the DICOM files to the
configured network drive.
The Query plug-in performs queries the database using the query filters provided
by the client requesting the service and returns any matching data.
Depending on the web method used, the DICOM Object Retreve plug-in either sends the pre-compressed raster image or the
actual DICOM dataset with the image data stripped out or full DICOM object as is
from the physical disk.
Source code for each of the implemented plug-ins is provided with the framework
for rapid custom Web Service development.
Client Side (Service Consumer) implementation of the Medical Web Viewer Demo:
The client side demo application implements a typical image viewing workflow for a physician using a web browser instead of a desktop application. This shows how physicians can remotely view DICOM studies over the web without compromising the tools used in digital radiology workstations. A physician can use the web interface to query a patient's information, studies and series. They can also remotely upload DICOM media images to the central server using the demo. Users with appropriate privileges can assign a study stored in the system to another remote peer for consultancy or a second opinion.
The client side implementation of the demo provides a web interface implemented using ASP.Net for consuming the WCF Query, Storage and Management services. Also, the demo provides a rich client implementation which uses .NET No-Touch Deployment deployment for hosting smart client applications in Internet Explorer. The thick client demo also consumes the WCF Query, Storage, Management and DICOM Object Retrieve services.
The demo ASP.NET web interface demonstrates a web based management system that can be used from any location over the web to control and configure user access to web services, patient records and various application settings such as storage options for generating lossy and lossless pre-compressed images in JPEG and JPEG2000 formats.
The Rich Client implements powerful web-based image streaming and viewing capabilities. Images and information are asynchronously retrieved from the web server using the framework service streamer component and cached to the user local machine using the caching component for fast future viewing of large image sets. Images are loaded from the local cache to a Series Viewer control which uses the Medical Image Viewer Control to incorporate its sophisticated functionalities such as built-in tools (i.e. Window level, magnifying glass, measurement, annotation, various region creation tools, zoom/pan etc), different display layout options (Stack, Series and Cine mode), and many image transformation and processing functionalities. All the built-in tools are presented to the end user via a toolbar and they are designed and implemented specifically to save client area space while still providing fast access to the functionalities in a user-friendly way.
In addition, the Rich Client uses the Medical Image Viewer control’s virtual loading functionality to optimize the process of loading large series on low memory workstations. Instead of loading all the images in a series to memory, the Rich Client only loads those images which are currently displayed in the control. When the images are no longer visible, the Rich Client unloads those images and loads the newly visible images.
How to debug the Rich Client Windows Forms Control:
The rich client uses No-Touch Deployment to host the windows forms Viewer control on Internet Explorer.
For that reason, the Viewer control will run in an Internet Explorer process and you will not be able to debug it using the standard method in Visual Studio. To debug the control, attach the Visual Studio debugger to the Internet Explorer hosting process (iexplore.exe). The following procedure describes the steps necessary to attach and debug a Windows Forms Control in Internet Explorer:
- From the Start menu, navigate to the "LEADTOOLS Medical Web Viewer Framework 17-->Demo" and open the "C#/VB.Net Medical Web Viewer project" in Visual Studio.
- The solution will contain the WinForms project (only in release installations). Place a breakpoint where you want Visual Studio to break.
- Run the WebForms project without debugging by selecting DebugàStart Without Debugging or pressing Crtl+F5
- When Internet Explorer starts, click on Tools-->Attach to Process… from the Visual Studio menu to open the Attach to Process dialog.
- Browse the Process list and select "iexplore.exe" with a title "LEADTOOLS Medical Web Viewer Demo – Windows Internet Explorer" and then click Attach.
- Now continue browsing in Internet Explorer until the Rich Client control is loaded. The debugger should break when it reaches the break point you set in step 2.
To debug problems that may occur when loading the hosted control in Internet Explorer, check the Microsoft article: http://support.microsoft.com/default.aspx?scid=kb;en-us;313892