worklist with HS70A (samsung)

Hello everyone

I followed the FAQ for the installation of the worklist plugin, but could not show the list of patients on the HS70A (samsung). 
The command with findscu to test the worklist works. The storage functions also, echo and ping tests as well. The list is just empty.
Where do I start to find a solution?
Thank you for your help !

B. Boutillier 

Hi,

  1. Are you sure you do have some worklist files available in your ‘worklist’ database folder ?
  2. Some modalities do generate C-Find requests that are not well understood by Orthanc. You may sanitize these C-Find requests before Orthanc handles them by adding a lua script as explained here http://book.orthanc-server.com/users/lua.html#fixing-c-find-requests. A good candidate is this script that will soon be implemented by default in Orthanc because it solves many C-Find issues.

function IncomingFindRequestFilter(query, origin)
– First display the content of the C-Find query
PrintRecursive(query)
PrintRecursive(origin)

– Remove the “PrivateCreator” tag from the query
local v = query
– generic group lenght
v[‘0008,0000’] = nil
v[‘0010,0000’] = nil
v[‘0020,0000’] = nil
return v

end

Thanks for your answer !

Hi,

1. Are you sure you do have some worklist files available in your
'worklist' database folder ?

Yes, I try with 1, 2 or 3 .wl files and findscu -W -k "ScheduledProcedureStepSequence[0].Modality=CT" 127.0.0.1 4242
says me 1,2 or 3 results.

With this mail, a txt dump of one of my typical .wl (auto generated by the EHR I actualy finalize). Perhaps something wrong ?

Is there a solution to see the information contained in the worklist files as the ultrasound displays? Findscu only gives me technical information apparently.

Thanks for your second option. I have to go back to the office to test.

I also wonder about the configuration of the DICOM line for the worklist on the ultrasound system. Attached is a copy of the screen. I have applied the parameters wider than what I have captured here. In particular, I have set Modality Type to "Any". I wonder what "Date début" ("Start date") because the worklist files do not seem to contain any date. If you have an idea about it, I take it very willing!

Thanks !

B. Boutillier

wl.txt (1.68 KB)

Hi Bertrand,

I have pushed your worklist in my db in I can retrieve it with a very simple C-Find request:

findscu -v -W 127.0.0.1 4243 -k 0008,0050=“*”

I: Requesting Association
I: Association Accepted (Max Send PDV: 16372)
I: ===================== OUTGOING DIMSE MESSAGE ====================
I: Message Type : C-FIND RQ
I: Presentation Context ID : 1
I: Message ID : 1
I: Affected SOP Class UID : FINDModalityWorklistInformationModel
I: Data Set : present
I: Priority : low
I: ======================= END DIMSE MESSAGE =======================
I: Find SCU Request Identifiers:
I:
I: # Dicom-Data-Set
I: # Used TransferSyntax: Unknown Transfer Syntax
I: (0008,0050) SH [*] # 2, 1 AccessionNumber
I:
W: ---------------------------
W: Find Response: 1 (Pending)
W:
W: # Dicom-Data-Set
W: # Used TransferSyntax: Little Endian Explicit
W: (0008,0005) CS [ISO_IR 100] # 10, 1 SpecificCharacterSet
W: (0008,0050) SH [3.340.1556] # 10, 1 AccessionNumber
W:
I: ===================== INCOMING DIMSE MESSAGE ====================
I: Message Type : C-FIND RSP
I: Message ID Being Responded To : 1
I: Affected SOP Class UID : FINDModalityWorklistInformationModel
I: Data Set : none
I: DIMSE Status : 0x0000: Success
I: ======================= END DIMSE MESSAGE =======================
I: Releasing Association

When you issue such requests, Orthanc displays the parameters of the C-Find requests in its logs:

I0422 17:16:03.512449 CommandDispatcher.cpp:490] Association Received from AET FINDSCU on IP 127.0.0.1
I0422 17:16:03.514433 CommandDispatcher.cpp:688] Association Acknowledged (Max Send PDV: 16372)
I0422 17:16:03.532062 main.cpp:118] No limit on the number of C-FIND results at the Patient, Study and Series levels
I0422 17:16:03.535986 main.cpp:128] No limit on the number of C-FIND results at the Instance level
I0422 17:16:03.536968 PluginsManager.cpp:171] Received worklist query from remote modality FINDSCU:
{
“0008,0050” : “*”
}

