Worklist or ORM Log file

492 views
Skip to first unread message

Algie Rosario

unread,
May 28, 2014, 3:59:06 AM5/28/14
to
Hi,

I am new to an already existing software with dcm4che. My client want to track/trace the information:

1.) Track the modalities that get/query the worklist/data's from the dcm4che, either succesful or failed.
2.) Track if dcm4che receive data from modalities, either succesful or failed.

This aims to know which side have the error, either the provider(PACS system) or the client(modality by configuration).

I searched and found that it can be trace in server.log but its not specific.

Or else, where i can find the page or where can i code that if the the modality failed to get/fetch/query the worklist/data from dcm4che then it will create an error log, as well as when it is successful.

Best Regards and Thank you.

Marek Święcicki

unread,
May 29, 2014, 2:56:09 AM5/29/14
to dcm...@googlegroups.com
There are lots of logging options. Look at MWLFindSCP and StorageSCP in JMX-console.
Options are described rather understandable, these settings will make dcm4chee to create logfiles so you will be able
to check hl7's, and cfind's and such.

Happy debugging ;)

Algie Rosario

unread,
May 29, 2014, 4:53:10 AM5/29/14
to dcm...@googlegroups.com
Thanks for the reply, greatly appreciated it. Where can i find the JMX-console, sorry for bing newbie here.

Marek Święcicki

unread,
May 29, 2014, 5:55:27 AM5/29/14
to dcm...@googlegroups.com
I'm newbie as well ;)
I'm not sure if this is general or just our setup (i wasn't the one who deployed it),
but it is pretty much the same as going to web interface.
But let's assume for a moment that you don't use web interface so i will venture to explain it as well.
Go to browser and type ip of your dcm4che server with port 8080 (and here it is that im not sure if this port will be the same);
then after a slash ('/') type "dcm4chee-web3/" (for web interface) or "jmx-console/" (for jboss console).
For example:

You will have to log in ofc.
Enjoy :)


--
You received this message because you are subscribed to a topic in the Google Groups "dcm4che" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dcm4che/-jAZFJi4GFc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dcm4che+u...@googlegroups.com.
To post to this group, send email to dcm...@googlegroups.com.
Visit this group at http://groups.google.com/group/dcm4che.
For more options, visit https://groups.google.com/d/optout.

Aljie Rosario

unread,
May 30, 2014, 1:30:39 AM5/30/14
to dcm...@googlegroups.com

Thank you so much for this informative soluitions of yours, I did what you have said and i already open and read MWLFindSCP and StoreSCP. My only question is that, are all the loggings saved in the server.log? If yes, which of this two are is the correct file?

C:\dcmsyst\dcmPacsMpps\server-2.17.1\server\default\log\server.log? or 
C:\dcmsyst\dcmPacs01\server-2.17.1\server\default\log\server.log?

Noong Huwebes, Mayo 29 2014 17:55:27 UTC+8, si Marek Święcicki ay sumulat:

Marek Święcicki

unread,
May 30, 2014, 6:52:55 AM5/30/14
to dcm...@googlegroups.com
Oh well... I wish i knew... I guess that depends which is which and what you want to check.

But server.log is not even top of the iceberg, what i had in mind when i wrote about logging was,
for instance, the LogAETitles and WriteCoercionXmlLog options in MWLFindSCP (also there is similar set in StorageSCP).
And that options enable you to generate additional files (beside seemingly-automated generation of server.log).
For example you could have created files containing hl7 you recive (or other files with .xml version of hl7).
I find it very useful to get to know whats happening and to properly write my .xsl's files.

Rajesh Kanattu

unread,
Jun 1, 2014, 1:00:42 PM6/1/14
to dcm...@googlegroups.com
Any idea how can we get the xml file for orm2dcm.xsl? some of my xsl translations are not working....I need to see whether I have done correct coding...

Marek Święcicki

unread,
Jun 2, 2014, 3:01:25 AM6/2/14
to dcm...@googlegroups.com
Check service HL7 for ORM, options FileReceivedHL7 and FileReceivedHL7AsXml - i guess thats exactly what u looking for. 

