def get_container_from_id(flowcell): if flowcell[7:].startswith('00000000'): #Miseq proc = lims.get_processes(type='MiSeq Run (MiSeq) 4.0', udf={'Flow Cell ID': flowcell[7:]})[0] c = lims.get_containers(name=proc.udf['Reagent Cartridge ID'])[0] else: #NovaSeq (S1, S2, S4 and SP),HiSeq2500 (Illumina Flow Cell) and HiSeqX (Patterned Flow Cell) if lims.get_containers(name=flowcell[8:], type=[ 'S1', 'S2', 'S4', 'SP', 'Illumina Flow Cell', 'Patterned Flow Cell' ]): c = lims.get_containers(name=flowcell[8:])[0] else: try: #NextSeq500 proc = lims.get_processes( type='Illumina Sequencing (NextSeq) v1.0', udf={'Flow Cell ID': flowcell[8:]})[0] except IndexError: #NextSeq2000 proc = lims.get_processes( type='Illumina Sequencing (NextSeq) v1.0', udf={'Flow Cell ID': flowcell.split('_')[1]})[0] c = lims.get_containers(name=proc.udf['Reagent Cartridge ID'])[0] return c
def post(self): project_id = self.get_argument('project_id', '') responsible = self.get_argument('responsible', '') if not project_id or not responsible: self.set_status(400) self.write('no project_id or bioinfo_responsible') return lims_project = LIMSProject(lims, id=project_id) if not lims_project: self.set_status(400) self.write('lims project not found: {}'.format(project_id)) return project_name = lims_project.name stepname=['Project Summary 1.3'] processes=lims.get_processes(type=stepname, projectname=project_name) if processes == []: error = "{} for {} is not available in LIMS.".format(stepname, limsproject) self.set_status(400) self.write(error) return for process in processes: process.get(force=True) process.udf['Bioinfo responsible'] = responsible try: process.put() except Exception, e: # still try to update everything # but will print error anyway self.set_status(400) self.write(e.message) continue
def post(self): project_id = self.get_argument('project_id', '') responsible = self.get_argument('responsible', '') if not project_id or not responsible: self.set_status(400) self.write('no project_id or bioinfo_responsible') return lims_project = LIMSProject(lims, id=project_id) if not lims_project: self.set_status(400) self.write('lims project not found: {}'.format(project_id)) return project_name = lims_project.name stepname=['Project Summary 1.3'] process=lims.get_processes(type=stepname, projectname=project_name) if process == []: error = "{} for {} is not available in LIMS.".format(stepname, limsproject) self.set_status(400) self.write(error) return process = process[0] process.udf['Bioinfo responsible'] = responsible try: process.put() except Exception, e: self.set_status(400) self.write(e.message) return
def get_container_from_id(flowcell): if flowcell[7:].startswith('00000000'): #Miseq proc=lims.get_processes(type='MiSeq Run (MiSeq) 4.0',udf={'Flow Cell ID': flowcell[7:]})[0] c = lims.get_containers(name=proc.udf['Reagent Cartridge ID'])[0] else: #Hiseq c = lims.get_containers(name=flowcell[8:])[0] return c
def post(self): project_id = self.get_argument('project_id', '') responsible = self.get_argument('responsible', '') if not project_id or not responsible: self.set_status(400) self.write('no project_id or bioinfo_responsible') return lims_project = LIMSProject(lims, id=project_id) if not lims_project: self.set_status(400) self.write('lims project not found: {}'.format(project_id)) return project_name = lims_project.name stepname = ['Project Summary 1.3'] processes = lims.get_processes(type=stepname, projectname=project_name) if processes == []: error = "{} for {} is not available in LIMS.".format( stepname, project_name) self.set_status(400) self.write(error) return for process in processes: process.get(force=True) process.udf['Bioinfo responsible'] = responsible try: process.put() except Exception as e: # still try to update everything # but will print error anyway self.set_status(400) self.write(e.message) continue # update status db # if lims was not updated, after a while this change will be discarded doc_id = None view = self.application.projects_db.view("project/project_id") for row in view[project_id]: doc_id = row.value break if doc_id == None: self.set_status(400) self.write('Status DB has not been updated: project not found') return doc = self.application.projects_db.get(doc_id) doc['project_summary'][ 'bioinfo_responsible'] = responsible if responsible != 'unassigned' else None try: self.application.projects_db.save(doc) except Exception as e: self.set_status(400) self.write(e.message) self.set_status(201) self.write({'success': 'success!!'})
def get_container_from_id(flowcell): if flowcell[7:].startswith('00000000'): #Miseq proc = lims.get_processes(type='MiSeq Run (MiSeq) 4.0', udf={'Flow Cell ID': flowcell[7:]})[0] c = lims.get_containers(name=proc.udf['Reagent Cartridge ID'])[0] else: #Hiseq c = lims.get_containers(name=flowcell[8:])[0] return c
def post(self): project_id = self.get_argument('project_id', '') responsible = self.get_argument('responsible', '') if not project_id or not responsible: self.set_status(400) self.write('no project_id or bioinfo_responsible') return lims_project = LIMSProject(lims, id=project_id) if not lims_project: self.set_status(400) self.write('lims project not found: {}'.format(project_id)) return project_name = lims_project.name stepname=['Project Summary 1.3'] processes=lims.get_processes(type=stepname, projectname=project_name) if processes == []: error = "{} for {} is not available in LIMS.".format(stepname, project_name) self.set_status(400) self.write(error) return for process in processes: process.get(force=True) process.udf['Bioinfo responsible'] = responsible try: process.put() except Exception as e: # still try to update everything # but will print error anyway self.set_status(400) self.write(e.message) continue # update status db # if lims was not updated, after a while this change will be discarded doc_id = None view = self.application.projects_db.view("project/project_id") for row in view[project_id]: doc_id = row.value break if doc_id == None: self.set_status(400) self.write('Status DB has not been updated: project not found') return doc=self.application.projects_db.get(doc_id) doc['project_summary']['bioinfo_responsible'] = responsible if responsible != 'unassigned' else None try: self.application.projects_db.save(doc) except Exception as e: self.set_status(400) self.write(e.message) self.set_status(201) self.write({'success': 'success!!'})
def get(self, project_id): project=Project(lims, id=project_id) processes=lims.get_processes(projectname=project.name, type='Project Summary 1.3') samples=lims.get_samples(projectname=project.name) self.getProjectSummaryFields(lims) t = self.application.loader.load("project_summary.html") self.write(t.generate(gs_globals=self.application.gs_globals, project_id=project_id, processes=processes, samples=samples, step_fields=self.step_fields, sample_fields=self.sample_fields))