I0422 17:16:03.559539 CommandDispatcher.cpp:891] DUL Peer Requested Release
I0422 17:16:03.560520 CommandDispatcher.cpp:898] Association Release

That would be very helpful to check the Orthanc logs when your US performs the request. Then, we can repeat the same request with findscu and better understand what’s wrong.

Br

Alain

Thank you for that answer. I'm not sure I understand everything though :-D!
Today I tried 2 things ... and it works!
I added the lua script and added the following parameters to my wl files:

(0040,0100) SQ # Scheduled Procedure Step Sequence
   (fffe,e000) na # Item
     (0008,0060) CS [US] # Modality
     (0040,0002) DA [{{ "now"|date("Ymd") }}] # Scheduled Procedure Step Start Date
     (0040,0003) TM [{{ "now"|date("His") }}] # Scheduled Procedure Step Start Time
   (fffe,e00d) na (ItemDelimitationItem for re-encoding) # ItemDelimitationItem
(fffe,e0dd) na (SequenceDelimitationItem for re-encod.) # SequenceDelimitationItem

I think these parameters were really missing the ultrasound because the adjustment screen really suggested the need for a date.

Would not it be interesting to provide an example of this with Orthanc? The documentation on the worklist files is really hard to find and it is by sticking together several pieces of separate forums that I managed to understand.
In any case, thank you for this incredible software!

Bertrand

Hello everyone !

Having solved my worlist problem, I move on.
I have a Synology NAS for the desktop and I was thinking of using this NAS for orthanc (files + database) storage by mounting a directory via NFS on the server that runs Orthanc.
I'm just wondering if the fact that this Synology NAS is configured to automatically apply the updates of its OS at night is not likely to cause a problem with Orthanc that would no longer see its data during reboot time?

Since the reboot only happens at night, there is no reason why Orththan is in the writing phase of datas, but I prefer to have an experienced opinion on it!
Thanks in advance !

B. Boutillier

Dear Bertrand,

I’m just wondering if the fact that this Synology NAS is configured to
automatically apply the updates of its OS at night is not likely to
cause a problem with Orthanc that would no longer see its data during
reboot time?

Since the reboot only happens at night, there is no reason why Orththan
is in the writing phase of datas, but I prefer to have an experienced
opinion on it!

Regarding this part of the question, you should definitely stop Orthanc before rebooting your NAS, then restart it after the NAS is booted. Otherwise, we cannot provide any guarantee that you won’t experience some crash, yet even data loss.

In any case, I would personally highly recommend you to run Orthanc directly as a service on your Synology NAS, or to store the Orthanc database on a PostgreSQL server running on the NAS. Indeed, it is recommended to avoid running SQLite (the built-in database of Orthanc) on a network filesystem:

“SQLite will work over a network filesystem, but because of the latency associated with most network filesystems, performance will not be great. Also, file locking logic is buggy in many network filesystem implementations (on both Unix and Windows). If file locking does not work correctly, two or more clients might try to modify the same part of the same database at the same time, resulting in corruption. Because this problem results from bugs in the underlying filesystem implementation, there is nothing SQLite can do to prevent it.” [Appropriate Uses For SQLite]

Because Orthanc is known to run fine on other NAS hardware (such as QNAS or Rasperry Pi), and because Synology is Linux-based, I would strongly suggest you to try and run it locally on your Synology NAS. There has been some discussion in the past about this topic:
https://groups.google.com/d/msg/orthanc-users/uLVVq3Ae0is/-jG6ohUES-MJ

It would definitely be great for external contributors to help packaging Orthanc for Synology.

Regards,
Sébastien-

Thank you for your answer. Unfortunately I do not have any skills to build a Synology package. I have never used any programming language other than php which makes me a very bad candidate. (I just read the Synology developer documentation and it's not the first-comer to appear ...).

To be sure of the problem: is it only the database part (the index file located in "IndexDirectory") that is sensitive? In this case can not we keep a storage ("StorageDirectory") in NFS and relocate the database on the server that runs Orthanc?

Thanks in advance !

B; Boutillier

I believe that would be absolutely reasonable as long as the NFS server
is reliable.