'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
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
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
"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
} } 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
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
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",