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...
Message search is now enhanced, find messages faster. Take it for a spin.

Messages

Advanced
Messages Help
Messages 779 - 808 of 1134   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#779 From: "bugacov" <bugacov@...>
Date: Tue Sep 22, 2009 10:07 pm
Subject: Problem extracting Attribute values
bugacov
Send Email Send Email
 
Hi,
I need help in trying to extract the value of a given attribute
(ScheduleProcedureStepID).
As shown below, if I do System.err.print(list) on the AttributeList, it prints
the value for attribute ScheduleProcedureStepID.


(0x0008,0x0102) CodingSchemeDesignator VR=<SH> VL=<0xa> <99DCM4CHE >
(0x0008,0x0104) CodeMeaning VR=<LO> VL=<0x10> <No real meaning >
%enditem
%endseq
(0x0040,0x0009) ScheduledProcedureStepID VR=<SH> VL=<0x10> <SPS-Non-Dilated >
(0x0040,0x1001) RequestedProcedureID VR=<SH> VL=<0x8> <RP-ND01 >
%enditem
%endseq
(0x7fe0,0x0010) PixelData VR=<OB> VL=<0x697800> []


However, when I do the following call

String spsID=
Attribute.getSingleStringValueOrNull(list,TagFromName.ScheduledProcedureStepID);

it returns a null value.

What should I use to get the value of these attribute??

Thanks!!
Alejandro Bugacov.

#780 From: "ms.utebay" <msutebay@...>
Date: Thu Sep 10, 2009 9:46 pm
Subject: Dicom Structured Report
ms.utebay
Send Email Send Email
 
Hello group , I have just downloaded and started using pixelmed dicom toolkit. I
will use the toolkit to create SR reports. I will be happy if you can help me to
use StructuredReport class and others if needed to create SR. I need some code
samples and your help. Thanks in advance.

Mehmet

#781 From: "dclunie99" <dclunie@...>
Date: Wed Sep 23, 2009 11:11 am
Subject: Re: Dicom Structured Report
dclunie99
Send Email Send Email
 
There are essentially two ways to build an SR using PixelMed:

1. assemble it ContentItem nodes built with ContentItemFactory, and construct a
StructuredReport object, then add StructuredReport.getAttributeList() to an
AttributeList that contains the necessary DICOM "header" attributes as well;
this is pretty tedious, but once you have done it, you can re-use it for other
projects; there is currently no example of doing this in the toolkit (one of
these days I should add one)

2. take an existing DICOM SR, convert it to XML using
XMLRepresentationOfStructuredReportObjectFactory, hand edit the XML to put in
the content you need and remove anything that you don't, and then use
XMLRepresentationOfStructuredReportObjectFactory to make a DICOM file of it
again (well, an AttributeList that you can write to a DICOM file)

David

--- In pixelmed_dicom@yahoogroups.com, "ms.utebay" <msutebay@...> wrote:
>
> Hello group , I have just downloaded and started using pixelmed dicom toolkit.
I will use the toolkit to create SR reports. I will be happy if you can help me
to use StructuredReport class and others if needed to create SR. I need some
code samples and your help. Thanks in advance.
>
> Mehmet
>

#782 From: "dclunie99" <dclunie@...>
Date: Wed Sep 23, 2009 10:58 am
Subject: Re: Problem extracting Attribute values
dclunie99
Send Email Send Email
 
In a DICOM composite instance IOD, ScheduledProcedureStepID occurs nested inside
an item of the RequestAttributesSequence, so if you try to find it in the "top
level" dataset (which is what I presume your AttributeList list refers to), then
you will not find it because you are looking in the wrong place.

You need to:

1. get the RequestAttributesSequence, e.g. SequenceAttribute sa =
(SequenceAttribute)(list.get(TagFromName.RequestAttributesSequence))

2. iterate through the list of items in that sequence, since there may be more
than one (i.e., if there were multiple SPS satisfied by one PPS, as in the IHE
SWF group case), using SequenceAttribute.getNumberOfItems() and
SequenceAttribute.getItem(int index), or SequenceAttribute.iterator()

3. for each of those sequence items, get the AttributeList corresponding to the
sequence item, with SequenceItem.getAttributeList()

4. get the ScheduledProcedureStepID value from that list as you are doing now,
just with a different list as a basis

