Potential issue regarding patient data modification

I would like to report a potential issue regarding patient data modification.

When using Docker version 26.1.0, modifying the PatientID in Orthanc works as expected. However, after upgrading to Docker 26.4.0, attempting to change the PatientID no longer works.

The same workflow and configuration were used in both versions, and the issue appears consistently in Docker 26.4.0.

Regards, Iulia

Hi,

Why don’t you share your workflow ? Don’t you think sharing symptoms helps in producing a diagnostic :wink: ?

version: “3.9”
services:
orthanc-main:
image: orthancteam/orthanc:26.4.1
depends_on:

  • orthanc-index
    restart: unless-stopped
    shm_size: “1g”
    ports:
  • “4242:4242”
  • “8042:8042”
    volumes:
  • /mnt/orthanc/orthancstorage:/var/lib/orthanc/db
    environment:
    TZ: “Europe/Nicosia”
    ORTHANC__POSTGRESQL__HOST: “orthanc-index”
    ORTHANC__POSTGRESQL__PORT: 5432
    ORTHANC__POSTGRESQL__DATABASE: “postgres”
    ORTHANC__POSTGRESQL__USERNAME: “postgres”
    ORTHANC__POSTGRESQL__PASSWORD: “xxx”
    ORTHANC__POSTGRESQL__ENABLEINDEX: “true”
    ORTHANC__POSTGRESQL__ENABLESTORAGE: “false”
  GDCM_PLUGIN_ENABLED: |
   { 
     "Gdcm" : {
        "Enable": true,
         "RestrictTransferSyntaxes" : [
              "1.2.840.10008.1.2.4.90",   
              "1.2.840.10008.1.2.4.91",   
              "1.2.840.10008.1.2.4.92",   
              "1.2.840.10008.1.2.4.93" 
             ]
      }
    }  
  DICOM_WEB_PLUGIN_ENABLED: |
    {
      "DicomWeb": {
        "Enable": true,
        "PublicRoot": "/orthanc/dicom-web/",
        "TranscodeCompressedImages": false
      }
    }
  TRANSFERS_PLUGIN_ENABLED: |
    {
    "Enable": true
    }
  STONE_WEB_VIEWER_PLUGIN_ENABLED: "true"
  OHIF_PLUGIN_ENABLED: "true"
  ORTHANC_JSON: |
    {
      "Name": "Main Dicom Server Dkorthosurgery",
      "StandardConfigurations": [
        "stone-webviewer",
        "orthanc-explorer-2",
        "ohif"
      ],
      "BuiltinDecoderTranscoderOrder" : "After",
      "OrthancExplorer2": {
        "Enable": true,
        "IsDefaultOrthancUI": true,
        "ShowOrthancName": true,
        "EnableOpenInOhifViewer3": true,
        "OhifViewer3PublicRoot": "/orthanc/ohif/",
        "UiOptions": {
          "DateFormat": "ddMMyyyy",
          "StudyListColumns": [
            "AccessionNumber",
            "PatientName",
            "PatientBirthDate",
            "PatientID",
            "StudyDescription",
            "StudyDate",
            "modalities",
            "seriesCount"
             ]
           }
         },
      "RegisteredUsers": {
        "dkortho": "dkortho123"
      },
      "OrthancPeers": {
        "orthancmainserver": ["http://192.168.1.51:8044", "dkortho", "xxx"]
      },
      "DicomModalities": {
        "Marioss-MacBook-": ["Marioss-MacBook-", "192.168.1.203", 11112],
        "Kyriakosmac" :[ "Kyriakosmac", "192.168.1.115", 11151 ],
        "Kyriakosmac" :[ "Kyriakosmac", "192.168.178.138", 11151 ],
        "Kyriakosmac2" :[ "Kyriakosmac2", "192.168.5.92", 11152 ],
        "Macdkortho" :[ "Macdkortho", "192.168.1.121", 11147 ],
        "MacbookA":[ "HOROSAO", "192.168.1.171", 11127 ],
        "WEASISMAC":[ "WEASISMAC", "192.168.178.138", 11141 ],
        "WEASISM":[ "WEASISM", "127.0.0.1", 11113]
      },
      "StoneWebViewer": {
        "DateFormat": "DD/MM/YYYY",
        "ShowNotForDiagnosticUsageDisclaimer": false,
        "ShowInfoPanelAtStartup": "Never"
      },
      "OHIF": {
        "DataSource": "dicom-web"
      }
    }

