Hi folks,
I'm contemplating a setup of dcm4chee in a multitenant situation hosted in the cloud.
However, I'm puzzling over how to track the ownership of the studies back to the original clients. I need a fail proof method, one which does not rely on client generated UIDs. Presumably it would be something similar to how one establishes an authenticated session in a website with the extra plumbing that attributes user generated content to the correct authenticated user - from the server-side.
I'm aware of the dicom security feature but not entirely sure it's the preferred way, what the best practices in using it would be for my setup, or what pitfalls I may encounter when I start hooking it up to real-world modalities.
Any thoughts on the best way to track ownership while keeping everything within the same server / db? (P.S. I need everything in the same place for some of the features I am envisioning.)
Best & thanks,
DavidA few notes:
Looking at the database schema for dcm4chee, I see that the "aet" field of the ae table is constrained to be unique.
So presumably by creating a separate table which maps ae.aet to individual customer accounts, I'm almost almost there.
Furthermore, looking at the series table, there is a field called "src_aet," which would presumably allow me to further map each series, and hence each study, to a customer account as well.
Unfortunately there are two problems with this: 1) series.src_aet is not constrained to be non-null, 2) nor is this field an actual foreign key to the unique field ae.aet, and so it is not guaranteed to be meaningful. Thus it isn't clear if correlating via ae.aet and series.src_aet is a viable strategy, or what extra steps could be taken to make it one (ie: fail safe correlation of studies to customer accounts).
Update:
I went ahead a configured dicom security for my dcm4chee instance. Now anyone trying to store a dicom archive requires a username and passcode.
Via the jmx console, I have also set the parameter dcm4chee.archive:service:CallingAETitle to "CONFIGURED_AETS," to restrict calling AETs to the ones added explicitly to dcm4chee. Clients now must use a pre-registered AET title, instead of being able to invent their own. So far so good!
However here's the hitch: I do not see anyway to restrict the AET used by the client to the client (ie: assign ownership of an AET to a client account). Ie: Any client with valid login credentials and assigned role "AET" can use any AET they want, including those intended for other clients, as long as the AET is preregistered with DCM4CHEE. So this does not allow a fail proof way of tracking study ownership back to a single account / customer.
Is there any way to restrict use of AETs to specific user accounts? Or is there perhaps an alternate approach to accomplishing what I want ...?
Best,
D