Skip to content

Commit

Permalink
Add data export decision
Browse files Browse the repository at this point in the history
  • Loading branch information
stefpiatek committed Dec 23, 2024
1 parent 91cd24c commit c5c8046
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 21 deletions.
45 changes: 45 additions & 0 deletions docs/design/decision-record/0006-data-export.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Export of parquet files and DICOM data

* Status: accepted
* Deciders: Haroon Chughtai, Jeremy Stein, Milan Malfait, Ruaridh Gollifer, Stef Piatek
* Date: 2024-02-26

## Context and Problem Statement

The pipeline needs to be able to export DICOM images and structured data files to different endpoints.

## Decision Drivers <!-- optional -->

* We expect that some projects will have more data than we can store locally. Will need a rolling export of images
* We will need to be able to export images and structured data via FTPS in an automated fashion
* We will need to be able to export images via DICOMWeb


## Considered Options

* Shared python library for exporting of data, used in `orthanc-anon` and the `pixl` CLI.
* `export-api` service, which can export both DICOM and structured data files.

## Decision Outcome

Chosen options: "`export-api` service", for clear separation of responsibilities.

## Pros and Cons of the Options <!-- optional -->

### Shared python library

Add private creator group to instances as they arrive, and a dummy value in the custom tag.
Once the study has been pulled from the DICOM source, update the tag with the filename stem of the project config.

* Good, one less service to maintain
* Good, export via DICOMWeb is using the orthanc API already
* Bad, duplication of implementation for export
* Bad, duplication of areas where secrets are used

### `export-api` service

Instead of shared library the code would be in the service alone.

* Good, single service that will access all secrets and orchestrate exports
* Good, allows caching of export secrets in a long-running service
* Bad, would require extra code for interacting with the service from the CLI for parquet export
22 changes: 1 addition & 21 deletions docs/design/decision-record/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,6 @@ You can install it via `npm install -g adr-log`, removing the template
* [ADR-0003](0003-dicom-processing.md) - DICOM server and processing
* [ADR-0004](0004-multiple-project-configuration.md) - Multiple-project configuration
* [ADR-0005](0005-project-based-study-routing.md) - Project-based study routing
* [ADR-0006](0006-data-export.md) - Export of parquet files and DICOM data

<!-- adrlogstop -->





















0 comments on commit c5c8046

Please sign in to comment.