Skip to search.

Breaking News Visit Yahoo! News for the latest.

×Close this window

pixelmed_dicom · PixelMed Dicom Toolkit

The Yahoo! Groups Product Blog

Check it out!

Group Information

  • Members: 315
  • Category: Open Source
  • Founded: Oct 15, 2005
  • Language: English
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Messages

Advanced
Messages Help
Messages 135 - 164 of 1134   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#135 From: David Clunie <dclunie@...>
Date: Thu May 18, 2006 11:40 am
Subject: Re: need help with MoveSOPClassSCU
dclunie99
Send Email Send Email
 
de_layer wrote:

> But with the MoveSOPClassSCU class I had no success.
> I run it directly in the Eclipse IDE with the necessary arguments list:
> hostname, port, called  AE Title, calling AE Title, destination AE,
> the move level (i.e STUDY), Study Instance UID
> this is my argument list:
> "192.168.1.110" 5678 "PACSONMAC" "pixelmed"  "CONQUESTSRV1" "STUDY"
> 20060428
   ^^^^^^^^

This does not look like a valid Study Instance UID; perhaps that is
the problem.

David

#136 From: Konrad Wojciechowski <konrad.wojciechowski@...>
Date: Thu May 18, 2006 2:14 pm
Subject: Transfer control using MoveSOPClassSCU
konrad.wojci...
Send Email Send Email
 
Good evening,
I'm working on developing an apllication, which connects to scanner, retrieves list of examinations (using FindSOPClassSCU) and after user's choice moving them (using MoveSOPClassSCU) to listener application (listener is based on StorageSOPClassSCP). One of the assumptions for this application is to have a module for file transfer controll - user of this application should be sure, that all of selected data were saved in database (saving job is provided by listener module). As far as I know pixelmed Move- and Storage- classes are giving possibility to have transfer controlling by using debugLevel variable. But for me it is not enought, because classes should return only status of the previous sended command or sth, what I can easily use to build progress bar. So I have an idea to change existing Move- or Storage- class for my purposes. But maybe there is another, simpler way to do that? I read documentation for com.pixelmed.transfermonitor classes, but I don't understand, how can I use that. Any ideas ?
Best regards
Konrad


Czy już jesteś w Yahoo!?
Masz dosyć spamu? Poczta Yahoo! dysponuje najlepszą ochroną przed spamem
http://pl.mail.yahoo.com

#137 From: "de_layer" <de_layer@...>
Date: Thu May 18, 2006 6:45 pm
Subject: Re: need help with MoveSOPClassSCU
de_layer
Send Email Send Email
 
Thanks, David

That was it. As I said, I'm a greenhorn regarding dicom and
confounding StudyID with Study Instance UID shows how green and long
my "horns" are. Shame on me.

Thanks again for your hint.

Bye.


--- In pixelmed_dicom@yahoogroups.com, David Clunie <dclunie@...> wrote:
>
> de_layer wrote:
>
> > But with the MoveSOPClassSCU class I had no success.
> > I run it directly in the Eclipse IDE with the necessary arguments
list:
> > hostname, port, called  AE Title, calling AE Title, destination AE,
> > the move level (i.e STUDY), Study Instance UID
> > this is my argument list:
> > "192.168.1.110" 5678 "PACSONMAC" "pixelmed"  "CONQUESTSRV1" "STUDY"
> > 20060428
>   ^^^^^^^^
>
> This does not look like a valid Study Instance UID; perhaps that is
> the problem.
>
> David
>

#138 From: "daniel.guettler" <daniel.guettler@...>
Date: Mon May 22, 2006 6:55 pm
Subject: Zoom & Pan DICOM Images
daniel.guettler
Send Email Send Email
 
Hi!

I'm new to this Toolkit and could need some help getting started.
I'm trying to implement a DICOM Java Applet which allows the following
image manipulation:
- W/L
- Zoom
- Pan
- loupe
W/L is already supported by the SingleImagePanel class, now I'm trying
to extend the class in order to be able to do Zoom, Pan and Loupe. But
I'm a little bit stuck here because I don't realy know how. There seem
to be all kind of Listeners but I could not figure out how to
implement this correctly.

Any help would be great.
Thanks!

#139 From: Konrad Wojciechowski <konrad.wojciechowski@...>
Date: Tue May 30, 2006 9:58 am
Subject: Problem with NumberOfRemainingSuboperations
konrad.wojci...
Send Email Send Email
 
Good Morning,
I'm working still on transfering data files to database using PixelMed Dicom Toolkit and I have problem with NumberOfRemainingSubopertation Attribute - I don't know completely, how it works. I'm using MoveSOPClassSCU and I would like to know how many images are to be send. I supposed, that this information is included into NumberOfRemaingSuboperations Attribute, but it doesn't work - every time sum of this attribute and NumberOfCompletedSuboperations attribute is giving me 1. I'm enclosing dicom response:

(0x0000,0x0000) GroupLength VR=<UL> VL=<0x4> [0x74]
(0x0000,0x0002) AffectedSOPClassUID VR=<UI> VL=<0x1c> <1.2.840.10008.5.1.4.1.2.2.2>
(0x0000,0x0100) CommandField VR=<US> VL=<0x2> [0x8021]
(0x0000,0x0120) MessageIDBeingRespondedTo VR=<US> VL=<0x2> [0x1]
(0x0000,0x0800) DataSetType VR=<US> VL=<0x2> [0x101]
(0x0000,0x0900) Status VR=<US> VL=<0x2> [0xff00]
(0x0000,0x1020) NumberOfRemainingSuboperations VR=<US> VL=<0x2> [0xffff]
(0x0000,0x1021) NumberOfCompletedSuboperations VR=<US> VL=<0x2> [0x2]
(0x0000,0x1022) NumberOfFailedSuboperations VR=<US> VL=<0x2> [0x0]
(0x0000,0x1023) NumberOfWarningSuboperations VR=<US> VL=<0x2> [0x0]