orthanc-readonly:
image: orthancteam/orthanc:26.4.1
depends_on:

  • orthanc-index
    restart: unless-stopped
    shm_size: “1g”
    ports:
  • “4243:4242”
  • “8043:8042”
    volumes:
  • /mnt/orthanc/orthancstorage:/var/lib/orthanc/db
    environment:
    DICOM_WEB_PLUGIN_ENABLED: |
    {
    “DicomWeb”: {
    “Enable”: true,
    “PublicRoot”: “/orthanc/dicom-web/”
    }
    }
    TZ: “Europe/Nicosia”
    STONE_WEB_VIEWER_PLUGIN_ENABLED: “true”
    ORTHANC__POSTGRESQL__HOST: “orthanc-index”
    ORTHANC__POSTGRESQL__PORT: 5432
    ORTHANC__POSTGRESQL__DATABASE: “postgres”
    ORTHANC__POSTGRESQL__USERNAME: “postgres”
    ORTHANC__POSTGRESQL__PASSWORD: “xxx”
    ORTHANC__POSTGRESQL__ENABLEINDEX: “true”
    ORTHANC__POSTGRESQL__ENABLESTORAGE: “false”
    ORTHANC_JSON: |
    {
    “Name”: “Orthanc Read-Only Instance”,
    “ReadOnly”: true,
    “AuthenticationEnabled”: false,
    “OrthancExplorerEnabled”: false,
    “StoneWebViewer”: {
    “DateFormat”: “DD/MM/YYYY”,
    “ShowNotForDiagnosticUsageDisclaimer”: false,
    “ShowInfoPanelAtStartup”: “Never”
    },
    “OrthancExplorer2”: {
    “Enable”: false
    }
    }

orthanc-index:
image: postgres:15.3
restart: unless-stopped
shm_size: “1g”
command: [“postgres”, “-c”, “max_connections=300”]
volumes:

  • orthanc-index:/var/lib/postgresql/data
    environment:
    POSTGRES_PASSWORD: “xxx” # Corrected to POSTGRES_PASSWORD
    TZ: “Europe/Nicosia”

volumes:
orthanc-index:
orthanc-index16:

when i try to modify patient id i get error in all options

the logs

W0424 08:28:49.786448 HTTP-34 ResourceFinder.cpp:950] W001: Accessing DICOM tags from storage when accessing study 8633418b-c76ab58e-8c46aca7-5473e006-ca681106: 0008,0060

E0424 08:31:31.376537 HTTP-11 OrthancException.cpp:144] Bad request: Trying to change patient tags in a study. The Patient already exists and has other studies. All the ‘Replace’ tags should match the existing patient main dicom tags and you should specify all Patient MainDicomTags in your query. Try using /patients/../modify instead to modify the patient. Missing tag in the ‘Replace’ tags: 0010,0040

E0424 08:31:47.097271 HTTP-10 OrthancException.cpp:144] Bad request: Trying to change patient tags in a study. The Patient already exists and has other studies. All the ‘Replace’ tags should match the existing patient main dicom tags and you should specify all Patient MainDicomTags in your query. Try using /patients/../modify instead to modify the patient. Missing tag in the ‘Replace’ tags: 0010,0040

i check it also in 26.4.2

in image 26.1.0 everything works fine. in newer versions changing patient id i have this error, reversing docker version everything ok.

many thanks,

kyriakos

I have got the same problem

Hi,

This should be fixed in this commit in OE2: fix PatientSex missing when modifying patient in a study · orthanc-server/orthanc-explorer-2@e5da46b · GitHub

Could you re-test it tomorrow once the mainline binaries are ready ?

Thanks,

Alain.

Hello, my current problem is that when using the API call to modify the patient ID, such a problem will occur. I don’t think it has anything to do with explorer, because this problem does not exist on the older Orthanc. However, after a recent update(25.1.1), I found that modifying the patient ID alone will cause such an error. Do I need to change the interface to modify it in the same way as the prompt?

Then, please share full info about what you experience (existing values of PatientName, PatientBirthDate, PatientSex and PatientID for each study before modification) + the payload of your modification.
(of course, don’t forget to pseudonymize the PatientName and PatientID)

The rule is: if you modify the PatientID of a STUDY, you must also provide all PatientTags and these tags must match ALL PatientTags from the Patient whose id is PatientID. This has been enforced a few versions ago.