The present invention relates generally to the field of image viewers. More particularly, the invention is related to image viewers for viewing medical images such as DICOM format images.
In the clinical practice it is very common to save patient's medical images to a media such as CD or DVD. This is usually done because the patient is required to be provided with a copy and images frequently need to be sent to a different institution.
Medical images are saved in DICOM format, which is not supported by the common operating systems such as Microsoft Windows™ or Apple Macintosh™. Therefore when the images are stored on the media it is very common to include an application to view them because, although DICOM is an international standard, not all DICOM viewers are equivalent. DICOM is a very large standard and not all viewers are capable of properly displaying every modality. For certain modalities some specific processing might be necessary for proper viewing. Therefore the presence of the viewer on the media, does not only guarantee the images can be properly viewed, but also guarantees that the images can be viewed correctly according to the modality of the provided image.
The technical challenge in creating a media viewer for viewing DICOM images that the viewer needs to run on every system, including very old systems, regardless of the memory, central processing unit or operating system. Furthermore, the viewer application should not rely on any user permission because the computer systems in hospitals typically have very tight security through which the user is not able to install any software nor make configuration changes. Thus the application should be capable of running directly from the media upon which the DICOM images are provided. For instance, currently, it is very common to require that a media viewer run on Windows XP™ operating systems released in 2001.
The current solution for medical imaging media viewer is to use antiquated applications, created contemporaneously with Windows XP™ released. These applications satisfy the minimal requirement and will run off the media. However, from a software engineering perspective, this approach has major drawbacks.
Old applications are difficult to maintain, extend and support. The tools necessary to develop them are frequently no longer available or supported. Extension in particular is a critical aspect, medical imaging modalities have changed since these viewers were released and they will continue to change.
In order to take advantage of new technologies, such as web viewing, companies are forced to create a second set of application independent from the media viewer. This requires duplicating the development effort in order to support both versions of a viewer.
According to one aspect of the present invention, a method for facilitated viewing of DICOM medical images is provided. The method comprises the steps of providing a 16-bit DICOM image on a computer readable storage medium; converting metadata of the DICOM image to text format; storing the text formatted metadata to a computer readable storage medium; and converting pixel data of the DICOM image to html compatible format.
Further objects of the invention include converting pixel data of the DICOM image to html compatible format by splitting the 16-bit DICOM image into two 8-bit channels; converting pixel data of the DICOM image to html format by losslessly compressing the two 8-bit channels using prig image format; loading the png image in an ‘img’ element; rendering the ‘img’ element in a html 5 canvas object; iterating through all pixel values of the canvas object to reconstruct the original 16-bit DICOM image; storing the html compatible formatted DICOM image to a computer readable storage medium and providing, to a web browser, DICOM image pixel data as offset from image beginning.
According to the preferred embodiment of the present invention, a media viewer packages a portable version of a html 5 capable browser on a computer readable medium to deliver the viewer as an html page.
A DICOM image contains meta information regarding the patient, medical modality, type and date of examination, etc. This meta information is stored in the DICOM image as key-value schema. Values may be of several types including string, integer and floating point or an array of these types. Keys and values are stored within DICOM images in binary form. Meta information needs to be provided to a user viewing the DICOM image.
In order to display the meta information, it is necessary to convert it. According to one embodiment of the present invention, the meta information is converted into a JSON data structure frequently used in JavaScript™ to store key-value pairs. Conversion includes parsing a binary stream of meta information using a DICOM library. During conversion, computer readable program code opens the DICOM image file and then loops through all tags for the key-value pairs of meta information to store the pairs in a JSON object as text values.
Exemplary code for converting DICOM metadata includes:
Having parsed meta information from the DICOM image and saved into an object easily presented to a web browser, in order to provide the user with a version of the DICOM image that is viewable within a portable web browser 22, pixel data from the DICOM image must be converted into a web digestible format. The 16-bit gray scale DICOM image is converted into two color 8-bit images by splitting the 16-bits in two 8-bit channels such as red and green. Which color channel combination a developer uses is up to the individual developer. It is equally feasible to split the 16-bit grayscale image into the channels red and blue. Thus, for each pixel of the DICOM image, the 16-bit value is down-shifted to an 8-bit channel by effectively dividing by 256. This down-shifted result is stored as a first value. In this division, the remainder would otherwise be truncated resulting in a loss of information. To overcome this loss, a mask operator is used to collect the remainder value from the division and store as a second value. Each of the two stored values are subsequently associated with a web image channel which may be tagged by a url. Exemplary code for splitting the 16-bit grayscale image into two 8-bit color channels includes:
The resulting two-channel web image is next compressed using lossless compression such as the prig compression scheme. In some embodiments, implementation may be by Microsoft.NET using a standard Microsoft library. For this step, the pixel format BGR 24 is used.
The png image is then loaded in the html page by setting the source of the image element to the url containing the png image. Computer readable program code provided within the context of the url causes the png images to be loaded in an ‘img’ element having a tiled configuration of the two png channel images. This ‘img’ element is then rendered in an html 5 canvas object having the same size as the input image. Exemplary code for rendering the ‘img’ element includes:
To extract the pixel data, and the computer readable program code causes an iteration through all the pixel values in the canvas element and reconstructs the original 16-bit value DICOM image. The green channel png is multiplied by 256 to produce a 16-bit value. The red channel pug is next added to the 16-bit value to yield the original DICOM image. Exemplary code for extracting the pixel data includes:
The resulting extracted pixel data and the previously created JSON object may now be provided to a viewer using the portable browser provided on the media. As illustrated in
In the above-described approach, the original image date was converted into a second copy for html consumption. In a hybrid approach, data duplication may be avoided. DICOM image metadata is converted into a JSON object as described above. However, for pixel data conversion, an extra key-pair value is included in the metadata which stores the position of the pixel data in the DICOM image as offset from the beginning of the image. When the html page accesses the DICOM image, as byte stream. 16-bit values will be retrieved from each of the locations described in the extra key-value pair in the JSON object.
A binary reader uses AJAX call to retrieve the DICOM image as byte stream. Pixel is the array of the pixel retrieved.
The image is accessed using AJAX which is a standard technology allowing an html page to load information from a Web Server, or in the case of some browser, from local file system, in the background. Exemplary code to allow the web page to access the DICOM image includes:
The XMLHttpRequest object implements the AJAX call to retrieve the byte stream. The command overrideMimeType prevents the html page will from trying to interpret the data retrieved such that the data will be handled as a byte stream.
To subsequently retrieve the pixel data, the application retrieves the offset from the meta extra key-value pair provided within the JSON object of metal information and accesses the byte stream. Since the byte stream stores a list of 8-bit bytes, the 16-bit values can be computed by simply multiplying the high byte by 256 and adding the low bytes. Exemplary code to allow the web page to access the byte stream as 16-bit values includes:
According to the schematic illustrated in
While the invention has been described with respect to certain specific embodiments, it will be appreciated that many modifications and changes may be made by those skilled in the art without departing from the spirit of the invention. It is intended, therefore, by the appended claims to cover all such modifications and changes as fall within the true spirit and scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
6182127 | Cronin, III et al. | Jan 2001 | B1 |
6262749 | Finger | Jul 2001 | B1 |
6658462 | Dutta | Dec 2003 | B1 |
20020016718 | Rothschild et al. | Feb 2002 | A1 |
20030217116 | Currans | Nov 2003 | A1 |
20050054921 | Katsman et al. | Mar 2005 | A1 |
20070124410 | Hofstetter | May 2007 | A1 |
20080021740 | Beane et al. | Jan 2008 | A1 |
20090103789 | Danner | Apr 2009 | A1 |
20090112882 | Maresh et al. | Apr 2009 | A1 |
20090132285 | Jakobovits | May 2009 | A1 |
20100010983 | Crucs | Jan 2010 | A1 |
20100011087 | Hofsetter et al. | Jan 2010 | A1 |
20100138446 | Canessa et al. | Jun 2010 | A1 |
20110093293 | G. N. et al. | Apr 2011 | A1 |
20110110568 | Vesper et al. | May 2011 | A1 |
20110238618 | Valdiserri et al. | Sep 2011 | A1 |
20120096524 | Kovalan | Apr 2012 | A1 |
20120099769 | Eichhorn | Apr 2012 | A1 |
20120250956 | Bocirnea | Oct 2012 | A1 |
20120250990 | Bocirnea | Oct 2012 | A1 |
20120323606 | Ananthasubramaniam | Dec 2012 | A1 |
20130091026 | Deng et al. | Apr 2013 | A1 |
20130305138 | Gicovate | Nov 2013 | A1 |
Number | Date | Country |
---|---|---|
1217556 | Jun 2002 | EP |
Entry |
---|
Dandu Ravi Varma, “Managing DICOM images: Tips and tricks for the radiologist”, Indian Journal of Radiology and Imaging, DOI: 10.40103/0971-3026.95396, Jan. 2012, pp. 1-12. |
Desai et al (“Medical Image Transcoder for Telemedicine Based on Wireless Communication Devices”, Electronics Computer Technology (ICECT), 2011 3rd International Conference on (vol. 1), IEEE, Apr. 2011. |
Roentgen Works (Brit Systems, Browser-based DICOM Viewers, 2010. |
Lu et al (Oct. 2010): Research and Implementation of Converting DICOM Multi-Frame Medical Image to Multimedia Format 2010 International Conference on Multimedia Tech˜zologyp. ages 1-5. |
Desai et al (Apr. 2011): Medical image transcoder for telemedicine based on wireless communication devices. 3rd International Conference on Electronics Computer Technology. pp. 389-393. |
Liu et al (Apr. 2007): Medical Image Conversion with DICOM. Canadian Conference on Electrical and Computer Engineering. pp. 36-39. |
Teng (Aug. 2009): Managing DICOM iinage metadata with desktop operating systems native user interface. 22nd IEEE International Symposium on Computer-Based Medical Systems. pp. 1-5. |
Lefebvre, International Search Report and Written Opinion of the Searching Authority, PCT/CA2013/001051, Dec. 17, 2013. |
Number | Date | Country | |
---|---|---|---|
20140010421 A1 | Jan 2014 | US |