(0x0000,0x0000) GroupLength VR=<UL> VL=<0x4> [0x74]
(0x0000,0x0002) AffectedSOPClassUID VR=<UI> VL=<0x1c> <1.2.840.10008.5.1.4.1.2.2.2>
(0x0000,0x0100) CommandField VR=<US> VL=<0x2> [0x8021]
(0x0000,0x0120) MessageIDBeingRespondedTo VR=<US> VL=<0x2> [0x1]
(0x0000,0x0800) DataSetType VR=<US> VL=<0x2> [0x101]
(0x0000,0x0900) Status VR=<US> VL=<0x2> [0xff00]
(0x0000,0x1020) NumberOfRemainingSuboperations VR=<US> VL=<0x2> [0xfffe]
(0x0000,0x1021) NumberOfCompletedSuboperations VR=<US> VL=<0x2> [0x3]
(0x0000,0x1022) NumberOfFailedSuboperations VR=<US> VL=<0x2> [0x0]
(0x0000,0x1023) NumberOfWarningSuboperations VR=<US> VL=<0x2> [0x0]

(0x0000,0x0000) GroupLength VR=<UL> VL=<0x4> [0x74]
(0x0000,0x0002) AffectedSOPClassUID VR=<UI> VL=<0x1c> <1.2.840.10008.5.1.4.1.2.2.2>
(0x0000,0x0100) CommandField VR=<US> VL=<0x2> [0x8021]
(0x0000,0x0120) MessageIDBeingRespondedTo VR=<US> VL=<0x2> [0x1]
(0x0000,0x0800) DataSetType VR=<US> VL=<0x2> [0x101]
(0x0000,0x0900) Status VR=<US> VL=<0x2> [0xff00]
(0x0000,0x1020) NumberOfRemainingSuboperations VR=<US> VL=<0x2> [0xfffd]
(0x0000,0x1021) NumberOfCompletedSuboperations VR=<US> VL=<0x2> [0x4]
(0x0000,0x1022) NumberOfFailedSuboperations VR=<US> VL=<0x2> [0x0]
(0x0000,0x1023) NumberOfWarningSuboperations VR=<US> VL=<0x2> [0x0]

Maybe I'm doing sth wrong, but I don't have any ideas, how to solve this problem.
 I'll be grateful for your help.
Best regards
Konrad Wojciechowski


Czy już jesteś w Yahoo!?
Masz dosyć spamu? Poczta Yahoo! dysponuje najlepszą ochroną przed spamem
http://pl.mail.yahoo.com

#140 From: David Clunie <dclunie@...>
Date: Tue May 30, 2006 2:20 pm
Subject: Re: Problem with NumberOfRemainingSuboperations
dclunie99
Send Email Send Email
 
Hi Konrad

The NumberOf...Suboperations attributes are returned in the
responses by the SCP, so this is not under the control of
MoveSOPClassSCU.

Are you retrieving the images from some pixelmed server
(e.g. StorageSOPClassSCPDispatcher), in which case the
problem is with my code, or from some other software (like
a PACS or archive), in which case they are probably at
fault.

David

Konrad Wojciechowski wrote:
> Good Morning,
> I'm working still on transfering data files to database using PixelMed
> Dicom Toolkit and I have problem with NumberOfRemainingSubopertation
> Attribute - I don't know completely, how it works. I'm using
> MoveSOPClassSCU and I would like to know how many images are to be send.
> I supposed, that this information is included into
> NumberOfRemaingSuboperations Attribute, but it doesn't work - every time
> sum of this attribute and NumberOfCompletedSuboperations attribute is
> giving me 1. I'm enclosing dicom response:
>
> (0x0000,0x0000) GroupLength VR=<UL> VL=<0x4> [0x74]
> (0x0000,0x0002) AffectedSOPClassUID VR=<UI> VL=<0x1c>
> <1.2.840.10008.5.1.4.1.2.2.2>
> (0x0000,0x0100) CommandField VR=<US> VL=<0x2> [0x8021]
> (0x0000,0x0120) MessageIDBeingRespondedTo VR=<US> VL=<0x2> [0x1]
> (0x0000,0x0800) DataSetType VR=<US> VL=<0x2> [0x101]
> (0x0000,0x0900) Status VR=<US> VL=<0x2> [0xff00]
> (0x0000,0x1020) NumberOfRemainingSuboperations VR=<US> VL=<0x2> [0xffff]
> (0x0000,0x1021) NumberOfCompletedSuboperations VR=<US> VL=<0x2> [0x2]
> (0x0000,0x1022) NumberOfFailedSuboperations VR=<US> VL=<0x2> [0x0]
> (0x0000,0x1023) NumberOfWarningSuboperations VR=<US> VL=<0x2> [0x0]
>
> (0x0000,0x0000) GroupLength VR=<UL> VL=<0x4> [0x74]
> (0x0000,0x0002) AffectedSOPClassUID VR=<UI> VL=<0x1c>
> <1.2.840.10008.5.1.4.1.2.2.2>
> (0x0000,0x0100) CommandField VR=<US> VL=<0x2> [0x8021]
> (0x0000,0x0120) MessageIDBeingRespondedTo VR=<US> VL=<0x2> [0x1]
> (0x0000,0x0800) DataSetType VR=<US> VL=<0x2> [0x101]
> (0x0000,0x0900) Status VR=<US> VL=<0x2> [0xff00]
> (0x0000,0x1020) NumberOfRemainingSuboperations VR=<US> VL=<0x2> [0xfffe]
> (0x0000,0x1021) NumberOfCompletedSuboperations VR=<US> VL=<0x2> [0x3]
> (0x0000,0x1022) NumberOfFailedSuboperations VR=<US> VL=<0x2> [0x0]
> (0x0000,0x1023) NumberOfWarningSuboperations VR=<US> VL=<0x2> [0x0]
>
> (0x0000,0x0000) GroupLength VR=<UL> VL=<0x4> [0x74]
> (0x0000,0x0002) AffectedSOPClassUID VR=<UI> VL=<0x1c>
> <1.2.840.10008.5.1.4.1.2.2.2>
> (0x0000,0x0100) CommandField VR=<US> VL=<0x2> [0x8021]
> (0x0000,0x0120) MessageIDBeingRespondedTo VR=<US> VL=<0x2> [0x1]
> (0x0000,0x0800) DataSetType VR=<US> VL=<0x2> [0x101]
> (0x0000,0x0900) Status VR=<US> VL=<0x2> [0xff00]
> (0x0000,0x1020) NumberOfRemainingSuboperations VR=<US> VL=<0x2> [0xfffd]
> (0x0000,0x1021) NumberOfCompletedSuboperations VR=<US> VL=<0x2> [0x4]
> (0x0000,0x1022) NumberOfFailedSuboperations VR=<US> VL=<0x2> [0x0]
> (0x0000,0x1023) NumberOfWarningSuboperations VR=<US> VL=<0x2> [0x0]
> *//*
> Maybe I'm doing sth wrong, but I don't have any ideas, how to solve this
> problem.
>  I'll be grateful for your help.
> Best regards
> Konrad Wojciechowski

