oxidicom

DICOM receiver for ChRIS backend

https://github.com/fnndsc/oxidicom

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.1%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

DICOM receiver for ChRIS backend

Basic Info
  • Host: GitHub
  • Owner: FNNDSC
  • License: mit
  • Language: Rust
  • Default Branch: master
  • Size: 773 KB
Statistics
  • Stars: 4
  • Watchers: 6
  • Forks: 0
  • Open Issues: 3
  • Releases: 4
Created about 2 years ago · Last pushed 12 months ago
Metadata Files
Readme License Citation

README.md

oxidicom

GitHub tag MIT License CI codecov

oxidicom is a high-performance DICOM receiver for the ChRIS backend (CUBE).

Documentation: https://chrisproject.org/docs/oxidicom

Development

You'll need: Docker Compose and Rust.

Start RabbitMQ and Orthanc services for testing, then download test data:

shell docker compose up -d docker compose run --rm get-data

Run all tests:

shell export RUST_LOG=oxidicom=debug,integration_test=debug # optional cargo test

Clean up:

shell docker compose down -v

Notes

Usage of opentelemetry v.s. tracing in the codebase

dicom-rs itself uses the tracing crate, though for the spans described above, I decided to use the opentelemetry crate for spans, and tracing for logs.

Sample DICOM files

See https://github.com/FNNDSC/sampledicomdownloader

Owner

  • Name: FNNDSC / BCH
  • Login: FNNDSC
  • Kind: organization
  • Email: dev@babyMRI.org
  • Location: Boston, MA

Fetal-Neonatal Neuroimaging Developmental Science Center

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite it as below.
title: High-performance DICOM Receiver for ChRIS
version: 2.0.0
date-released: 2024-06-03
repository-code: https://github.com/FNNDSC/oxidicom
license: MIT
type: software
authors:
- family-names: Zhang
  given-names: Jennings
  orcid: https://orcid.org/0000-0001-6473-3316
- family-names: Pienaar
  given-names: Rudolph
  orcid: https://orcid.org/0000-0002-8684-3185
keywords:
- ChRIS
- medical imaging
- DICOM
- PACS
- Rust
abstract: |
  oxidicom is a high-performance DICOM receiver for the ChRIS backend (CUBE).
  More technically, oxidicom implements a DICOM C-STORE service class provider
  (SCP), a "server," which listens for incoming DICOM files. For every DICOM
  file received, it writes it to the storage of CUBE and "registers" the file
  with CUBE. As Rust-based software, it is easily achieves a typical throughput
  of thousands of files processed per second on a single CPU core.
references:
- type: software
  title: "ChRIS Backend"
  url: "https://github.com/FNNDSC/ChRIS_ultron_backEnd"

GitHub Events

Total
  • Create event: 2
  • Issues event: 2
  • Release event: 3
  • Watch event: 1
  • Delete event: 1
  • Push event: 7
Last Year
  • Create event: 2
  • Issues event: 2
  • Release event: 3
  • Watch event: 1
  • Delete event: 1
  • Push event: 7

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 163
  • Total Committers: 2
  • Avg Commits per committer: 81.5
  • Development Distribution Score (DDS): 0.117
Past Year
  • Commits: 58
  • Committers: 2
  • Avg Commits per committer: 29.0
  • Development Distribution Score (DDS): 0.103
Top Committers
Name Email Commits
Jennings Zhang d****v@s****z 144
Jennings Zhang J****g@c****u 19
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 5
  • Total pull requests: 2
  • Average time to close issues: 5 months
  • Average time to close pull requests: 4 months
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.2
  • Average comments per pull request: 1.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 1
  • Average time to close issues: about 1 hour
  • Average time to close pull requests: 7 months
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.25
  • Average comments per pull request: 2.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jennydaman (5)
Pull Request Authors
  • jennydaman (4)
Top Labels
Issue Labels
bug (2) good first issue (2) enhancement (1)
Pull Request Labels

Dependencies

.github/workflows/ci.yml actions
  • FNNDSC/miniChRIS-docker master composite
  • actions/checkout v4 composite
  • docker/build-push-action v5 composite
  • docker/login-action v3 composite
  • docker/setup-buildx-action v3 composite
  • taiki-e/install-action v2 composite
Cargo.lock cargo
  • 222 dependencies
Cargo.toml cargo
  • rstest 0.18.2 development
  • walkdir 2.5.0 development
  • camino 1.1.6
  • dicom 0.6.3
  • envmnt 0.10.4
  • fs-err 2.11.0
  • regex 1.10.3
  • reqwest 0.11.26
  • seahash 4.1.0
  • serde 1.0.197
  • snafu 0.8.2
  • thiserror 1.0.58
  • tracing 0.1.40
  • tracing-subscriber 0.3.18
Dockerfile docker
  • chef latest build
  • docker.io/lukemathwalker/cargo-chef 0.1.66-rust-1.76-alpine3.18 build
  • scratch latest build
docker-compose.yml docker