Skip to content

Commit 917b193

Browse files
authored
Merge pull request #18 from GSTT-CSC/aide-workflows
Adds Clinical Workflow and Argo Workflow files for running on AIDE
2 parents 2eb8af3 + 277e68b commit 917b193

6 files changed

+347
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
metadata:
2+
name: totalsegmentator-argo-template
3+
generateName: totalsegmentator-argo-template-
4+
namespace: argo
5+
spec:
6+
templates:
7+
- name: totalsegmentator
8+
inputs:
9+
artifacts:
10+
- name: input-dicom
11+
path: /var/monai/input
12+
s3:
13+
accessKeySecret:
14+
name: my-minio-cred
15+
key: accesskey
16+
secretKeySecret:
17+
name: my-minio-cred
18+
key: secretkey
19+
key: argo/inputs/artifacts/input-dicom
20+
outputs:
21+
artifacts:
22+
- name: output
23+
path: /var/monai/output
24+
s3:
25+
bucket: bucket1
26+
accessKeySecret:
27+
name: my-minio-cred
28+
key: accesskey
29+
secretKeySecret:
30+
name: my-minio-cred
31+
key: secretkey
32+
key: /var/monai/output
33+
metadata: {}
34+
container:
35+
name: ''
36+
image: ghcr.io/gstt-csc/totalsegmentator-aide/map:0.1.2
37+
command:
38+
- /bin/bash
39+
- '-c'
40+
args:
41+
- python3 -u /opt/monai/app/app.py
42+
resources:
43+
limits:
44+
cpu: '20'
45+
memory: 128Gi
46+
nvidia.com/gpu: '1'
47+
requests:
48+
cpu: '0'
49+
memory: '0'
50+
nvidia.com/gpu: '1'
51+
imagePullPolicy: IfNotPresent
52+
podSpecPatch: >-
53+
{"initContainers":[{"name":"init","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}],"containers":[{"name":"wait","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}]}
54+
entrypoint: totalsegmentator
55+
arguments: {}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
metadata:
2+
name: totalsegmentator-argo-template
3+
generateName: totalsegmentator-argo-template-
4+
namespace: argo
5+
spec:
6+
templates:
7+
- name: totalsegmentator
8+
inputs:
9+
artifacts:
10+
- name: input-dicom
11+
path: /var/monai/input
12+
s3:
13+
accessKeySecret:
14+
name: my-minio-cred
15+
key: accesskey
16+
secretKeySecret:
17+
name: my-minio-cred
18+
key: secretkey
19+
key: argo/inputs/artifacts/input-dicom
20+
outputs:
21+
artifacts:
22+
- name: output
23+
path: /var/monai/output
24+
s3:
25+
bucket: bucket1
26+
accessKeySecret:
27+
name: my-minio-cred
28+
key: accesskey
29+
secretKeySecret:
30+
name: my-minio-cred
31+
key: secretkey
32+
key: /var/monai/output
33+
metadata: {}
34+
container:
35+
name: ''
36+
image: ghcr.io/gstt-csc/totalsegmentator-aide/map:0.1.2
37+
command:
38+
- /bin/bash
39+
- '-c'
40+
args:
41+
- python3 -u /opt/monai/app/app.py
42+
resources:
43+
limits:
44+
cpu: '8'
45+
memory: 64000Mi
46+
nvidia.com/gpu: '1'
47+
requests:
48+
cpu: '0'
49+
memory: '0'
50+
nvidia.com/gpu: '1'
51+
imagePullPolicy: IfNotPresent
52+
podSpecPatch: >-
53+
{"initContainers":[{"name":"init","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}],"containers":[{"name":"wait","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}]}
54+
entrypoint: totalsegmentator
55+
arguments: {}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
metadata:
2+
name: totalsegmentator-argo-template
3+
generateName: totalsegmentator-argo-template-
4+
namespace: argo
5+
spec:
6+
templates:
7+
- name: totalsegmentator
8+
inputs:
9+
artifacts:
10+
- name: input-dicom
11+
path: /var/monai/input
12+
s3:
13+
accessKeySecret:
14+
name: my-minio-cred
15+
key: accesskey
16+
secretKeySecret:
17+
name: my-minio-cred
18+
key: secretkey
19+
key: argo/inputs/artifacts/input-dicom
20+
outputs:
21+
artifacts:
22+
- name: output
23+
path: /var/monai/output
24+
s3:
25+
bucket: bucket1
26+
accessKeySecret:
27+
name: my-minio-cred
28+
key: accesskey
29+
secretKeySecret:
30+
name: my-minio-cred
31+
key: secretkey
32+
key: /var/monai/output
33+
metadata: {}
34+
container:
35+
name: ''
36+
image: ghcr.io/gstt-csc/totalsegmentator-aide/map:0.1.2
37+
command:
38+
- /bin/bash
39+
- '-c'
40+
args:
41+
- python3 -u /opt/monai/app/app.py
42+
resources:
43+
limits:
44+
cpu: '1'
45+
memory: 8000Mi
46+
nvidia.com/gpu: '1'
47+
requests:
48+
cpu: '0'
49+
memory: '0'
50+
nvidia.com/gpu: '1'
51+
imagePullPolicy: IfNotPresent
52+
podSpecPatch: >-
53+
{"initContainers":[{"name":"init","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}],"containers":[{"name":"wait","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}]}
54+
entrypoint: totalsegmentator
55+
arguments: {}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
metadata:
2+
name: totalsegmentator-argo-template
3+
generateName: totalsegmentator-argo-template-
4+
namespace: argo
5+
spec:
6+
templates:
7+
- name: totalsegmentator
8+
inputs:
9+
artifacts:
10+
- name: input-dicom
11+
path: /var/monai/input
12+
s3:
13+
accessKeySecret:
14+
name: my-minio-cred
15+
key: accesskey
16+
secretKeySecret:
17+
name: my-minio-cred
18+
key: secretkey
19+
key: argo/inputs/artifacts/input-dicom
20+
outputs:
21+
artifacts:
22+
- name: output
23+
path: /var/monai/output
24+
s3:
25+
bucket: bucket1
26+
accessKeySecret:
27+
name: my-minio-cred
28+
key: accesskey
29+
secretKeySecret:
30+
name: my-minio-cred
31+
key: secretkey
32+
key: /var/monai/output
33+
metadata: {}
34+
container:
35+
name: ''
36+
image: ghcr.io/gstt-csc/totalsegmentator-aide/map:0.1.2
37+
command:
38+
- /bin/bash
39+
- '-c'
40+
args:
41+
- python3 -u /opt/monai/app/app.py
42+
resources:
43+
limits:
44+
cpu: '4'
45+
memory: 16000Mi
46+
nvidia.com/gpu: '1'
47+
requests:
48+
cpu: '0'
49+
memory: '0'
50+
nvidia.com/gpu: '1'
51+
imagePullPolicy: IfNotPresent
52+
podSpecPatch: >-
53+
{"initContainers":[{"name":"init","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}],"containers":[{"name":"wait","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}]}
54+
entrypoint: totalsegmentator
55+
arguments: {}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
metadata:
2+
name: totalsegmentator-argo-template
3+
generateName: totalsegmentator-argo-template-
4+
namespace: argo
5+
spec:
6+
templates:
7+
- name: totalsegmentator
8+
inputs:
9+
artifacts:
10+
- name: input-dicom
11+
path: /var/monai/input
12+
s3:
13+
accessKeySecret:
14+
name: my-minio-cred
15+
key: accesskey
16+
secretKeySecret:
17+
name: my-minio-cred
18+
key: secretkey
19+
key: argo/inputs/artifacts/input-dicom
20+
outputs:
21+
artifacts:
22+
- name: output
23+
path: /var/monai/output
24+
s3:
25+
bucket: bucket1
26+
accessKeySecret:
27+
name: my-minio-cred
28+
key: accesskey
29+
secretKeySecret:
30+
name: my-minio-cred
31+
key: secretkey
32+
key: /var/monai/output
33+
metadata: {}
34+
container:
35+
name: ''
36+
image: ghcr.io/gstt-csc/totalsegmentator-aide/map:0.1.2
37+
command:
38+
- /bin/bash
39+
- '-c'
40+
args:
41+
- python3 -u /opt/monai/app/app.py
42+
resources:
43+
limits:
44+
cpu: '20'
45+
memory: 128Gi
46+
nvidia.com/gpu: '1'
47+
requests:
48+
cpu: '0'
49+
memory: '0'
50+
nvidia.com/gpu: '1'
51+
imagePullPolicy: IfNotPresent
52+
podSpecPatch: >-
53+
{"initContainers":[{"name":"init","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}],"containers":[{"name":"wait","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"0","memory":"0Mi"}}}]}
54+
entrypoint: totalsegmentator
55+
arguments: {}

