dicomstore error reporting

  • It took a bit but I have figured out how to use dicomstore. Partly because I am a bit new to LUAs data structure. While the error reporting is mostly useful I was wondering if there is a way to forward the error sent by the receiving system?

    It would be most useful to help to understand the issue on the receiving side. With our current PACS there are errors that helps me understand that it already has the image as well.


    The error I capture is

    Failed to send DICOM image(s) to host


    Other DICOM software I use returns more detail.


    Unless I am missing something.

    Thank you for your help

    -Guy

  • Marcel,

    I played around with dicomecho last night. Returning the DICOM object with the raw response looks good!


    Another related question what DICOM libraries are you? They seem to be fairly well done and you have made quite flexible use of them? In which I say congratulations and well done.


    Something I was thinking of when I go through the documentation. I was wondering if there was a wiki of example code / documentation organized like the documentation? The forums are great but at times it does tale a lot of wading through comments like these.


    I have been following and using Conquest for many years. Its a great tool! I have also watched the forums and I am always amazed how quickly you are able to respond. Is there a favorite beverage fund I could donate to? I kind of feel like I owe you something! I am hoping to get to the Netherlands this summer to see a friend maybe a dinner COVID pending.


    Thank you

    -Guy

  • Thanks,


    I moved to Manchester several years ago.


    The code is poorly documented, and the library is the UCDavis one that is not particularly good. The reason it works well is years of bug solving! The lua interface makes it very flexible. Samples of the library use are in test.cxx, samples of the lua use in overview.lua.


    Please stop by Manchester if you are in the neighbourhood. Where are you?


    Marcel

  • I live in the US, Portland Oregon specifically. Its been called the Amsterdam of the US... I have been to Amsterdam. Not even close. Its one of the better bicycling cities in the US but its about 1% of Amsterdam. I work for Oregon Health Sciences University for the Radiology department. (They have the largest bike parking lot in the US.... Capable of a whole 300 bikes. Laughable compared to Amsterdam) I have been working on a method of taking outside exams and modifying patient information to match our internal information. The wonderful world of siloed medical systems in the US. Oh to have a universal patient ID. LOL! I had a pretty good system until we changed our PACS. Then my world turned upside down AGAIN.


    Having used Conquest for various projects I decided to try to use Conquest to do the patient information modification. I use CONQUEST and about 200 lines of LUA code to look up and match patient name and DOB then modify the image pretty much in the stream. The first image takes about 1 second to do my pre processing there after takes about 15ms. I think I have also figured out how to do a very user friendly / flexible router DICOM router with about another 100 lines of LUA code in the import converter and a few extra ms to process the configuration per route. The GUI is a bit more involved but that is separate mostly poking the settings into a separate table. At least this system is not PACS specific this time.


    My wife would love a trip to Manchester... Part of me wants to just move to Europe LOL.


    Again thank you.

    -Guy

  • Hi,


    nice to hear! We use to have friends living in Portland so I visited 3 times I think, but many years ago, we liked it a lot, and especially the amazing surroundings. Amsterdam is great - it has been eery silent though, we were there 5 months during lockdown. Now back in Manchester - it is also OK, I got a nice job here and the kid is at school.


    Lua is a an amazing language and very small! I love to try and extend conquest stepwise to enable things like you do!


    best regards,


    Marcel

  • Currently Windoz... I love Linux but got a bit worried / burned when you had the issue with image artifacts in a previous version for Linux. (My fellow Windows system admins now role their eyes when I consider Linux I need to regain their trust) It mostly happened with huge image files. Mammo Tomos and echo cardiograms. Datasets just keep getting bigger... I need to do some testing to verify image artifacts are resolved. I dont have time for at the moment...


    I am also thinking about using AI to check for image artifacts. We still get some artifacts from other facilities... (Its not Conquest.) Much later project though. Which just gave me an idea. LOL We get document images we dont want. Order paperwork. OCR could catch those fairly easy. Good idea!.


    Yea, Portland is in a nice area. Not far from the ocean, mountains, and a lot of nice hiking areas. The sad part is in the past 5 years our homeless population has grown so large and our city / county have been defunded so much by tax cuts the trash and camps look horrible! Very unfortunate. Homeless and trash is something that I specifically remember not seeing in Europe.

  • Hi Guy,


    32bits test version: dicomstore returns string if no connect, or DicomArray with raw responses. It is an array because you can transmit an array of objects. Array has one element if sending single image. If association does not allow sending a particular image, the response for that image is an empty DICOM object.


    Utterly untested!


    dgateguy.zip


    Marcel

  • Like I said... I have been IMPRESSED by your work.... A modification like that would take a YEAR from almost any vendor of ours. If it would even get on the list!


    That having been said I worked for a small team of 2. We created a DICOM transfer system where we could find the bug create the patch upload to our Git server then force a update to all our clients almost same day. We were also FDA approved. The FDA was quite impressed with our resolution process.


    I will try to get it into a test system soon!


    I am rolling out my new LUA script today and closely monitoring systems and exams.


    Thank you!

  • Marcel,

    Thank you again. Finally I am able to make time to test this. I will let you know soon how it goes. My role out went fairly well. Except a lot of small issues with our PACS and why some things work and others dont with this new PACS. The new PACS is fairly strict and the vendor doesnt seem to understand how to impart the rules to us.


    Thanks again

    -Guy

  • Ok, I think I have killed the cat. Sorry, we are down a person at work so, I am working more than I want to.


    I have set up the test environment and using it on one live system. Our PACS vendor is using a version of DCM4CHEE I can generate a Coercion error fairly easily simply by sending a duplicate image to the PACS. dicomsend is detecting an error. Below is the message that it returns.


    {"AffectedSOPClassUID":"1.2.840.10008.5.1.4.1.1.2","CommandField":32769,"MessageIDBeingRespondedTo":56077,"DataSetType":257,"Status":0,"AffectedSOPInstanceUID":"1.3.46.670589.33.1.63747428510425986400001.5504562812551187983","TransferSyntaxUID":"1.2.840.10008.1.2"}


    While all good information:

    Not seeing the error message. Another system reports it as "Coercion Error (Study UID mismatch) for series [xxx.xxxxxxxxx.xxxx.xxx]"

    I do like the SOPclassUID and TransferSyntaxUID !

    Is there a definition of Status:0?


    Did I mention how much I like how DICOM.ini was done? I can put my own private settings in there! Totally awesome! I was trying to do things as optimized as possible without reading another file or doing another DB query I thought I wonder..... I added my own setting then attempted to read it it was there!

  • Hi,


    this is the standard:


    http://dicom.nema.org/dicom/20…html/part07/sect_9.3.html


    Status 0 means success, so apparently the PACS you are storing to is not given the correct information. Did you see the error in another way?


    And yes, you can store anything you like in dicom.ini. But best use you own section to avoid name collisions.


    Marcel

  • Thank you

    Ahh Thank you for the reference. I forgot that had been defined. I think a wireshark session might be useful. Deeper down the rabbit hole. LOL


    dicon.ini I suspected I should create a separate section.


    Thanks again


    Guy

Participate now!

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