Monday 10 November 2008

Conquest Dicom Flex Web Viewer Screenshots

As promissed here are some screenshots of the Conquest Flex Webviewer system that I am working on at the moment. Please note that this system is still a work in progress and is not yet ready for release.


This is the main worklist interface which initially displays the studies for the current day.



This is the main viewer interface.



The screenshot above shows an image that could not be converted.



Above is the log screen that shows viewer events such as image conversion errors.

AddThis Social Bookmark Button

28 comments:

Jason said...

This is looking awesome!

any chance you could add to the search interface for searching by accession number?

(guess it wouldn't really be that difficult to add after the fact though)

keep up the great work!

BigG said...

Hey Jason,

I will add accession number in. It is pretty easy to do. Any other suggestions? I would appreciate any feedback (good or bad).

Gavin

Jason said...
This post has been removed by the author.
Ria Flex said...

I was wondering whether converting to JPG before sending the image to Flex is 'allowed'. Shouldn't the DICOM image be handled/treated on the Flex side? I'm pretty sure that by converting to JPG you loose image details that don't show up anymore when adjusting brightness or contrast. You wouldn't have this problem if you processed the original DICOM based image in Flex.

BigG said...

Hey Ria Flex,

Yes there will be image quality loss by converting the images to JPG. The system is not designed to be a diagnostic application, it is intended for quick review over low bandwidth connections (128kbps - 512 Kbps).
The user will then have the option of downloading a zip file with the full dicom series for manipulation and viewing in a full dicom viewer application.

Just as a matter of interest do you know if it is possible to import dicom images into flex?

Jason said...

so, how is this project coming along? I would be willing to participate as a tester, if you need somebody to beat on it a bit. :-)

BigG said...

Hey Jason,

I haven't worked on the system in about a month. I will see if I can post it on sourceforge in the next couple of days. I will keep you posed on the blog.

Diogo Moutinho said...

Hi there. First things first, congratulations on your blog... It has content I couldn't find anywhere else.
Second, I'm a newbie PACS Eng. and I come from an ActionScript \ Flex development background and when I saw this post on your blog I immediately got exited because I was thinking of integrating DICOM in a Flex application myself. But I have many doubts about DICOM. My true problem is that I just don't know how to integrate the DICOM network protocol with Flex.
My aim is to build a small Dicom server\viewer where I can receive from Modalities as well to Query/Retrieve and integrate a Flex GUI on top of that.
Could you give\show me some hints or some documentation on how to do this?

BigG said...

Hi Diogo,

The way I did it was to use Conquest Dicom server to do all the DICOM recieving and storage. All my application does is read the MySQL database, find the files on the servers hdd and convert them to JPG. These images are then displayed to the user via the FLEX GUI I made. I image you could write your own web service that could send the raw DICOM pixel information to the client Flex application, but this will probably consume quite a bit of bandwidth and memory. You can look at the following places to find some useful information that may get you started:

Using flex to manipulate images:
- http://www.adobetutorialz.com/articles/1987/1/Color-Matrix

- http://www.insideria.com/2008/03/image-manipulation-in-flex.html

The Dicom Standard: ftp://medical.nema.org/medical/dicom/2008/

Dicom toolkit. (Has some applications that you may find usefull, you can normally use these in web apps as you can call the command line tools from PHP or other server side script)
- http://dicom.offis.de/dcmtk.php.en

There are also some useful sourceforge projects out there:

http://sourceforge.net/search/?type_of_search=soft&words=dicom

I was thinking of using DICOM# to write a webservice that would send the dicom pixel data to a flex interface which would then re-build the image pixel for pixel, but I have been to busy to get stuck into something so complicated right now.

Anyway I hope the information helps. If you need some more information let me know.

Diogo Moutinho said...

Thanks BigG!

After the previous comment I ran into DICOM# on sourceforge. And you webservice suggestion seems viable... The catch is that I'll have to learn C#...
Again, thanks for all the info. If I can go through with this I'll get back to you.

Bye.

josean said...

You can have a look at another web based DICOM viewer also programmed in flash (actionscript).

It is still in a early stage (but fully operational), and it can be downloaded from sourceforge if anybody is interested in playing with that.

harshad said...

Maybe I am adding in a comment too late.

I am trying to do the same thing with flex - the only difference is that I am reading directly from a DICOM file (a Part 10 DCM file).

I can parse through all of the attributes and map them with their data types, dictionary (similar to DCMTK).

However, when it comes to importing 16-bit pixel data - I am not able to do it. I know that converting it into JPEG would make my job very easy but I simply dont want to lose any information and want to preserve the data.

Any pointers would be helpful.

BigG said...

hi harshad,

Maybe you can send me some of your code so I can take a look? How exactly are you reading the dicom data? Are you using a server side application or have you found a way to do it in Flex? If server side what language are you using?

