Accessing Iview EPID individual image frames

32 views
Skip to first unread message

CraneR

unread,
Jul 30, 2020, 1:14:51 AM7/30/20
to PyMedPhys
Hi,

Is it possible to acquire EPID images (each frame) as they were acquired before they are combined into the image stored by Iview (minimising movement blurring).  If so and able to help out, would you be able to inform me how or what is required so I could set up something similar?

Much appreciated,
Rob

Simon Biggs

unread,
Jul 30, 2020, 1:43:29 AM7/30/20
to CraneR, PyMedPhys

Hi Rob,

 

(Thanks for using the mailing list)

 

This is certainly possible, and the key is taking the image in “movie mode” on the iView (looks like a camera with an m below it). It’s also important to turn “frame averaging” within the field settings to “Off (normal)”. Then, you need to access the raw frames that are saved within the database.

 

To make this easier for us, we have mounted a centre network drive to Z:\ on the iView machine, and then when we start up iView on the login screen, under “Database” we select “other” and then “Browse” and we browse to Z:\. That way the database is stored on the centre’s network.

 

From there, you can navigate in your file browser through the database, and you can find the raw `.jpg` files. These files are quite an archaic jpg encoding however, and normal image viewers (even imageJ) won’t open these. However, the following pymedphys code will convert one of these iView jpgs into a .tif file which can then be opened by your favourite tool:

 

import pymedphys._losslessjpeg

 

INPUT_PATH = 'path/to/input.jpg'

OUTPUT_PATH = 'path/to/output.tif'

 

pymedphys._losslessjpeg.convert_lossless_jpeg(INPUT_PATH, OUTPUT_PATH)

 

Although it’s a bit out of scope for your question, but this procedure above, when combined with also decoding the iView database can be used to name and appropriately assign these fields. We use this procedure during our monthly QA to do Winston Lutz “Arcs” where we deliver beams that are ~1 minute long that delivers a dynamic field to the panel for every gantry angle. This allows us to do our WLutz both quickly, but also have far more gantry angle resolution (not just the cardinal angles).

 

To see how we decode our database, see the following notebook:

 

https://github.com/pymedphys/pymedphys/blob/1086964c/site-specific/cancer-care-associates/production/Winston%20Lutz/Arc%20Method/Decoding%20and%20Sorting%20iViewDB.ipynb

 

Before COVID happened, that was the next on our list to tidy up and make easier for others to use. As it stands at the moment, short of a grant that allows our company to divert resources to make up for the gaps caused by focusing on this sort of thing, it would be quite an opaque process to replicate this at another site.

 

Cheers,

Simon

--
You received this message because you are subscribed to the Google Groups "PyMedPhys" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pymedphys+...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/pymedphys/6a7edb75-6a29-4dbf-9ae7-9dda06fedfd5o%40googlegroups.com.

CraneR

unread,
Jul 30, 2020, 2:00:55 AM7/30/20
to PyMedPhys
Thanks for the reply!

Coincidentally, it is a similar purpose for why i am chasing this!

Simon Biggs

unread,
Jul 30, 2020, 2:11:40 AM7/30/20
to CraneR, PyMedPhys

My pleasure :)

 

I should also add the note that given the following import from pymedphys begins with a “_” this is recognised as a “private” import:

 

import pymedphys._losslessjpeg

 

What this means is that it does not form a part of PyMedPhys’ API and I/we reserve the right to change anything and everything about it in the future without giving anyone notice or a heads up... If you find that this feature of PyMedPhys is quite useful make sure to let me know and I can make it appropriately exposed such that I will no longer change it without giving appropriate notice (via semantic versioning bumps/changelog/deprecation warnings).

 

Cheers,

Simon

--

You received this message because you are subscribed to the Google Groups "PyMedPhys" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pymedphys+...@googlegroups.com.

Reply all
Reply to author
Forward
0 new messages