def trigger(db, roots): """Queue events for completed analyses.""" mip_analyses = traverse(roots) for mip_analysis in mip_analyses: owner = mip_analysis.instance_tags[0] if owner == 'cust000': logger.debug("dismissing cust000 case: ", mip_analysis.family_id) continue case_id = "{}-{}".format(owner, mip_analysis.family_id) try: case_obj = db.case(case_id) except NoResultFound: logger.warn("case not found in database: %s", case_id) continue should_upload = ( (case_obj.uploaded_at is None) or (mip_analysis.analyzed_at > case_obj.uploaded_analysis) ) if should_upload: logger.info("queue analysis for upload: %s", case_id) visualize.dispatch(db, case_id, variant_type='clinical') else: logger.debug("case already uploaded")
def trigger(db, scout_db): for category, scout_case in crawl(scout_db): case_id = "{}-{}".format(scout_case.owner, scout_case.display_name) if category == 'research': logger.info("queueing %s for research upload", case_id) visualize.dispatch(db, case_id, variant_type='research') elif category == 'rerun': logger.info("queueing %s for re-analysis", case_id) analyze.dispatch(db, case_id) elif category == 'archive': logger.info("queueing %s for archive", case_id) try: familydir.dispatch_archive(db, case_id) except NoResultFound as error: logger.warn("case not found in database: %s", case_id)
def upload(case_id): """Upload research list for a case.""" variant_type = request.form.get('variant_type', 'clinical') visualize.dispatch(db, case_id, variant_type) return redirect(request.referrer)