Algie Rosario

unread,
Jun 2, 2014, 5:35:22 AM6/2/14
to dcm...@googlegroups.com
Hi, I dont know how to thank you for the help.  Thank you so much. By the way, may i know what country are you in?

Like what you said, I also set the WriteCoercionXmlLog to "true", please see screebshot below:


Does the data this xml files goes to the server.log or anywhere else ?
Also attached print screen below shoes my server.log portion that i want but not complete..

I dont know if it is the right logs that the system can show. I need the logs that the DICOM will send to the modality and modality to DICOM either successful or not,
Trace which of the two are not sending back. 

Thanks so much.

Marek Święcicki

unread,
Jun 2, 2014, 5:47:03 AM6/2/14
to dcm...@googlegroups.com
Greetings from Poland ;)
As u can see - even in that (first) screenshot - each setting has 3 columns, it goes like this: title, value, explanation/description.
And in the latter u have explicitly written where logged data goes (in this case 'coercion' directory).
You need to understand that in server.log goes only server logs - each additional logs create file in proper place.
For example if u set two ORM loggings i mentioned earlier today each hl7 orm message ur server will receive will be put in two files in log directory - one with hl7
and one in xml-ised hl7. I dont know how u browse ur filesystem on server but if u are using something with GUI it should be pretty easy to find all this files.

It's awesome i could help - im still rather a novice 
Godspeed

Algie Rosario

unread,
Jun 2, 2014, 6:11:25 AM6/2/14
to dcm...@googlegroups.com
Greetings from the Philippines,

Does this mean that in the .xml files,inside dcm4chee-ae, i need to make a code where the logs will be saved?
I only know that i used to manipulate the "jboss-log4j.xml" to include codes to log in my server.log like:

   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
     <param name="File" value="${jboss.server.log.dir}/server.log"/> ==== > here i initiated the folder i want to save the logs.
     <param name="Append" value="false"/>
     <param name="MaxFileSize" value="10000KB"/>
     <param name="MaxBackupIndex" value="1"/>

  <!-- Limit the org.dcm4chex.arr to INFO -->
   <category name="org.dcm4chex.arr">
      <priority value="INFO"/>
   </category>
   
   <!-- Limit the org.infohazard category to INFO -->
   <category name="org.infohazard">
      <priority value="INFO"/>
   </category>
   
   <!-- Limit the org.dcm4chex.archive category to INFO --> 
   <category name="org.dcm4chex.archive">
      <priority value="INFO"/>
   </category>
   
   <!-- Limit the org.dcm4chex.archive category to INFO --> 
   <category name="org.dcm4chex.cdw">
      <priority value="INFO"/>
   </category>
   
   <!-- Limit the org.dcm4chex.wado to INFO --> 
   <category name="org.dcm4chex.wado">
      <priority value="INFO"/>
   </category>

   <!-- Limit the org.dcm4chex.rid to INFO --> 
   <category name="org.dcm4chex.rid">
      <priority value="INFO"/>
   </category>

   <!-- Limit the org.dcm4chex.xds to INFO --> 
   <category name="org.dcm4chex.xds">
      <priority value="INFO"/>
   </category>

   <!-- Limit the org.dcm4cheri category to INFO -->
   <category name="org.dcm4cheri">
      <priority value="INFO"/>
   </category>

   <!-- Limit the org.dcm4che2 category to INFO -->
   <category name="org.dcm4che2">
      <priority value="INFO"/>
   </category>

   <!-- Limit the org.dcm4che.util category to INFO -->
   <category name="org.dcm4che.util">
      <priority value="INFO"/>
   </category>
   <!-- Limit the org.dcm4chee category to INFO -->
   <category name="org.dcm4chee">
      <priority value="INFO"/>
   </category>


Thank you so much. If you want to have a vacation here in the philippines, im free to give a tour.

Marek Święcicki

unread,
Jun 2, 2014, 6:53:16 AM6/2/14
to dcm...@googlegroups.com
Woah, i didn't know about jboss-log4j.xml - thanks!

