def work_remote_id_change_action(**kwargs):
    decisions = kwargs['decisions']
    execution_id = kwargs['execution_id']
    names = {
        'enrich': f'enrichment-{execution_id}',
        'change': f'generate-{execution_id}'
    }
    kwargs['names'] = names
    enrich_signature = _build_enrich_signature(**kwargs)
    change_data_signatures = _build_change_data_signatures(**kwargs)
    if change_data_signatures is None:
        decisions.append(CompleteWork())
        return
    great_chain = chain(enrich_signature,
                        group(*tuple(change_data_signatures)))
    chain_results = great_chain(**kwargs)
    if chain_results is None:
        return
    fungal_leech = _build_fungal_leech(**kwargs)
    fungal_leech(**kwargs)
    if not fungal_leech.is_complete:
        return
    post_process_group = _build_post_process_group(**kwargs)
    post_process_results = post_process_group(**kwargs)
    if post_process_results is None:
        return
    decisions.append(CompleteWork())
def _create_build_and_send_chain(task_args, **kwargs):
    execution_id = kwargs['execution_id']
    build_task_name = 'build_reports'
    send_task_name = 'send_reports'
    build_id = f'{build_task_name}-{execution_id}'
    send_id = f'{send_task_name}-{execution_id}'
    build_signature = ActivitySignature(build_id, build_task_name, **kwargs)
    send_signature = ActivitySignature(send_id, send_task_name, **kwargs)
    return chain(build_signature, send_signature)
def _build_chain(names, **kwargs):
    get_local_ids = ActivitySignature(names['local'], 'get_local_ids', **kwargs)
    get_remote_ids = ActivitySignature(names['remote'], 'get_remote_ids', **kwargs)
    generate_mapping = ActivitySignature(names['map'], 'build_mapping', **kwargs)
    get_ids_group = group(get_local_ids, get_remote_ids)
    get_change_type = ActivitySignature(names['change_types'], 'pull_change_types', **kwargs)
    get_schema_entry = ActivitySignature(names['schema_entry'], 'pull_schema_entry', **kwargs)
    work_fip_links = SubtaskSignature(names['work_links'], 'work_fip_links', **kwargs)
    great_chain = chain(get_schema_entry, get_ids_group, work_fip_links, get_change_type, generate_mapping)
    return great_chain
def _build_command_chain(task_args, **kwargs):
    signatures = []
    command_name = task_args.get_argument_value('command_name')
    command_args = task_args.get_argument_value('command_args')
    for command_arg in command_args:
        collected_args = sorted([(x, y) for x, y in command_arg.items()])
        command_id = str(tuple(collected_args))
        command = {'command': command_name, 'command_args': command_arg}
        new_task_args = task_args.replace_argument_value(command_id, command)
        signatures.append(ActivitySignature(command_id, 'run_credible_command', task_args=new_task_args, **kwargs))
    return chain(*tuple(signatures))
Beispiel #5
0
def post_process_encounters(**kwargs):
    decisions = kwargs['decisions']
    get_encounters_signature = _build_get_encounters_signature(**kwargs)
    parse_encounters_signature = _build_parse_encounters_signature(**kwargs)
    process_chain = chain(get_encounters_signature, parse_encounters_signature)
    chain_results = process_chain(**kwargs)
    if chain_results is None:
        return
    fungal_signature = _build_fungal_leech(**kwargs)
    fungal_results = fungal_signature(**kwargs)
    if fungal_results is None:
        return
    decisions.append(CompleteWork())
Beispiel #6
0
def _build_great_chain(**kwargs):
    execution_id = kwargs['execution_id']
    signatures = [
        ActivitySignature(f'get_productivity-{execution_id}',
                          'get_productivity_report_data', **kwargs),
        ActivitySignature(f'build_team-{execution_id}', 'build_clinical_teams',
                          **kwargs),
        ActivitySignature(f'build_caseload-{execution_id}',
                          'build_clinical_caseloads', **kwargs),
        ActivitySignature(f'build_daily_report-{execution_id}',
                          'build_daily_report', **kwargs),
        ActivitySignature(f'write_report_data-{execution_id}',
                          'write_report_data', **kwargs),
        ActivitySignature(f'send_report-{execution_id}', 'send_report',
                          **kwargs),
    ]
    return chain(*tuple(signatures))
Beispiel #7
0
def work_remote_id_change_type(**kwargs):
    decisions = kwargs['decisions']
    execution_id = kwargs['execution_id']
    names = {
        'local_max': f'get_local_max-{execution_id}',
        'work': f'work_remote_id_change_type-{execution_id}'
    }
    kwargs['names'] = names
    get_local_max_signature = _build_local_max_signature(**kwargs)
    work_signature = _build_work_signature(**kwargs)
    great_chain = chain(get_local_max_signature, work_signature)
    chain_results = great_chain(**kwargs)
    if chain_results is None:
        return
    great_group = _build_group(**kwargs)
    group_results = great_group(**kwargs)
    if group_results is None:
        return
    decisions.append(CompleteWork())