Posts by marcelvanherk

    This is possible as explained in the above reply in solution 1 and 4.


    Can you define the AE of the viewers to encode the .x in your example? E.g. AE=viewer.1 for 192.168.1.1?


    Then define in acrnema.map:


    viewer.* 192.168.1.* 1234 un


    to do the trick


    Marcel

    Hi,


    2. this is not built-in. You would have to script that for instance processing the query and move command, best by adding an item for a users (e.g. ReferringPhysicianName = 'name of user'0


    3. Their PACS I guess


    Marcel

    Hi,


    acrnema.map is not about restrictions (that is dgatesop.lst), but only to lookup the IP address and port of an AE.


    Solution 1: (for C-MOVE) if you control the AE of the host, you can use e.g. the V* in acrnema.map:


    Give your host e.g. AE = V127.0.0.1 then the line:


    V* * 1234 un


    Defines V127.0.0.1 as:


    V127.0.0.1 127.0.0.1 1234 un


    Solution 2: use a C-GET request.


    Solution 3: use DICOMWeb access.


    Solution 4: (for C-MOVE) use a script to add a client to acrnema.map as needed.


    Marcel

    And there is no log entry for RTSTRUCT or RTPLAN?


    In any case, the correct form of the statement is simply:


    # Configuration of forwarding and/or converter programs to export DICOM slices

    ForwardAssociationLevel = SERIES

    ExportConverters = 2

    ExportConverter0 = forward to veriqascp2

    ExportConverter1 = forward to Mobius3d


    The semicolon is only used if you have multiple statements, the after clause only for delayed export by e.g. series. This may be the problem, use only exactly the syntax as stated in the manual. Conquest is not very forgiving.


    Marcel

    Sure:


    dgate --move:


    Note that is is quite particular about the syntax. And you need to know UIDs of what your sending.


    Marcel


    DICOM move options:

    --movepatient:source,dest,patid Move patient, source e.g. (local)

    --movestudy:source,dest,patid:studyuid Move study, patid: optional

    --moveaccession:source,dest,patid:acc Move by Accession#, patid: optional

    --movestudies:source,dest,date(range) Move studies on date

    --moveseries:src,dst,patid:seruid,stuid Move series patid: optional

    --move:src,dst,p,st,ser,sop Move patient..image

    Ah,


    add a.NumberOfSeriesRelatedInstances=""


    to the query. You only get what you ask for. Note that asking for NumberOfSeriesRelatedInstances causes Conquest to a query internally. So nesting two queries may be just as quick.


    Marcel

    Hi,


    there can be no spaces in an AE, furthermore start with all defaults, i.e.,

    Code
    # Configuration of forwarding and/or converter programs to export DICOM slices
    ExportConverters = 2
    ExportConverter0 = forward to ServerA after 10
    ExportConverter1 = forward to ServerB after 10

    Conquest is very particular about its syntax, use exactly what is stated in the manual. Make sure ServerA and ServerB are defined in ACRNEMA.MAP.


    Hope this helps,


    Marcel

    If you want to try Conquest on Linux, this is an absolute minimal automatic install script:


    Code
    sudo apt install lua5.1
    wget https://raw.githubusercontent.com/marcelvanherk/Conquest-DICOM-Server/master/install/installer.lua
    lua5.1 installer.lua


    It will then ask to install prerequisites. If you allow that, then after it completes you must again run:


    Code
    lua5.1 installer.lua


    It will ask for an AE title (server folder name); then download all; compile it; configure it and install it.

    Afterwards the DICOM server and its web server will run.


    Note that the script installs or assumes Apache web server.

    This is what it looks like, with user input in bold:


    >lua5.1 installer.lua

    This will install Conquest dicom server and its prerequisites - continue? y/n: y

    Checking prerequisites....

    [OK] Operating system: GNU/Linux

    [OK] GNU Make 4.3

    [OK] g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0

    [OK] gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0

    [OK] 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21

    [OK] UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.

    [OK] git version 2.34.1

    [OK] Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio

    [OK] Apache Server version: Apache/2.4.52 (Ubuntu)

    [OK] Apache PHP php8.1 (enabled by maintainer script)

    [OK] lua-socket

    Server not found - download Conquest DICOM server? y/n: y

    Give server AE (also folder name) (CONQUESTSRV1): CONQUESTSRV3

    Cloning into 'CONQUESTSRV3'...

    remote: Enumerating objects: 4051, done.

    remote: Counting objects: 100% (994/994), done.

    remote: Compressing objects: 100% (384/384), done.

    remote: Total 4051 (delta 637), reused 914 (delta 573), pack-reused 3057

    Receiving objects: 100% (4051/4051), 188.68 MiB | 8.09 MiB/s, done.

    Resolving deltas: 100% (2308/2308), done.

    [OK] Server folder: /home/marcel/test/CONQUESTSRV3

    Compile the server (this takes a while) y/n: y

    [OK] Compiled jpeg library

    [OK] Compiled openjpeg library (jpeg2000)

    [OK] Compiled charls library (jpegLS)

    [OK] Compiled sqlite3 library (database)

    [OK] Compiled dgate application (server core)

    [OK] compiled servertask (for web api)

    Give sudo password for installation operations: xxxxxx

    [OK] server compiled

    Failed to stop CONQUESTSRV3.service: Unit CONQUESTSRV3.service not loaded.

    Give server port (5678): 5680

    Configure the server? y/n: y

    [OK] server configured

    [OK] web server already configured, delete /var/www/html/app and /api to reconfigure

    Regen the database, this can take a long time if there is loads of data? y/n: y

    Dropping Existing tables (if-any)

    Worklist is empty

    Dropping worklist

    Dropping other tables

    WorkList Database

    Patient Database

    Study Database

    Series Database

    Image Database

    Regen Database

    Step 1: Re-intialize SQL Tables

    ***SQLITEExec error: no such table: DICOMWorkList

    ***SQLITEExec error: no such table: DICOMWorkList

    ***Failed SQLITEExec : DROP TABLE DICOMWorkList

    ***SQLITEExec error: no such table: DICOMPatients

    ***Failed SQLITEExec : DROP TABLE DICOMPatients

    ***SQLITEExec error: no such table: DICOMStudies

    ***Failed SQLITEExec : DROP TABLE DICOMStudies

    ***SQLITEExec error: no such table: DICOMSeries

    ***Failed SQLITEExec : DROP TABLE DICOMSeries

    ***SQLITEExec error: no such table: DICOMImages

    ***Failed SQLITEExec : DROP TABLE DICOMImages

    ***SQLITEExec error: no such table: UIDMODS

    ***Failed SQLITEExec : DROP TABLE UIDMODS

    Step 2: Load / Add DICOM Object files

    Regen Device 'MAG0'

    [Regen] /home/marcel/test/CONQUESTSRV3/data/0009703828/1.3.46.670589.5.2.10.2156913941.892665339.860724_0001_003000_14579035620001.dcm -SUCCESS

    [Regen] /home/marcel/test/CONQUESTSRV3/data/0009703828/1.3.46.670589.5.2.10.2156913941.892665339.860724_0001_002000_14579035620000.dcm -SUCCESS

    Regeneration Complete


    Install and start the server? y/n: y

    Created symlink /etc/systemd/system/multi-user.target.wants/CONQUESTSRV3.service → /etc/systemd/system/CONQUESTSRV3.service.

    ● CONQUESTSRV3.service - conquest dicom server service

    Loaded: loaded (/etc/systemd/system/CONQUESTSRV3.service; enabled; vendor preset: enabled)

    Active: active (running) since Sat 2023-09-09 23:47:42 BST; 303ms ago

    Main PID: 12723 (dgate)

    Tasks: 1 (limit: 9519)

    Memory: 5.0M

    CGroup: /system.slice/CONQUESTSRV3.service

    └─12723 /home/marcel/test/CONQUESTSRV3/dgate -w/home/marcel/test/CONQUESTSRV3 -v


    Sep 09 23:47:42 Paradigit systemd[1]: Started conquest dicom server service.

    Sep 09 23:47:42 Paradigit conquest-server[12723]: DGATE (1.5.0d, build Sat Sep 9 23:47:15 2023, bits 64) is running as>

    Sep 09 23:47:42 Paradigit conquest-server[12723]: Database type: built-in SQLite driver

    q

    Enter web interface? y/n:y

    Hi,


    that is a good one. The database entry does not update after each deletion, this would require a rescan of all objects within the study on each delete. I am reluctant to fix this as deletion is not a normal DICOM operation. Normally you would delete a whole study not parts of it. I will add it to the buglist - as a will not fix.


    best regards,


    Marcel