Posts by jweste

    Hi, Marcel

    I am working in a QIDO version of the front/back end.


    I have a problem with Columns and Rows parameters.

    If these parameters are present in query the result is empty.

    If I get rid of them the result is ok.

    I need to pass this parameters due QIDO compliance.


    >>Everything seems to work well and it looks very pretty. However, scrolling through slices is very slow. And it only works on scroll (wheel) not the left mouse, which is a bit frustrating on my laptop.

    When the image is multi-frame the scroll is very fast between frames.

    But regarding the images from series, I was afraid that a great amount of memory would be used to load all images in a single shot.

    Then, I choose load one by one when clicked or with scrolling with mouse wheel, as you ask before.


    >>Also the slices are not in the right order. They should be sorted by InstanceNumber. Because of the direct mapping of dicom query results to json this can be easier done on the js side.

    OK, I did


    >>Since I am new to node.js, just as many conquest users will be. a small manual on how to configure, install and run the api and the app would be welcome, if we want to distribute it with conquest.

    I agree. But, my english is not so perfect to make a manual without language errors.

    But, I will do.


    >>I quess eventually the app should only use qido and wado to conform to standards. WADO does provide an interface to compress the images, so it may not be necessary to add it in the DicomSlice interface. But of course yoy can easily add it if you want, you have full control of the code.

    When I started to work on it, I hadn´t skills with qido,wado uri or wado-rs. (And I still don´t have much)

    I wasn´t sure if will be possible get the conquest query results with node.

    So, It´s the reason I started the tests with a owner api.

    But, it will not be too hard change all to qido/wado.

    I only need a little more time.

    Conquest supports:


    • 1.2.840.10008.1.2.5 RLE Lossless (YES decompress only)
    • 1.2.840.10008.1.2.4.50 JPEG Baseline (Process 1 - 8 bit) YES
    • 1.2.840.10008.1.2.4.51 JPEG Baseline (Processes 2 & 4 - 12 bit) YES
    • 1.2.840.10008.1.2.4.57 JPEG Lossless, Nonhierarchical (Processes 14) YES (J2)
    • 1.2.840.10008.1.2.4.70 JPEG Lossless, Nonhierarchical (Processes 14 [Selection 1]) YES (J1)
    • 1.2.840.10008.1.2.4.80 JPEG-LS Lossless Image Compression YES, FAST AND GOOD COMPRESSION (JS)
    • 1.2.840.10008.1.2.4.81 JPEG-LS Lossy (Near-Lossless) Image Compression YES, FAST AND GOOD COMPRESSION (J7)
    • 1.2.840.10008.1.2.4.90 JPEG 2000 Image Compression (Lossless Only) YES, SLOW (JK)
    • 1.2.840.10008.1.2.4.91 JPEG 2000 Image Compression YES, SLOW (JL)
    • 1.2.840.10008.1.2.1.99 Deflate Transfer Syntax NO

    Maybe, passing a param to lua function API to choice the compression will be a good add on.

    What you think?

    Every transfer syntax in Conquest has a shortcut? as J2, JK ....

    Yeah,


    compression makes it complicated. An unrelated question. Is there a key our mouse way to scroll through the slices in your cornerstone demo. Otherwise it works quite nicely.


    Marcel

    Hi, Marcel

    I have solved the compress problem, and I put scroll slices when clicking on stack icon.

    j2 is ok, n2 I didn´t have success with cornerstone

    I am sending you a new zip pack


    Regards, Luiz


    Hi, Marcel


    The fix is ok.


    I found cornerstone needs to load plugins to work with compress dicom files.

    I am trying to solve it using nuxtjs.

    >> Can this be read by cornerstone. I would suggest j2.

    Yes, It can. It´s working without problems in my tests.

    But, we can test others cases if you have a image that can´t be read.

    I just used 'n2', because I ask you about compression in a other post and you suggested 'n2'.

    I´d appreciate if you send it to me.

    Or you can just change it to j2 and test yourself.


    Luiz

    Hi, Marcel

    I have used windows in my dev PC with conquest.

    In windows, I created a folder called "dgateAPI" with dgate.exe, dicom.ini, dgate.dic, lua5.1dll and my queryconsquest.lua file(containing the code to call conquest).

    It´s enough and it´s working very well.


    But I have a linux ubuntu server where I am going host my API.

    My API, using the dgate needs to access a conquest remote server(other machine PC or Linux)

    Then, what is the similar files I have to put in that folder using linux?

    Is enough to use dgate with chmod 777 and dgate.dic?

    Regards, Luiz

    Hi, Marcel

    Thank you. It´s working.

    Other question, please.

    I´m playing with wadorequest as well. I´d like to know how annotation param works.


    I tested with:

    Code
    localhost:3002/api/dicom/wadocgi?requestType=WADO&contentType=image/jpeg&seriesUID=1.3.46.670589.5.2.10.2156913941.892665339.860724&studyUID=1.3.46.670589.5.2.10.2156913941.892665384.993397&objectUID=1.3.46.670589.5.2.10.2156913941.892665339.718742&annotation=patient

    Am the result is a jpeg image, but there is no annotations.




    Hi Marcel


    I printed params before "a=DicomObject:new(params)" in the function images. The parameters are ok and passed.

    Here is the params printed:

    {"ConquestDevice":"","ConquestObjectFile":"","ConquestImageDate":"","ConquestImageTime":"","PatientID":"66971","PatientName":"","SeriesInstanceUID":"","InstanceNumber":"","ImageDate":"","ImageTime":"","StudyInstanceUID":"","SOPInstanceUID":"","NumberOfFrames":""}


    the problem is in this line: "a=DicomObject:new(params)".

    I think this line is taking away some json parameters as SOPInstanceUID.


    function images(server,params)

    local ae = server or servercommand('get_param:MyACRNema')

    io.write(params) --test

    a=DicomObject:new(params)

    b=remotequery(ae, 'IMAGE', a);

    io.write(b or '')

    end;