There is no Wrong Way to Render an Image
Kyle Henson, DM
Helping CEOs & CIOs fix every IT issue in their healthcare system. If it’s broken, call me and your problem is solved.
When you talk to most people about rendering an image, you will get either a confused look and a shrug or a passionate treatise on the virtues of server-side rendering. There are generally two types of rendering, client-side and server-side. However, the term can be used more broadly to include various definitions (according to the Google Dictionary) as performing a piece of music or drama, applying plaster to a wall, melting of fat, or a jury to deliver a verdict. In relation to images, rendering is the processing of an outline image using color and shading to make it appear solid and three-dimensional.
The term rendering is often used when viewing PACS images on a web browser or a so-called web PACS. A slightly more accurate term, at least according to Wikipedia, is client-side scripting or server-side scripting. The term relates to how HTML data is presented to your internet browser. In server-side scripting, the server does all of the work and send a 'picture' of the screen to your browser, not unlike Citrix. Client-side is the reverse, and the code is pushed to your browser, and your browser creates the picture that it puts up on the screen. Imagine if you will reading a 500-page book online, and you only want to look at one page at a time. Think of server-side rendering as having the whole book on the server, and when you click forward or back, it sends you only the page you are interested in seeing. The same book read via client-side would result in the book downloading to your PC once and then opening pages in your browser.
Clearly, downloading the whole book would take longer than only sending one page at a time. However, once you have the book downloaded, you are no longer dependent on the internet connection to read the book. As we continue the metaphor, it begins to get more interesting. If you only want to skim the first two pages or maybe only read the last chapter, it would be better (and faster) to server-side process just those pages when you need them. However, if you want to read the whole book, it might be better to have it all at once via client-side, but still, there is the pesky time to download the whole thing. So some are on the fence.
Things become more clear if, for some reason, you wanted to flip through every page in the book like an animation. Imagine wanting to look at all 500 pages at say 30 pages a second over and over. Then, maybe you wanted to stop and go forward and back a few times over pages 132-187. In a server-side environment, you are now waiting on the server and dependent on the speed of the internet connection (latency, not bandwidth) to push those same pages to you over and over as fast as you need them. Whereas in a client-side environment, the pages are all sitting on your hard drive for you to scroll away.
So, let's take the metaphor away and look at images, say a 500 slice CT. Every time you scroll through the images in a server-side environment, you have to re-download the image. The download is fast, and the software usually tries to guess the next few images, but in general, you are real-time downloading the same images every time you scroll. When you window level the images, the server process and resends the image in real-time as the mouse is moving. After enough scrolling and window leveling, you may have downloaded 2 or 3 times the amount of data! If this is how the data is used, perhaps downloading once via client-side is preferable. This way, the data is resident on your computer, and the processing happens within the browser, meaning the speed of scrolling is not dictated by the internet speed.
This is not to say that client-side is better than server-side or vice versa, but more to the point that they each have different purposes. Picture a physician that wants to view an image quickly, may open a few key images, in the CT but likely won't window and level them. This user would likely benefit from server-side, fast access to a few images. A second user may want to scroll through all images quickly to identify an area of interest, then jump to that section and scroll forward and backward several times. Then the second user may want to apply a different window level and do the same thing but zeroing in a different area of interest. The second user is more likely to benefit from client-side processing. The correct technology should be selected for the correct use case.
Thus far, I have danced all the way up to the line without saying it, so to be to the point. In my view, server-side 'rendering' is the appropriate technology for zero-footprint viewers that are designed for EMR image viewing or reference viewing. Image intensive users such as radiologists, neurologists, and some orthopedists are generally better served with a … gasp … thick client using client-side rendering. The point is to use the right technology for the right situation, not to say that one is better than the other. They both work in the use case they were designed for.
As each technology has its benefits and weaknesses, most vendors design their applications to highlight the strengths and minimize the weaknesses. Vendors that use client-side rendering often display a lower resolution image first and then stream in additional pixel data to sharpen the image. This improves the time to first image. Server-side devotees will sometimes render 2 or 3 images ahead of the current image. This way, if a user scrolls, the data is already in the cache and ready to be viewed. These and other optimizations improve the user experience; in the end, select the vendor, product, and technology that best suits the needs of the clinicians.
By KYLE HENSON
CEO & Founder
Heartbeat by Intelligent Imaging
#PACS #Imaging #medicalImaging #PACSAdmin
Commercial Healthcare Sales Leader | Healthcare Informatics | Medical IT Sales Executive | New Business Development | AI | Startups | GTM Strategy | PACS | Medical Image Management | Consulting
3 年It also depends on the institution and their IT department.... It's not a black and white answer......
The AI-guy, Assisting in AI technology deployment, entrepreneur, expert trainer/consultant on PACS, interoperability, standards.
3 年There are several other considerations. Thin clients are often ZFP and easier to secure as there is no PHI left after logging out. But they are not easily scalable, imagine 10,000 simultaneous viewers, that would take quite a bit of processing. Also, some applications such as 3d tomo and wsi pathology are challenging when doing thin clients. Hybrid might be the way to go, depending on the application. And than creating and saving annotations is easier when doing server side rendering.
Sales Engineer, Roche
3 年Thank you for an excellent summation, I do think cloud is the way forward and indeed essential for the things that eg heart flow and beholdai are doing, ultimately on prem hardware will struggle to keep up with advanced visualisation. Plus don’t forget the space / cooling requirements with on prem!
Good analogy to offer clarity to the topic.