Note that if SequenceAttribute.getNumberOfItems() == 1, or if you only ever want
the value from the first item (i.e. don't need to handle the less common case),
you can use the static convenience method
SequenceAttribute.getNamedAttributeFromWithinSequenceWithSingleItem(sa,TagFromNa\
me.ScheduledProcedureStepID)

They aren't in the API at the moment, but one of these days I should add some
more static convenience methods like:

String
SequenceAttribute.getSingleStringValueOfNamedAttributeFromWithinSequenceWithSing\
leItemOrNull(SequenceAttribute sequenceAttribute, AttributeTag namedTag)

and

String
getSingleStringValueOfNamedAttributeFromWithinSequenceWithSingleItemOrNull(Attri\
buteList list, AttributeTag sequenceTag, AttributeTag namedTag)

David

--- In pixelmed_dicom@yahoogroups.com, "bugacov" <bugacov@...> wrote:
>
> Hi,
> I need help in trying to extract the value of a given attribute
(ScheduleProcedureStepID).
> As shown below, if I do System.err.print(list) on the AttributeList, it prints
the value for attribute ScheduleProcedureStepID.
>
>
> (0x0008,0x0102) CodingSchemeDesignator VR=<SH> VL=<0xa> <99DCM4CHE >
> (0x0008,0x0104) CodeMeaning VR=<LO> VL=<0x10> <No real meaning >
> %enditem
> %endseq
> (0x0040,0x0009) ScheduledProcedureStepID VR=<SH> VL=<0x10> <SPS-Non-Dilated >
> (0x0040,0x1001) RequestedProcedureID VR=<SH> VL=<0x8> <RP-ND01 >
> %enditem
> %endseq
> (0x7fe0,0x0010) PixelData VR=<OB> VL=<0x697800> []
>
>
> However, when I do the following call
>
> String spsID=
Attribute.getSingleStringValueOrNull(list,TagFromName.ScheduledProcedureStepID);
>
> it returns a null value.
>
> What should I use to get the value of these attribute??
>
> Thanks!!
> Alejandro Bugacov.
>

#783 From: Alejandro Bugacov <bugacov@...>
Date: Wed Sep 23, 2009 4:38 pm
Subject: Re: Re: Problem extracting Attribute values
bugacov
Send Email Send Email
 
David, 
Thanks a lot for your quick response!! 
That worked fine!! 
Thanks!! 
Alejandro.

On Wed, Sep 23, 2009 at 3:58 AM, dclunie99 <dclunie@...> wrote:
 

In a DICOM composite instance IOD, ScheduledProcedureStepID occurs nested inside an item of the RequestAttributesSequence, so if you try to find it in the "top level" dataset (which is what I presume your AttributeList list refers to), then you will not find it because you are looking in the wrong place.

You need to:

1. get the RequestAttributesSequence, e.g. SequenceAttribute sa = (SequenceAttribute)(list.get(TagFromName.RequestAttributesSequence))

2. iterate through the list of items in that sequence, since there may be more than one (i.e., if there were multiple SPS satisfied by one PPS, as in the IHE SWF group case), using SequenceAttribute.getNumberOfItems() and SequenceAttribute.getItem(int index), or SequenceAttribute.iterator()

3. for each of those sequence items, get the AttributeList corresponding to the sequence item, with SequenceItem.getAttributeList()

4. get the ScheduledProcedureStepID value from that list as you are doing now, just with a different list as a basis

Note that if SequenceAttribute.getNumberOfItems() == 1, or if you only ever want the value from the first item (i.e. don't need to handle the less common case), you can use the static convenience method SequenceAttribute.getNamedAttributeFromWithinSequenceWithSingleItem(sa,TagFromName.ScheduledProcedureStepID)

They aren't in the API at the moment, but one of these days I should add some more static convenience methods like:

String SequenceAttribute.getSingleStringValueOfNamedAttributeFromWithinSequenceWithSingleItemOrNull(SequenceAttribute sequenceAttribute, AttributeTag namedTag)

and

String getSingleStringValueOfNamedAttributeFromWithinSequenceWithSingleItemOrNull(AttributeList list, AttributeTag sequenceTag, AttributeTag namedTag)

David



--- In pixelmed_dicom@yahoogroups.com, "bugacov" <bugacov@...> wrote:
>
> Hi,
> I need help in trying to extract the value of a given attribute (ScheduleProcedureStepID).
> As shown below, if I do System.err.print(list) on the AttributeList, it prints the value for attribute ScheduleProcedureStepID.
>
>
> (0x0008,0x0102) CodingSchemeDesignator VR=<SH> VL=<0xa> <99DCM4CHE >
> (0x0008,0x0104) CodeMeaning VR=<LO> VL=<0x10> <No real meaning >
> %enditem
> %endseq
> (0x0040,0x0009) ScheduledProcedureStepID VR=<SH> VL=<0x10> <SPS-Non-Dilated >
> (0x0040,0x1001) RequestedProcedureID VR=<SH> VL=<0x8> <RP-ND01 >
> %enditem
> %endseq
> (0x7fe0,0x0010) PixelData VR=<OB> VL=<0x697800> []
>
>
> However, when I do the following call
>
> String spsID= Attribute.getSingleStringValueOrNull(list,TagFromName.ScheduledProcedureStepID);
>
> it returns a null value.
>
> What should I use to get the value of these attribute??
>
> Thanks!!
> Alejandro Bugacov.
>



#784 From: "domingosdourado" <domingosdourado@...>
Date: Tue Sep 29, 2009 2:59 am
Subject: Problems with reading values
domingosdourado
Send Email Send Email
 
Well, I'm beginner in this group, but have several questions regarding the
choices that library, I have a project to do with DICOM image, I read it in the
Java language, but I'll do the processing in C, will make it through arrays,
then thought of way back, return the data from C to Java, has a tool in the
library to read the data and converts it into image?

#785 From: "angel_vz29" <angel_vz29@...>
Date: Tue Sep 29, 2009 6:35 pm
Subject: POBLEMS WITH CMOVE-SCU
angel_vz29
Send Email Send Email
 
HI I´M NEW IN THIS PLACE I FOUND IT BECASUSE I´M DOING MY FINAL PROYECT (A
TELERADIOLOGY SISTEM) I HAVE A SERVER AE(WHICH HAS IMPLEMENTED
FINDE-SCP,MOVE-SCP AND STORE-(SCP-SCU)) I HAVE FINISHED THE FINDE SCU SO I HAVE
ALL THE UID THAT I NEED, MY PROBLEM IS WHEN I TRY TO IMPLEMENT THE MOVE-SCU TO
INITIALIZE THE TRANSFERENCE I´M USING PIXELMED LIBRERIES AND I DON´T UNDERSTAND
HOW DOES THE CLASES OF MOVE-SCU WORKS I UNDERSTAND THE THEORY BUT IN THE
PROGRAMATITION I HAVE ALOTE OF PROBLEMS!!! MY QUESTION IS ¿WHICH KIND OF
PARAMETERS SHOULD I PUT INSIDE THE CONSTRUCTOR OF THE NESTED CLASS THAT I CREATE
"Mueve"?

/*
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */

package serie;

import com.pixelmed.dicom.Attribute;
import com.pixelmed.dicom.AttributeList;
import com.pixelmed.dicom.AttributeTag;
import com.pixelmed.dicom.CodeStringAttribute;
import com.pixelmed.dicom.DicomException;
import com.pixelmed.dicom.SOPClass;
import com.pixelmed.dicom.TagFromName;
import com.pixelmed.dicom.UniqueIdentifierAttribute;
import com.pixelmed.network.Association;
import com.pixelmed.network.CompositeResponseHandler;
import com.pixelmed.network.IdentifierHandler;
import com.pixelmed.network.MoveSOPClassSCU;
import com.pixelmed.network.PDataPDU;

/**
  *
  * @author Miguel Angel
  */
    public class RetriveMove {

     String
hostname,calledAETitle,callingAETitle,moveDestination,affectedSOPClass;
     int port;
     AttributeList identifier;
     int debugLevel;

     public RetriveMove(){

         hostname="localhost";
    	 calledAETitle = "STORAGEISERVER";
         callingAETitle ="MoveSCU";
         port =4006;
         moveDestination="STORAGESCP";
     }

     private AttributeList moeveSerie(String StudyUID,String SerieUID) {//Primer
nivel paciente-estudio
      identifier = new AttributeList();
    try {
      AttributeList identifier = new AttributeList();
     { AttributeTag t = TagFromName.QueryRetrieveLevel;
       Attribute a = new CodeStringAttribute(t);
       a.addValue("SERIES"); identifier.put(t,a);
     }
     { AttributeTag t = TagFromName.StudyInstanceUID;
       Attribute a = new UniqueIdentifierAttribute(t);
       a.addValue("StudyUID");
       identifier.put(t,a);
     }
     { AttributeTag t = TagFromName.SeriesInstanceUID;
       Attribute a = new UniqueIdentifierAttribute(t);
       a.addValue("SerieUID");
       identifier.put(t,a);
     }
//    { AttributeTag t = TagFromName.SOPInstanceUID;//(0008,0018)
//      Attribute a = new UniqueIdentifierAttribute(t);
//      a.addValue("");
//      identifier.put(t,a);
//    }
     { AttributeTag t = TagFromName.Status;
       Attribute a = new UniqueIdentifierAttribute(t);
       a.addValue("");
       identifier.put(t,a);
     }
       { AttributeTag t = TagFromName.NumberOfFailedSuboperations;//(0000,1022)
       Attribute a = new UniqueIdentifierAttribute(t);
       a.addValue("");
       identifier.put(t,a);
     }
      { AttributeTag t = TagFromName.NumberOfCompletedSuboperations;//(0000,1021)
       Attribute a = new UniqueIdentifierAttribute(t);
       a.addValue("");
       identifier.put(t,a);
     }
//     { AttributeTag t = TagFromName.AffectedSOPClassUID;//(0000,0002)
//      Attribute a = new UniqueIdentifierAttribute(t);
//      a.addValue("");
//      identifier.put(t,a);
//    }
}
catch (Exception e) {
     e.printStackTrace(System.err);
      return null;
}
   return identifier;
     }


     // Este metodo recibe los datos recividos en el RES de Move
     public void pedimosmueveSerie(String StudyUID, String SerieUID) throws
Exception{
         AttributeList dataset=moeveSerie(StudyUID, SerieUID);
    	 boolean bandera= false;
    	 try{

    		 bandera=llamaTransporte(dataset,"SERIES");
    	 }catch(Exception ex){
    		 throw new Exception(ex.toString());

    	 }

     }
     //METODO DE LA CLASE PARA INVOCAR C-MOVE-RQ
       public boolean llamaTransporte( AttributeList llavespeticion,String
nivrecuperacion){
	    try{
		   new MoveSOPClassSCU(hostname,port,calledAETitle,callingAETitle,
moveDestination,SOPClass.StudyRootQueryRetrieveInformationModelMove,llavespetici\
on,0);
	    }
	    catch (Exception e){
		     e.printStackTrace(System.err);
		     return false;
		     }
	     return true;
	  }
//
      protected class Mueve extends CompositeResponseHandler {
          //clase andiada
//        ??
//            ???
//                ???

         protected Mueve(){
             //constructor de la calse
//          ???
//              ??
//                  ??
//
         }


         protected void evaluateStatusAndSetSuccess(AttributeList List) {//list -
the list of Attributes extracted from the bytes of the PDU(s)
             //Extract the status information from a composite response and set
the status flag accordingly.
//           ???
//               ??
//                   ??
         }

         protected void makeUseOfDataSet(AttributeList list){//list - the list of
Attributes extracted from the bytes of the PDU(s)
             //gnore any data set in the composite response (unless this method
is overridden).
//            ????
//                ??
//                    ???
         }
      }
    }


IF SOMEBODY HAS AN EXAMPLE OR A PROGRAM WHICH WORKS, COULD YOU SEND ME THE CODE
TO MY EMAIL ADRESS angelvzcisneros@...

#786 From: "domingosdourado" <domingosdourado@...>
Date: Tue Oct 20, 2009 2:14 am
Subject: Problem to generate text file with the color values of pixels
domingosdourado
Send Email Send Email
 
How to read a DICOM image in JAVA by PixelMEDIA and generate a text file with
the values of each color of its respective pixel.

#787 From: "brantlew" <brantlew@...>
Date: Mon Oct 12, 2009 7:50 pm
Subject: Code proposal for custom syntax selection policies
brantlew
Send Email Send Email
 
I included these in my local build and have found them useful for implementing
application specific acceptance criteria beyond the official policies supplied
with the build.  I am submitting these code files for review and possible
inclusion with the toolkit.

(PS. I also have a similar transfer syntax policy, but it is not yet generic
enough to be included with the toolkit)


CustomPresentationContextSelectionPolicy.java



package com.pixelmed.network;

import java.util.LinkedList;
import java.util.ListIterator;

/**
  * <p>Allows a custom user selection policy to be applied with separate polices
for abstract
  * and transfer syntaxes</p>
  */
public class CustomPresentationContextSelectionPolicy implements
PresentationContextSelectionPolicy {

     private static final String identString = "@(#) $Header:
/userland/cvs/pixelmed/imgbook/com/pixelmed/network/CustomPresentationContextSel\
ectionPolicy.java,v 1.1 2008/09/25 16:35:38 dclunie Exp $";

     protected AbstractSyntaxSelectionPolicy abstractSyntaxSelectionPolicy;
     protected TransferSyntaxSelectionPolicy transferSyntaxSelectionPolicy;

     public
CustomPresentationContextSelectionPolicy(AbstractSyntaxSelectionPolicy assp,
                                                    
TransferSyntaxSelectionPolicy tssp) {
         abstractSyntaxSelectionPolicy = assp;
         transferSyntaxSelectionPolicy = tssp;
     }

     /**
      * Accept or reject Abstract Syntaxes (SOP Classes).
      *
      * Allows a custom user selection policy to be applied with separate polices
for abstract
      * and transfer syntaxes
      *
      * @param   presentationContexts    a java.util.LinkedList of {@link
PresentationContext PresentationContext} objects,
      *          each of which contains an Abstract Syntax (SOP Class UID) with
one or more Transfer Syntaxes
      * @param   associationNumber   for debugging messages
      * @param   debugLevel
      * @return      the java.util.LinkedList of {@link PresentationContext
PresentationContext} objects,
      *          as supplied but with the result/reason field set to either
"acceptance" or
      *          "abstract syntax not supported (provider rejection)"
      */
     public LinkedList applyPresentationContextSelectionPolicy(LinkedList
presentationContexts,int associationNumber,int debugLevel) {
if (debugLevel > 1) System.err.println("Association["+associationNumber+"]:
Presentation contexts requested:\n"+presentationContexts);
         presentationContexts =
abstractSyntaxSelectionPolicy.applyAbstractSyntaxSelectionPolicy(presentationCon\
texts,associationNumber,debugLevel);             // must be called 1st
if (debugLevel > 1) System.err.println("Association["+associationNumber+"]:
Presentation contexts after
applyAbstractSyntaxSelectionPolicy:\n"+presentationContexts);
         presentationContexts =
transferSyntaxSelectionPolicy.applyTransferSyntaxSelectionPolicy(presentationCon\
texts,associationNumber,debugLevel);             // must be called 2nd
if (debugLevel > 1) System.err.println("Association["+associationNumber+"]:
Presentation contexts after
applyTransferSyntaxSelectionPolicy:\n"+presentationContexts);
         presentationContexts =
transferSyntaxSelectionPolicy.applyExplicitTransferSyntaxPreferencePolicy(presen\
tationContexts,associationNumber,debugLevel);    // must be called 3rd
if (debugLevel > 1) System.err.println("Association["+associationNumber+"]:
Presentation contexts after
applyExplicitTransferSyntaxPreferencePolicy:\n"+presentationContexts);
         return presentationContexts;
     }
}



CustomAbstractSyntaxSelectionPolicy.java

package com.pixelmed.network;

import com.pixelmed.dicom.SOPClass;

import java.util.LinkedList;
import java.util.ListIterator;

/**
  * <p>Accept only the user supplied SOP Classes</p>
  *
  */
public class CustomAbstractSyntaxSelectionPolicy implements
AbstractSyntaxSelectionPolicy {

     private static final String identString = "@(#) $Header:
/userland/cvs/pixelmed/imgbook/com/pixelmed/network/CustomAbstractSyntaxSelectio\
nPolicy,v 1.1 2008/09/25 16:35:37 dclunie Exp $";

     protected String[] AcceptedSOP;

     public CustomAbstractSyntaxSelectionPolicy(String[] accepted_sop) {
         AcceptedSOP = accepted_sop;
     }

     /**
      * Accept or reject Abstract Syntaxes (SOP Classes).
      *
      * Accept only the user supplied SOP Classes
      *
      * Should be called before Transfer Syntax selection is performed.
      *
      * @param   presentationContexts    a java.util.LinkedList of {@link
PresentationContext PresentationContext} objects,
      *          each of which contains an Abstract Syntax (SOP Class UID)
      * @param   associationNumber   for debugging messages
      * @param   debugLevel
      * @return      the java.util.LinkedList of {@link PresentationContext
PresentationContext} objects,
      *          as supplied but with the result/reason field set to either
"acceptance" or
      *          "abstract syntax not supported (provider rejection)"
      */
     public LinkedList applyAbstractSyntaxSelectionPolicy(LinkedList
presentationContexts,int associationNumber,int debugLevel) {
         ListIterator pcsi = presentationContexts.listIterator();
         while (pcsi.hasNext()) {
             PresentationContext pc = (PresentationContext)(pcsi.next());
             String abstractSyntaxUID = pc.getAbstractSyntaxUID();
             if (AcceptedSOP == null) {
                 // everything accepted
                 byte accept = (byte)0; // acceptance
                 pc.setResultReason(accept);
             }
             else {
                 byte accept = 3;  // abstract syntax not supported (provider
rejection)
                 for (int i=0; i<AcceptedSOP.length; i++) {
                     if (AcceptedSOP[i].equals(abstractSyntaxUID)) {
                         accept = 0;
                         break;
                     }
                 }
                 pc.setResultReason(accept);
             }
         }
         return presentationContexts;
     }
}

#788 From: "brantlew" <brantlew@...>
Date: Mon Oct 12, 2009 7:30 pm
Subject: Bug Report: IntegerStringAttribute
brantlew
Send Email Send Email
 
I just ran across this in the 08/16/2009 build.

The limits being applied in IntegerStringAttribute.addValue() are incorrect. 
Shorts have a range of 2^16.  Integers have a 2^32 range so the following code
should be substituted.

if (v < Integer.MIN_VALUE || v > Integer.MAX_VALUE) {

#789 From: "clifficious" <pereira.cliff@...>
Date: Sun Oct 11, 2009 11:05 am
Subject: editing header information containing jpeg-lossless
clifficious
Send Email Send Email
 
Hi there,

not sure if my first message went through. So here is my second try.

I'm having a slight problem using the pixelmed tools for my program. What I need
to do is open a DICOM file edit the meta-data, in fact anonymize them, and then
save everything into a new file.
All this has to happen in an applet. It's use is to read DICOMS off a CD,
anonymize them and upload them to a server.
Now I'm stucked and already tried to figure it out myself, but without any
success. It worked fine till now. But now I got a CD with DICOMS containing
lossless jpegs. The problem is that I can't read the jpegs as there are no
readers for this.
I also heard of the Java advanced I/O tools, but I can't tell all of my clients
to install it. Plus some of them are using a Mac.

Is there any solution or work-around for my problem? It would be a great help!
Thanks a lot in advance!

Cliff

#790 From: Cliff Pereira <pereira.cliff@...>
Date: Wed Oct 7, 2009 3:13 pm
Subject: editing header information with jpeg-lossless
clifficious
Send Email Send Email
 
Hi there,

I'm having a slight problem using the pixelmed tools for my program. What I need to do is open a DICOM file edit the meta-data, in fact anonymize them, and then save everything into a new file.
All this has to happen in an applet. It's use is to read DICOMS off a CD, anonymize them and upload them to a server.
Now I'm stucked and already tried to figure it out myself, but without any success. It worked fine till now. But now I got a CD with DICOMS containing lossless jpegs. The problem is that I can't read the jpegs as there are no readers for this.
I also heard of the Java advanced I/O tools, but I can't tell all of my clients to install it. Plus some of them are using a Mac.

Is there any solution or work-around for my problem? It would be a great help!
Thanks a lot in advance!

Cliff

--- http://clifficious.de ---


#791 From: "waxup_allstar" <limps_fred_durst@...>
Date: Tue Oct 6, 2009 8:55 pm
Subject: AttributeList.read feature request
waxup_allstar
Send Email Send Email
 
I'm extracting some data from DICOM files which are pretty large and want to
speed up the parsing.  The AttributeList.read(DicomInputStream, AttributeTag)
function would be really cool if it read up to AND including the attribute tag. 
Then I could check the existing AttributeList if it contains the attribute
already and if not read the input stream upto and including the tag I'm
interested in.

Trying to figure out the next attribute tag after the one I'm interested in
seems impossible in general terms.  Also it's prone to reading too far - reading
tags I have no interest in.

After reviewing the code it seems like the feature is fairly simple to implement
if you move the line 375 in AttributeList.java
if (stopAtTag != null && tag.equals(stopAtTag)) {
   return byteOffset; // stop now, since we have reached the tag at which we were
told to stop
}
To the end of the while loop block.  It would be really nice to see it in the
library trunk rather than my own hack.  Also maybe there are things I'm not
taking into consideration here...

P.S.  Thanks for a great DICOM library in Java.

#792 From: "dclunie99" <dclunie@...>
Date: Thu Oct 22, 2009 10:36 am
Subject: Re: Bug Report: IntegerStringAttribute
dclunie99
Send Email Send Email
 
Oops. Sorry about that.

Will be fixed in the next build.

David

--- In pixelmed_dicom@yahoogroups.com, "brantlew" <brantlew@...> wrote:
>
> I just ran across this in the 08/16/2009 build.
>
> The limits being applied in IntegerStringAttribute.addValue() are incorrect. 
Shorts have a range of 2^16.  Integers have a 2^32 range so the following code
should be substituted.
>
> if (v < Integer.MIN_VALUE || v > Integer.MAX_VALUE) {
>

#793 From: "dclunie99" <dclunie@...>
Date: Thu Oct 22, 2009 10:41 am
Subject: Re: AttributeList.read feature request
dclunie99
Send Email Send Email
 
I guess there are really two different use-cases here:

- stopping before doing the work of reading a particularly nasty tag (like
PixelData), which is the point of the current stopAtTag

- stopping after reading a specific tag that one needs

My need was to implement the former not the latter, but I can see an argument
for providing both mechanisms, so I will add it to the list of feature requests.

David

--- In pixelmed_dicom@yahoogroups.com, "waxup_allstar" <limps_fred_durst@...>
wrote:
>
> I'm extracting some data from DICOM files which are pretty large and want to
speed up the parsing.  The AttributeList.read(DicomInputStream, AttributeTag)
function would be really cool if it read up to AND including the attribute tag. 
Then I could check the existing AttributeList if it contains the attribute
already and if not read the input stream upto and including the tag I'm
interested in.
>
> Trying to figure out the next attribute tag after the one I'm interested in
seems impossible in general terms.  Also it's prone to reading too far - reading
tags I have no interest in.
>
> After reviewing the code it seems like the feature is fairly simple to
implement if you move the line 375 in AttributeList.java
> if (stopAtTag != null && tag.equals(stopAtTag)) {
>   return byteOffset; // stop now, since we have reached the tag at which we
were told to stop
> }
> To the end of the while loop block.  It would be really nice to see it in the
library trunk rather than my own hack.  Also maybe there are things I'm not
taking into consideration here...
>
> P.S.  Thanks for a great DICOM library in Java.
>

#794 From: "dclunie99" <dclunie@...>
Date: Thu Oct 22, 2009 10:53 am
Subject: Re: editing header information containing jpeg-lossless
dclunie99
Send Email Send Email
 
You need to make available the JIIO codecs, and for lossless JPEG that will work
on anything except a Mac (for which there are no native codecs).

See "http://jai-imageio.dev.java.net/binary-builds.html".

Note that anything you edit this way will save the result as decompressed (since
pixelmed decompresses on reading and does not provide for compression on writing
at present).

This is the way DicomCleaner works to deidentify compressed images, for example.

David

PS. For the long discussion on when/if Sun will ever release JIIO native codecs
for the Mac, see
"https://jai-imageio.dev.java.net/servlets/SearchList?list=interest&searchText=M\
ac+OS+X+native+version+of+JIIO&defaultField=subject&Search=Search".

One of these days I should either write a pure Java lossless JPEG codec, or find
another library to wrap to support the Mac.

--- In pixelmed_dicom@yahoogroups.com, "clifficious" <pereira.cliff@...> wrote:
>
> Hi there,
>
> not sure if my first message went through. So here is my second try.
>
> I'm having a slight problem using the pixelmed tools for my program. What I
need to do is open a DICOM file edit the meta-data, in fact anonymize them, and
then save everything into a new file.
> All this has to happen in an applet. It's use is to read DICOMS off a CD,
anonymize them and upload them to a server.
> Now I'm stucked and already tried to figure it out myself, but without any
success. It worked fine till now. But now I got a CD with DICOMS containing
lossless jpegs. The problem is that I can't read the jpegs as there are no
readers for this.
> I also heard of the Java advanced I/O tools, but I can't tell all of my
clients to install it. Plus some of them are using a Mac.
>
> Is there any solution or work-around for my problem? It would be a great help!
> Thanks a lot in advance!
>
> Cliff
>

#795 From: "dclunie99" <dclunie@...>
Date: Thu Oct 22, 2009 11:04 am
Subject: Re: Problem to generate text file with the color values of pixels
dclunie99
Send Email Send Email
 
You can get the pixel data with:

Attribute a = list.get(TagFromName.PixelData)

then depending on how it is encoded get the byte or short values with something
like:

if (ValueRepresentation.isOtherByteVR(a.getVR())) {
   byte[] data = a.getByteValues();
}
else {
   short data[] = a.getShortValues();
}

then you need to account for SamplesPerPixel (in case there is more than 1 in a
color rather than monochrome image), and PixelRepresentation (signedness) and
BitsAllocated (number oif significant bits) when extracting each element in the
array to be sure that you do not inadvertently sign-extend if coercing to a
different type.

See com.pixelmed.display.SourceImage.constructSourceImage() for ideas.

You might also find com.pixelmed.utils.HexDump.dump(byte[]) useful.

David

--- In pixelmed_dicom@yahoogroups.com, "domingosdourado" <domingosdourado@...>
wrote:
>
> How to read a DICOM image in JAVA by PixelMEDIA and generate a text file with
the values of each color of its respective pixel.
>

#796 From: Cliff Pereira <pereira.cliff@...>
Date: Tue Oct 27, 2009 2:34 pm
Subject: Re: Re: editing header information containing jpeg-lossless
clifficious
Send Email Send Email
 
Hi David,

thanks for you answer. But my problem is, that I'm providing an java applet which does all the things needed. Here I can't tell every user to install the JIIO codecs on their machine, because first of all I do not know how many people will be using it and secondly the persons may not have the permissions to install things on their working machine. 
I was thinking of overwriting the read(...)-method in AttributeList so that is supports the java advanced I/O picture compression. I would then have to provide the jar file along with my applet, which would be another overhead of 6 MB. So that is my plan B. :)

Is there maybe another way of realizing it? Or maybe I got you wrong.

Thanks once again!
Best regards!
Cliff

--- http://clifficious.de ---



2009/10/22 dclunie99 <dclunie@...>
 

You need to make available the JIIO codecs, and for lossless JPEG that will work on anything except a Mac (for which there are no native codecs).

See "http://jai-imageio.dev.java.net/binary-builds.html".

Note that anything you edit this way will save the result as decompressed (since pixelmed decompresses on reading and does not provide for compression on writing at present).

This is the way DicomCleaner works to deidentify compressed images, for example.

David

PS. For the long discussion on when/if Sun will ever release JIIO native codecs for the Mac, see "https://jai-imageio.dev.java.net/servlets/SearchList?list=interest&searchText=Mac+OS+X+native+version+of+JIIO&defaultField=subject&Search=Search".

One of these days I should either write a pure Java lossless JPEG codec, or find another library to wrap to support the Mac.



--- In pixelmed_dicom@yahoogroups.com, "clifficious" <pereira.cliff@...> wrote:
>
> Hi there,
>
> not sure if my first message went through. So here is my second try.
>
> I'm having a slight problem using the pixelmed tools for my program. What I need to do is open a DICOM file edit the meta-data, in fact anonymize them, and then save everything into a new file.
> All this has to happen in an applet. It's use is to read DICOMS off a CD, anonymize them and upload them to a server.
> Now I'm stucked and already tried to figure it out myself, but without any success. It worked fine till now. But now I got a CD with DICOMS containing lossless jpegs. The problem is that I can't read the jpegs as there are no readers for this.
> I also heard of the Java advanced I/O tools, but I can't tell all of my clients to install it. Plus some of them are using a Mac.
>
> Is there any solution or work-around for my problem? It would be a great help!
> Thanks a lot in advance!
>
> Cliff
>



#797 From: "dclunie99" <dclunie@...>
Date: Tue Oct 27, 2009 2:46 pm
Subject: Re: editing header information containing jpeg-lossless
dclunie99
Send Email Send Email
 
Hi Cliff

I use Java Web Start rather than applets for this, because it allows one to
easily specify jars and native libraries on a platform-specific basis if
necessary.

I don't know how to do this with applets, not to say that there isn't one.

It would be nice to have pure Java versions of the necessary codecs to avoid
this problem

David

--- In pixelmed_dicom@yahoogroups.com, Cliff Pereira <pereira.cliff@...> wrote:
>
> Hi David,
>
> thanks for you answer. But my problem is, that I'm providing an java applet
> which does all the things needed. Here I can't tell every user to install
> the JIIO codecs on their machine, because first of all I do not know how
> many people will be using it and secondly the persons may not have the
> permissions to install things on their working machine.
> I was thinking of overwriting the read(...)-method in AttributeList so that
> is supports the java advanced I/O picture compression. I would then have to
> provide the jar file along with my applet, which would be another overhead
> of 6 MB. So that is my plan B. :)
>
> Is there maybe another way of realizing it? Or maybe I got you wrong.
>
> Thanks once again!
> Best regards!
> Cliff
>
> --- http://clifficious.de ---
>
>
>
> 2009/10/22 dclunie99 <dclunie@...>
>
> >
> >
> > You need to make available the JIIO codecs, and for lossless JPEG that will
> > work on anything except a Mac (for which there are no native codecs).
> >
> > See "http://jai-imageio.dev.java.net/binary-builds.html".
> >
> > Note that anything you edit this way will save the result as decompressed
> > (since pixelmed decompresses on reading and does not provide for compression
> > on writing at present).
> >
> > This is the way DicomCleaner works to deidentify compressed images, for
> > example.
> >
> > David
> >
> > PS. For the long discussion on when/if Sun will ever release JIIO native
> > codecs for the Mac, see "
> >
https://jai-imageio.dev.java.net/servlets/SearchList?list=interest&searchText=Ma\
c+OS+X+native+version+of+JIIO&defaultField=subject&Search=Search
> > ".
> >
> > One of these days I should either write a pure Java lossless JPEG codec, or
> > find another library to wrap to support the Mac.
> >
> >
> > --- In pixelmed_dicom@yahoogroups.com <pixelmed_dicom%40yahoogroups.com>,
> > "clifficious" <pereira.cliff@> wrote:
> > >
> > > Hi there,
> > >
> > > not sure if my first message went through. So here is my second try.
> > >
> > > I'm having a slight problem using the pixelmed tools for my program. What
> > I need to do is open a DICOM file edit the meta-data, in fact anonymize
> > them, and then save everything into a new file.
> > > All this has to happen in an applet. It's use is to read DICOMS off a CD,
> > anonymize them and upload them to a server.
> > > Now I'm stucked and already tried to figure it out myself, but without
> > any success. It worked fine till now. But now I got a CD with DICOMS
> > containing lossless jpegs. The problem is that I can't read the jpegs as
> > there are no readers for this.
> > > I also heard of the Java advanced I/O tools, but I can't tell all of my
> > clients to install it. Plus some of them are using a Mac.
> > >
> > > Is there any solution or work-around for my problem? It would be a great
> > help!
> > > Thanks a lot in advance!
> > >
> > > Cliff
> > >
> >
> >
> >
>

#798 From: Cliff Pereira <pereira.cliff@...>
Date: Tue Nov 3, 2009 2:29 pm
Subject: Re: Re: editing header information containing jpeg-lossless
clifficious
Send Email Send Email
 
Hi David,

is there a method to read the header information without decompressing the picture in the DICOM file?

kind regards!
Cliff


2009/10/27 dclunie99 <dclunie@...>
 

Hi Cliff

I use Java Web Start rather than applets for this, because it allows one to easily specify jars and native libraries on a platform-specific basis if necessary.

I don't know how to do this with applets, not to say that there isn't one.

It would be nice to have pure Java versions of the necessary codecs to avoid this problem

David



--- In pixelmed_dicom@yahoogroups.com, Cliff Pereira <pereira.cliff@...> wrote:
>
> Hi David,
>
> thanks for you answer. But my problem is, that I'm providing an java applet
> which does all the things needed. Here I can't tell every user to install
> the JIIO codecs on their machine, because first of all I do not know how
> many people will be using it and secondly the persons may not have the
> permissions to install things on their working machine.
> I was thinking of overwriting the read(...)-method in AttributeList so that
> is supports the java advanced I/O picture compression. I would then have to
> provide the jar file along with my applet, which would be another overhead
> of 6 MB. So that is my plan B. :)
>
> Is there maybe another way of realizing it? Or maybe I got you wrong.
>
> Thanks once again!
> Best regards!
> Cliff
>
> --- http://clifficious.de ---
>
>
>
> 2009/10/22 dclunie99 <dclunie@...>

>
> >
> >
> > You need to make available the JIIO codecs, and for lossless JPEG that will
> > work on anything except a Mac (for which there are no native codecs).
> >
> > See "http://jai-imageio.dev.java.net/binary-builds.html".
> >
> > Note that anything you edit this way will save the result as decompressed
> > (since pixelmed decompresses on reading and does not provide for compression
> > on writing at present).
> >
> > This is the way DicomCleaner works to deidentify compressed images, for
> > example.
> >
> > David
> >
> > PS. For the long discussion on when/if Sun will ever release JIIO native
> > codecs for the Mac, see "
> > https://jai-imageio.dev.java.net/servlets/SearchList?list=interest&searchText=Mac+OS+X+native+version+of+JIIO&defaultField=subject&Search=Search
> > ".
> >
> > One of these days I should either write a pure Java lossless JPEG codec, or
> > find another library to wrap to support the Mac.
> >
> >
> > --- In pixelmed_dicom@yahoogroups.com <pixelmed_dicom%40yahoogroups.com>,

> > "clifficious" <pereira.cliff@> wrote:
> > >
> > > Hi there,
> > >
> > > not sure if my first message went through. So here is my second try.
> > >
> > > I'm having a slight problem using the pixelmed tools for my program. What
> > I need to do is open a DICOM file edit the meta-data, in fact anonymize
> > them, and then save everything into a new file.
> > > All this has to happen in an applet. It's use is to read DICOMS off a CD,
> > anonymize them and upload them to a server.
> > > Now I'm stucked and already tried to figure it out myself, but without
> > any success. It worked fine till now. But now I got a CD with DICOMS
> > containing lossless jpegs. The problem is that I can't read the jpegs as
> > there are no readers for this.
> > > I also heard of the Java advanced I/O tools, but I can't tell all of my
> > clients to install it. Plus some of them are using a Mac.
> > >
> > > Is there any solution or work-around for my problem? It would be a great
> > help!
> > > Thanks a lot in advance!
> > >
> > > Cliff
> > >
> >
> >
> >
>



#799 From: Mathieu Malaterre <mathieu.malaterre@...>
Date: Fri Nov 20, 2009 12:41 pm
Subject: DicomImageViewer: IOD (SOP Class) unrecognized
malat98
Send Email Send Email
 
Hi David,

   I downloaded the binary distribution of pixelmed and tried out the
DicomImageViewer:

$ wget
http://www.dclunie.com/pixelmed/software/20091114_current/pixelmedjavadicom_bina\
ryrelease.20091114.tar.bz2
$ sh  DicomImageViewer.sh   ~/Creatis/gdcmData/D_CLUNIE_MR3_JPLL.dcm
java.io.FileNotFoundException:
/home/mathieu/.com.pixelmed.display.DicomImageViewer.properties (No
such file or directory)
Warning: couldn't set internationalized font: non-Latin values may not
display properly
networkApplicationInformation ...

Starting up DICOM association listener ...
Building GUI ...
Open: /tmp/raw2.dcm


But when I click on Validate I get a message saying " IOD (SOP Class)
unrecognized".

Is there anything I would be missing to setup the DicomImageViewer ?

Thanks,
--
Mathieu

#800 From: "dclunie99" <dclunie@...>
Date: Fri Nov 20, 2009 1:08 pm
Subject: Re: editing header information containing jpeg-lossless
dclunie99
Send Email Send Email
 
Only by using the stopAt parameter to the AttributeList read to prevent it going
beyond the PixelData tag.

David

--- In pixelmed_dicom@yahoogroups.com, Cliff Pereira <pereira.cliff@...> wrote:
>
> Hi David,
>
> is there a method to read the header information without decompressing the
> picture in the DICOM file?
>
> kind regards!
> Cliff
>
>
> 2009/10/27 dclunie99 <dclunie@...>
>
> >
> >
> > Hi Cliff
> >
> > I use Java Web Start rather than applets for this, because it allows one to
> > easily specify jars and native libraries on a platform-specific basis if
> > necessary.
> >
> > I don't know how to do this with applets, not to say that there isn't one.
> >
> > It would be nice to have pure Java versions of the necessary codecs to
> > avoid this problem
> >
> > David
> >
> >
> > --- In pixelmed_dicom@yahoogroups.com <pixelmed_dicom%40yahoogroups.com>,
> > Cliff Pereira <pereira.cliff@> wrote:
> > >
> > > Hi David,
> > >
> > > thanks for you answer. But my problem is, that I'm providing an java
> > applet
> > > which does all the things needed. Here I can't tell every user to install
> > > the JIIO codecs on their machine, because first of all I do not know how
> > > many people will be using it and secondly the persons may not have the
> > > permissions to install things on their working machine.
> > > I was thinking of overwriting the read(...)-method in AttributeList so
> > that
> > > is supports the java advanced I/O picture compression. I would then have
> > to
> > > provide the jar file along with my applet, which would be another
> > overhead
> > > of 6 MB. So that is my plan B. :)
> > >
> > > Is there maybe another way of realizing it? Or maybe I got you wrong.
> > >
> > > Thanks once again!
> > > Best regards!
> > > Cliff
> > >
> > > --- http://clifficious.de ---
> > >
> > >
> > >
> > > 2009/10/22 dclunie99 <dclunie@>
> >
> > >
> > > >
> > > >
> > > > You need to make available the JIIO codecs, and for lossless JPEG that
> > will
> > > > work on anything except a Mac (for which there are no native codecs).
> > > >
> > > > See "http://jai-imageio.dev.java.net/binary-builds.html".
> > > >
> > > > Note that anything you edit this way will save the result as
> > decompressed
> > > > (since pixelmed decompresses on reading and does not provide for
> > compression
> > > > on writing at present).
> > > >
> > > > This is the way DicomCleaner works to deidentify compressed images, for
> > > > example.
> > > >
> > > > David
> > > >
> > > > PS. For the long discussion on when/if Sun will ever release JIIO
> > native
> > > > codecs for the Mac, see "
> > > >
> >
https://jai-imageio.dev.java.net/servlets/SearchList?list=interest&searchText=Ma\
c+OS+X+native+version+of+JIIO&defaultField=subject&Search=Search
> > > > ".
> > > >
> > > > One of these days I should either write a pure Java lossless JPEG
> > codec, or
> > > > find another library to wrap to support the Mac.
> > > >
> > > >
> > > > --- In
pixelmed_dicom@yahoogroups.com<pixelmed_dicom%40yahoogroups.com><pixelmed_dicom%
> > 40yahoogroups.com>,
> >
> > > > "clifficious" <pereira.cliff@> wrote:
> > > > >
> > > > > Hi there,
> > > > >
> > > > > not sure if my first message went through. So here is my second try.
> > > > >
> > > > > I'm having a slight problem using the pixelmed tools for my program.
> > What
> > > > I need to do is open a DICOM file edit the meta-data, in fact anonymize
> > > > them, and then save everything into a new file.
> > > > > All this has to happen in an applet. It's use is to read DICOMS off a
> > CD,
> > > > anonymize them and upload them to a server.
> > > > > Now I'm stucked and already tried to figure it out myself, but
> > without
> > > > any success. It worked fine till now. But now I got a CD with DICOMS
> > > > containing lossless jpegs. The problem is that I can't read the jpegs
> > as
> > > > there are no readers for this.
> > > > > I also heard of the Java advanced I/O tools, but I can't tell all of
> > my
> > > > clients to install it. Plus some of them are using a Mac.
> > > > >
> > > > > Is there any solution or work-around for my problem? It would be a
> > great
> > > > help!
> > > > > Thanks a lot in advance!
> > > > >
> > > > > Cliff
> > > > >
> > > >
> > > >
> > > >
> > >
> >
> >
> >
>

#801 From: "dclunie99" <dclunie@...>
Date: Fri Nov 20, 2009 1:22 pm
Subject: Re: DicomImageViewer: IOD (SOP Class) unrecognized
dclunie99
Send Email Send Email
 
Hi Mathieu

The pixelmed validator only supports some of the enhanced family multi-frame
IODs such as CT image, MR image, and MR spectroscopy, and not all the other IODs
in the standard.

This is a feature that was specifically developed under contract to NEMA (see
"http://www.pixelmed.com/#PixelMedNEMAEnhancedCTMRTestTool"); I used the
pixelmed tools for this as a basis, instead of dicom3tools, because I try
validating complex conditions using XPath and XSL-T.

Replicating all the features of the dciodvfy tool from dicom3tools into pixelmed
is not a high priority. The XSL-T approach is also quite slow, the way I have
implemented it.

The "validate" button is only present in the viewer because some of the NEMA
users wanted to be able to review the attributes and frames at the same time as
reviewing the validation results in one place, and not all wanted a command line
tool.

Sorry it is a bit hokey.

David

--- In pixelmed_dicom@yahoogroups.com, Mathieu Malaterre <mathieu.malaterre@...>
wrote:
>
> Hi David,
>
>   I downloaded the binary distribution of pixelmed and tried out the
> DicomImageViewer:
>
> $ wget
http://www.dclunie.com/pixelmed/software/20091114_current/pixelmedjavadicom_bina\
ryrelease.20091114.tar.bz2
> $ sh  DicomImageViewer.sh   ~/Creatis/gdcmData/D_CLUNIE_MR3_JPLL.dcm
> java.io.FileNotFoundException:
> /home/mathieu/.com.pixelmed.display.DicomImageViewer.properties (No
> such file or directory)
> Warning: couldn't set internationalized font: non-Latin values may not
> display properly
> networkApplicationInformation ...
>
> Starting up DICOM association listener ...
> Building GUI ...
> Open: /tmp/raw2.dcm
>
>
> But when I click on Validate I get a message saying " IOD (SOP Class)
> unrecognized".
>
> Is there anything I would be missing to setup the DicomImageViewer ?
>
> Thanks,
> --
> Mathieu
>

#802 From: "Astaldo" <astaldo1977@...>
Date: Mon Dec 21, 2009 2:52 pm
Subject: Own CompositeResponseHandler for MoveSOPClassSCU
astaldo1977
Send Email Send Email
 
Hi David,

I would like to set my own composite response handler implementation for an
association for the move SOP class SCU operation.

Please think about these changes:
  1 - change the visibility of the CompositeResponseHandler constructor to public
  2 - add a parameter of the type CompositeResponseHandler to the MoveSOPClassSCU
constructor
  3 - use this new parameter as an argument to the setReceivedDataHandler()
method of the generated association in the MoveSOPClassSCU
  4 – add getter and setter methods for CompositeResponseHandler.allowData
attribute
  5 – change the visibility of following methods to public
      a - CompositeResponseHandler.evaluateStatusAndSetSuccess(AttributeList
list)
      b - CompositeResponseHandler.makeUseOfDataSet(AttributeList list)

Regards,
Astaldo

#803 From: "jingmin99" <jingmin99@...>
Date: Wed Dec 23, 2009 10:28 pm
Subject: how to extract images from a multi-frame DICOM image
jingmin99
Send Email Send Email
 
hi,

does anyone know any sample code of API in pixelmed that I can use to extract a
multi-frame image into several single-frame images.

Thanks a lot

Jingmin

#804 From: Abder-Rahman Ali <abder.rahman.ali@...>
Date: Sun Jan 3, 2010 4:13 pm
Subject: Reading a DICOM image
abder.rahman
Send Email Send Email
 
Hello,

I have opened a stream for reading a DICOM image like the following:

din = new DicomInputStream(new File("/Users/abder-rahmanali/Desktop/IM-0001-0001.dcm"));

Now, how can I READ this DICOM image? Provided that I'm using "Pixelmed".

Thanks.

Abder-Rahman

#805 From: "dclunie99" <dclunie@...>
Date: Mon Jan 4, 2010 1:36 pm
Subject: Re: Reading a DICOM image
dclunie99
Send Email Send Email
 
AttributeList.read().

See the javadoc for AttributeList.

David

--- In pixelmed_dicom@yahoogroups.com, Abder-Rahman Ali <abder.rahman.ali@...>
wrote:
>
> Hello,
>
> I have opened a stream for reading a DICOM image like the following:
>
> din = new DicomInputStream(new
> File("/Users/abder-rahmanali/Desktop/IM-0001-0001.dcm"));
>
> Now, how can I READ this DICOM image? Provided that I'm using "Pixelmed".
>
> Thanks.
>
> Abder-Rahman
>
> --
> http://twitter.com/abderrahmanali
>

#806 From: Cliff Pereira <pereira.cliff@...>
Date: Mon Jan 4, 2010 1:57 pm
Subject: Re: Reading a DICOM image
clifficious
Send Email Send Email
 
Hi,

if you only need the image, this works for me. The only problem is, that the brightness is not optimized or false. The picture is kind of dark. If you find a workaround for that please let me know.

SourceImage si = new SourceImage(din);
BufferedImage bi = si.getBufferedImage();
Image img = Toolkit.getDefaultToolkit().createImage(bi.getSource());

Best regards
Cliff

--- http://clifficious.de ---



2010/1/3 Abder-Rahman Ali <abder.rahman.ali@...>
 

Hello,

I have opened a stream for reading a DICOM image like the following:

din = new DicomInputStream(new File("/Users/abder-rahmanali/Desktop/IM-0001-0001.dcm"));

Now, how can I READ this DICOM image? Provided that I'm using "Pixelmed".

Thanks.

Abder-Rahman


#807 From: "dclunie99" <dclunie@...>
Date: Mon Jan 4, 2010 9:00 pm
Subject: Re: how to extract images from a multi-frame DICOM image
dclunie99
Send Email Send Email
 
No, I haven't written that functionality, though it would not be terribly hard.

David

--- In pixelmed_dicom@yahoogroups.com, "jingmin99" <jingmin99@...> wrote:
>
> hi,
>
> does anyone know any sample code of API in pixelmed that I can use to extract
a multi-frame image into several single-frame images.
>
> Thanks a lot
>
> Jingmin
>

#808 From: "bioshinningstar" <bioshinningstar@...>
Date: Wed Jan 20, 2010 3:46 pm
Subject: Reading DICOM tags and thier Values
bioshinningstar
Send Email Send Email
 
Hi All ,

I an new in java and so as pixelmed ..so  wanna ask a question!!
Is it possible to read all the dicom tags in a tree view the same as the dicom
file structure ..also without having to say the tag name (Attribute a
=al.get(TagFromName.PatientName))

I mean is there something that enables me to read the dicom file as xml (like
hasachild ,hasnext,movenext and so on )

I would be verrrry grateful if you replied as soon as possible...

Regards

Eman.

Messages 779 - 808 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