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.
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.