Posts by jweste

    Hi Marcel

    Please don´t delete "package-lock.json". A paper about it: https://dev.to/adamklein/packa…k-json-in-git-or-not-50l5

    ReplaceAll I think is ok.


    >>1) images are sorted on InstanceNumber as a string, not a number (i.e. as 1, 10, 100, 101 ...)

    Sorry? do you mean the correct is sort by string(1,10,2,3...) instead of numbers(1,2,3...10)?


    >> 2) Also the path lenght issue is there. I.e. the api must be run from a somewhat short path, e.g. c:\temp works fine.

    Unhapilly, I didn´t find a node solution to that.


    >> 3) We may need to distribute the Linux version of servertask in the same folder

    Of course, we need.


    >> 4) Is it possible to not show the wait window in the first 100ms or so? That would make slice scrolling much smoother. it is quite fast ~50ms.

    Yes, it is. I will remove all "wait dialogs", because we already have a circular progress dialog in the upper right corner.

    Yes I think so, at least partially: replace each , by a \ (or \\) prior to passing the quey


    Marcel

    Hi,

    Thank you. It works as a charm.

    I sent you news files by email.


    Are you going to make a servertask version to compile in linux?

    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

    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


    I see linux version supports mariadb. Does it supports mysql 8.x as well?

    Its not listed in

    options=("mariadb" "postgres" "sqlite" "dbase" "precompiled" "Quit")

    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 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.

    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:


    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"

    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.

    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.

    Thanks,

    I will try it.

    But, I am afraid it will make no difference in server side API performance


    Luiz

    Thank, you.


    In the QIDO/WADO version I sent you, you need install a new package called nodemon(npm install -g nodemon) before run the server api.

    Nodemon is most used in dev enviroment, because it save the programmer to restart manually the app after each code change.


    And, I wrote instructions into readme files about how to install and run the apps. Is it ok as a manual?


    In production, there is other packages such as PM2 that can be used. With this package if the app crash it restarts automatically. But, I believe it is out of initial scope of development the app.

    Marcel,


    I have created a readme.md to each project(server and client) describing how to install and use the app.

    I am sending to you.

    Is it ok?