openradx / adit Goto Github PK
View Code? Open in Web Editor NEWADIT (Automated DICOM Transfer) is a swiss army knife to exchange DICOM data between various systems by using a convenient web frontend.
License: GNU General Public License v3.0
ADIT (Automated DICOM Transfer) is a swiss army knife to exchange DICOM data between various systems by using a convenient web frontend.
License: GNU General Public License v3.0
Implement batch querying on Series Number Tag as addiontal, optional method to query on series level, next to the already exsting querying on Series Description Tag.
The current case is, that every user can use every dicom node as source and destination. To handle user access to specific dicom nodes more granuarly, we need a new permission infrastructure. An admin should be able to define PACS groups via the Admin UI. A PACS group has a name, for example DIR. A PACS group can contain multiple PACS accesses, which in turn can contain only one dicom node. A dicom node can be related to many PACS accesses, but an access can only be related to one PACS group. The cardinalities are also denoted in the diagramm above. There are only three access types: Source, Destination and Bidirectional, which define if a group can access a specific dicom node only as source or destination, or as both. Users must have at least one PACS group. A PACS group can be empty and contain no accesses. An access must have one dicom node as relation.
The tables PACS groups and PACS access need to be implemented as new Django models in a new Django App called groups. The User model in the Accounts app needs a new field for the relation to PACS groups.
Current pseudonymization runs on transfer task level. If a transfer task level is executed on only one series, different series from the same study are pseudonymized independently from each other, with a different anonymizer object. Series from the same study transferred on series level lose their connection to each other. At the destination they will be treated as if they come from different studies.
Move anonymizer object to job level?
Currently only the results that succeeded can be exported. For evaluation and correction purposes it would be useful, if all results, also the not successfull ones could be exported. This could me made optional with a toggle button. Users then could see which of their queries were not successful, correct a typo or similar, and then retry it with the same file.
Users logs into ADIT and can generate a token via the UI. They can manage their tokens via the UI. An admin can also manage all tokens of all users. Token generation should only be availabe for a subset of users, which an admin can manage. This token is later used to authenicate for the REST service.
Related to issue #19
A java script class which handles the complete process of client side pseudonymization need to be implemented. Build a class with general properties for managing the pseudonymization. Probably just a pseudonymization method needed.
General workflow:
Start implementation as follow:
Set up a working environment, where you can mimic incoming images to the browser, basically copy the relevant stuff from #19
You should be able to start an run everything without the overhead of adit, only with node.js
Look into how the files are handled by client, probably an array containing some blob objects or similar
Create the pseudonymization object and pass on each blob object separetly to the pseudonymization method
Most important thing for the pseudonymization object creation will be, to initilaize this object correctly, so every image in that session is pseudonymized the same way
Create Dicom Objects (dcmjs) out of these blobs
Pseudonymize Dicom object
Return the Dicom Object
Set up mini working envirionment which accepts/loads files like a browser would do with node.js
Search for pseudonymization solutions in JS, does dcm.js have one?
If not, implement one, for that look into the Python Implementation Dicognito (same pseudonymization needed), but for now ignore the pseudonymization of UIDs
Users logs into ADIT and next to the existing apps they have access to an upload app. The upload app is also bound to a permission manged by an admin. An admin can grant users access to the upload app. How the upload form should look like can be seen in the diagramm avobe. To process the images on the server side, the existing ADIT infrastructure for receiving images should be used, see BatchTransfer App und ADIT Core. The client side can transfer the images unpseudonymized to th server. But the user can also select an internal pseudonymization and one with a user provided batch file.
Hey Kai,
Manu asked me to bring this to your attention: in some cases (e.g. Task 88585, Batch Transfer Job 489), transfer fails consistently not due to the usual PACS timeout, but due to dataset encoding. Seems to be a rare occurence, I've encountered it only once now, for said patient, both in Batch as well as Selective transfer, over a few retries.
Not super urgent, but probably worth having documented.
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.