{"id":30256377,"url":"https://github.com/dbouget/neuro_dicom_parser","last_synced_at":"2025-08-15T15:34:46.953Z","repository":{"id":308892568,"uuid":"1032578988","full_name":"dbouget/neuro_dicom_parser","owner":"dbouget","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-08T13:06:22.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-08T15:05:31.926Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbouget.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null}},"created_at":"2025-08-05T14:07:21.000Z","updated_at":"2025-08-08T13:06:26.000Z","dependencies_parsed_at":"2025-08-08T15:05:38.674Z","dependency_job_id":"2a6a7aac-da17-49c1-bcfa-e6c2dad0798d","html_url":"https://github.com/dbouget/neuro_dicom_parser","commit_stats":null,"previous_names":["dbouget/neuro_dicom_parser"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dbouget/neuro_dicom_parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbouget%2Fneuro_dicom_parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbouget%2Fneuro_dicom_parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbouget%2Fneuro_dicom_parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbouget%2Fneuro_dicom_parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbouget","download_url":"https://codeload.github.com/dbouget/neuro_dicom_parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbouget%2Fneuro_dicom_parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270587481,"owners_count":24611572,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-08-15T15:34:45.201Z","updated_at":"2025-08-15T15:34:46.922Z","avatar_url":"https://github.com/dbouget.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Utility tool for DICOM folder conversion to Nifti\n\nCode for processing a patient DICOM folder retrieved from the PACS system for a patient referred to a neuroradiology\nor neurosurgery department. All DICOM acquisitions are converted to nifti, the corresponding MR sequences are \nidentified for each scan, and then a subset of four MR scans (i.e., T1w, T1w-CE, T2, FLAIR) is isolated for further\nprocessing.\n\n## [Installation](https://github.com/dbouget/neuro_dicom_parser#installation)\n\n```\npip install git+https://github.com/dbouget/neuro_dicom_parser.git\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n## [Getting started](https://github.com/dbouget/neuro_dicom_parser#getting-started)\n\u003c/summary\u003e\n\nDifferent use-cases are handled based on the content to convert and the way files are stored locally. More detailed \ndescriptions of folder structures for each use-case are provided below. The variables are:  \n* -i (input_folder): path to the folder to process.\n* -c (input_category): granularity level of the input folder content within [cohort_patient, single_patient, single_timepoint, single_image]\n* -s (input_structure): indication of the way the DICOM folders are structured on disk, to select from [sectra_cdmedia, manual]\n* -o (output_folder): path to the folder where the results will be stored\n* -m (conversion_method): method to use for the actual DICOM to Nifti conversion, to select from [dcm2niix, sitk]\n* -v (verbose): amount of details to be printed in the console, to select from [debug, info, warning, error]\n* -x (override): if content already existing should be removed and produced again\n\n### [CLI](https://github.com/dbouget/neuro_dicom_parser#cli)\n\nIf the input is a folder for a single patient in SECTRA CD Media structure\n```\nneurodicomparser -i \"/path/to/patient_folder\" -c single_patient -s sectra_cdmedia -o \"/path/to/destination_folder\" (-v debug)\n```\n\nIf the input is a folder for multiple patients with manual structure\n```\nneurodicomparser -i \"/path/to/cohort_folder\" -c cohort_patient -s manual -o \"/path/to/destination_folder\" (-v debug)\n```\n\n### [Python module](https://github.com/dbouget/neuro_dicom_parser#python-module)\n\n```\nfrom neurodicomparser.run import run_sectra_cdmedia, run_manual_structure\nrun_sectra_cdmedia(input_folder=\"/path/to/single_input_folder\", input_category=single_patient, output_folder=\"/path/to/destination_folder\")\nrun_manual_structure(input_folder=\"/path/to/cohort_input_folder\", input_category=cohort_patient, output_folder=\"/path/to/destination_folder\")\n```\n\n### [Docker CLI](https://github.com/dbouget/neuro_dicom_parser#docker-cli)\nFor launching the Docker image as a CLI, run the following, after replacing all \u003cvariables\u003e with actual paths matching the files on your machine:  \n\n```\ndocker run -v \u003c/path/to/data\u003e:/workspace/resources -t -i --network=host --ipc=host --user $(id -u) dbouget/neurodicomparser:v1.0-py310-cpu -c /workspace/resources/\u003cpatent1\u003e -c single_patient -s manual -o /workspace/resources/\u003coutput_dir_name\u003e -m dcm2niix -v debug\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n## [Expected folder structure](https://github.com/dbouget/neuro_dicom_parser#expected-folder-structure)\n\u003c/summary\u003e\nFor now, only two folder structures are supported: either the raw SECTRA CD Media, or a custom manually-defined\nstructure. More options might be available in the future depending on use-cases.\n\n### [SECTRA CD Media](https://github.com/dbouget/neuro_dicom_parser#sectra-cd-media)\nWhen working with DICOM folders extracted from the PACS system as SECTRA CD Media, the following structure is expected\non disk.\n\n    └── path/to/sectra-cohort/\n        └── patient1/\n            ├── CDViewer.zip\n            ├── run_cdviewer.eze\n            ├── DICOMDIR\n            ├── [...]\n            ├── DICOM/\n            │   ├── AB366595/\n            │   │   ├── 00002E47/\n            │   │   │   ├── ACFB2931/\n            │   │   │   │   ├── 0000C3D4/\n            │   │   │   │   │   ├── *.dcm\n            │   │   │   │   │   ├── [...]\n            │   │   │   │   │   ├── *.dcm\n            │   │   │   │   ├── 002033D4/\n            │   │   │   │   ├── [...]\n            │   │   │   │   └── 1E00C354/\n\n### [Manual](https://github.com/dbouget/neuro_dicom_parser#manual)\nWhen working with DICOM folders organized manually, the following structure is expected on disk.\n\n    └── path/to/manual-cohort/\n        └── patient1/\n            ├── investigation1/\n            │   ├── dicom/\n            │   │   ├── acquisition1/\n            │   │   │   ├── *.dcm\n            │   │   │   ├── [...]\n            │   │   │   └── *.dcm\n            │   │   ├── acquisition2/\n            │   │   │   ├── *.dcm\n            │   │   │   ├── [...]\n            │   │   │   └── *.dcm\n            └── investigation2/\n            │   ├── dicom/\n            │   │   ├── acquisition1/\n            │   │   │   ├── *.dcm\n            │   │   │   ├── [...]\n            │   │   │   └── *.dcm\n            │   │   ├── acquisition2/\n            │   │   │   ├── *.dcm\n            │   │   │   ├── [...]\n            │   │   │   └── *.dcm\n            │   │   ├── [...]\n            │   │   ├── acquisitionX/\n            │   │   │   ├── *.dcm\n            │   │   │   ├── [...]\n            │   │   │   └── *.dcm\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbouget%2Fneuro_dicom_parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbouget%2Fneuro_dicom_parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbouget%2Fneuro_dicom_parser/lists"}