• Overlays with device pre 2004

    From Patrick Ndanga@21:1/5 to All on Wed Dec 22 07:55:01 2021
    Hello everyone,
    I have a Dataset of mri und i want to read Overlays on the respective DICOM pictures in Python, but the Overlays are stored in Pixel Data(7FE0, 0010). Is it possible to do it and how please.
    I try to surch about it, but i could not find anything.

    Thanks in advance.
    Astride

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Freier@21:1/5 to Patrick Ndanga on Fri Jan 21 06:00:21 2022
    Patrick Ndanga schrieb am Mittwoch, 22. Dezember 2021 um 16:55:03 UTC+1:
    Hello everyone,
    I have a Dataset of mri und i want to read Overlays on the respective DICOM pictures in Python, but the Overlays are stored in Pixel Data(7FE0, 0010). Is it possible to do it and how please.
    I try to surch about it, but i could not find anything.

    Thanks in advance.
    Astride
    You need to evaluate Overlay Bit Position (60xx,0102) it will tell you which of the unused bits in pixel data represents the overlay. The overlay itself is always 1 bit representation.
    There must be a difference between Bits Allocated (0028,0100) eg. 16 to Bits Stored (0028,0101) eg. 12 to have such unused bits in pixel data available.
    Embedded overlays are retired long time ago 2005 or so. I was unable to find such old version of PS3.5.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Patrick Ndanga@21:1/5 to Thomas Freier on Thu Jan 27 14:16:50 2022
    On Friday, 21 January 2022 at 15:00:23 UTC+1, Thomas Freier wrote:
    Patrick Ndanga schrieb am Mittwoch, 22. Dezember 2021 um 16:55:03 UTC+1:
    Hello everyone,
    I have a Dataset of mri und i want to read Overlays on the respective DICOM pictures in Python, but the Overlays are stored in Pixel Data(7FE0, 0010). Is it possible to do it and how please.
    I try to surch about it, but i could not find anything.

    Thanks in advance.
    Astride
    You need to evaluate Overlay Bit Position (60xx,0102) it will tell you which of the unused bits in pixel data represents the overlay. The overlay itself is always 1 bit representation.
    There must be a difference between Bits Allocated (0028,0100) eg. 16 to Bits Stored (0028,0101) eg. 12 to have such unused bits in pixel data available.
    Embedded overlays are retired long time ago 2005 or so. I was unable to find such old version of PS3.5.

    Hello,
    thank you for your answer.
    Bits Allocated (0028,0100) and Bits Stored (0028,0101) are really 16 Bits and 12 Bits, but when i try to evaluate the Overlay Bit Position (60xx,0102). I receive a Key Error from Python.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Freier@21:1/5 to Patrick Ndanga on Fri Jan 28 02:22:23 2022
    Patrick Ndanga schrieb am Donnerstag, 27. Januar 2022 um 23:16:52 UTC+1:
    On Friday, 21 January 2022 at 15:00:23 UTC+1, Thomas Freier wrote:
    Patrick Ndanga schrieb am Mittwoch, 22. Dezember 2021 um 16:55:03 UTC+1:
    Hello everyone,
    I have a Dataset of mri und i want to read Overlays on the respective DICOM pictures in Python, but the Overlays are stored in Pixel Data(7FE0, 0010). Is it possible to do it and how please.
    I try to surch about it, but i could not find anything.

    Thanks in advance.
    Astride
    You need to evaluate Overlay Bit Position (60xx,0102) it will tell you which of the unused bits in pixel data represents the overlay. The overlay itself is always 1 bit representation.
    There must be a difference between Bits Allocated (0028,0100) eg. 16 to Bits Stored (0028,0101) eg. 12 to have such unused bits in pixel data available.
    Embedded overlays are retired long time ago 2005 or so. I was unable to find such old version of PS3.5.
    Hello,
    thank you for your answer.
    Bits Allocated (0028,0100) and Bits Stored (0028,0101) are really 16 Bits and 12 Bits, but when i try to evaluate the Overlay Bit Position (60xx,0102). I receive a Key Error from Python.
    Hi, just to be sure. You need to replace the xx with the number of overlay. E.g. 6000,0102. If you did this correctly I am afraid I cannot help you further as I am not so fit in Python ;)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jason Klotzer@21:1/5 to Thomas Freier on Fri Jan 28 07:00:29 2022
    On Friday, January 28, 2022 at 4:22:25 AM UTC-6, Thomas Freier wrote:
    Patrick Ndanga schrieb am Donnerstag, 27. Januar 2022 um 23:16:52 UTC+1:
    On Friday, 21 January 2022 at 15:00:23 UTC+1, Thomas Freier wrote:
    Patrick Ndanga schrieb am Mittwoch, 22. Dezember 2021 um 16:55:03 UTC+1:
    Hello everyone,
    I have a Dataset of mri und i want to read Overlays on the respective DICOM pictures in Python, but the Overlays are stored in Pixel Data(7FE0, 0010). Is it possible to do it and how please.
    I try to surch about it, but i could not find anything.

    Thanks in advance.
    Astride
    You need to evaluate Overlay Bit Position (60xx,0102) it will tell you which of the unused bits in pixel data represents the overlay. The overlay itself is always 1 bit representation.
    There must be a difference between Bits Allocated (0028,0100) eg. 16 to Bits Stored (0028,0101) eg. 12 to have such unused bits in pixel data available.
    Embedded overlays are retired long time ago 2005 or so. I was unable to find such old version of PS3.5.
    Hello,
    thank you for your answer.
    Bits Allocated (0028,0100) and Bits Stored (0028,0101) are really 16 Bits and 12 Bits, but when i try to evaluate the Overlay Bit Position (60xx,0102). I receive a Key Error from Python.
    Hi, just to be sure. You need to replace the xx with the number of overlay. E.g. 6000,0102. If you did this correctly I am afraid I cannot help you further as I am not so fit in Python ;)

    As Thomas stated, you must use the values in group 60xx to determine the structure of the overlay, which can be embedded in the upper pixel bits or as a separate tag in overlay data (60xx,3000).

    While retired, the details are explained here: https://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html

    If you're having trouble parsing the file in your Python library, I suggest using an OSS `dcmdump` tool (dcmtk, dcm4che, etc) to do some analysis on the metadata before trying to extract the values in your code, verifying the structure meets the spec.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jason Klotzer@21:1/5 to Patrick Ndanga on Mon Jan 31 08:30:36 2022
    On Saturday, January 29, 2022 at 4:11:27 PM UTC-6, Patrick Ndanga wrote:
    On Friday, 28 January 2022 at 16:00:32 UTC+1, Jason Klotzer wrote:
    On Friday, January 28, 2022 at 4:22:25 AM UTC-6, Thomas Freier wrote:
    Patrick Ndanga schrieb am Donnerstag, 27. Januar 2022 um 23:16:52 UTC+1:
    On Friday, 21 January 2022 at 15:00:23 UTC+1, Thomas Freier wrote:
    Patrick Ndanga schrieb am Mittwoch, 22. Dezember 2021 um 16:55:03 UTC+1:
    Hello everyone,
    I have a Dataset of mri und i want to read Overlays on the respective DICOM pictures in Python, but the Overlays are stored in Pixel Data(7FE0, 0010). Is it possible to do it and how please.
    I try to surch about it, but i could not find anything.

    Thanks in advance.
    Astride
    You need to evaluate Overlay Bit Position (60xx,0102) it will tell you which of the unused bits in pixel data represents the overlay. The overlay itself is always 1 bit representation.
    There must be a difference between Bits Allocated (0028,0100) eg. 16 to Bits Stored (0028,0101) eg. 12 to have such unused bits in pixel data available.
    Embedded overlays are retired long time ago 2005 or so. I was unable to find such old version of PS3.5.
    Hello,
    thank you for your answer.
    Bits Allocated (0028,0100) and Bits Stored (0028,0101) are really 16 Bits and 12 Bits, but when i try to evaluate the Overlay Bit Position (60xx,0102). I receive a Key Error from Python.
    Hi, just to be sure. You need to replace the xx with the number of overlay. E.g. 6000,0102. If you did this correctly I am afraid I cannot help you further as I am not so fit in Python ;)
    As Thomas stated, you must use the values in group 60xx to determine the structure of the overlay, which can be embedded in the upper pixel bits or as a separate tag in overlay data (60xx,3000).

    While retired, the details are explained here: https://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html

    If you're having trouble parsing the file in your Python library, I suggest using an OSS `dcmdump` tool (dcmtk, dcm4che, etc) to do some analysis on the metadata before trying to extract the values in your code, verifying the structure meets the spec.
    Bits Allocated (0028,0100) and Bits Stored (0028,0101) are 16 Bits and 12 for the image but for the Overlay, Bits Allocated (0028,0100) and Bits Stored (0028,0101) are equal ( 8 Bits ) and the High Bit of the overlay is 7. It doesn't work when i call
    the element of group 6000. The row and the columb of the Overlay dataset are 0. I receive the following error now:
    "Unable to convert the overlay data as the following required elements are missing from the dataset: OverlayData, OverlayBitsAllocated, OverlayRows, OverlayColumns"

    It definitely seems like something is messed up with this overlay definition. Did this instance go through de-id or some other processing?

    1) You normally shouldn't have an 8-bit overlay (overlay bits stored), unless the creator was trying to indicate color? Most I've seen are 1-bit -- basically indicating pixel on/off.
    2) If you don't have OverlayData (60xx,3000) defined, then the overlay data is typically represented in the upper bits of the PixelData (7FE0,0010), but BitsStored = 8 doesn't make sense in this case, since you only have 4 bits remaining (16-12).

    If you're really interested in rendering this overlay, I'd check what's in the bits in the bits allocated - bits stored region. If they are anything but 0, then there's a chance you have data there.

    Any chance you can provide a `dcmdump` of the data (with PHI removed)? Knowing the vendor might also help understand the definition (DICOM conformance statement for the vendor might give details on how the overlay is defined).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Patrick Ndanga@21:1/5 to Jason Klotzer on Tue Feb 1 14:14:39 2022
    On Monday, 31 January 2022 at 17:30:39 UTC+1, Jason Klotzer wrote:
    On Saturday, January 29, 2022 at 4:11:27 PM UTC-6, Patrick Ndanga wrote:
    On Friday, 28 January 2022 at 16:00:32 UTC+1, Jason Klotzer wrote:
    On Friday, January 28, 2022 at 4:22:25 AM UTC-6, Thomas Freier wrote:
    Patrick Ndanga schrieb am Donnerstag, 27. Januar 2022 um 23:16:52 UTC+1:
    On Friday, 21 January 2022 at 15:00:23 UTC+1, Thomas Freier wrote:
    Patrick Ndanga schrieb am Mittwoch, 22. Dezember 2021 um 16:55:03 UTC+1:
    Hello everyone,
    I have a Dataset of mri und i want to read Overlays on the respective DICOM pictures in Python, but the Overlays are stored in Pixel Data(7FE0, 0010). Is it possible to do it and how please.
    I try to surch about it, but i could not find anything.

    Thanks in advance.
    Astride
    You need to evaluate Overlay Bit Position (60xx,0102) it will tell you which of the unused bits in pixel data represents the overlay. The overlay itself is always 1 bit representation.
    There must be a difference between Bits Allocated (0028,0100) eg. 16 to Bits Stored (0028,0101) eg. 12 to have such unused bits in pixel data available.
    Embedded overlays are retired long time ago 2005 or so. I was unable to find such old version of PS3.5.
    Hello,
    thank you for your answer.
    Bits Allocated (0028,0100) and Bits Stored (0028,0101) are really 16 Bits and 12 Bits, but when i try to evaluate the Overlay Bit Position (60xx,0102). I receive a Key Error from Python.
    Hi, just to be sure. You need to replace the xx with the number of overlay. E.g. 6000,0102. If you did this correctly I am afraid I cannot help you further as I am not so fit in Python ;)
    As Thomas stated, you must use the values in group 60xx to determine the structure of the overlay, which can be embedded in the upper pixel bits or as a separate tag in overlay data (60xx,3000).

    While retired, the details are explained here: https://dicom.nema.org/dicom/2013/output/chtml/part03/sect_C.9.html

    If you're having trouble parsing the file in your Python library, I suggest using an OSS `dcmdump` tool (dcmtk, dcm4che, etc) to do some analysis on the metadata before trying to extract the values in your code, verifying the structure meets the
    spec.
    Bits Allocated (0028,0100) and Bits Stored (0028,0101) are 16 Bits and 12 for the image but for the Overlay, Bits Allocated (0028,0100) and Bits Stored (0028,0101) are equal ( 8 Bits ) and the High Bit of the overlay is 7. It doesn't work when i call
    the element of group 6000. The row and the columb of the Overlay dataset are 0. I receive the following error now:
    "Unable to convert the overlay data as the following required elements are missing from the dataset: OverlayData, OverlayBitsAllocated, OverlayRows, OverlayColumns"
    It definitely seems like something is messed up with this overlay definition. Did this instance go through de-id or some other processing?

    1) You normally shouldn't have an 8-bit overlay (overlay bits stored), unless the creator was trying to indicate color? Most I've seen are 1-bit -- basically indicating pixel on/off.
    2) If you don't have OverlayData (60xx,3000) defined, then the overlay data is typically represented in the upper bits of the PixelData (7FE0,0010), but BitsStored = 8 doesn't make sense in this case, since you only have 4 bits remaining (16-12).

    If you're really interested in rendering this overlay, I'd check what's in the bits in the bits allocated - bits stored region. If they are anything but 0, then there's a chance you have data there.

    Any chance you can provide a `dcmdump` of the data (with PHI removed)? Knowing the vendor might also help understand the definition (DICOM conformance statement for the vendor might give details on how the overlay is defined).
    thank you, i don't have enough Information about the definition of the Overlay.. I personally think that the Overlays do not have the necessary Informations (because Pixel Data OB: b'\x00\x00\x00\x00'). If i receive more Information I will come back
    again. :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)