public async Task <ActionResult <ExamInfo> > PostExamInfo(ExamInfo examInfo) { _context.ExamInfos.Add(examInfo); await _context.SaveChangesAsync(); return(CreatedAtAction("GetExamInfo", new { id = examInfo.Id }, examInfo)); }
public async Task <IActionResult> Edit(int id, [Bind("ExamId,ExamName")] ExamInfo examInfo) { if (id != examInfo.ExamId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(examInfo); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ExamInfoExists(examInfo.ExamId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(examInfo)); }
public async Task <IActionResult> PutExamInfo(int id, ExamInfo examInfo) { if (id != examInfo.Id) { return(BadRequest()); } _context.Entry(examInfo).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ExamInfoExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public ActionResult Edit(ExamInfo examinfo) { try { if (ModelState.IsValid) { db.Entry(examinfo).State = EntityState.Modified; db.SaveChanges(); TempData["ok"] = "ok"; TempData["message"] = "<span class=\"color-green\">Successfully Saved!</span>"; return(RedirectToAction("Index")); } ViewBag.Class_Id = new SelectList(db.ClassInfoes.ToList(), "Id", "ClassName", examinfo.ClassId); ViewBag.Status = StatusList(); ViewBag.Publish = PublistStatus(); return(View(examinfo)); } catch (Exception ex) { TempData["message"] = "<span class=\"color-red\">" + ex.Message + "</span>"; return(RedirectToAction("Index")); } }
public ExamInfo GenerateProcessItems(ExamOption selection) { ExamInfo exameInfo = new ExamInfo(); if (string.IsNullOrWhiteSpace(selection.columnName)) { throw new Exception("Error: course name is not decided."); } string sqlQuery = "Select * from dbo." + selection.tableName + " Where CourseName = N'" + selection.columnName + "'"; if (selection.genType == ExamItemGenerateType.RandomSelection) { sqlQuery = "SELECT TOP " + selection.count.ToString() + " * FROM dbo." + selection.tableName + " Where CourseName = N'" + selection.columnName + "' ORDER BY NEWID()"; } exameInfo.courseName = selection.courseName; exameInfo.columnName = selection.columnName; exameInfo.description = selection.description; exameInfo.dispType = selection.dispType; exameInfo.quitType = selection.quitType; exameInfo.askBackLimitTimes = selection.askbackTimeLimitation; exameInfo.items = GenerateProcessItems(sqlQuery); exameInfo.summerizerClassName = selection.summerizerClassName; exameInfo.quitMessage = selection.quitMessage; exameInfo.restartMessage = selection.restartMessage; return(exameInfo); }
public async Task <ExamInfo> Create(ExamInfo entity) { return(await this.connection.QueryFirstAsync <ExamInfo>( @"INSERT INTO ExamInfos (AttestationId, Date, StudentId, Score, Level) VALUES(@AttestationId, @Date, @StudentId, @Score, @Level); SELECT * FROM ExamInfos where Id = LAST_INSERT_ID();", entity)); }
public ActionResult DeleteConfirmed(int id) { ExamInfo examinfo = db.ExamInfoes.Find(id); db.ExamInfoes.Remove(examinfo); db.SaveChanges(); return(RedirectToAction("Index")); }
public string GetSummary(ExamProcessContext processContext, ExamInfo examInfo) { int currentIndex = processContext.index; int correctNumber = 0; int totalNumber = 0; int totalScore = 0; int userScore = 0; string error = ""; for (int i = 0; i < currentIndex; i++) { string userAnswer = processContext.collectedUserAnswer[i]; string correctAnswer = examInfo.items[i].answer; int score = examInfo.items[i].score; if (userAnswer.Trim().ToLower() == correctAnswer.Trim().ToLower()) { correctNumber++; userScore += score; } else { string[] tmps = correctAnswer.Trim().ToLower().Split(';'); if (tmps.Length > 1) { Array.Sort(tmps); string correctMultipleAnswer = string.Join("", tmps); tmps = userAnswer.Trim().ToLower().Split(' '); Array.Sort(tmps); string userMultipleAnswer = string.Join("", tmps); if (userMultipleAnswer == correctMultipleAnswer) { correctNumber++; userScore += score; break; } } error += this.info.SingleItemTemplate.Replace("${QUESTION}", examInfo.items[i].question).Replace("${USER_ANSWER}", userAnswer).Replace("${CORRECT_ANSWER}", correctAnswer); //"Questions: " + examInfo.items[i].question + ". Answers: " + userAnswer + ". [X] " + "Correct answers " + correctAnswer + "\r\n"; } totalNumber++; totalScore += score; } string result = this.info.SummeryTemplate.Replace("${TOTAL_NUMBER}", totalNumber.ToString()).Replace("${CORRECT_NUMBER}", correctNumber.ToString()).Replace("${USER_SCORE}", userScore.ToString()).Replace("${TOTAL_SCORE}", totalScore.ToString()); //"Totally " + totalNumber.ToString() + " questions, and " + correctNumber.ToString() + "correct answers, scores(" + userScore.ToString() + "/" + totalScore.ToString() + ").\r\n"; if (examInfo.dispType == ExamItemAnswerDisplayType.AllInSummary) { result += error; } return(result); }
public ActionResult GetExamInfo(stId2 info) { ExamInfo result = StudentExaminationPaperbll.GetExamInfo(info.Id1, info.Id2); var res = new ConfigurableJsonResult(); res.Data = result; HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", "*"); return(res); }
public async Task <IActionResult> Create([Bind("ExamId,ExamName")] ExamInfo examInfo) { if (ModelState.IsValid) { _context.Add(examInfo); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(examInfo)); }
public string GetSummary(ExamProcessContext processContext, ExamInfo examInfo) { string reviewContext = Utils.Utils.ReadEmbeddedResourceFile("Education.Engine.Res.dicsreviews.json"); Dictionary <string, DICSReviewInfo> reviewDict = JsonConvert.DeserializeObject <Dictionary <string, DICSReviewInfo> >(reviewContext); Dictionary <string, int> examResults = new Dictionary <string, int>(); foreach (string key in reviewDict.Keys) { examResults.Add(key, 0); } int index = 0; foreach (string result in processContext.collectedUserAnswer) { Dictionary <string, string> answerDict = GetAnswerDict(examInfo.items[index].answer); if (answerDict != null) { string realResult = answerDict[result.Trim()]; examResults[realResult] += 1; } } int averageNum = examInfo.items.Count / examResults.Count; string resp = "你的答案是:"; string subResp = ""; int featureNum = 0; string featureStr = ""; foreach (string key in examResults.Keys) { int num = examResults[key]; resp += key + " " + num.ToString() + "; "; if (num > averageNum) { featureNum++; featureStr += key + ","; subResp += reviewDict[key].Name + "\r\n" + reviewDict[key].Description + "\r\n"; } } resp += "\r\n你的答案中有" + featureNum.ToString() + "项得分超过" + averageNum.ToString() + "。所以你具备" + featureNum.ToString() + "项特征: \r\n" + subResp; return(resp); }
public HttpResponseMessage GetExam() { var eInfos = MongoDbHelper.QueryBy <E_Info>(DbName.E_Info, w => w.IsDel == 0); eInfos = eInfos.OrderByDescending(o => o.pt).ToList(); if (eInfos.Count == 0) { return(ResultHelper.OK(new List <string>())); } List <ExamInfo> es = new List <ExamInfo>(); foreach (var eInfo in eInfos) { ExamInfo e = new ExamInfo(); e.ID = eInfo._id.ToString(); e.PublishID = eInfo.ppid; e.PublishTime = eInfo.pt; e.PublishName = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid) == null ? "未知" : MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid).pnm; e.ExamName = eInfo.enm; e.StuStartTime = eInfo.sst; e.StuEndTime = eInfo.set; e.TchStartTime = eInfo.tst; e.TchEndTime = eInfo.tet; e.StuConfirm = eInfo.stcfm; e.TchConfirm = eInfo.tchcfm; e.ButtonState = eInfo.btstate; e.StuStart = Function.ConvertDateI(DateTime.Now) > eInfo.sst ? 1 : 0; e.TchStart = Function.ConvertDateI(DateTime.Now) > eInfo.tst ? 1 : 0; e.StuEnd = Function.ConvertDateI(DateTime.Now) > eInfo.set ? 1 : 0; e.TchEnd = Function.ConvertDateI(DateTime.Now) > eInfo.tet ? 1 : 0; if (Function.ConvertDateI(DateTime.Now) < eInfo.sst && Function.ConvertDateI(DateTime.Now) < eInfo.tst) { e.IsScan = 0; } else { e.IsScan = 1; } foreach (var item in eInfo.sbs) { e.subNames.Add(item._id, item.sbnm); } foreach (var item in eInfo.stps) { e.stuTypes += item.tp + ","; } e.stuTypes = e.stuTypes.Remove(e.stuTypes.Length - 1); es.Add(e); } return(ResultHelper.OK(es)); }
// GET: /ExamInfo/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ExamInfo examinfo = db.ExamInfoes.Find(id); if (examinfo == null) { return(HttpNotFound()); } return(View(examinfo)); }
public async Task <ExamInfo> Update(ExamInfo entity) { return(await this.connection.QueryFirstAsync <ExamInfo>( @"UPDATE ExamInfos SET AttestationId = @AttestationId, Date = @Date, StudentId = @StudentId, Score = @Score, Level = @Level WHERE Id = @id; SELECT * FROM ExamInfos where Id = @id", entity)); }
public HttpResponseMessage SelectExam([FromBody] ExamID m) { if (m == null) { return(ResultHelper.Failed("类容不能为空")); } var eInfo = MongoDbHelper.FindOne <E_Info>(m.ID, DbName.E_Info); if (eInfo == null) { return(ResultHelper.Failed("未找到该次考试信息")); } ExamInfo e = new ExamInfo(); e.ID = eInfo._id.ToString(); e.PublishID = eInfo.ppid; e.PublishTime = eInfo.pt; e.PublishName = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid) == null ? "未知" : MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == eInfo.ppid).pnm; e.ExamName = eInfo.enm; e.StuStartTime = eInfo.sst; e.StuEndTime = eInfo.set; e.TchStartTime = eInfo.tst; e.TchEndTime = eInfo.tet; e.StuConfirm = eInfo.stcfm; e.TchConfirm = eInfo.tchcfm; e.ButtonState = eInfo.btstate; e.StuStart = Function.ConvertDateI(DateTime.Now) > eInfo.sst ? 1 : 0; e.TchStart = Function.ConvertDateI(DateTime.Now) > eInfo.tst ? 1 : 0; e.StuEnd = Function.ConvertDateI(DateTime.Now) > eInfo.set ? 1 : 0; e.TchEnd = Function.ConvertDateI(DateTime.Now) > eInfo.tet ? 1 : 0; if (Function.ConvertDateI(DateTime.Now) < eInfo.sst && Function.ConvertDateI(DateTime.Now) < eInfo.tst) { e.IsScan = 0; } else { e.IsScan = 1; } foreach (var item in eInfo.sbs) { e.subNames.Add(item._id, item.sbnm); } foreach (var item in eInfo.stps) { e.stuTypes += item.tp + ","; } e.stuTypes = e.stuTypes.Remove(e.stuTypes.Length - 1); return(ResultHelper.OK(e)); }
public HttpResponseMessage EditExam([FromBody] ExamInfo m) { if (m == null) { return(ResultHelper.Failed("类容不能为空")); } var eInfo = MongoDbHelper.FindOne <E_Info>(m.ID, DbName.E_Info); if (eInfo == null) { return(ResultHelper.Failed("未找到该次考试信息")); } eInfo.tet = m.TchEndTime; eInfo.set = m.StuEndTime; eInfo.enm = m.ExamName; if (Function.ConvertDateI(DateTime.Now) < eInfo.sst && Function.ConvertDateI(DateTime.Now) < eInfo.tst)//考试还没开始导入 { eInfo.sst = m.StuStartTime; eInfo.tst = m.TchStartTime; eInfo.stcfm = 0; eInfo.tchcfm = 0; eInfo.sbs = new List <Sb>(); eInfo.stps = new List <Stp>(); foreach (var item in m.subNames) { Sb sb = new Sb(); sb._id = item.Key; sb.sbnm = item.Value; sb.stct = 0; sb.tchct = 0; eInfo.sbs.Add(sb); } string[] stuType = m.stuTypes.Split(','); foreach (var item in stuType) { Stp sTp = new Stp() { _id = ObjectId.GenerateNewId(), tp = item }; eInfo.stps.Add(sTp); } } MongoDbHelper.ReplaceOne(m.ID, eInfo, DbName.E_Info); return(ResultHelper.OK()); }
public static ExamInfo fromJson(dynamic array) { var newItem = new ExamInfo(); newItem.AScanNum = array["ascan_num"]; newItem.BScanNum = array["bscan_num"]; newItem.DataDir = array["data_dir"]; newItem.ExamDate = array["exam_date"]; newItem.ExamTime = array["exam_time"]; newItem.Horizontal = array["horizontal"]; newItem.Overlap = array["overlap"]; newItem.RangeX = array["range_x"]; newItem.RangeY = array["range_y"]; newItem.Side = array["side"] == "OD" ? EyeSide.OD : EyeSide.OS; newItem.Ssi = array["ssi"]; return(newItem); }
public string GetSummary(ExamProcessContext context, ExamInfo examInfo) { if (string.IsNullOrWhiteSpace(examInfo.summerizerClassName)) { return(""); } string className = examInfo.summerizerClassName; Type type = Type.GetType(examInfo.summerizerClassName); Object obj = Activator.CreateInstance(type); MethodInfo methodInfo = type.GetMethod("GetSummary"); object[] parametersArray = new object[] { context, examInfo }; string respStr = (string)methodInfo.Invoke(obj, parametersArray); return(respStr); }
// GET: /ExamInfo/Edit/5 public ActionResult Edit(int?id) { try { ExamInfo examinfo = db.ExamInfoes.Find(id); ViewBag.Class_Id = new SelectList(db.ClassInfoes.ToList(), "Id", "ClassName", examinfo.ClassId); ViewBag.Status = StatusList(); ViewBag.Publish = PublistStatus(); return(View(examinfo)); } catch (Exception ex) { TempData["message"] = "<span class=\"color-red\">" + ex.Message + "</span>"; return(RedirectToAction("Index")); } }
/// <summary> /// 获取考试信息(包括学生信息 和学生答题情况) /// </summary> /// <param name="ExercisesTestId"></param> /// <param name="StudentId"></param> /// <returns></returns> public ExamInfo GetExamInfo(int ExercisesTestId, int StudentId) { StudentExamState?stateinfo = StudentExamStatebll.GetStudentExamState(StudentId, ExercisesTestId); ExercisesTest? info1 = ExercisesTestbll.GetExercisesTest(ExercisesTestId); StudentExam? info2 = StudentExambll.GetStudentExam(StudentId); ExamInfo info = new ExamInfo(); if (info1 != null && info2 != null) { info.ExercisesDescribe = info1.Value.ExercisesDescribe; info.ExercisesName = info1.Value.ExercisesName; info.ExercisesTestId = info1.Value.ExercisesTestId; info.TotleScore = ExercisesTestbll.GetExercisesTestTotleScore(info.ExercisesTestId); info.IsOver = info1.Value.IsOver; if (stateinfo != null) { info.State = stateinfo.Value.State; } else { info.State = 0; } info.StudentExamId = info2.Value.StudentExamId; info.StudentName = info2.Value.StudentName; info.StudentNumber = info2.Value.StudentNumber; info.StudentScore = StudentExambll.GetStudentScore(info.StudentExamId, info.ExercisesTestId); info.ListExamTitle = GetExamTitleInfo(info.ExercisesTestId, info.StudentExamId); } return(info); // string strSql = @"select a.ExercisesTestId,a.ExercisesName,a.ExercisesDescribe,c.StudentExamId,c.StudentNumber,c.StudentName from ExercisesTest a // left join StudentExaminationPaper b on a.ExercisesTestId=b.ExercisesTestId // left join StudentExam c on b.StudentExamId=c.StudentExamId // where a.ExercisesTestId=@ExercisesTestId and c.StudentExamId=@StudentExamId"; // return DataTableToExamInfo(DBFactory.GetDB(DBType.SQLITE, m_strConn).ExecuteStrSql(strSql, new DbParameter[]{ // new SQLiteParameter(){ Value=ExercisesTestId, ParameterName="@ExercisesTestId"}, // new SQLiteParameter(){ Value=StudentId, ParameterName="@StudentExamId"} // })); }
private void BtnGenerate_Click(object sender, EventArgs e) { var info = _candidateRepository.Get(_info.FirstName, _info.LastName); if (info == null) { Helper.Logger.Error($"Podaci o kandidatu: {_info.FirstName} {_info.LastName} ne mogu biti nadjeni"); MessageBox.Show($"Podaci o kandidatu: {_info.FirstName} {_info.LastName} ne mogu biti nadjeni"); Close(); return; } var exam = new ExamInfo { Id = Guid.NewGuid().ToString("N"), Category = txtCategory.Text.Trim(), TakenOn = dtpTakenOn.Value, IncludesTrafficRegulationsTest = chxIncludesTrafficRegulationTest.Checked, IncludesFirstAidTest = chxIncludesFirstAidTest.Checked, IncludesDrivingTest = chxIncludesDrivingTest.Checked, Day = cbxExamDay.SelectedItem.ToString(), Location = txtLocation.Text.Trim(), Instructor = _instructorRepository.Get(cbxInstructors.SelectedItem.ToString()) }; info.Exams.Add(exam); Helper.CreateExamForm(Helper.GetPdfTemplateLocation(), _info, exam); _candidateRepository.Update(info); SharedViewLogic.LoadCandidatesTree(_treeCandidates, _candidateRepository); var selectedNode = _treeCandidates.Nodes.Find(info.LastName.First().ToString(), false).FirstOrDefault(); SharedViewLogic.LoadCandidatesGrid(_dgvCandidates, selectedNode?.Nodes ?? (IEnumerable)Enumerable.Empty <TreeNode>()); SharedViewLogic.LoadExamHistory(info.Exams ?? Enumerable.Empty <ExamInfo>(), _dgvExamHistory); Close(); }
private ExamInfo DataTableToExamInfo(DataTable dt) { ExamInfo info = new ExamInfo(); if (dt != null && dt.Rows.Count > 0) { info.ExercisesDescribe = dt.Rows[0]["ExercisesDescribe"] == DBNull.Value ? "" : dt.Rows[0]["ExercisesDescribe"].ToString(); info.ExercisesTestId = dt.Rows[0]["ExercisesTestId"] == DBNull.Value ? -100 : Convert.ToInt32(dt.Rows[0]["ExercisesTestId"]); info.ExercisesName = dt.Rows[0]["ExercisesName"] == DBNull.Value ? "" : dt.Rows[0]["ExercisesName"].ToString(); info.StudentExamId = dt.Rows[0]["StudentExamId"] == DBNull.Value ? -100 : Convert.ToInt32(dt.Rows[0]["StudentExamId"]); info.StudentName = dt.Rows[0]["StudentName"] == DBNull.Value ? "" : dt.Rows[0]["StudentName"].ToString(); info.StudentNumber = dt.Rows[0]["StudentNumber"] == DBNull.Value ? "" : dt.Rows[0]["StudentNumber"].ToString(); info.StudentScore = StudentExambll.GetStudentScore(info.StudentExamId, info.ExercisesTestId); info.TotleScore = ExercisesTestbll.GetExercisesTestTotleScore(info.ExercisesTestId); info.ListExamTitle = GetExamTitleInfo(info.ExercisesTestId, info.StudentExamId); } return(info); }
private static ExamInfo ReadInput() { var examInfo = new ExamInfo(); var ntab = Console.ReadLine().Split(); examInfo.Problems = new ProblemInfo[int.Parse(ntab[0])]; examInfo.Time = int.Parse(ntab[1]); examInfo.EasyProblemSolveTime = int.Parse(ntab[2]); examInfo.HardProblemSolveTime = int.Parse(ntab[3]); foreach (var isHard in Console.ReadLine().Split().Select((value, i) => new { value, i })) { examInfo.Problems[isHard.i].IsHard = isHard.value == "1"; } foreach (var mandatorySolveTime in Console.ReadLine().Split().Select((value, i) => new { value, i })) { examInfo.Problems[mandatorySolveTime.i].MandatorySolveTime = int.Parse(mandatorySolveTime.value); } return(examInfo); }
public ActionResult Create(ExamInfo examinfo) { try { if (ModelState.IsValid) { //int maxId =db.ExamInfoes.Max(t => t.Id); //if (maxId == null) // maxId = 1; //else // maxId += 1; //examinfo.Id =Convert.ToInt32(maxId); examinfo.EntryBy = User.Identity.Name; examinfo.EntryDate = DateTime.Today; examinfo.AuthorizedBy = User.Identity.Name; examinfo.AuthorizedDate = DateTime.Today; db.ExamInfoes.Add(examinfo); db.SaveChanges(); TempData["ok"] = "ok"; TempData["message"] = "<span class=\"color-green\">Successfully Saved!</span>"; } return(View(examinfo)); } catch (Exception ex) { TempData["message"] = "<span class=\"color-red\">" + ex.Message + "</span>"; } return(RedirectToAction("Index")); }
//取得考試資訊 public ExamInfo GetInfo(string ClassNo) { ExamInfo examInfo = new ExamInfo(); string sErrMsg = string.Empty; DataTable dt = new DataTable(); DBUtility sqlObj = null; sqlObj = new DBUtility(); sqlObj.StoreProcedureName = "SP_Qry_Exam"; sqlObj.SetupSqlCommand(ref sErrMsg); sqlObj.SqlCmd.Parameters["@ClassNo"].Value = ClassNo; try { sqlObj.SqlConn.Open(); SqlDataAdapter da = new SqlDataAdapter(sqlObj.SqlCmd); da.Fill(dt); examInfo.ExamID = dt.Rows[0]["ExamID"].ToString(); examInfo.ExamName = dt.Rows[0]["ExamName"].ToString(); examInfo.ExamPaperName = dt.Rows[0]["ExamPaperName"].ToString(); examInfo.ExamTotalScore = dt.Rows[0]["ExamTotalScore"].ToString(); examInfo.ExamPassScore = dt.Rows[0]["ExamPassScore"].ToString(); examInfo.ExamTime = dt.Rows[0]["ExamTime"].ToString(); examInfo.ExamCount = dt.Rows[0]["ExamCount"].ToString(); int time = Convert.ToInt32(dt.Rows[0]["ExamTimeInt"]) * 60; examInfo.ExamTimeString = (time / 3600).ToString("00") + ":" + (time % 3600 / 60).ToString("00") + ":" + (time % 3600 % 60).ToString("00"); examInfo.ExamTimeInt = Convert.ToInt32(dt.Rows[0]["ExamTimeInt"]); } catch (Exception ex) { throw ex; } finally { sqlObj.SqlConn.Close(); } return(examInfo); }
public void Insert(ExamInfo entity) { _examInfoDAL.Add(entity); }
public string HandleMessage(string userId, string userInput, ref EEContext eContext) { if (eContext.GetType() != typeof(ExamContext)) { eContext = new ExamContext(userId); } ExamContext context = (ExamContext)eContext; ExamProcessor processor = new ExamProcessor(); string respStr = null; ExamSelectionInfo sInfo = sStore.GetSelectionInfo(); Dictionary <string, ExamOption> selectionOptionMap = sStore.GetSelectionMap(); ExamInfo info = null; switch (context.stage) { case StageType.Init: respStr = sInfo.optionMessage + "\r\n"; foreach (string key in selectionOptionMap.Keys) { respStr += "(" + key + ")" + selectionOptionMap[key].courseName + " "; } context.stage = StageType.Start; break; case StageType.Start: bool isMatched = Utils.Utils.IsRegexMatched(sInfo.optionRegex, userInput); if (isMatched) { if (selectionOptionMap.ContainsKey(userInput)) { ExamOption option = selectionOptionMap[userInput]; ExamPreProcessor preProcessor = new ExamPreProcessor(); info = preProcessor.GenerateProcessItems(option); eStore.SetExamInfo(userId, info); respStr = info.courseName + "\r\n" + (string.IsNullOrWhiteSpace(info.description)?"":(info.description + "\r\n")) + info.items[context.processContext.index].question; context.stage = StageType.InProcess; } else { throw new Exception("Option " + userInput + " is not available."); } } else { respStr = sInfo.askbackMessage + "\r\n" + sInfo.optionMessage; context.selectContext.askbackTime++; } break; case StageType.InProcess: info = eStore.GetExamInfo(userId); respStr = processor.ProcessItem(userId, userInput, ref context, ref info); break; case StageType.Paused: info = eStore.GetExamInfo(userId); respStr = info.restartMessage; context.stage = StageType.Restarted; break; case StageType.Restarted: info = eStore.GetExamInfo(userId); if (userInput.Trim().ToLower() != "y") { context.processContext = new ExamProcessContext(); } respStr = processor.ProcessItem(userId, userInput, ref context, ref info); context.stage = StageType.InProcess; break; } if (context.stage == StageType.Completed) { cStore.RemoveContext(userId); eStore.RemoveExamInfo(userId); } else { if (context.stage == StageType.Paused) { context.processContext.askbackTime = 0; } cStore.SetContext(userId, context); } return(respStr); }
private IExamInfo CreateExamInfo(DataRow examInfoRow, IPatientInfo patientInfo) { var examTime = (DateTime)examInfoRow["ExamDate"]; ExamInfo examInfo = new ExamInfo((PatientInfo)patientInfo, examInfoRow["ExamId"].ToString(), examTime) { Comment = examInfoRow["Comment"].ToString(), ExtraInfo = examInfoRow["ExtraInfo"].ToString(), AccessionNumber = examInfoRow["AccessionNumber"].ToString(), Operator = examInfoRow["Operator"].ToString(), PerformingPhysician = examInfoRow["ExamPhysician"].ToString(), ReferringPhysician = examInfoRow["PerfPhysician"].ToString(), }; var eddValue = examInfoRow["OBInfo_EDDByLMP"]; var gaValue = examInfoRow["OBInfo_GAByLMP"]; if (eddValue != DBNull.Value && gaValue != DBNull.Value) { var edd = (DateTime)eddValue; var ga = (int)gaValue; var total = (edd.ToLocalTime().Date - examTime.ToLocalTime().Date).Days + ga; var flags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly; var gaConstraint = examInfo.OBInfo.GetType().GetField("_gaConstraint", flags); if (gaConstraint != null) { var constraintObj = gaConstraint.GetValue(examInfo.OBInfo); var eddFactor = constraintObj.GetType().GetField("_eddFactor", flags); if (eddFactor != null) { eddFactor.SetValue(constraintObj, total); } } } if (examInfoRow["GeneralInfo_Height"] != DBNull.Value) { examInfo.GeneralInfo.Height = (double)examInfoRow["GeneralInfo_Height"]; } if (examInfoRow["GeneralInfo_Weight"] != DBNull.Value) { examInfo.GeneralInfo.Weight = (double)examInfoRow["GeneralInfo_Weight"]; } if (examInfoRow["GeneralInfo_BSA"] != DBNull.Value) { examInfo.GeneralInfo.BSA = (double)examInfoRow["GeneralInfo_BSA"]; } examInfo.GYNInfo.Ectopic = examInfoRow["GYNInfo_Ectopic"].ToString(); if (examInfoRow["GYNInfo_AB"] != DBNull.Value) { examInfo.GYNInfo.AB = (int)examInfoRow["GYNInfo_AB"]; } if (examInfoRow["GYNInfo_Gravida"] != DBNull.Value) { examInfo.GYNInfo.Gravida = (int)examInfoRow["GYNInfo_Gravida"]; } if (examInfoRow["GYNInfo_LMP"] != DBNull.Value) { examInfo.GYNInfo.LMP = (DateTime)examInfoRow["GYNInfo_LMP"]; } if (examInfoRow["GYNInfo_Para"] != DBNull.Value) { examInfo.GYNInfo.Para = (int)examInfoRow["GYNInfo_Para"]; } if (examInfoRow["URInfo_PPSACoefficient"] != DBNull.Value) { examInfo.URInfo.PPSACoefficient = (double)examInfoRow["URInfo_PPSACoefficient"]; } if (examInfoRow["URInfo_PSA"] != DBNull.Value) { examInfo.URInfo.PSA = (double)examInfoRow["URInfo_PSA"]; } var obInfo = examInfo.OBInfo as PatientOBInfo; if (obInfo != null) { obInfo.GAOrigin = GAOrigins.Convert((int)examInfoRow["OBInfo_GestationalAgeOrigin"]); obInfo.Ectopic = examInfoRow["OBInfo_Ectopic"].ToString(); if (examInfoRow["OBInfo_FetusNumber"] != DBNull.Value) { obInfo.FetusNumber = (int)examInfoRow["OBInfo_FetusNumber"]; } if (examInfoRow["OBInfo_AB"] != DBNull.Value) { obInfo.AB = (int)examInfoRow["OBInfo_AB"]; } if (examInfoRow["OBInfo_Gravida"] != DBNull.Value) { obInfo.Gravida = (int)examInfoRow["OBInfo_Gravida"]; } if (examInfoRow["OBInfo_Para"] != DBNull.Value) { obInfo.Para = (int)examInfoRow["OBInfo_Para"]; } if (gaValue != DBNull.Value) { obInfo.GestationalDays = (int)gaValue; if (obInfo.GAOrigin == GAOrigins.GA) { //这里转换examInfoRow["OBInfo_GaSourceDate"]到datetime。再做计算 obInfo.PrevExamGA = obInfo.GestationalDays - (examInfo.ExamDate.ToLocalTime().Date - ((DateTime)examInfoRow["OBInfo_GaSourceDate"]).ToLocalTime().Date).Days; } } if (examInfoRow["WorkSheetsXml"] != DBNull.Value) { var workSheetXml = (byte[])examInfoRow["WorkSheetsXml"]; SetValueForExamWorkSheet(workSheetXml, examInfo); SaveWorksheet(examInfo); } } return(examInfo); }
public void Update(ExamInfo entity) { _examInfoDAL.Update(entity); }
//得到检查信息 LY 2015-10-10 public List <ExamInfo> PsExaminationGetExaminationList(DataConnection pclsCache, string piUserId, string piVisitId) { List <ExamInfo> list = new List <ExamInfo>(); CacheCommand cmd = null; CacheDataReader cdr = null; try { if (!pclsCache.Connect()) { return(null); } cmd = new CacheCommand(); cmd = Ps.Examination.GetExaminationList(pclsCache.CacheConnectionObject); cmd.Parameters.Add("piUserId", CacheDbType.NVarChar).Value = piUserId; cmd.Parameters.Add("piVisitId", CacheDbType.NVarChar).Value = piVisitId; cdr = cmd.ExecuteReader(); while (cdr.Read()) { string ReportDateShow = ""; if (cdr["ReportDate"].ToString() == "9999/1/1 0:00:00") { ReportDateShow = ""; } else { ReportDateShow = cdr["ReportDate"].ToString(); } ExamInfo NewLine = new ExamInfo(); NewLine.VisitId = cdr["VisitId"].ToString(); NewLine.SortNo = cdr["SortNo"].ToString(); NewLine.ExamType = cdr["ExamType"].ToString(); NewLine.ExamTypeName = cdr["ExamTypeName"].ToString(); NewLine.ExamDate = cdr["ExamDate"].ToString(); NewLine.ItemCode = cdr["ItemCode"].ToString(); NewLine.ItemName = cdr["ItemName"].ToString(); NewLine.ExamPara = cdr["ExamPara"].ToString(); NewLine.Description = cdr["Description"].ToString(); NewLine.Impression = cdr["Impression"].ToString(); NewLine.Recommendation = cdr["Recommendation"].ToString(); NewLine.IsAbnormalCode = cdr["IsAbnormalCode"].ToString(); NewLine.IsAbnormal = cdr["IsAbnormal"].ToString(); NewLine.StatusCode = cdr["StatusCode"].ToString(); NewLine.Status = cdr["Status"].ToString(); NewLine.ReqortDate = ReportDateShow; NewLine.ImageURL = cdr["ImageURL"].ToString(); NewLine.DeptCode = cdr["DeptCode"].ToString(); NewLine.DeptName = cdr["DeptName"].ToString(); NewLine.Creator = cdr["Creator"].ToString(); NewLine.ExamDateCom = Convert.ToDateTime(cdr["ExamDate"]).ToString("yyyy-MM-dd HH:mm:ss"); list.Add(NewLine); } return(list); } catch (Exception ex) { HygeiaComUtility.WriteClientLog(HygeiaEnum.LogType.ErrorLog, "Ps.Examination.GetExaminationList", "数据库操作异常! error information : " + ex.Message + Environment.NewLine + ex.StackTrace); return(null); } finally { if ((cdr != null)) { cdr.Close(); cdr.Dispose(true); cdr = null; } if ((cmd != null)) { cmd.Parameters.Clear(); cmd.Dispose(); cmd = null; } pclsCache.DisConnect(); } }