Im not sure if we understand each other, so i will do my best to clarify.
As i understand u want to log hl7 messages ur server is receiving - is that correct ?
So, first as we said go to jmx console to HL7Server service (service receiving hl7's) 
and set FileReceivedHL7 to true (this way every received hl7 will be saved/logged in file
as is stated in setting description:

Obraz w treści 1
so as description states in your server/default/log directory u should now see files with names hl7-###########.hl7
which will contain exact hl7 message which was received.
Second, third option below that one will be FileReceivedHL7AsXML which will do pretty  much the same except files will be
with extension .xml and will contain hl7 message converted to xml.
So if u have both set to true each received hl7 will generate two new files in ur log directory.\

Important thing to do, which i forgot to mention, after each changes in jmx-console settings u should push "apply changes" button (below table with settings)
We also additionaly restart service (first stop() then start() ) - we re not sure if this is neccessary but it doesn't hurt so we do it just in case.

I will surely contact you should i have plans to visit philipines ;)

Algie Rosario

unread,
Jun 2, 2014, 11:23:35 PM6/2/14
to dcm...@googlegroups.com
Thank you so much for quick responses sir, if it is okay, may i know your job as well? Thanks.

I am a lack of experience senior programmer in medical field. But determined to learn things beyond anything else. Haha. Just a positive thought.

Sure, please contact me. Lot of native beautiful places here.

Algie Rosario

unread,
Jun 3, 2014, 2:51:01 AM6/3/14
to dcm...@googlegroups.com
 As a follow up question and for clarification, we know that PACS(system/GUI)/DICOM sends ORM/Worklist that queried by the machine/Modality right?

 In our case, some machine cannot queried worklists/orm's from PACS/DICOM and we need to trace which of the two(DICOM and Machine/Modality) have the error.
 And thats why we need the Log file for that. Thanks so much.

Marek Święcicki

unread,
Jun 3, 2014, 3:07:54 AM6/3/14
to dcm...@googlegroups.com
Glad i could help.
Im also programmer but i would consider myself rather junior (age and thus experience), but im constantly improving as well :)
With such issues you may find helpful / learnful / clearful (and many others ~fuls) drawing i made for our documentation:
Obraz w treści 1
hope it will be an asset for you :)

Algie Rosario

unread,
Jun 3, 2014, 11:31:59 PM6/3/14
to
Thank for the diagram sir, that's what im definitely looking for.


 I found the mwl-cfindrq.xsl inside the MOD-AET folder but i dont have the mwl-cfindrsp.xsl. I only have mwl-cfindrsp2cstorerq.xsl outside the MOD-AET folder.

 Also i read about an issue that is related to mine in this link https://groups.google.com/forum/#!topic/dcm4che/bQm8I33I6rk

 It says that "modality logged are in the directory server/default/log/AETitle" - but in my path its only default/log/server.log and boot.log 
And " those .in/.out files that are being created during coercion in the directory server/default/log/coercion" - dont have also this coercion folder.

Last concern is that how can i have that server/default/log/AETitle?

Attached here is the 2 files i have.
 - MOD-AET/mwl-cfindrq.xsl
 - mwl-cfindrsp2cstorerq.xsl.
mwl-cfindrsp2cstorerq.xsl
mwl-cfindrq.xsl

fleetwoodfc

unread,
Jun 4, 2014, 8:20:46 AM6/4/14
to dcm...@googlegroups.com
Have you configured the logging correctly in jmx-console->service=MWLFindScp
You must enter the AE Title of your modality as the LogAETitles parameter - which is set to NONE by default. Also set WriteCoercionXmlLog to true.

Algie Rosario

unread,
Jun 4, 2014, 9:15:23 PM6/4/14
to dcm...@googlegroups.com
Yes Sir, i already configured my jmx-console->service=MWLFindScp.

Please see attached picture below:
image.png

Rajesh Kanattu

unread,
Jun 5, 2014, 12:23:01 AM6/5/14
to dcm...@googlegroups.com
Yo have a problem in the MWLFindSCP under LogAETitles...

It should be the AE of the modality you want to log... see the pic.

