{"id":23234966,"url":"https://github.com/googlecloudplatform/healthcare-api-dicomweb-cli","last_synced_at":"2026-03-14T06:08:10.946Z","repository":{"id":47576790,"uuid":"207584723","full_name":"GoogleCloudPlatform/healthcare-api-dicomweb-cli","owner":"GoogleCloudPlatform","description":"A command line tool for interacting with a DICOMweb server","archived":false,"fork":false,"pushed_at":"2024-05-20T22:46:11.000Z","size":126,"stargazers_count":38,"open_issues_count":5,"forks_count":7,"subscribers_count":25,"default_branch":"master","last_synced_at":"2024-12-18T08:40:56.089Z","etag":null,"topics":["dicom","dicomweb","google-cloud","google-cloud-healthcare-api"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GoogleCloudPlatform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null}},"created_at":"2019-09-10T14:41:21.000Z","updated_at":"2024-09-17T14:20:51.000Z","dependencies_parsed_at":"2022-07-22T06:02:08.553Z","dependency_job_id":null,"html_url":"https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fhealthcare-api-dicomweb-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fhealthcare-api-dicomweb-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fhealthcare-api-dicomweb-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoogleCloudPlatform%2Fhealthcare-api-dicomweb-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GoogleCloudPlatform","download_url":"https://codeload.github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230369208,"owners_count":18215339,"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","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":["dicom","dicomweb","google-cloud","google-cloud-healthcare-api"],"created_at":"2024-12-19T03:17:16.019Z","updated_at":"2026-03-14T06:08:09.055Z","avatar_url":"https://github.com/GoogleCloudPlatform.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DICOMweb command line tool\nDICOMweb command line tool is a command line utility for interacting with DICOMweb servers.\n\n## Requirements\n\n- python (3.5+)\n- pip\n\n## Installation\n\n### Using GitHub:\n\n```bash\npip install https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/archive/v1.0.2.zip\n```\n\nNOTE: Getting errors due to not having Python3? See [instructions below](#running-on-machine-with-python2).\n\n## Interface\n\n### dcmweb [-m] \\\u003chost\u003e \\\u003cstore|retrieve|search|delete\u003e [parameters]\n\n* **-m**\n\\\n Whether to perform batch operations in parallel or sequentially, default is sequentially.\n\n* **host**\n\\\n The full DICOMweb endpoint URL. E.g. `https://healthcare.googleapis.com/v1/projects/\u003cproject_id\u003e/locations/\u003clocation_id\u003e/datasets/\u003cdataset_id\u003e/dicomStores/\u003cdicom_store_id\u003e/dicomWeb`\n\n* **store**\n\\\n Stores one or more files by posting multiple StoreInstances requests. Requests will be sent in sequence or in parallel based on the -m flag.\n \n \t* --masks \\*string\n\t\\\n\tPositional argument, contains list of file paths or masks to upload, mask support wildcard(\\*) and cross directory boundaries wildcard(\\*\\*) char, \n\n\n* **retrieve**\n\\\n Retrieves one or more studies, series, instances, or frames from the server. Outputs the instances to the directory specified by the --output option.\n\n\t* --path string\n\t\\\n\tPositional argument, can either be empty (indicates downloading of all studies) or specify a resource path (studies/\u003cuid\u003e[/series/\u003cuid\u003e[/instances/\u003cuid\u003e[/frames/\u003cframe_num]]]) to download from the server\n\n\t* --type string\n\t\\\n\tControls what format to request the files in (defaults to application/dicom; transfer-syntax=*). The tool will use this as the part content type in the multipart accept header being sent to the server. \n\n\t* --output string\n\t\\\n\tControls where to write the files to (defaults to current directory).\n\tThe following folder structure will be created:\n\t\\\n\t\t```\n\t\t- study_uid\n\t\t\t- series_uid\n\t\t\t\t- instance_uid[_frame_X].\u003cext\u003e\n\t\t```\n\n\n\n* **search**\n\\\nPerforms a search over studies, series, or instances and outputs the result to stdout, limited to 5000 items by default. You can specify limit/offset parameters to change this.\n\n    * --path string\n\t\\\n\tPositional argument, specifies a path (studies/[\u003cuid\u003e/series/[\u003cuid\u003e/instances/]]) to search on the server, default is \"/studies\"\n\n    * --parameters string\n\t\\\n\tQIDO search parameters formatted as URL query parameters.\n\n* **delete**\n\\\n Deletes the given study, series, or instance from the server. Uses an un-standardized extension to the DICOMweb spec.\n\n    * --path string\n    \\\n\tPositional argument, specifies a resource path (studies/\u003cuid\u003e[/series/\u003cuid\u003e[/instances/\u003cuid\u003e[/frames/\u003cframe_num]]]) to delete from the server\n\n## Examples\n\n**search**\n\n```bash\n# will return json list of instances in dicomstore with date==1994.10.13\ndcmweb $host search instances StudyDate=19941013 \n```\n\n```bash\n# will return list of studies without any filter\ndcmweb $host search \n```\n\nSince search returns JSON data it can be redirected into parse tools like [jq](https://stedolan.github.io/jq/).\n\n```bash\n# will parse StudyUIDs/PatientNames for each study in search results\ndcmweb $host search | jq '.[] | .[\"0020000D\"].Value[0],.[\"00100010\"].Value[0]'\n```\n\nOutput of jq may be redirected as well:\n```bash\n# will parse StudyUIDs for each study in search results\n# and count lines of jq output by wc\ndcmweb $host search | jq '.[] | .[\"0020000D\"].Value[0]' | wc -l\n```\nThe list of DICOM tags can be found in this [page](https://dicom.innolitics.com/ciods/).\n\n**store**\n\n```bash\n# will upload list of files generated from current folder by shell\ndcmweb $host store ./* \n```\n\n```bash\n# will upload list of files generated from current folder by python\ndcmweb $host store \"./*\" \n```\n\n```bash\n# will upload list of files generated from current folder recursively by python\ndcmweb $host store \"./**\" \n```\n\n```bash\n# will upload list of files in parallel\ndcmweb -m $host store \"./**\" \n```\n**retrieve**\n\n```bash\n# will download all instances from dicomstore into current folder\ndcmweb $host retrieve \n```\n\n```bash\n# will download all instances from dicomstore into current folder in parallel\ndcmweb -m $host retrieve \n```\n\n```bash\n# will download all instances from dicomstore into ./data folder\ndcmweb $host retrieve --output ./data \n```\n\n```bash\n# will download all instances from dicomstore into ./data folder as png images,\n# in instance is multiframe, frames will be saved as separate files\ndcmweb $host retrieve --output ./data --type \"image/png\" \n```\n\n```bash\n# will download all instances from study 1 into ./data folder\ndcmweb $host retrieve studies/1 --output ./data \n```\n\n**delete**\n\n```bash\n# will delete study 1\ndcmweb $host delete studies/1\n```\n\n## Build\n\n```bash\npython ./setup.py sdist bdist_wheel \n```\n## Run tests\n\n```bash\npip install tox\ntox\n```\n\n## Developing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Running on machine with Python2\n\nThis tool requires Python3 to be run which may cause issues for environments that\nhave Python2 installed and can't upgrade due to other dependencies. Here are 2 options\nfor getting the tool to work in this enviornment:\n\n### Using pip local install\n\n1.  Install python3 \u0026 python3-pip (e.g. `sudo apt install python3 python3-pip`)\n1.  Download zip file from latest release from\n    [GitHub](https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/releases)\n1.  Run `python3 -m pip install healthcare-api-dicomweb-cli-X.Y.zip --user`\n1.  Run `export PATH=$PATH:\"${HOME}/.local/bin\"` -- this is where pip --user\n    installs things to\n1.  Then you should be able to run `dcmweb`\n\n### Using virtualenv\n\n1.  Install python3 \u0026 python3-venv (e.g. `sudo apt install python3 python3-venv`)\n1.  Start a virtualenv `python3 -m venv py3-env \u0026\u0026 cd py3-env \u0026\u0026 source ./bin/activate`\n1.  Download zip file from latest release from\n    [GitHub](https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/releases)\n1.  Install within virtualenv`pip install healthcare-api-dicomweb-cli-X.Y.zip`\n1.  Then you should be able to run `dcmweb`\n\n## Apache License 2.0\nProject License can be found [here](LICENSE).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglecloudplatform%2Fhealthcare-api-dicomweb-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgooglecloudplatform%2Fhealthcare-api-dicomweb-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglecloudplatform%2Fhealthcare-api-dicomweb-cli/lists"}