Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Auto-execute pipeline on new imported data (e.g. SIMS) #2388

Open
michaelkain opened this issue Aug 30, 2024 · 5 comments · May be fixed by #2468
Open

Auto-execute pipeline on new imported data (e.g. SIMS) #2388

michaelkain opened this issue Aug 30, 2024 · 5 comments · May be fixed by #2468
Assignees

Comments

@michaelkain
Copy link
Contributor

Hi @jcomedouteau,
I hope you are doing fine.
This should be a very interesting extension to work on.
The idea is to configure a pipeline-run in VIP with a specific pipeline,
once the import has been done. So this might be done with a daily
job, that runs and initiates the necessary executions depending on
some schema. With kind regards, Michael
PS: a simple start might be: "on every new exam" run "X"

@michaelkain
Copy link
Contributor Author

Hi @jcomedouteau, I think this might become a really interesting extension for entire Shanoir+VIP.
The idea to trigger a specific pipeline, based on some criteria, run it and get back the result, will be
an important baseline for future studies.

@jcomedouteau
Copy link
Collaborator

Hi Michael,
This is an idea I discussed with benjamin too, it would be a great forward step for shanoir!
The question is how we implement it:

  • Integrated in a study card ? (instead of renaming/adding metadata, start a process)
  • Add a new "automatic action" in study, with a possibility to filter / manage new datas.

This can be quite simple at the beginning and become something quite huge, we need to think of it to be able to evolve.

@jcomedouteau
Copy link
Collaborator

jcomedouteau commented Sep 20, 2024

Specifications for pipeline automatic execution

FRONT

STUDY

Add a selector on pipelines. (if no available pipelines -> Either do not display the tab or disable it)

Add a new tab in study detail
-> Configure a new "automatic execution".
-> Add filter on center
-> Add filter on acquisition
-> Add filter on subject (example -> subject name has to contain ES for spanish subjects only)
-> Add filter on examination name / date (example all exams with name starting with FLI)
-> Add filter on acquisition name
-> Add filter on dataset name (consider the pipeline only for exams with a dataset containing "Crane sans IV"

On every level, add the possibility to take all by default.
(Display an example of current datasets matching these ?)

Then display the pipeline configuration with arguments as configured in the "execute pipeline" page.
-> Name automatically generated
-> For non datasets argument, propose an empty textbox and/or boolean selectors
-> For datasets arguments, a textbox with a regex field to choose adapted datasets (if *, we send all datasets ????????)

IMPORT

During an import, during clinical context, add a "tab" (vertical), if the import can match a pipeline execution (warning, this will trigger an execution of type XXX (show some detail ?), and add a checkbox to be able to uncheck it if necessary.

Create a new structure

ExecutionPlanification {
// VIP pipeline
Pipeline pipeline; (to be completed in shanoir too ? Or directly load it from VIP ?)

// default pipieline arguments ?

// list of String filters
String centerFilter;
...
String datasetFilter;

}

An associated service/impl

ExecutionService{
// Create a new executionPlanification
createExecutionPlanification(EP)

// Check if an exam structure respects an planification filter
checkExecutionPlanification(EP, Examination)

// Create an execution linked to a planification
createPlanifiedExecution(EP, Exam); 

}

At the end of import (asynchroneously i guess), check every potentiel execution planification, and create executions for those that matches.

jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Oct 2, 2024
- Prepare structure front + back
jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Oct 11, 2024
jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Oct 11, 2024
jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Oct 16, 2024
jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Oct 24, 2024
- Basic component
- Front logic
jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Oct 28, 2024
- Front/back update (create - read - update - delete)
jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Oct 30, 2024
- Add pipeline logic
- Add security
- Correct delete
jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Oct 31, 2024
- Add pipeline logic #2
jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Nov 4, 2024
jcomedouteau added a commit to jcomedouteau/shanoir-ng that referenced this issue Nov 20, 2024
- Add front logic for pipelines
@DuckflipXYZ DuckflipXYZ self-assigned this Jan 7, 2025
@michaelkain michaelkain changed the title OFSEP: run sims (or other pipeline) automatically Auto-execute pipeline on new data (e.g. SIMS) Jan 13, 2025
@michaelkain
Copy link
Contributor Author

Hi @DuckflipXYZ, please provide me a short todo-list, that you see behind this issue in relation with the PR already existing and how much time it might require you please. Thank you!

@DuckflipXYZ
Copy link
Collaborator

DuckflipXYZ commented Jan 13, 2025

Hi @michaelkain ! Jean-Come almost did everything ! What's missing is the exec logic (Should we use CRON or deal with the exec directly after import ? If CRON, what freq ? Or maybe the freq is a parameter ?

I didn't test Jean-Come PR yet, so there is a debug/test stage too. I think a work time of 3 days until a week seems relevant.

@michaelkain michaelkain changed the title Auto-execute pipeline on new data (e.g. SIMS) Auto-execute pipeline on new imported data (e.g. SIMS) Jan 15, 2025
@DuckflipXYZ DuckflipXYZ linked a pull request Jan 17, 2025 that will close this issue
DuckflipXYZ added a commit to DuckflipXYZ/shanoir-ng that referenced this issue Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants