scout/server/blueprints/variants/views.py
def variant_update(institute_id, case_name, variant_id):
    """Update user-defined information about a variant: manual rank & ACMG."""
    institute_obj, case_obj = institute_and_case(store, institute_id, case_name)
    variant_obj = store.variant(variant_id)
    user_obj = store.user(current_user.email)
    link = request.referrer

    manual_rank = request.form.get('manual_rank')
    if manual_rank:
        new_manual_rank = int(manual_rank) if manual_rank != '-1' else None
        store.update_manual_rank(institute_obj, case_obj, user_obj, link, variant_obj,
                                 new_manual_rank)
        if new_manual_rank:
            flash("updated variant tag: {}".format(new_manual_rank), 'info')
        else:
            flash("reset variant tag: {}".format(variant_obj.get('manual_rank', 'NA')), 'info')
    elif request.form.get('acmg_classification'):
        new_acmg = request.form['acmg_classification']
        acmg_classification = variant_obj.get('acmg_classification')
        if isinstance(acmg_classification, int) and (new_acmg == ACMG_MAP[acmg_classification]):
            new_acmg = None
        store.update_acmg(institute_obj, case_obj, user_obj, link, variant_obj, new_acmg)
        flash("updated ACMG classification: {}".format(new_acmg), 'info')

    new_dismiss = request.form.getlist('dismiss_variant')
    if request.form.getlist('dismiss_variant'):
        store.update_dismiss_variant(institute_obj, case_obj, user_obj, link, variant_obj,
                                     new_dismiss)
        if new_dismiss:
            flash("Dismissed variant: {}".format(new_dismiss), 'info')

    if variant_obj.get('dismiss_variant') and not new_dismiss:
        if 'dismiss' in request.form:
            store.update_dismiss_variant(institute_obj, case_obj, user_obj, link, variant_obj,
                                     new_dismiss)
            flash("Reset variant dismissal: {}".format(variant_obj.get('dismiss_variant')), 'info')
        else:
            log.debug("DO NOT reset variant dismissal: {}".format(variant_obj.get('dismiss_variant')), 'info')

    mosaic_tags = request.form.getlist('mosaic_tags')
    if mosaic_tags:
        store.update_mosaic_tags(institute_obj, case_obj, user_obj, link, variant_obj,
                                     mosaic_tags)
        if new_dismiss:
            flash("Added mosaic tags: {}".format(mosaic_tags), 'info')

    if variant_obj.get('mosaic_tags') and not mosaic_tags:
        if 'mosaic' in request.form:
            store.update_mosaic_tags(institute_obj, case_obj, user_obj, link, variant_obj,
                                     mosaic_tags)
            flash("Reset mosaic tags: {}".format(variant_obj.get('mosaic_tags')), 'info')

    return redirect(request.referrer)
def variant_update(institute_id, case_name, variant_id):
    """Update user-defined information about a variant: manual rank & ACMG."""
    institute_obj, case_obj = institute_and_case(store, institute_id, case_name)
    variant_obj = store.variant(variant_id)
    user_obj = store.user(current_user.email)
    link = request.referrer

    manual_rank = request.form.get('manual_rank')
    if manual_rank:
        new_manual_rank = int(manual_rank) if manual_rank != '-1' else None
        store.update_manual_rank(institute_obj, case_obj, user_obj, link, variant_obj,
                                 new_manual_rank)
        if new_manual_rank:
            flash("updated variant tag: {}".format(new_manual_rank), 'info')
        else:
            flash("reset variant tag: {}".format(variant_obj.get('manual_rank', 'NA')), 'info')
    elif request.form.get('acmg_classification'):
        new_acmg = request.form['acmg_classification']
        acmg_classification = variant_obj.get('acmg_classification')
        if isinstance(acmg_classification, int) and (new_acmg == ACMG_MAP[acmg_classification]):
            new_acmg = None
        store.update_acmg(institute_obj, case_obj, user_obj, link, variant_obj, new_acmg)
        flash("updated ACMG classification: {}".format(new_acmg), 'info')

    new_dismiss = request.form.getlist('dismiss_variant')
    if request.form.getlist('dismiss_variant'):
        store.update_dismiss_variant(institute_obj, case_obj, user_obj, link, variant_obj,
                                     new_dismiss)
        if new_dismiss:
            flash("Dismissed variant: {}".format(new_dismiss), 'info')

    if variant_obj.get('dismiss_variant') and not new_dismiss:
        if 'dismiss' in request.form:
            store.update_dismiss_variant(institute_obj, case_obj, user_obj, link, variant_obj,
                                     new_dismiss)
            flash("Reset variant dismissal: {}".format(variant_obj.get('dismiss_variant')), 'info')
        else:
            log.debug("DO NOT reset variant dismissal: {}".format(variant_obj.get('dismiss_variant')), 'info')

    mosaic_tags = request.form.getlist('mosaic_tags')
    if mosaic_tags:
        store.update_mosaic_tags(institute_obj, case_obj, user_obj, link, variant_obj,
                                     mosaic_tags)
        if new_dismiss:
            flash("Added mosaic tags: {}".format(mosaic_tags), 'info')

    if variant_obj.get('mosaic_tags') and not mosaic_tags:
        if 'mosaic' in request.form:
            store.update_mosaic_tags(institute_obj, case_obj, user_obj, link, variant_obj,
                                     mosaic_tags)
            flash("Reset mosaic tags: {}".format(variant_obj.get('mosaic_tags')), 'info')

    return redirect(request.referrer)
def variant_update ( institute_id , case_name , variant_id ) : institute_obj , case_obj = institute_and_case ( store , institute_id , case_name ) variant_obj = store . variant ( variant_id ) user_obj = store . user ( current_user . email ) link = request . referrer manual_rank = request . form . get ( 'manual_rank' ) if manual_rank : new_manual_rank = int ( manual_rank ) if manual_rank != '-1' else None store . update_manual_rank ( institute_obj , case_obj , user_obj , link , variant_obj , new_manual_rank ) if new_manual_rank : flash ( "updated variant tag: {}" . format ( new_manual_rank ) , 'info' ) else : flash ( "reset variant tag: {}" . format ( variant_obj . get ( 'manual_rank' , 'NA' ) ) , 'info' ) elif request . form . get ( 'acmg_classification' ) : new_acmg = request . form [ 'acmg_classification' ] acmg_classification = variant_obj . get ( 'acmg_classification' ) if isinstance ( acmg_classification , int ) and ( new_acmg == ACMG_MAP [ acmg_classification ] ) : new_acmg = None store . update_acmg ( institute_obj , case_obj , user_obj , link , variant_obj , new_acmg ) flash ( "updated ACMG classification: {}" . format ( new_acmg ) , 'info' ) new_dismiss = request . form . getlist ( 'dismiss_variant' ) if request . form . getlist ( 'dismiss_variant' ) : store . update_dismiss_variant ( institute_obj , case_obj , user_obj , link , variant_obj , new_dismiss ) if new_dismiss : flash ( "Dismissed variant: {}" . format ( new_dismiss ) , 'info' ) if variant_obj . get ( 'dismiss_variant' ) and not new_dismiss : if 'dismiss' in request . form : store . update_dismiss_variant ( institute_obj , case_obj , user_obj , link , variant_obj , new_dismiss ) flash ( "Reset variant dismissal: {}" . format ( variant_obj . get ( 'dismiss_variant' ) ) , 'info' ) else : log . debug ( "DO NOT reset variant dismissal: {}" . format ( variant_obj . get ( 'dismiss_variant' ) ) , 'info' ) mosaic_tags = request . form . getlist ( 'mosaic_tags' ) if mosaic_tags : store . update_mosaic_tags ( institute_obj , case_obj , user_obj , link , variant_obj , mosaic_tags ) if new_dismiss : flash ( "Added mosaic tags: {}" . format ( mosaic_tags ) , 'info' ) if variant_obj . get ( 'mosaic_tags' ) and not mosaic_tags : if 'mosaic' in request . form : store . update_mosaic_tags ( institute_obj , case_obj , user_obj , link , variant_obj , mosaic_tags ) flash ( "Reset mosaic tags: {}" . format ( variant_obj . get ( 'mosaic_tags' ) ) , 'info' ) return redirect ( request . referrer )
Update user-defined information about a variant: manual rank & ACMG.
Update user - defined information about a variant : manual rank & ACMG .