Web server

  • Hi, Marcel


    Ok. I see you removed 'Serialize' in remote query function and 'DicomObject:new(params)' in others functions.

    It´s working as a charm.


    >>The client also does not need dgate.dic or dicom.ini.

    Great


    >>Here it is called dgate.exe for compatibility but I will intend to name is servertask.exe.

    Good idea. Because it isn't the same dgate that conquest use in the remote site.

  • About the viewer demo,

    I have tested with papaya and cornesrtone. I gave up papaya because cornerstone has been resulting in better performance and it has more complete image tools handles.

    But, maybe, It can´t be a complete app with all tools that everybody, using conquest, will needs.

    They can take the demo app as starting point and improve to your needs.

  • Marcel,

    You created a 'dgate' light version.

    But is it still possible to use the original dgate(the same from conquest install) on backend API?

    It´s because I added some tags in dgate.dic as:

    (9999,0801) VERS="CQ" VR="LO" VM="1" Keyword="ConquestDevice" Name="Conquest Device"

    (0008,1190) VERS="CQ" VR="UR" VM="1" Keyword="RetriveURL" Name="Retrive URL"

    (9999,0800) VERS="CQ" VR="LO" VM="1" Keyword="ConquestObjectFile" Name="Conquest Object File"

    (0008,0023) VERS="CQ" VR="DA" VM="1" Keyword="ConquestImageDate" Name="Conquest Image Date"

    (0008,0033) VERS="CQ" VR="TM" VM="1" Keyword="ConquestImageTime" Name="Conquest Image Time"

  • Hi,


    It is not really dgate light, it is just a client and I made it compatible with dgate. I created it for speed and to keep the distribution small in terms of amount of files and size.


    Your router code uses dgate.dic, but the new dgate light (servertask) does not. You are therefore free to use any tags that you like. If you use Dicom tag names they will be looked up on the server side. If you use tag numbers they will be looked up in the client side (you could look them up on the server side as well with a lua function dictionary(group, element) or dictionary(name). They only thing you cannot do is process DICOM information in the API client side, which is not really a limitation as you noted.


    Also, you are not actually using the new tags, anywhere, so I suggest to remove them as they are intermal to conquest.


    Marcel

  • The qido version has a function with param "dicom tag" to find the dicom keyword in dgate.dic. I used it because QIDO allow pass dicom tags and dicom names in query strings. To each dicom tag, I had to get the dicom keyword name to pass as parameters to lua function. So, for now, the api needs dgate.dic or similar to work.

    The function is:


  • Similar code in lua to access the remote dictionary would be:


    Tag="00100020"

    Name = servercommand([[lua:return dictionary(0x]]..tag:sub(1, 4)..[[,0x]]..tag:sub(5, 8)..[[)]])

    io.write(Name)


    "PatientID"


    The 0x is used to convert the hexademical tag value into a regular number


    Marcel

  • Hi, Marcel

    I am testing the new dgate(servertask).

    If I pass the next json to qido api studies route, many tags aren´t returning in the result. Qido specs allows dicom tag names and numbers in the query string.

    As you said, I still have to transform tags number into tag names, before submit to lua scripts, isn´t it?

    Or "servertask" or dgate(on conquest install side) could do this task?

    {"00201208":"","00201206":"","00200010":"","0020000D":"","00100040":"","00100030":"","00100020":"","00100010":"","00080201":"","00081190":"","00080090":"","00080061":"","00080056":"","00080054":"","00080050":"","00080030":"","00080020":"","00080005":"","QueryRetrieveLevel":"STUDY","PatientName":"he*","StudyDate":""}

    Without dgate.dic or similar dict, I would have to submit many tags numbers to server using the function you posted to get your names.

    Maybe, it´s not so good I do that.

  • Hi,


    Previously you would have to change the numbers to names. I have just changed the json parser (jsondaddtoobject) to also accept numbers. The new version of dgate is on github, this only affects the server side. Please test.


    Marcel

  • Hi,


    Previously you would have to change the numbers to names. I have just changed the json parser (jsondaddtoobject) to also accept numbers. The new version of dgate is on github, this only affects the server side. Please test.


    Marcel

    Hi, Marcel


    It´s working,


    I will send you a new api version because with your changes, I don´t need change numbers to names in server side API


    Regards, Luiz

  • Hi, Marcel

    I need test the access in a client conquest install that has no public IP.

    To workaround that, I used ngrok (https://ngrok.com/) to associate a name to conquest port as:

    ngrok http 5678 and it returns:

    Code
    Web Interface http://127.0.0.1:4040
    Forwarding http://43f3-187-84-46-11.sa.ngrok.io -> http://localhost:5678
    Forwarding https://43f3-187-84-46-11.sa.ngrok.io -> http://localhost:5678
    Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00


    So, I have tested dgate as:

    Code
    dgate -p5678 -hCONQUESTSRV1 -qhttp://43f3-187-84-46-11.sa.ngrok.io -wF:\Programas\vuejs\nuxt-iclindoctor\dicomapi/api/dgate


    But, It returns an error as:

    Code
    DICOM ERROR connect failed on socket level (called not running)

    It seems conquest is not resolving the name

  • Hi,Marcel

    Qido allows to pass more than one StudyInstanceUID to query studies as below.

    Does conquest supports this option?


    Code
    StudyInstanceUID=1.2.392.200036.9116.2.2.2.2162893313.1029997326.94587,1.2.392.200036.9116.2.2.2.2162893313.1029997326.94583

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!