Posts by marcelvanherk

    Hi,


    it is in theory possible to intercept a move request with ([lua]RetrieveConverter0), and then spawn in response multiple moves (using servercommand('luastart:code') where each move is passed in the code string. But this is far from trivial and requires a lot of lua coding. Version 1.5.0 is better equipped because DICOM objects there have a 'Serialize' method to write them out as text.


    'Pseudocode' in dicom.ini:


    [lua]RetrieveConverter0 = if Association.Calling == 'SLOWAE' then dofile ('parralelize_move.lua') end


    And for parralelize_move.lua:


    Not tested at all! To try I would use two conquest dicom servers and print out info along the way.


    Marcel

    Hi,


    I just realised you can try something like this for testing:


    [lua]

    QueryResultConverter0 = Data.SpecificCharacterSet = "ISO_IR 144"


    This would set it for any query result. Better would be set it to the SpecificCharacterSet of the request. note however, that if the db messed with the encoding it may not be enough.


    Marcel

    Hi,


    would it be possible to add a conquest dicom server at the remote site, setting up the central site as VirtualServerFor0 in dicom.ini there and having the remote viewer work from the remote conquest? This would allow more control over the communication, such as change the PDU size. In addition it would be maybe possible to prefetch data. By the way, conquest 1.5.0 would request a PDU size of 32k (e.g. for the return connection of C-MOVE), so apparently radiant limits it to 16k.


    Marcel

    Hi,


    because DICOM uses handshaking per block, the latency is the issue. Larger block sizes would help. What PDU size does it report on communication? You can try (for a test), 1.5.0 from github (link in top post), this will likely accept larger block sizes.


    Of course, you could also instruct conquest to send data in parallel, using multiple moves at once. But currently it would not do that by itself.


    Marcel

    To help me solve the problem, can you write out in a bit more detail what happens?


    Or try this:


    VirtualServerFor = AE,CACHESERIES


    or


    VirtualServerFor = AE,CACHESTUDIES


    that might split queries, but maybe not in the right way.


    Marcel

    Hi,


    You can use any lua string pattern matching, of which there are many samples on the internet. Add e.g. this to dicom.ini (untested example):


    [lua]

    ImportConverter0 = Data.PatientName = string.gsub(Data.PatientName, Data.PatientID, '')


    Avoid changing PatientID itself, see sticky "why not change patientID of an image".


    Marcel

    Hi,


    DICOM tags may be nil when not defined. Use e.g. Data.tag or "" to replace nil by "".


    try "forward study to AE", again. It does have a 10 minute delay. Fore testing you can use "forward study after 10 to AE" to make the delay 10s.


    Marcel

    Hi,


    if must create a folder clibs in the folder where conquest dicom server is, and place your libraries there. Then the paths should be setup correctly. I used luasql_mysql with success (quite some while ago), as well as other libraries (cd and iup). Your database driver dlls (windows) should be copied to the same folder. You can use the ones in the conquest distribution.


    Marcel