Algie Rosario

unread,
Jun 5, 2014, 3:12:34 AM6/5/14
to
I already change that part sir, im using DVTK Emulator as a tester for the logs but still then its the same. 

The AE of the modality of emulator is MODALITY. PLease see attached file for the log when i try to query worklist:

 INFO  -> (TCPServer-1) [org.dcm4cheri.server.ServerImpl] handle - Socket[addr=/192.168.1.106,port=55751,localport=31118]
2014-06-05 15:03:28,458 INFO  -> (TCPServer-1) [org.dcm4cheri.net.FsmImpl] Socket[addr=/192.168.1.106,port=55751,localport=31118]
2014-06-05 15:03:28,467 INFO  MODALITY->dcmWORK (TCPServer-1) [org.dcm4cheri.net.FsmImpl] received AAssociateRQ
appCtxName: 1.2.840.10008.3.1.1.1/DICOM Application Context Name
implClass: 1.2.826.0.1.3680043.2.1545.1
implVersion: dvt2.4.0
calledAET: dcmWORK
callingAET: MODALITY
maxPDULen: 16384
asyncOpsWindow:
pc-1: as=1.2.840.10008.1.1/Verification SOP Class
ts=1.2.840.10008.1.2/Implicit VR Little Endian
2014-06-05 15:03:28,469 DEBUG MODALITY->dcmWORK (TCPServer-1) [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.AE#findByAET] Executing SQL: SELECT t0_a.pk, t0_a.aet, t0_a.hostname, t0_a.port, t0_a.cipher_suites, t0_a.pat_id_issuer, t0_a.acc_no_issuer, t0_a.station_name, t0_a.institution, t0_a.department, t0_a.installed, t0_a.user_id, t0_a.passwd, t0_a.fs_group_id, t0_a.ae_group, t0_a.ae_desc, t0_a.wado_url, t0_a.vendor_data FROM ae t0_a WHERE (t0_a.aet = ?)
2014-06-05 15:03:28,472 INFO  MODALITY->dcmWORK (TCPServer-1) [org.dcm4cheri.net.FsmImpl] sending AAssociateAC
appCtxName: 1.2.840.10008.3.1.1.1/DICOM Application Context Name
implClass: 1.2.40.0.13.1.1.1
implVersion: dcm4che-1.4.31
calledAET: dcmWORK
callingAET: MODALITY
maxPDULen: 16352
asyncOpsWindow:
pc-1: 0 - acceptance
ts=1.2.840.10008.1.2/Implicit VR Little Endian
2014-06-05 15:03:28,496 INFO  MODALITY->dcmWORK (TCPServer-1) [org.dcm4cheri.net.FsmImpl] received [pc-1] 64:C_ECHO_RQ
class: 1.2.840.10008.1.1/Verification SOP Class
2014-06-05 15:03:28,497 INFO  MODALITY->dcmWORK (TCPServer-1) [org.dcm4cheri.net.FsmImpl] sending [pc-1] 64:C_ECHO_RSP
class: 1.2.840.10008.1.1/Verification SOP Class
status: 0
2014-06-05 15:03:28,511 INFO  MODALITY->dcmWORK (TCPServer-1) [org.dcm4cheri.net.FsmImpl] received A-RELEASE-RQ
2014-06-05 15:03:28,512 INFO  MODALITY->dcmWORK (TCPServer-1) [org.dcm4cheri.net.FsmImpl] sending A-RELEASE-RP
2014-06-05 15:03:28,562 INFO  MODALITY->dcmWORK (TCPServer-1) [org.dcm4cheri.net.FsmImpl] closing connection - Socket[addr=/192.168.1.106,port=55751,localport=31118]


This is in server.log, and do i need the mwl-cfindrsp.xsl for the logs? Thank you very much..


On Thursday, June 5, 2014 12:23:01 PM UTC+8, Rajesh Kanattu wrote:
Yo have a problem in the MWLFindSCP under LogAETitles...

It should be the AE of the modality you want to log... see the pic.

Reply all
Reply to author
Forward
0 new messages