#141 From: David Clunie <dclunie@...>
Date: Tue May 30, 2006 3:03 pm
Subject: Re: Zoom & Pan DICOM Images
dclunie99
Send Email Send Email
 
Hi Daniel

This is not currently implemented ... it would be relatively
easy to make specification of the "display area selection"
that is currently supplied in the initial setup into something
interactive, but this would also require not only detecting
and propagating the events but also flagging the cached presized
and prewindowed images as dirty in the repaint methods.

The reason it is not implemented yet is because I plan to
completely re-write the rendering pipeline to use either or
a combination of JAI, Java3D and/or JOGL, in order to maximize
the performance by taking advantage of native acceleration
when available and/or the hardware OpenGL implementation in
the graphics card. But I also need to allow for headless
server implementations, which makes this a little non-trivial.

However, I have been meaning to do this for a while and not
gotten around to it, which is why the SingleImagePanel has
only just enough functionality to meet my immediate needs
and no more (yet).

However, you should be able to sub-class SingleImagePanel
and do better, without too much trouble, hopefully.

In extending the toolkit, there are competing priorities
of making it a better DICOM toolkit as opposed to adding
"workstation" or "display" component functionality, which
was not within the original scope of the project.

I would recommend looking at Rodrigues' book for sample
code that you might be able to use.

David

daniel.guettler wrote:
> Hi!
>
> I'm new to this Toolkit and could need some help getting started.
> I'm trying to implement a DICOM Java Applet which allows the following
> image manipulation:
> - W/L
> - Zoom
> - Pan
> - loupe
> W/L is already supported by the SingleImagePanel class, now I'm trying
> to extend the class in order to be able to do Zoom, Pan and Loupe. But
> I'm a little bit stuck here because I don't realy know how. There seem
> to be all kind of Listeners but I could not figure out how to
> implement this correctly.
>
> Any help would be great.
> Thanks!

#142 From: "Daniel Guettler" <daniel.guettler@...>
Date: Tue May 30, 2006 3:42 pm
Subject: Re: Zoom & Pan DICOM Images
daniel.guettler
Send Email Send Email
 
Hi David,

thank you for your answer. I'll have a look at the book and the code
examples. Is the any documentation around for the Event listeners in
pixelmed.

Thanks, Daniel

On 5/30/06, David Clunie <dclunie@...> wrote:
>
>  Hi Daniel
>
>  This is not currently implemented ... it would be relatively
>  easy to make specification of the "display area selection"
>  that is currently supplied in the initial setup into something
>  interactive, but this would also require not only detecting
>  and propagating the events but also flagging the cached presized
>  and prewindowed images as dirty in the repaint methods.
>
>  The reason it is not implemented yet is because I plan to
>  completely re-write the rendering pipeline to use either or
>  a combination of JAI, Java3D and/or JOGL, in order to maximize
>  the performance by taking advantage of native acceleration
>  when available and/or the hardware OpenGL implementation in
>  the graphics card. But I also need to allow for headless
>  server implementations, which makes this a little non-trivial.
>
>  However, I have been meaning to do this for a while and not
>  gotten around to it, which is why the SingleImagePanel has
>  only just enough functionality to meet my immediate needs
>  and no more (yet).
>
>  However, you should be able to sub-class SingleImagePanel
>  and do better, without too much trouble, hopefully.
>
>  In extending the toolkit, there are competing priorities
>  of making it a better DICOM toolkit as opposed to adding
>  "workstation" or "display" component functionality, which
>  was not within the original scope of the project.
>
>  I would recommend looking at Rodrigues' book for sample
>  code that you might be able to use.
>
>  David
>
>  daniel.guettler wrote:
>  > Hi!
>  >
>  > I'm new to this Toolkit and could need some help getting started.
>  > I'm trying to implement a DICOM Java Applet which allows the following
>  > image manipulation:
>  > - W/L
>  > - Zoom
>  > - Pan
>  > - loupe
>  > W/L is already supported by the SingleImagePanel class, now I'm trying
>  > to extend the class in order to be able to do Zoom, Pan and Loupe. But
>  > I'm a little bit stuck here because I don't realy know how. There seem
>  > to be all kind of Listeners but I could not figure out how to
>  > implement this correctly.
>  >
>  > Any help would be great.
>  > Thanks!
>
>
>
>  SPONSORED LINKS
>  Open source software Open source
>
>  ________________________________
>  YAHOO! GROUPS LINKS
>
>
>  Visit your group "pixelmed_dicom" on the web.
>
>  To unsubscribe from this group, send an email to:
>  pixelmed_dicom-unsubscribe@yahoogroups.com
>
>  Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
>
>  ________________________________
>

