private void showStepWin(T_GelStep t_GelStep) { var vm = IoC.Get <EditStepViewModel>(); vm.t_GelStep = t_GelStep; windowManager.ShowDialog(vm); }
public void Ok() { var resmanager = ResManager.getInstance(); var actiongen = ActionGenerater.getInstance(); var GelList = (this.View as ScanSampleView).GelList; List <T_GelStep> gelstep_list = new List <T_GelStep>(); foreach (var sample in Samples) { var test_list = sample.GetTestList(); var gel_list = new List <ResInfoData>(); foreach (var test in test_list) { var ware_seat = resmanager.GetResByCode(GelList[test].GelMask + "*", "T_BJ_GelWarehouse", "", "", lastinfo_list); if (ware_seat == null) { ErrorSystem.WriteActError("无卡", true, false); return; } ware_seat.sampleinfo = sample; lastinfo_list.Add(ware_seat); gel_list.Add(ware_seat); } foreach (var ware_seat in gel_list) { var gelend = new T_GelStep(); gelstep_list = gelstep_list.Concat(actiongen.ResolveActions(ware_seat)).ToList(); gelend.StepClass = TestStepEnum.GELEND; gelstep_list.Add(gelend); } } //破孔位还有多小个 int paperseat_count = 9; for (int i = 0; i < gelstep_list.Count; i++) { if (gelstep_list[i].StepClass == TestStepEnum.LoadGel && paperseat_count > 0) { gelstep_list[i].StepIndex = 10000 - i; paperseat_count--; } else { gelstep_list[i].StepIndex = 1000 - i; } } gelstep_list.Sort((T_GelStep a, T_GelStep b) => { return(a.StepIndex < b.StepIndex ? 1 : -1); }); var action_tree = actiongen.DivideIntoGroups(gelstep_list, 1); InjLogicManager.getInstance().AddAction(action_tree); this.RequestClose(); }
protected override void OnViewLoaded() { t_GSBackup = TransExpUtil <T_GelStep, T_GelStep> .Trans(t_GelStep); if (t_GelStep.StepID != 0) { var obj = StepList.Where(c => c.ID == t_GelStep.StepID); if (obj != null && obj.Count() > 0) { SwitchPage(obj.First()); } } }
public bool DeleteGelStep(T_GelStep t_GelStep) { return(gelDAO.DeleteGelStep(t_GelStep)); }
} //批次号(相同批次号时没开孔才可以合并) public static ExperimentPackage Create(List <T_GelStep> aaction_list, string gelmask, string samplebar, string volunteerbar, int lever, int geltype, int renfen, int afterkktime, bool isusedgel, int gel_test_id, bool is_crossmatching, int batch_id, bool is_double) { var exp = new ExperimentPackage(); exp.lever = lever; exp.AddSampleCode(samplebar); exp.AddvolunteerCode(volunteerbar); exp.gel_mask_id = ResManager.getInstance().AddGelMaskByID(gelmask); exp.start_time = DateTime.Now.ToString("yyyyMMddHHmmss"); exp.start_time_data = DateTime.Now; exp.gel_test_id = gel_test_id; exp.batch_id = batch_id; exp.is_crossmatching = is_crossmatching; exp.is_open = false; exp.package_id = g_package_id; exp.is_double = is_double; g_package_id++; foreach (var act in aaction_list) { act.ExperPackage = exp; exp.action_list.Add(new LogicAction(act)); } //省卡模式 exp.gel_type = geltype; exp.ren_fen = renfen; exp.after_kktime = afterkktime * 60 * 1000; exp.is_used_gel = isusedgel; var economize = new T_GelStep(); economize.ExperPackage = exp; economize.StepClass = TestStepEnum.ECONOMIZECOUNTTIME; if (isusedgel) { exp.action_list.Add(new LogicAction(economize)); } int index = 0; bool is_sort_index_ok = false; foreach (var act in exp.action_list) { act.GetGelStep().StepIndex = index; act.GetGelStep().SampleIndex = 0; if (is_sort_index_ok == false) { exp.sort_index = exp.gel_test_id; } if (act.GetGelStep().StepClass == TestStepEnum.ZKDFY) { ZKDFYStepParameter parameter = act.GetGelStep().StepParamters.ToInstance <ZKDFYStepParameter>(); exp.hatch_time = parameter.YsTime; if (is_sort_index_ok == false) { exp.sort_index += 100000; is_sort_index_ok = true; } } index++; } exp.UpdataSampleIndex(); if (is_crossmatching) { exp.SortCrossMatching(); } return(exp); }
//把转换为action point public ActionPoint GelStepToActionPoint(T_GelStep gel_step, TestStepEnum type) { if (gel_step.StepClass == TestStepEnum.FPYT && gel_step.GetLiquidInfo().IsDetector&& type != TestStepEnum.MixLiquid && type != TestStepEnum.SpuLiquid) { type = TestStepEnum.FollowAbsLiquid; } ActionPoint action_point = new ActionPoint(-1, -1, -1, type); var resmanager = ResManager.getInstance(); var exp_pack = ((ExperimentPackage)gel_step.ExperPackage); if (gel_step.StepClass == TestStepEnum.FPYT) { //是否为混合 bool is_mix = gel_step.is_mix; var fpytinfo = gel_step.GetFpytInfo(); var liquidinfo = gel_step.GetLiquidInfo(); action_point.deep = (int)liquidinfo.Deep; action_point.deepspeed = (int)liquidinfo.DeeSpeed; action_point.detectordeep = (int)liquidinfo.DetectorDeep; action_point.tube = (int)(fpytinfo.TubeValue >> gel_step.SampleIndex); action_point.capacity = (int)liquidinfo.Vol; action_point.absbspeed = (int)liquidinfo.AbsSpeed; action_point.spuspeed = (int)liquidinfo.SpuSpeed; action_point.backcapacity = (int)liquidinfo.BackCapacity; action_point.backspeed = (int)liquidinfo.BackCapacitySpeed; action_point.mixtimes = (int)(gel_step.is_spu?fpytinfo.MixTimes:0); action_point.mixdeep = (int)fpytinfo.MixDeep; action_point.spucapacity = (int)fpytinfo.Vol; if (action_point.type == TestStepEnum.AbsLiquid || action_point.type == TestStepEnum.FollowAbsLiquid) { ResInfoData abs_tager = null;//吸取的液体 if (liquidinfo.LiquidType == "病人红细胞" || liquidinfo.LiquidType == "病人血清") { abs_tager = resmanager.GetResByCode(exp_pack.GetSampleCode(gel_step.SampleIndex), "T_BJ_SampleRack"); } else { abs_tager = resmanager.GetResByCode(liquidinfo.LiquidType, "T_BJ_AgentiaWarehouse"); } System.Diagnostics.Debug.Assert(abs_tager != null); action_point.x = abs_tager.InjectorX; action_point.y = abs_tager.InjectorY; action_point.z = abs_tager.InjectorZ; } else if (action_point.type == TestStepEnum.MixLiquid) { //查找deep盘 ResInfoData deep_plane = resmanager.GetResByCode(gel_step.MixCode, "T_BJ_DeepPlate"); if (deep_plane == null) { //deep_plane = resmanager.GetFreeDeepPlate(5); deep_plane = resmanager.GetResByCode("null", "T_BJ_DeepPlate"); deep_plane.Values[deep_plane.CountX, deep_plane.CountY] = deep_plane; } System.Diagnostics.Debug.Assert(deep_plane != null); if (deep_plane.FindCode(gel_step.MixCode, false) == false) { deep_plane.AddCode(gel_step.MixCode); } action_point.x = deep_plane.InjectorX; action_point.y = deep_plane.InjectorY; action_point.z = deep_plane.InjectorZ; } else if (action_point.type == TestStepEnum.SpuLiquid) { //查找gel卡 ResInfoData gel_seat = resmanager.GetResByCode(exp_pack.GetGelMask(), "T_BJ_GelSeat"); System.Diagnostics.Debug.Assert(gel_seat != null); action_point.x = gel_seat.InjectorX; action_point.y = gel_seat.InjectorY; action_point.z = gel_seat.InjectorZ; action_point.tube_gap = gel_seat.InjectorGap; } } return(action_point); }
public LogicAction(T_GelStep action) { gel_step = action; }
public bool DeleteGelStep(T_GelStep t_GelStep) { return(DeleteGelStepByIDs(t_GelStep.ID.ToString())); }