Creating a print server?

  • I'm trying to figure out a way to get our dicom machines to print to a paper printer. As such, I'd like to setup a print server that the modalities can connect to as a dicom device, which can then convert the images to a format suitable for printing on a paper printer. This is all in windows.

    From what I can see, it looks like conquest can be used for this?

    I'm not sure where to start, so if anyone can help me with the following issues, and point me in the right direction that would be great!

    1) Whats the best way to test a dicom print server like this? Install a free pacs system and try and print from that? (any suggestions?)

    2) If I wanted to adjust the images - like add a header - where in the code is the best place to do that?

    3) How do I configure ConQuest to behave like a dicom printer?

    Any help, even basic is greatly appreciated, thanks!

  • Oh,

    Conquest allows fixed bitmaps to be added. It currently does not display text. The printing is done from the Delphi side; you would need to look in the Github version to find the code (in serverdriver.pas). You can also use and modify printerdisplay.lua to allow work on the images.


    Marcel van Herk is developer of the Conquest DICOM server together with Lambert Zijp.

  • Can confirm, works perfectly! You were wrong about the setup time - was 2 mins not 5 :)

    I need to display the patient name etc directly on image - I'll have a look at printerdisplay.lua as suggested.

    Is colour implemented?

  • Yes color is implemented on the server side.

    This is the actual printing code in Delphi.

    To add text you would need to add to this code. The most flexible way is to allow a lua script (or better add to printerdisplay.lua, which is called about 50 lines above this code snippet to create the bmp, and loads the dicom object anyway) that creates lets say one or more a multiline text strings, that would then be overlaid in the corners of the image.

    You can access any header information in that lua script as e.g. x.Patientname. Unfortunately passing data from the Lua script must be done with temporary files. Maybe allow a single output file (e.g. outfile..'.txt') like this:

    1. [top left]
    2. PatientID = anonymous
    3. [top right]
    4. Date: 20190110
    5. Time: 11:23
    6. etc.

    Ane then read and print it in Delphi.

    Delphi community edition works just fine to compile the GUI.



    Marcel van Herk is developer of the Conquest DICOM server together with Lambert Zijp.