Hello everyone,
First of all I would like to thank Jörg Riesmeier for directing me to this forum and Dr. Marco Eichelberg for the registration process.
I would like to ask for some advice concerning DCMTK since I am a beginner in DICOM related development and development in general (I just got hired for my first job). My main objective is to develop a PACS in C++ which I've been documenting about for the past 2 weeks and ended up settling for DCMTK. Currently I'm just playing around with the toolkits while exploring their codes and trying to write something similar, this is kinda helping me understand the underlying functions of the different modules (mostly dcmnet and dcmqrdb for now), but now I would like to start the PACS development and I would also like to integrate it with a scalable database like PostgreSql. According to what I've read in this forum, there's one post from 9 years ago which suggests to write an app based on DcmSCP class, I was wondering if this is still the best approach to start PACS development. The module dcmqrdb seems to be easier for what I've seen so far but I'm no expert so I might end up going back to the suggested method after some trials.
So does anyone have any advice/suggestions to how should start developing a PACS with a scalable SQL database support ?
Thanks for taking the time to read my post!
Need advice concerning PACS development using DCMTK
Moderator: Moderator Team
-
- Posts: 12
- Joined: Mon, 2021-11-08, 10:25
-
- DCMTK Developer
- Posts: 2506
- Joined: Tue, 2011-05-03, 14:38
- Location: Oldenburg, Germany
- Contact:
Re: Need advice concerning PACS development using DCMTK
Welcome to the DCMTK forum!
May I ask what the background of your question is? The development of a PACS can mean everything from a small and self-contained project to a very huge task.
May I ask what the background of your question is? The development of a PACS can mean everything from a small and self-contained project to a very huge task.
-
- Posts: 12
- Joined: Mon, 2021-11-08, 10:25
Re: Need advice concerning PACS development using DCMTK
For now, I am aiming to make a PACS that can handle Terabytes of DICOM images, be it small or not. I don't think it will be very sophisticated at least for now, but I am aiming to make something that is quite usable for for clinical field.J. Riesmeier wrote: ↑Fri, 2021-11-12, 09:26 Welcome to the DCMTK forum!
May I ask what the background of your question is? The development of a PACS can mean everything from a small and self-contained project to a very huge task.
I have came out with a small design this last week which I might start developing, so I'm thinking of having :
- A central node that will act both as an acquisition gateway (receives queries from workstations, forwards DICOM images sent by modalities/workstations to the appropriate archive server) and a database (stores metadata of DICOM images that will be useful for querying).
- Multiple archive servers, these are meant to be scalable so there should be a way to add more as long as their are configured in the central node, they should act as a Query/Retrieve SCP and send Images directly to workstations when specified by the central node through a C-MOVE command.
- Workstations, these will communicate with the database to display DICOM images list and download the files if needed, they will also edit images and save them by overwriting the existing ones, let's say for writing a report on a particular study. I don't think the workstations will use DICOM commands to communicate with the database since it's not really needed but the database will perform C-FIND requests if needed, although I expect the data to be saved in the database if the image exists in any archive server.
-
- OFFIS DICOM Team
- Posts: 1445
- Joined: Tue, 2004-11-02, 17:22
- Location: Oldenburg, Germany
- Contact:
Re: Need advice concerning PACS development using DCMTK
This sounds like a reasonable starting point. Note, however, that not all clients will be able to correctly handle a distributed PACS archive where the MOVE AE is different from the system used for submitting the C-FIND requests. Many clients expect to be able to send C-FIND and C-MOVE/C-GET requests to the same address.
With regard to the database: Make sure that it properly supports multiple clients (i.e. avoid SQLite) and that it can handle the load. Good luck with your project!
With regard to the database: Make sure that it properly supports multiple clients (i.e. avoid SQLite) and that it can handle the load. Good luck with your project!
-
- Posts: 12
- Joined: Mon, 2021-11-08, 10:25
Re: Need advice concerning PACS development using DCMTK
Thank you so much for your advice Dr. Marco Eichelberg, this has made me rethink my initial design.Marco Eichelberg wrote: ↑Tue, 2021-12-14, 19:19 This sounds like a reasonable starting point. Note, however, that not all clients will be able to correctly handle a distributed PACS archive where the MOVE AE is different from the system used for submitting the C-FIND requests. Many clients expect to be able to send C-FIND and C-MOVE/C-GET requests to the same address.
With regard to the database: Make sure that it properly supports multiple clients (i.e. avoid SQLite) and that it can handle the load. Good luck with your project!
Since I didn't read the DICOM Standard I was considering usability more than conformity so I just thought I would replace the the whole querying (C-FIND) with a an accessible database.
But now I think what I can do is support C-FIND requests by SCUs and then I would just query the SQL metadata database internally to avoid querying every archive server individually. I can see in DcmSCP that the function handleFINDRequest is deprecated so I guess I have the freedom to implement it however I see fit as long as the status response conforms to the DICOM Standard.
Who is online
Users browsing this forum: Bing [Bot], Google [Bot] and 1 guest