示例#1
0
    'start_date': days_ago(0),
    'retries': 0,
    'retry_delay': timedelta(seconds=60)
}

dag = DAG(dag_id='nnunet-predict',
          default_args=args,
          concurrency=50,
          max_active_runs=30,
          schedule_interval=None)

get_input = LocalGetInputDataOperator(dag=dag, check_modality=True)
get_task_model = GetTaskModelOperator(dag=dag)
# get_task_model = GetContainerModelOperator(dag=dag)
dcm2nifti = DcmConverterOperator(dag=dag, output_format='nii.gz')
nnunet_predict = NnUnetOperator(dag=dag,
                                input_dirs=[dcm2nifti.operator_out_dir],
                                input_operator=dcm2nifti)

alg_name = nnunet_predict.image.split("/")[-1].split(":")[0]
nrrd2dcmSeg_multi = Itk2DcmSegOperator(dag=dag,
                                       segmentation_operator=nnunet_predict,
                                       input_type="multi_label_seg",
                                       multi_label_seg_name=alg_name,
                                       alg_name=alg_name)

dcmseg_send_multi = DcmSendOperator(dag=dag, input_operator=nrrd2dcmSeg_multi)
clean = LocalWorkflowCleanerOperator(dag=dag)

get_input >> get_task_model >> dcm2nifti >> nnunet_predict >> nrrd2dcmSeg_multi >> dcmseg_send_multi >> clean
示例#2
0
from kaapana.operators.LocalGetInputDataOperator import LocalGetInputDataOperator
from kaapana.operators.LocalWorkflowCleanerOperator import LocalWorkflowCleanerOperator


log = LoggingMixin().log

args = {
    'ui_visible': False,
    'owner': 'kaapana',
    'start_date': days_ago(0),
    'retries': 2,
    'retry_delay': timedelta(seconds=30),
}

dag = DAG(
    dag_id='service-minio-dicom-upload',
    default_args=args,
    schedule_interval=None,
    concurrency=10,
    max_active_runs=5
    )


get_object_from_minio = LocalMinioOperator(dag=dag, action_operator_dirs=['dicoms'], operator_out_dir='dicoms')
unzip_files = LocalUnzipFileOperator(dag=dag, input_operator=get_object_from_minio)
dicom_send = DcmSendOperator(dag=dag, input_operator=unzip_files, ae_title='uploaded', level='batch')
remove_object_from_minio = LocalMinioOperator(dag=dag, parallel_id='removing', action='remove', trigger_rule=TriggerRule.ALL_DONE)
clean = LocalWorkflowCleanerOperator(dag=dag,clean_workflow_dir=True)

get_object_from_minio >> unzip_files >> dicom_send >> remove_object_from_minio >> clean
示例#3
0
log = LoggingMixin().log

args = {
    'owner': 'kaapana',
    'start_date': days_ago(0),
    'retries': 2,
    'retry_delay': timedelta(seconds=30),
}

dag = DAG(dag_id='minio-seg-to-pacs',
          default_args=args,
          schedule_interval=None)

#predefine the bucketname and segmentation folder
bucket_name = 'pacs-dicom-data'
upload_folder_tree = 'segmentation_tree'

pull_object_from_minio = LocalMinioOperator(
    dag=dag,
    bucket_name=bucket_name,
    action_operator_dirs=[upload_folder_tree],
    operator_out_dir=upload_folder_tree,
    file_white_tuples='.dcm',
    split_level=1)
dicom_send = DcmSendOperator(dag=dag,
                             input_operator=pull_object_from_minio,
                             ae_title='mitk-seg',
                             level='pile')
clean = LocalWorkflowCleanerOperator(dag=dag)

pull_object_from_minio >> dicom_send >> clean
    single_label_seg_info="Right@Kidney",
    parallel_id='kidney-right',
    alg_name=alg_name,
    series_description=f'{alg_name} - Kidney-Right'
)

nrrd2dcmSeg_kidney_left = Itk2DcmSegOperator(
    dag=dag,
    input_operator=get_input,
    segmentation_operator=organSeg_kidney_left,
    single_label_seg_info="Left@Kidney",
    parallel_id='kidney-left',
    alg_name=alg_name,
    series_description=f'{alg_name} - Kidney-Left'
)

# Send DICOM segmentation objects to pacs
dcmseg_send_liver = DcmSendOperator(dag=dag, input_operator=nrrd2dcmSeg_liver)
dcmseg_send_spleen = DcmSendOperator(dag=dag, input_operator=nrrd2dcmSeg_spleen)
dcmseg_send_kidney_right = DcmSendOperator(dag=dag, input_operator=nrrd2dcmSeg_kidney_right)
dcmseg_send_kidney_left = DcmSendOperator(dag=dag, input_operator=nrrd2dcmSeg_kidney_left)

clean = LocalWorkflowCleanerOperator(dag=dag, clean_workflow_dir=True)

get_input >> dcm2nrrd >> organSeg_unityCS

organSeg_unityCS >> organSeg_liver >> nrrd2dcmSeg_liver >> dcmseg_send_liver >> clean
organSeg_unityCS >> organSeg_spleen >> nrrd2dcmSeg_spleen >> dcmseg_send_spleen >> clean
organSeg_spleen >> organSeg_kidney_right >> nrrd2dcmSeg_kidney_right >> dcmseg_send_kidney_right >> clean
organSeg_spleen >> organSeg_kidney_left >> nrrd2dcmSeg_kidney_left >> dcmseg_send_kidney_left >> clean
示例#5
0
    "ui_visible": True,
}