app/workflows/totalsegmentator.json

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
{
2+
"name": "TotalSegmentator",
3+
"version": "0.1.2",
4+
"description": "Clinical Workflow for TotalSegmentator",
5+
"informatics_gateway": {
6+
"ae_title": "MONAI",
7+
"data_origins": [],
8+
"export_destinations": [
9+
"PACS"
10+
]
11+
},
12+
"tasks": [
13+
{
14+
"id": "totalsegmentator-task",
15+
"description": "TotalSegmentator automatic CT segmentation",
16+
"type": "argo",
17+
"args": {
18+
"workflow_template_name": "totalsegmentator-argo-template",
19+
"server_url": "http://argo-argo-workflows-server.argo:2746",
20+
"namespace": "argo",
21+
"allow_insecure": "true"
22+
},
23+
"task_destinations": [
24+
{
25+
"name": "export-rt-struct",
26+
"conditions": []
27+
}
28+
],
29+
"export_destinations": [],
30+
"artifacts": {
31+
"input": [
32+
{
33+
"name": "input-dicom",
34+
"value": "{{ context.input.dicom }}",
35+
"mandatory": true
36+
}
37+
],
38+
"output": [
39+
{
40+
"name": "output",
41+
"value": "",
42+
"mandatory": true
43+
}
44+
]
45+
},
46+
"timeout_minutes": -1
47+
},
48+
{
49+
"id": "export-rt-struct",
50+
"description": "Export TotalSegmentator output RT Struct DICOMs",
51+
"type": "export",
52+
"args": {},
53+
"task_destinations": [],
54+
"export_destinations": [
55+
{
56+
"name": "PACS"
57+
}
58+
],
59+
"artifacts": {
60+
"input": [
61+
{
62+
"name": "output",
63+
"value": "{{ context.executions.totalsegmentator-task.artifacts.output }}",
64+
"mandatory": true
65+
}
66+
],
67+
"output": []
68+
},
69+
"timeout_minutes": -1
70+
}
71+
]
72+
}

0 commit comments

Comments
 (0)