Need advice concerning PACS development using DCMTK

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
Abdallah Maouche
Posts: 12
Joined: Mon, 2021-11-08, 10:25

Need advice concerning PACS development using DCMTK

#1 Post by Abdallah Maouche »

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! :D

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Need advice concerning PACS development using DCMTK

#2 Post by J. Riesmeier »

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.

Abdallah Maouche
Posts: 12
Joined: Mon, 2021-11-08, 10:25

Re: Need advice concerning PACS development using DCMTK

#3 Post by Abdallah Maouche »

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.
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.
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.
That's all for now, I think I can implement everything I mentioned using DCMTK except the database of course. Do you have any advice or remarks concerning this ? or am I missing something :? ?

Marco Eichelberg
OFFIS DICOM Team
OFFIS DICOM Team
Posts: 1437
Joined: Tue, 2004-11-02, 17:22
Location: Oldenburg, Germany
Contact:

Re: Need advice concerning PACS development using DCMTK

#4 Post by Marco Eichelberg »

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!

Abdallah Maouche
Posts: 12
Joined: Mon, 2021-11-08, 10:25

Re: Need advice concerning PACS development using DCMTK

#5 Post by Abdallah Maouche »

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!
Thank you so much for your advice Dr. Marco Eichelberg, this has made me rethink my initial design.
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.

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot], Bing [Bot], Google [Bot] and 1 guest