args = {
    'owner': 'kaapana',
    'start_date': days_ago(0),
    'retries': 0,
    'dag_info': dag_info,
    'retry_delay': timedelta(seconds=30)
}

dag = DAG(dag_id='mitk-flow',
          default_args=args,
          concurrency=10,
          max_active_runs=5,
          schedule_interval=None)

get_input = LocalGetInputDataOperator(dag=dag)
mitk_input = MitkInputOperator(dag=dag, input_operator=get_input)

launch_app = KaapanaApplicationOperator(dag=dag,
                                        name="application-mitk-flow",
                                        chart_name='mitk-flow-chart',
                                        version='2020-12-01-vdev')
send_dicom = DcmSendOperator(dag=dag,
                             input_operator=launch_app,
                             ae_title="MITK-flow")
clean = LocalWorkflowCleanerOperator(dag=dag)

get_input >> mitk_input >> launch_app >> send_dicom >> clean
示例#6
0
    }
}

args = {
    'ui_visible': True,
    'ui_forms': ui_forms,
    'owner': 'kaapana',
    'start_date': days_ago(0),
    'retries': 0,
    'retry_delay': timedelta(seconds=30)
}

dag = DAG(dag_id='send-dicom',
          default_args=args,
          concurrency=10,
          max_active_runs=10,
          schedule_interval=None)

get_input = LocalGetInputDataOperator(dag=dag)
dcm_send = DcmSendOperator(dag=dag,
                           input_operator=get_input,
                           ae_title=ae_title,
                           pacs_host=pacs_host,
                           pacs_port=pacs_port,
                           host_network=True,
                           level='element')

clean = LocalWorkflowCleanerOperator(dag=dag, clean_workflow_dir=True)

get_input >> dcm_send >> clean
示例#7
0
          default_args=args,
          schedule_interval=None,
          concurrency=30,
          max_active_runs=15)

get_input = LocalGetInputDataOperator(dag=dag, check_modality=True)
dcmseg2nrrd = DcmSeg2ItkOperator(dag=dag, input_operator=get_input)
get_dicom = LocalGetRefSeriesOperator(dag=dag, input_operator=get_input)
dcm2nrrd = DcmConverterOperator(dag=dag,
                                input_operator=get_dicom,
                                output_format='nrrd')
radiomics = RadiomicsOperator(dag=dag,
                              mask_operator=dcmseg2nrrd,
                              input_operator=dcm2nrrd)

stats2pdf = Statistics2PdfOperator(dag=dag, input_operator=radiomics)
pdf2dcm = Pdf2DcmOperator(dag=dag,
                          dicom_operator=get_input,
                          input_operator=stats2pdf,
                          pdf_title="Radiomics Report")
dcm_pdf_send = DcmSendOperator(dag=dag, input_operator=pdf2dcm)

put_radiomics_to_minio = LocalMinioOperator(dag=dag,
                                            action='put',
                                            action_operators=[radiomics],
                                            file_white_tuples=('.xml'))
clean = LocalWorkflowCleanerOperator(dag=dag, clean_workflow_dir=True)

get_input >> dcmseg2nrrd >> radiomics >> stats2pdf >> pdf2dcm >> dcm_pdf_send >> clean
get_input >> get_dicom >> dcm2nrrd >> radiomics >> put_radiomics_to_minio >> clean
    input_operator=nnunet_preprocess,
    train_network=train_network,
    train_network_trainer=train_network_trainer,
    retries=0
)

bin2dcm = Bin2DcmOperator(
    dag=dag,
    input_operator=nnunet_export,
    study_uid=study_uid,
    file_extensions="*.zip"
)

dcmseg_send = DcmSendOperator(
    dag=dag,
    level="batch",
    ae_title="nnunet-models",
    input_operator=bin2dcm
)

clean = LocalWorkflowCleanerOperator(dag=dag, clean_workflow_dir=True)

get_input >> dcm2nifti_seg >> resample_seg >> check_seg >> nnunet_preprocess
get_input >> get_ref_ct_series_from_seg >> dcm2nifti_ct >> resample_seg >> check_seg >> nnunet_preprocess

nnunet_preprocess >> nnunet_train_fold0 >> identify_best
nnunet_preprocess >> nnunet_train_fold1 >> identify_best
nnunet_preprocess >> nnunet_train_fold2 >> identify_best
nnunet_preprocess >> nnunet_train_fold3 >> identify_best
nnunet_preprocess >> nnunet_train_fold4 >> identify_best

identify_best >> nnunet_export >> bin2dcm >> dcmseg_send >> clean
示例#9
0
                              train_max_epochs=1000,
                              input_operator=nnunet_preprocess,
                              train_network=train_network,
                              train_network_trainer=train_network_trainer,
                              train_fold='all',
                              retries=0)

pdf2dcm = Pdf2DcmOperator(dag=dag,
                          input_operator=nnunet_train,
                          study_uid=study_uid,
                          aetitle=ae_title,
                          pdf_title=f"Training Report nnUNet {timestamp}")

dcmseg_send_pdf = DcmSendOperator(dag=dag,
                                  parallel_id="pdf",
                                  level="batch",
                                  ae_title=ae_title,
                                  input_operator=pdf2dcm)

zip_model = ZipUnzipOperator(
    dag=dag,
    target_filename=f"nnunet_model_{train_network}.zip",
    whitelist_files=
    "model_latest.model.pkl,model_latest.model,model_final_checkpoint.model,model_final_checkpoint.model.pkl,*.png,*.json,*.txt,*.pdf",
    subdir="results/nnUNet",
    mode="zip",
    batch_level=True,
    input_operator=nnunet_train)

bin2dcm = Bin2DcmOperator(dag=dag,
                          name="model2dicom",