Include PX modality (panoramic x-ray)

Issue #678 resolved
David Platten created an issue

Our new panoramic dental system sends cephalometric images as DX which OpenREM is able to use. It sends panoramic images as PX, which OpenREM currently ignores. However, examining the DICOM tags these files have the same structure as the system's DX images, so OpenREM would have no trouble displaying them. The question is: where should they be displayed (I think in "Radiographic"), and also whether there are specific "panoramic" fields to look for.

Comments (23)

  1. David Platten reporter

    The user-defined modality feature can be easily extended to enable PX objects to be labelled as DX. They then appear in the DX tab.

  2. David Platten reporter

    Added PX (panoramic x-ray) modilty to list of modalities that can be changed by the user. This will enable dental panoramic data to be included in the radiographic views. Refs issue #678

    → <<cset 64ee77fa35d9>>

  3. David Platten reporter

    Need to:

    • add a PX test file
    • write a test which imports the above test file and updates the modality to DX
    • update the documentation
    • update the changes file

  4. David Platten reporter

    Added PX test file and test for correct import of the basic data. No tests of user-defined modality yet. Refs issue 678

    → <<cset a908ec039b55>>

  5. David Platten reporter

    Added PX test file to test for change of user-defined modality for PX studies. Also updated changes file. Refs issue 678

    → <<cset 2c41f6568968>>

  6. David Platten reporter

    Updated documentation to reflect ability to set a user-defined modality for PX systems. Doc changes only [skip ci]. Refs issue #678 (I remembered the has this time...)

    → <<cset 9e263757ff89>>

  7. David Platten reporter

    The Orthanc configuration file in the OpenREM Docker repository (https://bitbucket.org/openrem/docker/src/develop/orthanc/openrem_orthanc_config_docker.lua) will need updating so that PX modalities are stored:

    Line 94

    if (mod ~= 'SR') and (mod ~= 'CT') and (mod ~= 'MG') and (mod ~= 'CR') and (mod ~= 'DX') then

    to:

    if (mod ~= 'SR') and (mod ~= 'CT') and (mod ~= 'MG') and (mod ~= 'CR') and (mod ~= 'DX') and (mod ~= 'PX') then

    Line 209:

    elseif (instance_tags.Modality == 'CR') or (instance_tags.Modality == 'DX') then

    to:

    elseif (instance_tags.Modality == 'CR') or (instance_tags.Modality == 'DX') or (instance_tags.Modality == 'PX') then

  8. David Platten reporter

    @Ed McDonagh I would like to modify qrscu.py so that PX objects are retrieved when the -dx option is chosen with qrscu.py. Are you happy for me to do that?

  9. David Platten reporter

    I’ve made the changes to qrscu.py on my live 0.10.0 system and it works as I expect.

  10. David Platten reporter

    @Ed McDonagh I have implemented the PX user-defined modality on my live system running 0.10.0. When I initially set the user-defined modality the existing PX studies were updated to DX and all was well.

    These objects have:

    • SOP Class UID (0008,0016) of 1.2.840.10008.5.1.4.1.1.1.1
    • Modality (0008,0060) of PX

    I am extracting information from incoming panoramic DICOM image objects, just like I do for radiographic DICOM images. These are sent to the OpenREM DX extractor.

    However, there is a problem. Any new studies do not show up in OpenREM. It turns out that this is because there are no checks in the dx.py extractor to see if there is a user-defined modality set, so the modality of any newly-imported panoramic studies stays as “PX”. I’m not sure how / where to add the checks for a user-defined modality in dx.py. Are you able to help?

  11. Ed McDonagh

    I’d have to look closer to see where the issue comes in - looking at rsdr.py it tries to work out whether the object is RF or DX by the content, and specifically resets to None if the user_defined_modality is dual

    A bit late to be asking this, but why have you gone down the line of using user_defined_modality rather than following the CR modality model, ie anything that is DX or CR or PX is treated as DX?

  12. David Platten reporter

    Added PX modality to the list of modalities that is considered to be Radiographic. I did a global search of the code in or below the remapp folder for the text 'CR', and made appropriate changes to include 'PX'. I haven't made any changes to test_dicom_qr.py or test_charts_dx.py. Refs issue #678

    → <<cset 589f43ff1502>>

  13. David Platten reporter

    Removing PX from the allowed user-defined modality types - there is no need to allow this. Modified the error message if a user does try to change a dis-allowed modality: they are now shown the modality of the system they are trying to change. Refs issue #678

    → <<cset cc6bb9006d7b>>

  14. David Platten reporter

    Updated changes file and added PX to the modalities that Orthanc considers - are there implications for updating the Docker version too? Refs issue #678

    → <<cset 81e8c1a9d2cf>>

  15. Log in to comment