Of note, in order to roll out this GUI within our centre we have implemented automated GUI testing with Cypress (https://www.cypress.io/). This means that for every code change undergone within the PyMedPhys repo a machine spins up and runs the GUI to make sure that key tasks within the GUI have not been broken by those code changes. For example, for the 0.25.1 release, you can watch a video online of those automated tests running by going to https://dashboard.cypress.io/projects/tgt8f6/runs/57/specs and then pressing the video play button as in the screenshot below:
1. I am confused with iComLogFiles directory and the iComLogFiles\live directory described
May I know what the differences are?
What are the recommendation for the location of logfiles, live and grouped patient directory: local or NAS?
2. In the example of listeners at https://nbviewer.jupyter.org/url/simonbiggs.net/icom.ipynb, both batch scripts consolidate the logfiles from two linacs' NSS to D:\iComLogFilesThen, in the patient archiving (grouping) it does something using D:\iComLogFiles\live and Z:\iCom\live to produce something at D:\iComLogFiles\patients
May I know what is “Z:\iCom\live” ?
Is Z:\ a local drive or network drive?
Can a single computer listen to both NSS simultaneously or we need to deploy one listener per computer for each NSS?
3. In the process of grouping patients at https://nbviewer.jupyter.org/url/simonbiggs.net/icom.ipynb, there is a line: “This is done by setting up a .bat file to run on machine boot”.
Could you elaborate further?
Is the machine here referring to the linacs or physics-server/pc?
Do you mean patient archiving (grouping) is done daily in the morning?
3. Regarding the command line tool at https://docs.pymedphys.com/ref/cli/logfile.html: pymedphys logfile orchestration [-h] [-m MOSAIQ_SQL] [-l LINAC_DETAILS] data_directory (orchestration.bat)
May I know whether this data_directory referring to ~.\pymedphys\data or D:\iComLogFiles\patients or the TRF directory?
Which data directory should we configure?
Do we need to map network drive to each separate NSS with the rtduser?
4. How do we enable reading all clinics or designated clinics appear under the \\FocalData\Installation directory described at https://github.com/pymedphys/pymedphys/blob/master/examples/site-specific/cancer-care-associates/config.toml? We have several folders for different groups of doctors.
5. Do we need the D:\iComLogFiles\patients for the gui to read trf ? What are the configurations required just to make the trf portion work? Would the trf files from two NSS override each other?
Thank you for your patience :)
warm regards,
LipTeck
Hi LipTeck,
I’m keen to send you some nice responses to this. Currently quite under the pump, might have to respond to you tonight when I get home from work.
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/c038999e-5dc5-479b-aa58-4355ed687f27%40googlegroups.com.
Hi LipTeck,
As a first point, the iCOM command line tool recently underwent a small revamp. See https://github.com/pymedphys/pymedphys/releases/tag/v0.28.0 for more details. The GUI itself has undergone a change too, see https://github.com/pymedphys/pymedphys/releases/tag/v0.29.0.
As such, I would recommend updating to pymedphys==0.29.1 before implementing the feedback below.
Also, given this is going down the path of implementing the iCOM listener please be aware of the following bug that appears to plague all iCOM listener tools (commercial tools included) https://github.com/pymedphys/pymedphys/issues/849.
Cheers,
Simon
Hi Simon,
I have installed pymedphys and ImageMagick both in 64 bits Windows 7 and 64 bits Ubuntu 20.04 LTS Desktop versions running good in demo mode. I am now trying to setup in the actual clinical environment. Our department is using full Elekta Solution: Mosaiq v2.64, Monaco v5.11.03 with 2 Agility Head Linacs: 1 VersaHD and 1 Infinity.
1. I am confused with iComLogFiles directory and the iComLogFiles\live directory described
May I know what the differences are?
Both the live and the patients directories within the iCOM directory are for storing iCOM data. The live directory is a simple .txt dump of the most recent iCOM stream records. These files a regularly overwritten. The patients directory is where iCOM stream data is grouped and indexed by patient.
What are the recommendation for the location of logfiles, live and grouped patient directory: local or NAS?
I would have the iCOM files be stored on the same machine that is running the iCOM listener, and then have these files shared via the network so that they are accessible by the machine that is running pymedphys gui.
2. In the example of listeners at https://nbviewer.jupyter.org/url/simonbiggs.net/icom.ipynb, both batch scripts consolidate the logfiles from two linacs' NSS to D:\iComLogFilesThen, in the patient archiving (grouping) it does something using D:\iComLogFiles\live and Z:\iCom\live to produce something at D:\iComLogFiles\patients
May I know what is “Z:\iCom\live” ?
Is Z:\ a local drive or network drive?
Z:\ is a network drive shared via intranet from another site. We run this tool for 4 Linacs at 3 sites.
Can a single computer listen to both NSS simultaneously or we need to deploy one listener per computer for each NSS?
A single computer can listen to both NSS’. We have three computers doing it since there is one computer at each site and I don’t want the internet connection to cause the dropout issues discussed above.
3. In the process of grouping patients at https://nbviewer.jupyter.org/url/simonbiggs.net/icom.ipynb, there is a line: “This is done by setting up a .bat file to run on machine boot”.
Could you elaborate further?
Is the machine here referring to the linacs or physics-server/pc?
Do you mean patient archiving (grouping) is done daily in the morning?
Actually, if you install pymedphys 0.29.1, this archiving tool is no longer needed (and the CLI interface has been removed). It is now undergone automatically by the listener process already. No need to manage any of that part yourself any longer.
3. Regarding the command line tool at https://docs.pymedphys.com/ref/cli/logfile.html: pymedphys logfile orchestration [-h] [-m MOSAIQ_SQL] [-l LINAC_DETAILS] data_directory (orchestration.bat)
May I know whether this data_directory referring to ~.\pymedphys\data or D:\iComLogFiles\patients or the TRF directory?
That data directory is actually where ever you would like it to be... I personally put it on the D drive of a server’s local machine where that D drive points to a rather large spinning disk storage. The TRF files end up taking quite a lot of space.
Which data directory should we configure?
In your config.toml point to the same directory as written within the logfile orchestration tool.
Do we need to map network drive to each separate NSS with the rtduser?
No, don’t map the NSS network drive, but do save the rtduser password within the Windows credential manager:
Instead of writing “tunnel-sash-9002”, instead write in the IP address of the NSS on both the network address section, and the username section.
4. How do we enable reading all clinics or designated clinics appear under the \\FocalData\Installation directory described at https://github.com/pymedphys/pymedphys/blob/master/examples/site-specific/cancer-care-associates/config.toml? We have several folders for different groups of doctors.
Unfortunately this is not currently directly supported at the moment, I might be able to make this possible. I do wonder if it might “just work” if you treat each clinic as its own “site” within the config file, as in create a new site for each clinic, and have all the configuration be the same except change the clinic path. It would be nice to directly support this use case though.
5. Do we need the D:\iComLogFiles\patients for the gui to read trf ? What are the configurations required just to make the trf portion work?
Nope, you don’t need that patient directory if you’re going to be just using TRF. However, now that patient indexing is included within the listener maybe this is not as much of an issue?
Would the trf files from two NSS override each other?
They shouldn’t. The TRF files are organised by IP address. Let me know if you have any issues here though.
Thank you for your patience :)
My pleasure :) Things are quite hectic at the moment, thanks for baring with response delays :). Feel free to let me know if you have any more issues.
warm regards,
LipTeck
--
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/35511b23-3edf-4765-a3ec-58fa81ce719d%40googlegroups.com.
--
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/CA%2B5_vkPH5k7vm-AtrKrPXRJh6YajBCaZAis6E-vKHMxK69h89Q%40mail.gmail.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/pymedphys/CAALqB0BWYiAV0nRYjSfBD6eui-5Ww_CJVHD_XxWMDq4btdwBow%40mail.gmail.com.
--
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/CA%2B5_vkPx0ms9KBNkR_mE6hPamsNbJD77m49zrh5o_dqDefUuSQ%40mail.gmail.com.
Hi SimonWe have just upgraded NSS from v3 to v4 on 10-May-2020. Hope it is not NSS version dependent.regards,LipTeckOn Mon, 1 Jun 2020 at 14:29, LipTeck CHEW <liptec...@gmail.com> wrote:Hi SimonPlease see the attached text file.regards,LipTeck
--
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/CA%2B5_vkODbrKcGoi3PE1Ur2nmX6NdPHSQ3yOGMbFSAKb2edKFuA%40mail.gmail.com.
Hi LipTeck,
So that bug never sees the light of day again would I be able to get a bit of data from you? Should it be fixed, would you be able to run a warm up beam or service mode beam (one that doesn’t have any patient data in it) and then, within the patients directory find the corresponding .xz file (under that particular dummy patient name). And I would be keen for you to upload this file for use within PyMedPhys’ automated testing suite. This will make sure any iCOM features that are particular to that particular file will always be verified as being able to be decoded with each code submission to PyMedPhys.
In preparation for uploading I’d like you to take a scan of the contents (so that you are happy with what you are uploading). To read the file, you will need to first extract it.
If you run “ipython” in the directory where the .xz file exists then you can run the following code within ipython:
In [1]:
import
lzma
In [2]:
import
pathlib
In [3]:
icom_paths = pathlib.Path('.').glob('*.xz')
In [4]:
for icom_path
in icom_paths:
...:
with lzma.open(icom_path,
"r")
as f:
...:
contents = f.read()
...:
...: with
open(icom_path.with_suffix(".txt"),
"wb")
as f:
...:
f.write(contents)
This will then convert all of the xz files to .txt files. You can then open the .txt files with something like VSCode (https://code.visualstudio.com/). When you open the text file with VSCode you will need to press “Do you want to open it anyway?”:
There will be lots of “boxes” and weird characters, but all patient identification information will appear in sections that look like the following:
Once you’re confident that the xz file doesn’t have any patient information within it would you then be able to use the following link to upload the .xz file to the Zenodo repository:
https://zenodo.org/deposit/new?c=pymedphys
If you have issues with Zenodo, feel free to email that .xz file on this mailing list and I will upload it.
Thanks LipTeck,
Cheers,
Simon
From: pyme...@googlegroups.com [mailto:pyme...@googlegroups.com]
On Behalf Of LipTeck CHEW
Sent: Monday, 1 June 2020 8:08 PM
To: Simon Biggs
Cc: PyMedPhys
Subject: Re: PyMedPhys Activity Report -- The new PyMedPhys GUI
Hi 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/CA%2B5_vkNmLBMu4vgqAZB60HCHps0KEq_Vwbyfu0NHf-vho_bmZw%40mail.gmail.com.
--
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/CA%2B5_vkMxcVypmC8UXUbYp7i-4oKiups32tXr3xdsd8w3ws3_CA%40mail.gmail.com.
--
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/CA%2B5_vkNsztG2%2B0vWT16AKZs6wCNX2BNcgB6BLh2K9Y4Txx3X5w%40mail.gmail.com.
--
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/CA%2B5_vkOJ24b7YPHqQdvd%3Dj1x4P_A62LR7vjq3hDBe4O0u_nPeg%40mail.gmail.com.
Hi LipTeck,
I can reproduce your error with the file you provided by running the following:
It appears the issue is due to the spaces within the csv file.
I have reattached the config file you provided just with those spaces removed. Let me know if that fixes your issues.
-->
I’ll need to update the docs (https://docs.pymedphys.com/ref/cli/logfile.html#config-mosaiq-sql-csv). It seems my best intentions to make the displayed csv files be human readable resulted in an issue. I suspect I might go down the path of using the `.pymedphys/config.toml` file for this configuration also. I think that might be a more robust and less segmented configuration choice.
Make sure to keep an eye on the release notes (https://docs.pymedphys.com/release-notes.html) whenever you upgrade just to be abreast of what parts of your set up might be adjusted. Because the version number is still 0.*.* PyMedPhys is still going to be going through quite a few adjustments before its configuration API (and other APIs) stabilise.
Cheers,
Simon
Hi LipTeck,
Have a look at the following file:
There, within the BAT file, I am adding python and pymedphys to the path before calling pymedphys.
Cheers,
Simon
From: LipTeck CHEW [mailto:liptec...@gmail.com]
Sent: Wednesday, 3 June 2020 10:54 AM
To: Simon Biggs
Cc: Simon Biggs; PyMedPhys
Subject: Re: PyMedPhys Activity Report -- The new PyMedPhys GUI
Hi Simon
Hi LipTeck,
Could you install the following development release and try again:
pip install pymedphys==0.30.0dev6
In your robo copy, you can just dump trf files anywhere within “to_be_indexed” it’ll deal with that. No need to split them up by linac.
Cheers,
Simon
From: LipTeck CHEW [mailto:liptec...@gmail.com]
Sent: Wednesday, 3 June 2020 11:11 AM
To: Simon Biggs
Cc: PyMedPhys
Subject: Re: PyMedPhys Activity Report -- The new PyMedPhys GUI
Hi Simon