aces / dicat Goto Github PK
View Code? Open in Web Editor NEWTool to anonymize DICOM data headers.
License: GNU General Public License v3.0
Tool to anonymize DICOM data headers.
License: GNU General Public License v3.0
See how could have a date widget instead of a text field for date of birth (would be nice to be able to select a date based on a calendar).
See pull request #65:
This functionality has been added by copying code made available at https://github.com/moshekaplan/tkinter_components.
Not sure if it is ok...
User could change the background used to highlight active candidates, excluded candidates etc...
Could have an option to re-organize a DICOM folder into sub-folders containing the different series.
Main folder
-> t1 folder
-> flair folder
-> t2 folder etc...
In the DICOM de-identifier tab, after clicking "De-identify" the only way to tell that it's currently working is by hovering the mouse over the "Dicom Field" column of the table and seeing that the cursor changes to a spinning wheel.
If you hover anywhere else, the cursor goes back to normal and it looks like the progress is done but nothing has happened.
For example, in IDMapper.py, there is a trailing main function that is not used anymore with the new GUI.
DICOM de-identifier uses the first file in the directory to read DICOM fields. Should check if that file is indeed a DICOM.
The need for PyDICOM or the dicom tool kit should not prevail from opening DICAT (especially when one just wants to use the scheduler). Modify the code to check whether the tools needed are installed and display the error message in the DICOM anonymizer window instead.
At the moment, the scheduler greps the date information with time with one single XML field:
2015-05-05 13:50
Modify the code so that it takes that information in two different fields:
2015-05-05
13:50
Move the dict_match and array_match functions from the datamanagement.py to the utilities.py file.
Hey this should have a license! Maybe GPLv3 like LORIS?
When searching a candidate, display only the candidates that matches one of the fields in the data table instead of selecting just one.
Might need to refresh data table to include new candidate (line 100 of scheduler_application.py).
Currently, when creating a new candidate with the same ID, it will overwrite the already existing candidate instead of sending out a warning that the ID already exists.
Add a customization functionality to choose which DICOM field to zap or edit
Implement field checking for data entry errors:
List of DICOM tags: https://dicom.nema.org/medical/Dicom/2017e/output/chtml/part06/chapter_6.html
This was brought up by @MounaSafiHarab. In order to be able to use DICAT and not remove every non-editable field entries we could allow the fields to be zapped to be edited or kept during deidentification.
Solution: On the page where we see the fields with their value, add check boxes that would allow to keep or edit the fields, changing the dictionary with the list of fields to zap or edit.
Now that PyDICOM is used for the DICOM deidentification, remove the dcmtk methods since we do not support it anymore (neither document it).
Using the mass_deidentify.py, white space can be introduced in edited fields which might cause some failure when submitting the DICOM studies to LORIS-MRI.
Solution: remove the white leading and trailing spaces from the edited fields.
Have a section in the README to document how to mass run de-identification using PyDICOM and add links to the PyDICOM Github repo / how to section.
Once a visit is set to "completed"
Investigate how we could add password protection to the XML file that stores the patient information.
Right now, it only refreshes the data table that was used to open the data window.
Installation of PyDICOM is documented here: https://pydicom.readthedocs.io/en/stable/getting_started.html#installing
When saving in the ID Mapper, the data in Gender, CandidateStatus and PhoneNumber fields will be erased from the XML file.
Have a check if this value exists in the XML file. If so, keep the same value, else value would be " ".
This error will occur if PatientName left blank and clicking De-identify
python DicAT_application.py
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
File "/home/gluneau/DICAT/dicat/dicom_anonymizer_frame.py", line 245, in collect_edited_data
self.dirname, self.field_dict)
File "/home/gluneau/DICAT/dicat/lib/dicom_anonymizer_methods.py", line 244, in dicom_zapping
subdirs_list)
File "/home/gluneau/DICAT/dicat/lib/dicom_anonymizer_methods.py", line 420, in create_directories
os.mkdir(original_dir, 0755)
OSError: [Errno 17] File exists: '/home/gluneau/aaa/bbb/CCC6029_902717_V24_RES/'
See pull request #81
See all TODOs and exception listed in the code. For now, it usually prints in the console.
Check that the following scripts are not used anywhere. If not used, remove it.
Comment and clean up the code of the following scripts:
Remove menus at the top of the scheduler except for:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.