Gavin

Anonymous said...

Hello,
Could you send me the source code to read a Dicom image.

Thank you,
Christophe_jacquelin@yahoo.fr

Brian said...

BigG, I am looking to implement a PACS solution for a customer of mine. What you've demo'd here is really slick. I don't have any Flex experience, but I am a php/mysql coder. If you are willing to, I'd love to see where you are with this system, and what things you still need to have accomplished. I may be able to help you complete or enhance this system.

BigG said...

Hey Brian,

https://sourceforge.net/projects/conquestwebview/
I posted the source on sourceforge today. Please note that I have not worked on the app since about November and I will probably not be able to work on it for some time to come. Also note that the system is not meant for diagnostic use as it converts the images to jpg first before displaying. Hopefully someone can use the code I have started and clean up the system a bit.

Gavin

BigG said...

Oops looks like the wrong link that I copied this one should work: http://conquestwebview.sourceforge.net/

rjoker said...

Hi, greetings from mexico, I'm interested to work with the Conquest Dicom Flex Web Viewer, just a question is your software related or
working along with the Conquest Dicom server?

http://www.xs4all.nl/~ingenium/dicom.html

If so, do you know where to find a manual or some sort of documentation to get them work.

BigG said...

Hi Rjoker,

Yes the flex viewer does work with Conquest Dicom Server. All you need to do is install conquest, install a web server like WAMP Server.
Extract the files from the sourceforge project into the www directory of the WAMP installation. Edit the settings.php file in the inc folder for you installation and it should work.

Anonymous said...

Hello,
Nice work, this really looks good. I installed it and worklist is fine. Only images are not getting converted to jepg and all I see is red X. no other info is available that why the convertion is failing. I downloaded it and change setup.pht according to the local install. Any help will be greatly appreciated in understanding why the images are not populating with error saying contact system administrator.
Thank you

BigG said...

Do you see anything in the error log?
What operating system and web server are you using?

Anonymous said...

Thank you for your response,
there is nothing in the error log more than stating that the convertion has failed with message:"Error converting file ! dcmj2pnm.exe +oj +Wm --scale-x-"
The os is WinXP SP3 and the web server is WAMPserver 2.0. with Mysql as database. Web directory is at c:\Wamp\www, and below is my settings.php. I have feeling there is something not correct in settings.php.
" /* CHANGE THE SETTINGS BELLOW TO MATCH YOUR CONFIGURATION. */
$dbhost = "localhost"; // database host name
$dbname = "conquest"; // database name
$dbuser = "root"; // database username
$dbpass = "conquest"; // database password
$siteRoot = "//"; // relative path to web directory from webserver root
$sitePath = "C:\\wamp\\www\\"; // absolute path to web directory
$imagePath = $sitePath . "temp\\"; // path to temp folder where images are stored for web access.
$dicomPath = "C:\\conquest\\dicomserver1413\\"; // path to conquest dicom folder
"


Thank you

BigG said...

Do you have dcmj2pnm.exe present in web directory?
I have found that with some dicom images the system does not seem to handle the conversion. What type of images are you trying to convert? CT, MR, MG ?

Maybe try using dcmj2pnm.exe from command line and testing it to see if it can convert the images.

Anonymous said...

thank you,
its MR, and yes I have tried from CLI and it works. it just doesnt seems to work on the viewer page.

Anonymous said...

One more question,
where is the app finding the images? Looking at your code its trying to query the database for series and then subsequently when trying to load the images, it once more tries to query the database for those images. correct me if I am wrong.
Thanks

BigG said...

If you look in the getImages.php page you will see that the images are pulled out of the database. This in turn calls the function convertImage() in the inc/functions.php page.

If you want to get the output of the dcmj2pnm.exe command line tool to display you can change line 59 in /inc/functions.php to read

return "Error converting file! $cmd_res[0]";

This should give you the output from the command line.

Anonymous said...

thank you for the response,
I got it worked on the local machine with the local database. works fine. It was problem with the settings.php file. I realized that only after looking the php error log on wamp server, and going through fuctions.php parsing line by line. thank you for the help. Now more difficult task is to have this php setting load and convert dicom images from remote host database and dicom images stored on NAS. I am learing a lot.
thank you for your help for all this and great work.
Thank you

Gustavo Caetano said...

I'm having this problem when selecting a series to view (this message appears for each image it tries to load):

HTTP request error
Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]. URL: getImage.php?id=1.2.840.113619.2.231.7200412136269385914.7200412136269385893.5&m=XA&num=40

My Conquest is listening at port 104, is this a problem? It's using MySQL at Windows XP.

Now I'm trying to set up this viewer at a test server, but at this server I can't even see the worklist.

Is there a "how-to install" this DICOM Flex Web Viewer?

Thank you!

[ ]s!