<div dir="ltr">Thanks, Steve. I will pick up the discussion with the CTK folks. <div>I really like the modularization/OSGI features of CTK, but I see a lot of room for improvement on the UX side.</div><div>By day, I work on an in-house Clear Canvas based RIS/PACS system for a large hospital network, and I see all the </div>
<div>time how little UI improvements make big differences for the users.</div><div><br></div><div>Cheers,<br>Aaron</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Feb 16, 2014 at 10:51 AM, Steve Pieper <span dir="ltr"><<a href="mailto:pieper@isomics.com" target="_blank">pieper@isomics.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Aaron - <div><br></div><div>I suggest we move this discussion over to the ctk-developers mailing list (you might want to sign up [1] if you haven't already) since as you saw that level of the code is housed in CTK and there's active work going on among that group.  I've cc'd ctk-developers here to get the ball rolling.</div>

<div><br></div><div>Regarding the shared/static libraries issue with DCMTK it would be great to file that as an issue on the ctk issue tracker [2].  Probably the configuration of the ctkDICOM2 executable isn't getting the right flags.</div>

<div><br></div><div>As for the user interface options you are right - there's a lot that can be done to simplify/streamline the interface.  There's been quite some research and discussion on that [3] and your contributions would be most welcome.  Alireza at BWH and Andreas at DKFZ have been taking the lead on this and we're aiming for an architecture that allows the flexibility to support various use cases as seen in Slicer and MITK.</div>

<div><br></div><div>By the way, as a reminder to people with an interest in this topic, please sign up on the wiki page if you plan to attend the May CTK hackfest [4] either in person or electronically.</div><div><br></div>

<div>Best,</div><div>Steve</div><div><br></div><div>[1] <a href="http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers</a></div>
<div><br></div>
<div>[2] <a href="https://github.com/commontk/CTK/issues" target="_blank">https://github.com/commontk/CTK/issues</a><br></div><div><br></div><div>[3] <a href="http://www.na-mic.org/Wiki/index.php/2014_Project_Week:Slicer_DICOM_Module_Interface_Redesign" target="_blank">http://www.na-mic.org/Wiki/index.php/2014_Project_Week:Slicer_DICOM_Module_Interface_Redesign</a><br>

</div><div><br></div><div>[4] <a href="http://www.commontk.org/index.php/CTK-Hackfest-May-2014" target="_blank">http://www.commontk.org/index.php/CTK-Hackfest-May-2014</a></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra">
<br><br><div class="gmail_quote">
On Thu, Feb 13, 2014 at 9:56 PM, Aaron Boxer <span dir="ltr"><<a href="mailto:boxerab@gmail.com" target="_blank">boxerab@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">Thanks, Steve. I did manage to build CTK under VS 2010.<div><br></div><div>It seems that the Cmake script caused DCMTK to build as static libaries, but when I tried to run ctkDICOM2, it was looking</div><div>


for ofstd.dll, for example. So, these dlls were not in the CTK build. Once I put the Slicer DCMTK binary</div><div>folder on the path, ctkDICOM2 ran ok. But the CMake script may need to be fixed.</div><div><br></div><div>


My ideas on changing the interface run along the lines of the ClearCanvas workstation:</div><div><br></div><div>See the first screenshot on the left here </div><div><br></div><div><a href="http://sourceforge.net/projects/clearcanvas/" target="_blank">http://sourceforge.net/projects/clearcanvas/</a>  </div>


<div><br></div><div>for more details.<br></div><div><br></div><div>Having all search controls and search results on one page makes the search experience quite pleasant.</div><div>Also, since a PACS workflow is study based, you only need to have a single table of studies, rather than</div>


<div>the three in the current implementation: patient, study, series.  The user can always search by patient id or name</div><div>if they want.</div><div><br></div><div>Once I get familiar with the code, I will see if I can come up with a prototype for this.</div>


<div><br></div><div>Cheers,</div><div>Aaron</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Thu, Feb 13, 2014 at 7:44 PM, Steve Pieper <span dir="ltr"><<a href="mailto:pieper@isomics.com" target="_blank">pieper@isomics.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Aaron - <div><br></div><div>Thanks for your offer of help - much appreciated!</div><div><br></div><div>


In terms of development, you can build the CTK code stand-alone and use the ctkDICOM2 application as a stand alone to do query/retrieve and play with the database display.  This is pretty quick since the testing app is small.</div>



<div><br></div><div>On the slicer side, everything is just python code that uses the widgets from the ctk code.  Since slicer takes a while to start up, I typically use a little helper code to rebuild a copy of the DICOM module for testing.  Slicer allows you to have a .slicerrc.py in your home directory that loads a script with customizations.  I have a .slicerrc.py file in github [1] that includes a reloader for the DICOM module [2].  So if you edit the python code and hit a keybinding [3] you get a new copy of the interface without exiting and re-starting slicer.  This makes it pretty efficient to tweak & test the python code  quickly. </div>



<div><br></div><div>-Steve</div><div><br></div><div>[1] <a href="https://github.com/pieper/SlicerRC" target="_blank">https://github.com/pieper/SlicerRC</a><br></div><div><br></div><div>[2] <a href="https://github.com/pieper/SlicerRC/blob/master/slicerrc.py#L186-L212" target="_blank">https://github.com/pieper/SlicerRC/blob/master/slicerrc.py#L186-L212</a><br>



</div><div><br></div><div>[3] <a href="https://github.com/pieper/SlicerRC/blob/master/slicerrc.py#L250" target="_blank">https://github.com/pieper/SlicerRC/blob/master/slicerrc.py#L250</a><br></div></div><div>
<div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Thu, Feb 13, 2014 at 10:57 AM, Aaron Boxer <span dir="ltr"><<a href="mailto:boxerab@gmail.com" target="_blank">boxerab@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div dir="ltr">Thanks, Steve. I'm happy to fix bugs.<div><br></div><div>What is your dev environment like?  Can you build the DICOM widget standalone, or do you need to run it from the Slicer project?</div><div><br></div>




<div><br></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 13, 2014 at 8:27 AM, Steve Pieper <span dir="ltr"><<a href="mailto:pieper@isomics.com" target="_blank">pieper@isomics.com</a>></span> wrote:<br>




<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi Aaron - </div><div><br></div><div>The code is split between the core functionality in ctk [1] and the slicer module's use of that code [2].  You could review and contribute to the issues [3].</div>





<div><br></div><div>HTH,</div><div>Steve</div><br><br>[1] <a href="https://github.com/commontk/CTK/tree/master/Libs/DICOM" target="_blank">https://github.com/commontk/CTK/tree/master/Libs/DICOM</a> <br><br>[2] <a href="https://github.com/Slicer/Slicer/tree/master/Modules/Scripted/DICOM" target="_blank">https://github.com/Slicer/Slicer/tree/master/Modules/Scripted/DICOM</a><br>





<br>[3] <a href="http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90" target="_blank">http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90</a></div>





<div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Wed, Feb 12, 2014 at 9:44 PM, Aaron Boxer <span dir="ltr"><<a href="mailto:boxerab@gmail.com" target="_blank">boxerab@gmail.com</a>></span> wrote:<br>




</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>
<div dir="ltr">I have some ideas about improving the user expericne for the DICOM widget. What tools would I need to build and modify this ?<div><br></div><div>Thanks very much,</div><div>Aaron</div></div>
<br></div></div>_______________________________________________<br>
slicer-devel mailing list<br>
<a href="mailto:slicer-devel@bwh.harvard.edu" target="_blank">slicer-devel@bwh.harvard.edu</a><br>
<a href="http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel" target="_blank">http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel</a><br>
To unsubscribe: send email to <a href="mailto:slicer-devel-request@massmail.spl.harvard.edu" target="_blank">slicer-devel-request@massmail.spl.harvard.edu</a> with unsubscribe as the subject<br>
<a href="http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ" target="_blank">http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ</a><br>
<br>
<br>
The information in this e-mail is intended only for the person to whom it is<br>
addressed. If you believe this e-mail was sent to you in error and the e-mail<br>
contains patient information, please contact the Partners Compliance HelpLine at<br>
<a href="http://www.partners.org/complianceline" target="_blank">http://www.partners.org/complianceline</a> . If the e-mail was sent to you in error<br>
but does not contain patient information, please contact the sender and properly<br>
dispose of the e-mail.<br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>