{"id":34061210,"url":"https://github.com/hoenikkerperez/dcm2dir","last_synced_at":"2026-04-06T09:01:49.566Z","repository":{"id":284323595,"uuid":"954556279","full_name":"HoenikkerPerez/dcm2dir","owner":"HoenikkerPerez","description":"Dicom Organizer recursively scans a given root folder for DICOM files, extracts relevant metadata, and organizes the files into a structured output folder.","archived":false,"fork":false,"pushed_at":"2026-03-06T09:36:42.000Z","size":68,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-23T00:41:14.281Z","etag":null,"topics":["dcm","dicom","dicom-files","dicom-images","mri","mri-images","neuroimaging","neuroscience","research"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/dcm2dir/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HoenikkerPerez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-25T09:07:37.000Z","updated_at":"2025-04-02T19:27:51.000Z","dependencies_parsed_at":"2025-03-25T10:38:55.870Z","dependency_job_id":null,"html_url":"https://github.com/HoenikkerPerez/dcm2dir","commit_stats":null,"previous_names":["hoenikkerperez/dcm2dir"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HoenikkerPerez/dcm2dir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoenikkerPerez%2Fdcm2dir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoenikkerPerez%2Fdcm2dir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoenikkerPerez%2Fdcm2dir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoenikkerPerez%2Fdcm2dir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HoenikkerPerez","download_url":"https://codeload.github.com/HoenikkerPerez/dcm2dir/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HoenikkerPerez%2Fdcm2dir/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31466228,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dcm","dicom","dicom-files","dicom-images","mri","mri-images","neuroimaging","neuroscience","research"],"created_at":"2025-12-14T04:44:02.676Z","updated_at":"2026-04-06T09:01:49.561Z","avatar_url":"https://github.com/HoenikkerPerez.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n![example workflow](https://github.com/HoenikkerPerez/dcm2dir/actions/workflows/pylint_pytest.yml/badge.svg)\n\n# dcm2dir\nDcm2dir recursively scans a given root folder for DICOM files, extracts relevant metadata, and organizes the files into a structured output folder.\n\n\n## Description\nThis Python script recursively scans a given root folder for DICOM files, extracts relevant metadata, and organizes the files into a structured output folder. The folder structure is customizable using placeholders for different DICOM tags. Additionally, a CSV report is generated with details of all processed DICOM series. The tool also supports anonymizing DICOM files with a default anonymization configuration and allows providing custom anonymization actions.\n\n\n## Features\n- Recursively scans and organizes DICOM files.\n- Supports customizable folder structures.\n- Utilizes multi-threading for faster processing.\n- Generates a CSV report listing all series metadata.\n- Handles missing DICOM tags gracefully.\n- **Anonymizes DICOM files** based on a default anonymization configuration.\n\n## Installation\n\n### From PyPI\nInstall the package directly from PyPI using `pip`:\n```sh\npip install dcm2dir\n```\n\n### From Source Code\nClone the repository and install the dependencies manually:\n```sh\ngit clone https://github.com/HoenikkerPerez/dcm2dir.git\ncd dcm2dir\npip install -e .\n```\n\n## Usage\nRun dcm2dir with the following command-line arguments:\n\n```sh\ndcm2dir -i \u003cinput_folder\u003e -o \u003coutput_folder\u003e [-r \u003ccsv_report\u003e] [-f \u003cfolder_structure\u003e] [-a]\n```\n\n### Arguments:\n- `-i, --input` (required): Path to the root folder containing DICOM files.\n- `-o, --output` (required): Path to the destination folder where organized files will be stored.\n- `-r, --report` (optional): Path to save the generated CSV report.\n- `-f, --folder-structure` (optional): Custom folder structure using placeholders. See \"Folder Structure\" section.\n- `-a, --anonymize` (optional): Enable anonymization of DICOMs.\n- `-c, --custom_anon_config ` (optional): Path to the JSON file specifying anonymization rules.\n\n### Example Usage:\n```sh\ndcm2dir -i ./dicoms -o ./organized -r report.csv -f \"%i/%x_%t/%s_%d\"\n```\n\n\n### Folder Structure:\nThe folder structure can be customized using placeholders for different DICOM tags. The following placeholders are available:\n- `%a`: Antenna (coil) name\n- `%b`: Basename\n- `%c`: Comments\n- `%d`: Description\n- `%e`: Echo number\n- `%f`: Folder name\n- `%g`: Accession number\n- `%i`: ID of patient\n- `%j`: SeriesInstanceUID\n- `%k`: StudyInstanceUID\n- `%m`: Manufacturer\n- `%n`: Name of patient\n- `%o`: MediaObjectInstanceUID\n- `%p`: Protocol\n- `%r`: Instance number\n- `%s`: Series number\n- `%t`: Exam date\n- `%u`: Acquisition number\n- `%v`: Vendor\n- `%x`: Study ID\n- `%z`: Sequence name\n\nIf `-f` is not provided, the default structure is used:\n```\n\"-f %i/%x_%t/%s_%d\"\n```\nwhich corresponds to:\n```\n/path/to/output/\n├── PatientID1/\n│   ├── StudyID1_20250101/\n│   │   ├── SeriesNumber1_SeriesDescription/\n│   │   │   └── file1.dcm\n│   │   │   └── file2.dcm\n├── PatientID2/\n│   ├── StudyID2_20250102/\n│   │   ├── SeriesNumber2_SeriesDescription/\n│   │   │   └── file3.dcm\n```\n\n## Anonymization\nThe `-a` or `--anonymize` flag enables anonymization of DICOM files. When this flag is provided, the tool uses a default anonymization configuration to process the DICOM files. The configuration specifies how to handle sensitive DICOM tags, such as removing or replacing their values.\n\n### Default Anonymization Configuration\nThe default anonymization configuration is embedded in the tool and includes rules for handling sensitive DICOM tags. For example:\n- Replace patient names and IDs with anonymized values.\n- Remove sensitive metadata such as institution names and addresses.\n- Retain essential metadata such as study and series UIDs.\n\nFor a detailed list of anonymization actions for specific DICOM tags, see the [Anonymization Actions Table](#anonymization-actions-table).\n\n### Custom Anonymization Configuration\nProviding a custom anonymization configuration (\"-c \u003ccustom_anon_file.json\u003e\") allows you to specify how to handle sensitive DICOM tags. The configuration is a JSON file that maps DICOM tags to anonymization actions. \nFor example:\n```json\n{\n    \"(0010,0010)\": \"C:ANONYMOUS^ANONYMOUS\",\n    \"(0010,0020)\": \"C:ANONYMOUS_ID\",\n    \"(0008,0020)\": \"K\",\n    \"(0008,0021)\": \"K\",\n    \"(0008,0022)\": \"K\",\n    \"(0008,0023)\": \"Z\",\n    \"(0008,0024)\": \"X\",\n    \"(0008,0025)\": \"X\"\n}\n```\n**Legend for Actions**:\n- **U**: Keep the tag but ensure it is unique.\n- **X**: Remove the tag entirely.\n- **Z**: Replace the tag value with anonymized data.\n- **D**: Clean the tag value (e.g., remove sensitive information but keep the tag).\n- **C:VALUE**: Replace the tag value with a custom value.\n\n### Example Usage with DEFAULT anonymization:\n```sh\ndcm2dir -i ./dicoms -o ./organized -r report.csv -f \"%i/%x_%t/%s_%d\" -a\n```\n### Example Usage with CUSTOM anonymization:\n```sh\ndcm2dir -i ./dicoms -o ./organized -r report.csv -f \"%i/%x_%t/%s_%d\" -a -c custom_anonymization_file.json\n```\n\nThis command will anonymize the DICOM files and organize them into the specified folder structure.\n\n## Output\n\nThe tool organizes DICOM files into the specified output folder following the given structure. A CSV report is saved, containing the following columns:\n- SubjectID\n- ExamDate\n- ExamID\n- SeriesID\n- SeriesDescription\n\n## Notes\n- Non-alphanumeric characters in metadata are replaced with underscores.\n- If a DICOM tag is missing, a default placeholder `na` is used.\n- The script uses multi-threading for better performance.\n- Anonymization ensures sensitive patient data is removed or replaced.\n\n## License\nThis project is open-source and available under the MIT License.\n\n## Anonymization Actions Table \n\nThe following table lists the anonymization actions for specific DICOM tags:\n\n| **Tag**         | **Description**                     | **Action**       |\n|------------------|-------------------------------------|------------------|\n|\t`(0002-0003)`\t|\tMediaStorageSOPInstanceUID\t|\tU\t|\n|\t`(0008-0014)`\t|\tInstanceCreatorUID\t|\tX\t|\n|\t`(0008-0015)`\t|\tInstanceCoercionDateTime\t|\tX\t|\n|\t`(0008-0018)`\t|\tSOPInstanceUID\t|\tU\t|\n|\t`(0008-0020)`\t|\tStudyDate\t|\tK\t|\n|\t`(0008-0021)`\t|\tSeriesDate\t|\tK\t|\n|\t`(0008-0022)`\t|\tAcquisitionDate\t|\tK\t|\n|\t`(0008-0023)`\t|\tContentDate\t|\tZ\t|\n|\t`(0008-0024)`\t|\tOverlayDate\t|\tX\t|\n|\t`(0008-0025)`\t|\tCurveDate\t|\tX\t|\n|\t`(0008-0050)`\t|\tAccessionNumber\t|\tZ\t|\n|\t`(0008-0054)`\t|\tRetrieveAETitle\t|\tX\t|\n|\t`(0008-0058)`\t|\tFailedSOPInstanceUIDList\t|\tU\t|\n|\t`(0008-0080)`\t|\tInstitutionName\t|\tZ\t|\n|\t`(0008-0081)`\t|\tInstitutionAddress\t|\tX\t|\n|\t`(0008-0090)`\t|\tReferringPhysicianName\t|\tZ\t|\n|\t`(0008-0092)`\t|\tReferringPhysicianAddress\t|\tX\t|\n|\t`(0008-0094)`\t|\tReferringPhysicianTelephoneNumbers\t|\tX\t|\n|\t`(0008-0096)`\t|\tReferringPhysicianIdentificationSequence\t|\tX\t|\n|\t`(0008-0201)`\t|\tTimezoneOffsetFromUTC\t|\tX\t|\n|\t`(0008-1032)`\t|\tProcedureCodeSequence\t|\tX\t|\n|\t`(0008-1040)`\t|\tInstitutionalDepartmentName\t|\tX\t|\n|\t`(0008-1048)`\t|\tPhysiciansOfRecord\t|\tX\t|\n|\t`(0008-1049)`\t|\tPhysiciansOfRecordIdentificationSequence\t|\tX\t|\n|\t`(0008-1050)`\t|\tPerformingPhysicianName\t|\tX\t|\n|\t`(0008-1052)`\t|\tPerformingPhysicianIdentificationSequence\t|\tX\t|\n|\t`(0008-1060)`\t|\tNameOfPhysiciansReadingStudy\t|\tX\t|\n|\t`(0008-1062)`\t|\tPhysiciansReadingStudyIdentificationSequence\t|\tX\t|\n|\t`(0008-1070)`\t|\tOperatorsName\t|\tD\t|\n|\t`(0008-1072)`\t|\tOperatorIdentificationSequence\t|\tD\t|\n|\t`(0008-1080)`\t|\tAdmittingDiagnosesDescription\t|\tX\t|\n|\t`(0008-1084)`\t|\tAdmittingDiagnosesCodeSequence\t|\tX\t|\n|\t`(0008-1090)`\t|\tManufacturerModelName\t|\tX\t|\n|\t`(0008-1110)`\t|\tReferencedStudySequence\t|\tX\t|\n|\t`(0008-1120)`\t|\tReferencedPatientSequence\t|\tX\t|\n|\t`(0008-1140)`\t|\tReferencedImageSequence\t|\tX\t|\n|\t`(0008-1155)`\t|\tReferencedSOPInstanceUID\t|\tU\t|\n|\t`(0008-1195)`\t|\tTransactionUID\t|\tU\t|\n|\t`(0008-2111)`\t|\tDerivationDescription\t|\tX\t|\n|\t`(0008-3010)`\t|\tIrradiationEventUID\t|\tU\t|\n|\t`(0008-4000)`\t|\tIdentifyingComments\t|\tX\t|\n|\t`(0010-0010)`\t|\tPatientName\t|\tC:ANONYMOUS^ANONYMOUS\t|\n|\t`(0010-0020)`\t|\tPatientID\t|\tC:ANONYMOUS_ID\t|\n|\t`(0010-0021)`\t|\tIssuerOfPatientID\t|\tX\t|\n|\t`(0010-0030)`\t|\tPatientBirthDate\t|\tZ\t|\n|\t`(0010-0032)`\t|\tPatientBirthTime\t|\tX\t|\n|\t`(0010-0050)`\t|\tPatientInsurancePlanCodeSequence\t|\tX\t|\n|\t`(0010-0101)`\t|\tPatientPrimaryLanguageCodeSequence\t|\tX\t|\n|\t`(0010-0102)`\t|\tPatientPrimaryLanguageModifierCodeSequence\t|\tX\t|\n|\t`(0010-1000)`\t|\tOtherPatientIDs\t|\tX\t|\n|\t`(0010-1001)`\t|\tOtherPatientNames\t|\tX\t|\n|\t`(0010-1002)`\t|\tOtherPatientIDsSequence\t|\tX\t|\n|\t`(0010-1005)`\t|\tPatientBirthName\t|\tX\t|\n|\t`(0010-1020)`\t|\tPatientSize\t|\tX\t|\n|\t`(0010-1030)`\t|\tPatientWeight\t|\tX\t|\n|\t`(0010-1040)`\t|\tPatientAddress\t|\tX\t|\n|\t`(0010-1050)`\t|\tInsurancePlanIdentification\t|\tX\t|\n|\t`(0010-1060)`\t|\tPatientMotherBirthName\t|\tX\t|\n|\t`(0010-1080)`\t|\tMilitaryRank\t|\tX\t|\n|\t`(0010-1081)`\t|\tBranchOfService\t|\tX\t|\n|\t`(0010-1090)`\t|\tMedicalRecordLocator\t|\tX\t|\n|\t`(0010-2000)`\t|\tMedicalAlerts\t|\tX\t|\n|\t`(0010-2110)`\t|\tAllergies\t|\tX\t|\n|\t`(0010-2150)`\t|\tCountryOfResidence\t|\tX\t|\n|\t`(0010-2152)`\t|\tRegionOfResidence\t|\tX\t|\n|\t`(0010-2154)`\t|\tPatientTelephoneNumbers\t|\tX\t|\n|\t`(0010-2160)`\t|\tEthnicGroup\t|\tX\t|\n|\t`(0010-2180)`\t|\tOccupation\t|\tX\t|\n|\t`(0010-21A0)`\t|\tSmokingStatus\t|\tX\t|\n|\t`(0010-21B0)`\t|\tAdditionalPatientHistory\t|\tX\t|\n|\t`(0010-21C0)`\t|\tPregnancyStatus\t|\tX\t|\n|\t`(0010-21D0)`\t|\tLastMenstrualDate\t|\tX\t|\n|\t`(0010-21F0)`\t|\tPatientReligiousPreference\t|\tX\t|\n|\t`(0010-2203)`\t|\tPatientSexNeutered\t|\tX\t|\n|\t`(0010-2297)`\t|\tResponsiblePerson\t|\tX\t|\n|\t`(0010-2299)`\t|\tResponsibleOrganization\t|\tX\t|\n|\t`(0010-4000)`\t|\tPatientComments\t|\tX\t|\n|\t`(0012-0010)`\t|\tClinicalTrialSponsorName\t|\tD\t|\n|\t`(0012-0020)`\t|\tClinicalTrialProtocolID\t|\tD\t|\n|\t`(0012-0021)`\t|\tClinicalTrialProtocolName\t|\tZ\t|\n|\t`(0012-0030)`\t|\tClinicalTrialSiteID\t|\tZ\t|\n|\t`(0012-0031)`\t|\tClinicalTrialSiteName\t|\tZ\t|\n|\t`(0012-0040)`\t|\tClinicalTrialSubjectID\t|\tD\t|\n|\t`(0012-0042)`\t|\tClinicalTrialSubjectReadingID\t|\tD\t|\n|\t`(0012-0050)`\t|\tClinicalTrialTimePointID\t|\tZ\t|\n|\t`(0012-0051)`\t|\tClinicalTrialTimePointDescription\t|\tX\t|\n|\t`(0012-0060)`\t|\tClinicalTrialCoordinatingCenterName\t|\tZ\t|\n|\t`(0018-1002)`\t|\tDeviceUID\t|\tU\t|\n|\t`(0018-1004)`\t|\tPlateID\t|\tX\t|\n|\t`(0018-1005)`\t|\tGeneratorID\t|\tX\t|\n|\t`(0018-1007)`\t|\tCassetteID\t|\tX\t|\n|\t`(0018-1008)`\t|\tGantryID\t|\tX\t|\n|\t`(0018-1012)`\t|\tDateOfSecondaryCapture\t|\tX\t|\n|\t`(0018-1014)`\t|\tTimeOfSecondaryCapture\t|\tX\t|\n|\t`(0018-1020)`\t|\tSoftwareVersions\t|\tX\t|\n|\t`(0018-1042)`\t|\tContrastBolusStartTime\t|\tX\t|\n|\t`(0018-1043)`\t|\tContrastBolusStopTime\t|\tX\t|\n|\t`(0018-1072)`\t|\tRadiopharmaceuticalStartTime\t|\tX\t|\n|\t`(0018-1073)`\t|\tRadiopharmaceuticalStopTime\t|\tX\t|\n|\t`(0018-1200)`\t|\tDateOfLastCalibration\t|\tX\t|\n|\t`(0018-1201)`\t|\tTimeOfLastCalibration\t|\tX\t|\n|\t`(0018-1400)`\t|\tAcquisitionDeviceProcessingDescription\t|\tD\t|\n|\t`(0018-4000)`\t|\tAcquisitionComments\t|\tX\t|\n|\t`(0018-700A)`\t|\tDetectorID\t|\tX\t|\n|\t`(0018-700C)`\t|\tDateOfLastDetectorCalibration\t|\tX\t|\n|\t`(0018-700E)`\t|\tTimeOfLastDetectorCalibration\t|\tX\t|\n|\t`(0018-9424)`\t|\tAcquisitionProtocolDescription\t|\tX\t|\n|\t`(0018-A003)`\t|\tContributionDescription\t|\tX\t|\n|\t`(0020-000D)`\t|\tStudyInstanceUID\t|\tU\t|\n|\t`(0020-000E)`\t|\tSeriesInstanceUID\t|\tU\t|\n|\t`(0020-0010)`\t|\tStudyID\t|\tC:CUSTOM_EXAM_ID\t|\n|\t`(0020-0052)`\t|\tFrameOfReferenceUID\t|\tU\t|\n|\t`(0020-3401)`\t|\tModifyingDeviceID\t|\tX\t|\n|\t`(0020-3404)`\t|\tModifyingDeviceManufacturer\t|\tX\t|\n|\t`(0020-3406)`\t|\tModifiedImageDescription\t|\tX\t|\n|\t`(0020-4000)`\t|\tImageComments\t|\tX\t|\n|\t`(0020-9158)`\t|\tFrameComments\t|\tX\t|\n|\t`(0020-9161)`\t|\tConcatenationUID\t|\tU\t|\n|\t`(0020-9164)`\t|\tDimensionOrganizationUID\t|\tU\t|\n|\t`(0028-1199)`\t|\tPaletteColorLookupTableUID\t|\tU\t|\n|\t`(0028-1214)`\t|\tLargePaletteColorLookupTableUID\t|\tU\t|\n|\t`(0032-0012)`\t|\tStudyIDIssuer\t|\tX\t|\n|\t`(0032-0032)`\t|\tStudyVerifiedDate\t|\tX\t|\n|\t`(0032-0033)`\t|\tStudyVerifiedTime\t|\tX\t|\n|\t`(0032-0034)`\t|\tStudyReadDate\t|\tX\t|\n|\t`(0032-0035)`\t|\tStudyReadTime\t|\tX\t|\n|\t`(0032-1000)`\t|\tScheduledStudyStartDate\t|\tX\t|\n|\t`(0032-1001)`\t|\tScheduledStudyStartTime\t|\tX\t|\n|\t`(0032-1010)`\t|\tScheduledStudyStopDate\t|\tX\t|\n|\t`(0032-1011)`\t|\tScheduledStudyStopTime\t|\tX\t|\n|\t`(0032-1020)`\t|\tScheduledStudyLocation\t|\tX\t|\n|\t`(0032-1021)`\t|\tScheduledStudyLocationAETitle\t|\tX\t|\n|\t`(0032-1030)`\t|\tReasonForStudy\t|\tX\t|\n|\t`(0032-1032)`\t|\tRequestingPhysician\t|\tX\t|\n|\t`(0032-1033)`\t|\tRequestingService\t|\tX\t|\n|\t`(0032-1040)`\t|\tStudyArrivalDate\t|\tX\t|\n|\t`(0032-1041)`\t|\tStudyArrivalTime\t|\tX\t|\n|\t`(0032-1050)`\t|\tStudyCompletionDate\t|\tX\t|\n|\t`(0032-1051)`\t|\tStudyCompletionTime\t|\tX\t|\n|\t`(0032-1060)`\t|\tRequestedProcedureDescription\t|\tX\t|\n|\t`(0032-1070)`\t|\tRequestedContrastAgent\t|\tX\t|\n|\t`(0032-4000)`\t|\tStudyComments\t|\tX\t|\n|\t`(0038-0004)`\t|\tReferencedPatientAliasSequence\t|\tX\t|\n|\t`(0038-0010)`\t|\tAdmissionID\t|\tX\t|\n|\t`(0038-0011)`\t|\tIssuerOfAdmissionID\t|\tX\t|\n|\t`(0038-001A)`\t|\tScheduledAdmissionDate\t|\tX\t|\n|\t`(0038-001B)`\t|\tScheduledAdmissionTime\t|\tX\t|\n|\t`(0038-001C)`\t|\tScheduledDischargeDate\t|\tX\t|\n|\t`(0038-001D)`\t|\tScheduledDischargeTime\t|\tX\t|\n|\t`(0038-001E)`\t|\tScheduledPatientInstitutionResidence\t|\tX\t|\n|\t`(0038-0020)`\t|\tAdmittingDate\t|\tX\t|\n|\t`(0038-0021)`\t|\tAdmittingTime\t|\tX\t|\n|\t`(0038-0030)`\t|\tDischargeDate\t|\tX\t|\n|\t`(0038-0032)`\t|\tDischargeTime\t|\tX\t|\n|\t`(0038-0040)`\t|\tDischargeDiagnosisDescription\t|\tX\t|\n|\t`(0038-0050)`\t|\tSpecialNeeds\t|\tX\t|\n|\t`(0038-0060)`\t|\tServiceEpisodeID\t|\tX\t|\n|\t`(0038-0061)`\t|\tIssuerOfServiceEpisodeID\t|\tX\t|\n|\t`(0038-0062)`\t|\tServiceEpisodeDescription\t|\tX\t|\n|\t`(0038-0300)`\t|\tCurrentPatientLocation\t|\tX\t|\n|\t`(0038-0400)`\t|\tPatientInstitutionResidence\t|\tX\t|\n|\t`(0038-0500)`\t|\tPatientState\t|\tX\t|\n|\t`(0038-4000)`\t|\tVisitComments\t|\tX\t|\n|\t`(0040-0001)`\t|\tScheduledStationAETitle\t|\tX\t|\n|\t`(0040-0002)`\t|\tScheduledProcedureStepStartDate\t|\tX\t|\n|\t`(0040-0003)`\t|\tScheduledProcedureStepStartTime\t|\tX\t|\n|\t`(0040-0004)`\t|\tScheduledProcedureStepEndDate\t|\tX\t|\n|\t`(0040-0005)`\t|\tScheduledProcedureStepEndTime\t|\tX\t|\n|\t`(0040-0006)`\t|\tScheduledPerformingPhysicianName\t|\tX\t|\n|\t`(0040-0007)`\t|\tScheduledProcedureStepDescription\t|\tX\t|\n|\t`(0040-0009)`\t|\tScheduledProcedureStepID\t|\tX\t|\n|\t`(0040-000B)`\t|\tScheduledPerformingPhysicianIdentificationSequence\t|\tX\t|\n|\t`(0040-0010)`\t|\tScheduledStationName\t|\tX\t|\n|\t`(0040-0011)`\t|\tScheduledProcedureStepLocation\t|\tX\t|\n|\t`(0040-0012)`\t|\tPreMedication\t|\tX\t|\n|\t`(0040-0241)`\t|\tPerformedStationAETitle\t|\tX\t|\n|\t`(0040-0242)`\t|\tPerformedStationName\t|\tX\t|\n|\t`(0040-0243)`\t|\tPerformedLocation\t|\tX\t|\n|\t`(0040-0244)`\t|\tPerformedProcedureStepStartDate\t|\tX\t|\n|\t`(0040-0245)`\t|\tPerformedProcedureStepStartTime\t|\tX\t|\n|\t`(0040-0250)`\t|\tPerformedProcedureStepEndDate\t|\tX\t|\n|\t`(0040-0251)`\t|\tPerformedProcedureStepEndTime\t|\tX\t|\n|\t`(0040-0253)`\t|\tPerformedProcedureStepID\t|\tX\t|\n|\t`(0040-0254)`\t|\tPerformedProcedureStepDescription\t|\tX\t|\n|\t`(0040-0275)`\t|\tRequestAttributesSequence\t|\tX\t|\n|\t`(0040-0280)`\t|\tCommentsOnThePerformedProcedureStep\t|\tX\t|\n|\t`(0040-0281)`\t|\tPerformedProcedureStepDiscontinuationReasonCodeSequence\t|\tX\t|\n|\t`(0040-0310)`\t|\tCommentsOnRadiationDose\t|\tX\t|\n|\t`(0040-050A)`\t|\tSpecimenAccessionNumber\t|\tX\t|\n|\t`(0040-0555)`\t|\tAcquisitionContextSequence\t|\tX\t|\n|\t`(0040-06FA)`\t|\tSlideIdentifier\t|\tX\t|\n|\t`(0040-1001)`\t|\tRequestedProcedureID\t|\tX\t|\n|\t`(0040-1002)`\t|\tReasonForTheRequestedProcedure\t|\tX\t|\n|\t`(0040-1004)`\t|\tPatientTransportArrangements\t|\tX\t|\n|\t`(0040-1005)`\t|\tRequestedProcedureLocation\t|\tX\t|\n|\t`(0040-1010)`\t|\tNamesOfIntendedRecipientsOfResults\t|\tX\t|\n|\t`(0040-1011)`\t|\tIntendedRecipientsOfResultsIdentificationSequence\t|\tX\t|\n|\t`(0040-1102)`\t|\tPersonAddress\t|\tX\t|\n|\t`(0040-1103)`\t|\tPersonTelephoneNumbers\t|\tX\t|\n|\t`(0040-1400)`\t|\tRequestedProcedureComments\t|\tX\t|\n|\t`(0040-2001)`\t|\tReasonForTheImagingServiceRequest\t|\tX\t|\n|\t`(0040-2004)`\t|\tIssueDateOfImagingServiceRequest\t|\tX\t|\n|\t`(0040-2005)`\t|\tIssueTimeOfImagingServiceRequest\t|\tX\t|\n|\t`(0040-2008)`\t|\tOrderEnteredBy\t|\tX\t|\n|\t`(0040-2009)`\t|\tOrderEntererLocation\t|\tX\t|\n|\t`(0040-2010)`\t|\tOrderCallbackPhoneNumber\t|\tX\t|\n|\t`(0040-2016)`\t|\tPlacerOrderNumberImagingServiceRequest\t|\tZ\t|\n|\t`(0040-2017)`\t|\tFillerOrderNumberImagingServiceRequest\t|\tZ\t|\n|\t`(0040-2400)`\t|\tImagingServiceRequestComments\t|\tX\t|\n|\t`(0040-3001)`\t|\tConfidentialityConstraintOnPatientDataDescription\t|\tX\t|\n|\t`(0040-4023)`\t|\tReferencedGeneralPurposeScheduledProcedureStepTransactionUID\t|\tU\t|\n|\t`(0040-4025)`\t|\tScheduledStationNameCodeSequence\t|\tX\t|\n|\t`(0040-4027)`\t|\tScheduledStationGeographicLocationCodeSequence\t|\tX\t|\n|\t`(0040-4030)`\t|\tPerformedStationGeographicLocationCodeSequence\t|\tX\t|\n|\t`(0040-4034)`\t|\tScheduledHumanPerformersSequence\t|\tX\t|\n|\t`(0040-4035)`\t|\tActualHumanPerformersSequence\t|\tX\t|\n|\t`(0040-4036)`\t|\tHumanPerformerOrganization\t|\tX\t|\n|\t`(0040-4037)`\t|\tHumanPerformerName\t|\tX\t|\n|\t`(0040-A073)`\t|\tVerifyingObserverSequence\t|\tX\t|\n|\t`(0040-A075)`\t|\tVerifyingObserverName\t|\tD\t|\n|\t`(0040-A078)`\t|\tAuthorObserverSequence\t|\tX\t|\n|\t`(0040-A07A)`\t|\tParticipantSequence\t|\tX\t|\n|\t`(0040-A07C)`\t|\tCustodialOrganizationSequence\t|\tX\t|\n|\t`(0040-A088)`\t|\tVerifyingObserverIdentificationCodeSequence\t|\tZ\t|\n|\t`(0040-A122)`\t|\tTime\t|\tX\t|\n|\t`(0040-A123)`\t|\tPersonName\t|\tD\t|\n|\t`(0040-A124)`\t|\tUID\t|\tU\t|\n|\t`(0040-A730)`\t|\tContentSequence\t|\tX\t|\n|\t`(0040-DB06)`\t|\tTemplateVersion\t|\tX\t|\n|\t`(0040-DB07)`\t|\tTemplateLocalVersion\t|\tX\t|\n|\t`(0040-DB0C)`\t|\tTemplateExtensionOrganizationUID\t|\tU\t|\n|\t`(0040-DB0D)`\t|\tTemplateExtensionCreatorUID\t|\tU\t|\n|\t`(0060-3000)`\t|\tHistogramSequence\t|\tX\t|\n|\t`(0070-031A)`\t|\tFiducialUID\t|\tU\t|\n|\t`(0088-0140)`\t|\tStorageMediaFileSetUID\t|\tU\t|\n|\t`(0088-0200)`\t|\tIconImageSequence\t|\tX\t|\n|\t`(0088-0906)`\t|\tTopicSubject\t|\tX\t|\n|\t`(0088-0910)`\t|\tTopicAuthor\t|\tX\t|\n|\t`(0088-0912)`\t|\tTopicKeywords\t|\tX\t|\n|\t`(0400-0100)`\t|\tDigitalSignatureUID\t|\tU\t|\n|\t`(2030-0010)`\t|\tAnnotationPosition\t|\tZ\t|\n|\t`(2030-0020)`\t|\tTextString\t|\tX\t|\n|\t`(2040-0010)`\t|\tReferencedOverlayPlaneSequence\t|\tZ\t|\n|\t`(2040-0011)`\t|\tReferencedOverlayPlaneGroups\t|\tZ\t|\n|\t`(2040-0020)`\t|\tOverlayPixelDataSequence\t|\tZ\t|\n|\t`(2040-0060)`\t|\tOverlayMagnificationType\t|\tZ\t|\n|\t`(2040-0070)`\t|\tOverlaySmoothingType\t|\tZ\t|\n|\t`(2040-0072)`\t|\tOverlayOrImageMagnification\t|\tZ\t|\n|\t`(2040-0074)`\t|\tMagnifyToNumberOfColumns\t|\tZ\t|\n|\t`(2040-0080)`\t|\tOverlayForegroundDensity\t|\tZ\t|\n|\t`(2040-0082)`\t|\tOverlayBackgroundDensity\t|\tZ\t|\n|\t`(2040-0090)`\t|\tOverlayMode\t|\tZ\t|\n|\t`(2040-0100)`\t|\tThresholdDensity\t|\tZ\t|\n|\t`(2040-0500)`\t|\tReferencedImageBoxSequenceRetired\t|\tZ\t|\n|\t`(2100-0020)`\t|\tExecutionStatus\t|\tZ\t|\n|\t`(2100-0030)`\t|\tExecutionStatusInfo\t|\tZ\t|\n|\t`(2100-0040)`\t|\tCreationDate\t|\tX\t|\n|\t`(2100-0050)`\t|\tCreationTime\t|\tX\t|\n|\t`(2100-0070)`\t|\tOriginator\t|\tX\t|\n|\t`(2110-0010)`\t|\tPrinterStatus\t|\tZ\t|\n|\t`(2110-0020)`\t|\tPrinterStatusInfo\t|\tZ\t|\n|\t`(2110-0030)`\t|\tPrinterName\t|\tZ\t|\n|\t`(2110-0099)`\t|\tPrintQueueID\t|\tZ\t|\n|\t`(3006-0024)`\t|\tReferencedFrameOfReferenceUID\t|\tU\t|\n|\t`(3006-00C2)`\t|\tRelatedFrameOfReferenceUID\t|\tU\t|\n|\t`(300A-0013)`\t|\tDoseReferenceUID\t|\tU\t|\n|\t`(4000-0010)`\t|\tArbitrary\t|\tX\t|\n|\t`(4000-4000)`\t|\tTextComments\t|\tX\t|\n|\t`(4008-0042)`\t|\tResultsIDIssuer\t|\tX\t|\n|\t`(4008-0102)`\t|\tInterpretationRecorder\t|\tX\t|\n|\t`(4008-010A)`\t|\tInterpretationTranscriber\t|\tX\t|\n|\t`(4008-010B)`\t|\tInterpretationText\t|\tX\t|\n|\t`(4008-010C)`\t|\tInterpretationAuthor\t|\tX\t|\n|\t`(4008-0111)`\t|\tInterpretationApproverSequence\t|\tX\t|\n|\t`(4008-0114)`\t|\tPhysicianApprovingInterpretation\t|\tX\t|\n|\t`(4008-0115)`\t|\tInterpretationDiagnosisDescription\t|\tX\t|\n|\t`(4008-0118)`\t|\tResultsDistributionListSequence\t|\tX\t|\n|\t`(4008-0119)`\t|\tDistributionName\t|\tX\t|\n|\t`(4008-011A)`\t|\tDistributionAddress\t|\tX\t|\n|\t`(4008-0202)`\t|\tInterpretationIDIssuer\t|\tX\t|\n|\t`(4008-0300)`\t|\tImpressions\t|\tX\t|\n|\t`(4008-4000)`\t|\tResultsComments\t|\tX\t|\n\n\n**Legend for Actions**:\n- **U**: Keep the tag but ensure it is unique.\n- **X**: Remove the tag entirely.\n- **Z**: Replace the tag value with anonymized data.\n- **D**: Clean the tag value (e.g., remove sensitive information but keep the tag).\n- **C:VALUE**: Replace the tag value with a custom value.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoenikkerperez%2Fdcm2dir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhoenikkerperez%2Fdcm2dir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoenikkerperez%2Fdcm2dir/lists"}