#143 From: Konrad Wojciechowski <konrad.wojciechowski@...>
Date: Tue May 30, 2006 4:03 pm
Subject: Odp: Re: Problem with NumberOfRemainingSuboperations
konrad.wojci...
Send Email Send Email
 
Hi David,

Thank you for quick response. I'm working in a hospital, where I'm preparing an application which is giving you possibility to move images from diferent modalties to external database. First I'm using FindSOPClassesSCU to retreive list of examinations and after, based on user's selection - MoveSOPClassSCU - to connect to MR scanner (it's GE Signa 1.5T) where I have stored informations about external listener application (ip, port, aetitle), base for which is modyfied version of StorageSOPClassSCPDispatcher (its quite old - 4th quarter of 2004; instead of saving data on a harddrive it redirects them to an Oracle database). I haven't checked this classes yet... I didn't suppose that it can be source of error. So I will check them - thanks a lot for respose !!
Best regards
Konrad 

David Clunie <dclunie@...> napisal(a):
Hi Konrad

The NumberOf...Suboperations attributes are returned in the
responses by the SCP, so this is not under the control of
MoveSOPClassSCU.

Are you retrieving the images from some pixelmed server
(e.g. StorageSOPClassSCPDispatcher), in which case the
problem is with my code, or from some other software (like
a PACS or archive), in which case they are probably at
fault.

David

Konrad Wojciechowski wrote:
> Good Morning,
> I'm working still on transfering data files to database using PixelMed
> Dicom Toolkit and I have problem with NumberOfRemainingSubopertation
> Attribute - I don't know completely, how it works. I'm using
> MoveSOPClassSCU and I would like to know how many images are to be send.
> I supposed, that this information is included into
> NumberOfRemaingSuboperations Attribute, but it doesn't work - every time
> sum of this attribute and NumberOfCompletedSuboperations attribute is
> giving me 1. I'm enclosing dicom response:
>
> (0x0000,0x0000) GroupLength VR=
    VL=<0x4> [0x74]
    > (0x0000,0x0002) AffectedSOPClassUID VR= VL=<0x1c>
    > <1.2.840.10008.5.1.4.1.2.2.2>
    > (0x0000,0x0100) CommandField VR= VL=<0x2> [0x8021]
    > (0x0000,0x0120) MessageIDBeingRespondedTo VR= VL=<0x2> [0x1]
    > (0x0000,0x0800) DataSetType VR= VL=<0x2> [0x101]
    > (0x0000,0x0900) Status VR= VL=<0x2> [0xff00]
    > (0x0000,0x1020) NumberOfRemainingSuboperations VR= VL=<0x2> [0xffff]
    > (0x0000,0x1021) NumberOfCompletedSuboperations VR= VL=<0x2> [0x2]
    > (0x0000,0x1022) NumberOfFailedSuboperations VR= VL=<0x2> [0x0]
    > (0x0000,0x1023) NumberOfWarningSuboperations VR= VL=<0x2> [0x0]
    >
    > (0x0000,0x0000) GroupLength VR=
      VL=<0x4> [0x74]
      > (0x0000,0x0002) AffectedSOPClassUID VR= VL=<0x1c>
      > <1.2.840.10008.5.1.4.1.2.2.2>
      > (0x0000,0x0100) CommandField VR= VL=<0x2> [0x8021]
      > (0x0000,0x0120) MessageIDBeingRespondedTo VR= VL=<0x2> [0x1]
      > (0x0000,0x0800) DataSetType VR= VL=<0x2> [0x101]
      > (0x0000,0x0900) Status VR= VL=<0x2> [0xff00]
      > (0x0000,0x1020) NumberOfRemainingSuboperations VR= VL=<0x2> [0xfffe]
      > (0x0000,0x1021) NumberOfCompletedSuboperations VR= VL=<0x2> [0x3]
      > (0x0000,0x1022) NumberOfFailedSuboperations VR= VL=<0x2> [0x0]
      > (0x0000,0x1023) NumberOfWarningSuboperations VR= VL=<0x2> [0x0]
      >
      > (0x0000,0x0000) GroupLength VR=
        VL=<0x4> [0x74]
        > (0x0000,0x0002) AffectedSOPClassUID VR= VL=<0x1c>
        > <1.2.840.10008.5.1.4.1.2.2.2>
        > (0x0000,0x0100) CommandField VR= VL=<0x2> [0x8021]
        > (0x0000,0x0120) MessageIDBeingRespondedTo VR= VL=<0x2> [0x1]
        > (0x0000,0x0800) DataSetType VR= VL=<0x2> [0x101]
        > (0x0000,0x0900) Status VR= VL=<0x2> [0xff00]
        > (0x0000,0x1020) NumberOfRemainingSuboperations VR= VL=<0x2> [0xfffd]
        > (0x0000,0x1021) NumberOfCompletedSuboperations VR= VL=<0x2> [0x4]
        > (0x0000,0x1022) NumberOfFailedSuboperations VR= VL=<0x2> [0x0]
        > (0x0000,0x1023) NumberOfWarningSuboperations VR= VL=<0x2> [0x0]
        > *//*
        > Maybe I'm doing sth wrong, but I don't have any ideas, how to solve this
        > problem.
        > I'll be grateful for your help.
        > Best regards
        > Konrad Wojciechowski


        ------------------------ Yahoo! Groups Sponsor --------------------~-->
        Everything you need is one?click away.? Make Yahoo! your home page?now.
        http://us.click.yahoo.com/AHchtC/4FxNAA/yQLSAA/W4wwlB/TM
        --------------------------------------------------------------------~->


        Yahoo! Groups Links

        <*> To visit your group on the web, go to:
        http://groups.yahoo.com/group/pixelmed_dicom/

        <*> To unsubscribe from this group, send an email to:
        pixelmed_dicom-unsubscribe@yahoogroups.com

        <*> Your use of Yahoo! Groups is subject to:
        http://docs.yahoo.com/info/terms/





Czy już jesteś w Yahoo!?
Masz dosyć spamu? Poczta Yahoo! dysponuje najlepszą ochroną przed spamem
http://pl.mail.yahoo.com

#144 From: David Clunie <dclunie@...>
Date: Tue May 30, 2006 4:13 pm
Subject: Event listeners, was Re: Zoom & Pan DICOM Images
dclunie99
Send Email Send Email
 
Hi Daniel

Daniel Guettler wrote:

> thank you for your answer. I'll have a look at the book and the code
> examples. Is the any documentation around for the Event listeners in
> pixelmed.

Not other than the javadoc and the source.

Essentially, in SingleImagePanel, you need to look at
where the implementations of KeyListener, MouseListener,
MouseMotionListener are used to delegate the users
actions to calls to pixelmed-specific events.

E.g. in SingleImagePanel.mouseDragged() you will see
something like:

ApplicationEventDispatcher
   .getApplicationEventDispatcher()
   .processEvent(
   new WindowCenterAndWidthChangeEvent(
     typeOfPanelEventContext,newWindowCenter,newWindowWidth));

You can see how you could create a new class that was say
DisplayedAreaSelectionChangeEvent() that was a subclass of
com.pixelmed.event.Event that took as an argument a new
DisplayedAreaSelection instance that will be used to replace
the current selection that is currently set by
SingleImagePanel.setDisplayedAreaSelection().

The actual setDisplayedAreaSelection(), flushing the cache and
repainting takes place in the listener for your new class of
events.

You need to register SingleImagePanel as a listener in
doCommonConstructorStuff() or similar, by creating an
instance of a new subclass OurDisplayedAreaSelectionChangeListener
or similar (see the existing examples in SingleImagePanel).
The listeners change() method will be fired when the
event context and the event type match, and that is where
you do the work, based on the parameters supplied in the
event.

It would probably have been easier to do this than describe
it, but I don't have time right now to do justice to
designing the user interface, implementing and testing
this, without breaking other stuff. I will try and prioritize
it.

SingleImagePanel really needs refactoring badly, as there are
a lot of inappropriate things stuffed in there. For a start,
I should separate the event remapping from the image rendering
and the graphic annotation stuff.

David

#145 From: "Daniel Guettler" <daniel.guettler@...>
Date: Tue May 30, 2006 5:12 pm
Subject: Re: Event listeners, was Re: Zoom & Pan DICOM Images
daniel.guettler
Send Email Send Email
 
Hi David,

thanks a lot. This gives me an overview how to setup all the Event Listener stuff. I think I got an idea on how to implement this.

Thanks again, Daniel

On 5/30/06, David Clunie <dclunie@...> wrote:
Hi Daniel

Daniel Guettler wrote:

> thank you for your answer. I'll have a look at the book and the code
> examples. Is the any documentation around for the Event listeners in
> pixelmed.

Not other than the javadoc and the source.

Essentially, in SingleImagePanel, you need to look at
where the implementations of KeyListener, MouseListener,
MouseMotionListener are used to delegate the users
actions to calls to pixelmed-specific events.

E.g. in SingleImagePanel.mouseDragged() you will see
something like:

ApplicationEventDispatcher
  .getApplicationEventDispatcher()
  .processEvent(
  new WindowCenterAndWidthChangeEvent(
    typeOfPanelEventContext,newWindowCenter,newWindowWidth));

You can see how you could create a new class that was say
DisplayedAreaSelectionChangeEvent() that was a subclass of
com.pixelmed.event.Event that took as an argument a new
DisplayedAreaSelection instance that will be used to replace
the current selection that is currently set by
SingleImagePanel.setDisplayedAreaSelection().

The actual setDisplayedAreaSelection(), flushing the cache and
repainting takes place in the listener for your new class of
events.

You need to register SingleImagePanel as a listener in
doCommonConstructorStuff() or similar, by creating an
instance of a new subclass OurDisplayedAreaSelectionChangeListener
or similar (see the existing examples in SingleImagePanel).
The listeners change() method will be fired when the
event context and the event type match, and that is where
you do the work, based on the parameters supplied in the
event.

It would probably have been easier to do this than describe
it, but I don't have time right now to do justice to
designing the user interface, implementing and testing
this, without breaking other stuff. I will try and prioritize
it.

SingleImagePanel really needs refactoring badly, as there are
a lot of inappropriate things stuffed in there. For a start,
I should separate the event remapping from the image rendering
and the graphic annotation stuff.

David


SPONSORED LINKS
Open source software Open source


YAHOO! GROUPS LINKS





#146 From: "imscinst" <imscinst@...>
Date: Thu Jun 1, 2006 8:15 am
Subject: DICOM => XML => DICOM via Pixelmed?
imscinst
Send Email Send Email
 
Good Morning group,

has anyone ever written an XML parser which makes an AttributeList out
of an XML-Document created with XMLRepresentationOfDicomObjectFactory?
If yes, is there a Java-Source available online?

Regards,
Oliver

#147 From: David Clunie <dclunie@...>
Date: Fri Jun 2, 2006 12:43 am
Subject: Re: DICOM => XML => DICOM via Pixelmed?
dclunie99
Send Email Send Email
 
Hi Oliver

Your timing is fortuitous ... I just added such a feature
as part of some experiments I was doing with structured
reports.

See the javadoc for XMLRepresentationOfDicomObjectFactory
for details, in the 20060601_experimental release.

David

imscinst wrote:
> Good Morning group,
>
> has anyone ever written an XML parser which makes an AttributeList out
> of an XML-Document created with XMLRepresentationOfDicomObjectFactory?
> If yes, is there a Java-Source available online?
>
> Regards,
> Oliver

#148 From: "rashedulhasan2000" <rashedulhasan2000@...>
Date: Tue Jun 6, 2006 6:29 am
Subject: procedure to run pixelmed jar
rashedulhasa...
Send Email Send Email
 
i want to run the pixelmed jar file. please let me know how'll i be
able to run...what other stuffs are required and which one is the main
class in the jar.

thanks

rashed

#149 From: "imscinst" <imscinst@...>
Date: Wed Jun 7, 2006 9:47 am
Subject: Re: DICOM => XML => DICOM via Pixelmed?
imscinst
Send Email Send Email
 
Wow, that was really good timing.
Thank you, David, that's a good basis for my work  :-)

Oliver


--- In pixelmed_dicom@yahoogroups.com, David Clunie <dclunie@...> wrote:
>
> Hi Oliver
>
> Your timing is fortuitous ... I just added such a feature
> as part of some experiments I was doing with structured
> reports.
>
> See the javadoc for XMLRepresentationOfDicomObjectFactory
> for details, in the 20060601_experimental release.
>
> David

#150 From: "rashedulhasan2000" <rashedulhasan2000@...>
Date: Thu Jun 8, 2006 6:30 am
Subject: Start using pixelmed.jar
rashedulhasa...
Send Email Send Email
 
I'd like to start using pixelmed.jar. As I'm new, I need help to use
it. Can anyone help me?

Thanks

Rashed

#151 From: David Clunie <dclunie@...>
Date: Thu Jun 8, 2006 9:11 am
Subject: Re: Start using pixelmed.jar
dclunie99
Send Email Send Email
 
rashedulhasan2000 wrote:

> I'd like to start using pixelmed.jar. As I'm new, I need help to use
> it. Can anyone help me?

What do you want to use it to do ?

David

#152 From: "etienne_mercier79" <etienne_mercier79@...>
Date: Thu Jun 8, 2006 9:40 am
Subject: C-FIND response status
etienne_merc...
Send Email Send Email
 
Hi,

I would like to use pixelmed to develop a DICOM Storage/QR interface
on an other database.

I've a problem, StorageSOPClassSCP.class and
QueryResponseGenerator.class don't seems to be able to create a failed
response in the case of a database error.

Do you plan to add a status as in RetrieveResponseGenerator.class
soon?

I tried to create a "new" StorageSOPClassSCP.class but there are a lot
of things that are private. Is there a way to rewrite the
sendPDataIndication function?

#153 From: "etienne_mercier79" <etienne_mercier79@...>
Date: Thu Jun 8, 2006 3:24 pm
Subject: Re: C-FIND response status
etienne_merc...
Send Email Send Email
 
I'll also like to know if the Makefile.common.mk file is available
somewhere.

#154 From: David Clunie <dclunie@...>
Date: Thu Jun 8, 2006 4:01 pm
Subject: Re: Re: C-FIND response status
dclunie99
Send Email Send Email
 
Oops; forgot to include that in the source distribution when I
factored it out.

I will fix it in the next release; meanwhile it is attached here.

David

etienne_mercier79 wrote:
>
>
> I'll also like to know if the Makefile.common.mk file is available
> somewhere.
#
# Note that PATHTOROOT must have been specified prior to including this file
#

ADDITIONALJARDIRINROOT = lib/additional

PATHTOXMLPACKDIRFROMROOT = lib/xmlpack

PATHTODCTOOLSUPPORTFROMROOT = ../../dctool.support

PATHTODCTOOLSFROMROOT = ../../dicom3tools

PATHTOSCPECGSAMPLESFROMROOT = ../../../Documents/Medical/stuff/ECG/OpenECG

PATHTOADDITIONAL = ${PATHTOROOT}/${ADDITIONALJARDIRINROOT}

PATHTOXMLPACKDIR = ${PATHTOROOT}/${PATHTOXMLPACKDIRFROMROOT}

PATHTODCTOOLSUPPORT = ${PATHTOROOT}/${PATHTODCTOOLSUPPORTFROMROOT}

PATHTODCTOOLS = ${PATHTOROOT}/${PATHTODCTOOLSFROMROOT}

DICOMADDITIONALJARS =
${PATHTOADDITIONAL}/excalibur-bzip2-1.0.jar:${PATHTOADDITIONAL}/commons-codec-1.\
3.jar:${PATHTOADDITIONAL}/vecmath1.2-1.14.jar

DISPLAYADDITIONALJARS =
${DICOMADDITIONALJARS}:${PATHTOADDITIONAL}/jai_imageio.jar:${PATHTOADDITIONAL}/c\
libwrapper_jiio.jar

DATABASEADDITIONALJARS = ${PATHTOADDITIONAL}/hsqldb.jar

VIEWERADDITIONALJARS =
${DISPLAYADDITIONALJARS}:${DATABASEADDITIONALJARS}:${PATHTOADDITIONAL}/jmdns.jar

SERVERADDITIONALJARS = ${VIEWERADDITIONALJARS}

.SUFFIXES: .class .java .ico .png

.java.class:
	 javac -O -classpath ${PATHTOROOT} -sourcepath ${PATHTOROOT} $<

.png.ico:
	 # http://www.winterdrache.de/freeware/png2ico/
	 png2ico $@ $<

clean:
	 rm -f *~ *.class core *.bak test.*

#155 From: David Clunie <dclunie@...>
Date: Thu Jun 8, 2006 11:17 pm
Subject: Re: C-FIND response status
dclunie99
Send Email Send Email
 
Good point; I had forgotten to flesh out the error status
response stuff for C-FIND. Once it was working I got lazy,
I guess.

See today's experimental release, which is hopefully an
improvement and may solve your problem. See:

http://www.dclunie.com/pixelmed/software/20060608_experimental/

I don't want to expose too much of the internals of
StorageSOPClassSCP yet as protected rather than private,
because it is such a horrible mess and I do not want
folks to become dependent on subclassing it.

David

etienne_mercier79 wrote:
>
>
> Hi,
>
> I would like to use pixelmed to develop a DICOM Storage/QR interface
> on an other database.
>
> I've a problem, StorageSOPClassSCP.class and
> QueryResponseGenerator.class don't seems to be able to create a failed
> response in the case of a database error.
>
> Do you plan to add a status as in RetrieveResponseGenerator.class
> soon?
>
> I tried to create a "new" StorageSOPClassSCP.class but there are a lot
> of things that are private. Is there a way to rewrite the
> sendPDataIndication function?

#156 From: "rashedulhasan2000" <rashedulhasan2000@...>
Date: Sat Jun 10, 2006 4:31 am
Subject: Re: Start using pixelmed.jar
rashedulhasa...
Send Email Send Email
 
I'm aiming to develop a DICOM SR application. My preferred language is
Java. Searching for help on net I found various sources but I thought
your tool would be the right one to follow. Also many experts around
the world referred your name when they came to know that the
application is DICOM SR tool. Now all I need is your help.

May I wish to have proper guideline from you in developing an SR tool?

Thanks
Rashed

--- In pixelmed_dicom@yahoogroups.com, David Clunie <dclunie@...> wrote:
>
> rashedulhasan2000 wrote:
>
> > I'd like to start using pixelmed.jar. As I'm new, I need help to use
> > it. Can anyone help me?
>
> What do you want to use it to do ?
>
> David
>

#157 From: "Yogendra Rampuria" <yogendrarampuria@...>
Date: Sun Jun 11, 2006 10:33 am
Subject: Re: Start using pixelmed.jar
yogendraramp...
Send Email Send Email
 
Hi,
I would like to draw your attention away to one Java Application
DicomScope. Its based on DCMTK, C++ API for DICOM with Java Wrapper. It
has a good SR module. You can use that for reference model. Also, in
Dcm4Che the rtf2sr tool can be used as a model for developing an SR
application. I have developed a WYSIWYG type of SR editor through
dcm4che and Java's Document Model.

--yogi

#158 From: "pefe00" <pe.fe@...>
Date: Mon Jun 12, 2006 9:31 am
Subject: GetSOPClassSCU with 1.2.840.10008.1.2.4.50
pefe00
Send Email Send Email
 
Hi

Is it possible to use GetSOPClassSCU with the Transfer Syntax
1.2.840.10008.1.2.4.50?

Peter

#159 From: "pefe00" <pe.fe@...>
Date: Mon Jun 12, 2006 10:35 am
Subject: YBR_FULL_422/uncompressed
pefe00
Send Email Send Email
 
Hi

I send a dicom file with an encapsulated jpeg (Transfer Syntax =
1.2.840.10008.1.2.4.50 and Photometric Interpretation=YBRFULL422) with
StorageSOPClassSCU to a PACS and then I try to get i back with
GetSOPClassSCU (Transfer Syntax = 1.2.840.10008.1.2.1). The image has
a size of 800x600 pixels. I get back a dicom file with Photometric
Interpretation=YBRFULL422 and 960000 bytes of pixel data. Shouldn't it
be Photometric Interpretation=RGB and 1440000 bytes of pixel data?

Is it possible to use GetSOPClassSCU with Transfer Syntax =
1.2.840.10008.1.2.4.50?

Peter

#160 From: "etienne_mercier79" <etienne_mercier79@...>
Date: Tue Jun 13, 2006 8:41 am
Subject: Re: C-FIND response status
etienne_merc...
Send Email Send Email
 
Thank you very much.

Etienne

--- In pixelmed_dicom@yahoogroups.com, David Clunie <dclunie@...> wrote:
>
> Good point; I had forgotten to flesh out the error status
> response stuff for C-FIND. Once it was working I got lazy,
> I guess.
>
> See today's experimental release, which is hopefully an
> improvement and may solve your problem. See:
>
> http://www.dclunie.com/pixelmed/software/20060608_experimental/
>
> I don't want to expose too much of the internals of
> StorageSOPClassSCP yet as protected rather than private,
> because it is such a horrible mess and I do not want
> folks to become dependent on subclassing it.
>
> David
>
> etienne_mercier79 wrote:
> >
> >
> > Hi,
> >
> > I would like to use pixelmed to develop a DICOM Storage/QR interface
> > on an other database.
> >
> > I've a problem, StorageSOPClassSCP.class and
> > QueryResponseGenerator.class don't seems to be able to create a failed
> > response in the case of a database error.
> >
> > Do you plan to add a status as in RetrieveResponseGenerator.class
> > soon?
> >
> > I tried to create a "new" StorageSOPClassSCP.class but there are a lot
> > of things that are private. Is there a way to rewrite the
> > sendPDataIndication function?
>

#161 From: "wexwarez" <wexwarez@...>
Date: Tue Jun 13, 2006 7:39 pm
Subject: conformance problem
wexwarez
Send Email Send Email
 
Here is the error I get:

com.pixelmed.dicom.DicomException: unsupported storage SOP Class
1.2.840.10008.5.1.4.1.1.481.5
         at
com.pixelmed.display.DicomImageViewer.loadDicomFileOrDirectory(DicomImageViewer.\
java:1232)
         at
com.pixelmed.display.DicomImageViewer.loadDicomFileOrDirectoryCallingChooserIfRe\
quired(DicomImageViewer.java:1278)
         at
com.pixelmed.display.DicomImageViewer.doCommonConstructorStuff(DicomImageViewer.\
java:2741)
         at
com.pixelmed.display.DicomImageViewer.<init>(DicomImageViewer.java:2925)
         at
com.pixelmed.display.DicomImageViewer.main(DicomImageViewer.java:2943

I am trying to look at a dicom file from nucletron.  I looked in your
docs and it looked like this class was supported.

Excuse my ignorance, I am very new to dicom and was given the task of
trying to interpret dicom meta data for another piece of software.
Does anyone have any suggestions about writing a program to just read
the metadata in no image data?  So far the documentation is somewhat
overwhelming.  Is there some straight forward documentation someone
could point me to that describes the format of the file better?

thanks
-ryan

#162 From: David Clunie <dclunie@...>
Date: Wed Jun 14, 2006 5:52 am
Subject: C-GET, JPEG transfer syntax, was Re: YBR_FULL_422/uncompressed
dclunie99
Send Email Send Email
 
Hi Peter

pefe00 wrote:

> I send a dicom file with an encapsulated jpeg (Transfer Syntax =
> 1.2.840.10008.1.2.4.50 and Photometric Interpretation=YBRFULL422) with
> StorageSOPClassSCU to a PACS and then I try to get i back with
> GetSOPClassSCU (Transfer Syntax = 1.2.840.10008.1.2.1). The image has
> a size of 800x600 pixels. I get back a dicom file with Photometric
> Interpretation=YBRFULL422 and 960000 bytes of pixel data. Shouldn't it
> be Photometric Interpretation=RGB and 1440000 bytes of pixel data?

The toolkit is not really set up to handle transfer of compressed
transfer syntaxes and tries to avoid negotiating them at association
establishment except for the special case when the transfer syntax
of the file to be sent is accepted by the SCP.

In the case of C-GET, only uncompressed transfer syntaxes are
offered at association establishment, and so what is sent back
by the SCP should be uncompressed, if the SCP is capable of
decompressing it, or nothing at all.

What PACS are you communicating with, by the way ?

What happens when you do a C-MOVE rather than a C-GET; do you get
the same result ?

If you like, you could email to me a copy of what you sent, what
you got back, and a debug log (set the debug levels to 2 or higher).

> Is it possible to use GetSOPClassSCU with Transfer Syntax =
> 1.2.840.10008.1.2.4.50?

Not at the moment. I haven't decided how best to handle negotiation
of compressed transfer syntaxes yet, particularly when the JIIO
tools to decompress and recompress (required to be compliant for
lossless as opposed to lossy transfer syntax support) are not
available on all platforms, especially the Mac that I work on the
most.

Also, for a C-GET, it is very difficult to know in advance what
the SCP is going to send back at association establishment time;
even the SOP Class might not be known, and offering every possible
permutation of SOP Class and Transfer Syntax is unwieldy if not
impossible when the number of Presentation Contexts is limited to
128.

David

#163 From: David Clunie <dclunie@...>
Date: Wed Jun 14, 2006 6:02 am
Subject: SR support, was Re: Re: Start using pixelmed.jar
dclunie99
Send Email Send Email
 
Hi Rashed

rashedulhasan2000 wrote:

> I'm aiming to develop a DICOM SR application. My preferred language is
> Java. Searching for help on net I found various sources but I thought
> your tool would be the right one to follow. Also many experts around
> the world referred your name when they came to know that the
> application is DICOM SR tool. Now all I need is your help.
>
> May I wish to have proper guideline from you in developing an SR tool?

I play with adding SR features to the toolkit from time to time,
and there are several places to start:

- com.pixelmed.dicom.StructuredReport provides a tree model of reports

- com.pixelmed.dicom.StructuredReportBrowser allows you to display them
   as a tree

- com.pixelmed.display.DicomBrowser allows you to look at the contents
   of a DICOMDIR pointing to images and reports, and display spatial
   coordinates inside measurements in reports

- com.pixelmed.dicom.XMLRepresentationOfStructuredReportObjectFactory is
   a very early effort at converting com.pixelmed.dicom.StructuredReport
   into an XML representation - this is in the experimental release only
   and I have not yet stabilized the form of the XML that it will write,
   and I also have to add the code to read it back in again (which will
   also involve improving the factory methods for each SR content item
   tree node, which will help folks wanting to create SR objects from
   within applications)

- the com.pixelmed.display.MammoImageViewer example application is
   actually capable of reading real DICOM SR Mammo CAD objects that
   come from real vendors and displaying them on images (crudely); I
   mention this to point out that this SR stuff is not just a
   fantasy, and to refer you to the source code to see how easy it is
   to take an SR and extract the coordinates and use them for
   display

Yogi mentioned the OFFIS dcmtk tools and they are good. Note that
the form of XML they read and write will not be the same as the
form that I use, but I will likely add some XSLT stylesheets to
translate back and forth one of these days.

I presume you have downloaded and read my book on SR; it is a bit
dated but may help.

David

#164 From: David Clunie <dclunie@...>
Date: Wed Jun 14, 2006 6:05 am
Subject: RT Plan, was Re: conformance problem
dclunie99
Send Email Send Email
 
Hi Ryan

wexwarez wrote:

> com.pixelmed.dicom.DicomException: unsupported storage SOP Class
> 1.2.840.10008.5.1.4.1.1.481.5

This is a RadioTherapy Plan object, and the viewer does not
support display of any of the RT objects except RT Image. The
network transfer code will support sending and receiving it
though.

> I am trying to look at a dicom file from nucletron. I looked in your
> docs and it looked like this class was supported.

If you are looking in the DICOM Conformance Statement for the
DicomImageViewer application, you will see this SOP Class listed
in the overview table as "Stored only" not "Stored and Viewed".

> Excuse my ignorance, I am very new to dicom and was given the task of
> trying to interpret dicom meta data for another piece of software.
> Does anyone have any suggestions about writing a program to just read
> the metadata in no image data? So far the documentation is somewhat
> overwhelming. Is there some straight forward documentation someone
> could point me to that describes the format of the file better?

Try com.pixelmed.dicom.StandaloneAttributeTreeBrowser.

Or com.pixelmed.dicom.XMLRepresentationOfDicomObjectFactory.

David

Messages 135 - 164 of 1134   Oldest  |  < Older  |  Newer >  |  Newest
Add to My Yahoo!      XML What's This?

Copyright © 2010 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines NEW - Help