private bool GetHISDataFromDataRow(DataRow dw, out ApplyData apply, out PatientData patData) { apply = new ApplyData(); patData = new PatientData(); NoRuleModel noRoleModel = new NoRuleModel(_dbQuery); try { apply.住院号 = dw["住院号"].ToString(); apply.除标记 = 0; apply.就诊卡号 = dw["就诊卡号"].ToString(); apply.影像类别 = dw["影像类别"].ToString();; apply.患者ID = SqlHelper.GetNumGuid(); //从HIS传过来的病人,暂时新建一个患者ID apply.执行科室ID = dw["执行科室ID"].ToString(); apply.执行院区 = ""; apply.申请ID = SqlHelper.GetNumGuid(); //从HIS传过来的病人,新建申请ID apply.申请关联ID = ""; apply.申请日期 = Convert.ToDateTime(dw["申请日期"].ToString()); apply.申请状态 = (int)ApplyState.asRegister; apply.申请识别码 = dw["医嘱ID"].ToString(); //对应HIS的医嘱ID apply.门诊号 = dw["门诊号"].ToString(); apply.申请信息.临床诊断 = dw["临床诊断"].ToString(); //单独查询的数据 apply.申请信息.主页ID = dw["主页ID"].ToString(); apply.申请信息.体重 = ""; apply.申请信息.医生嘱托 = dw["申请嘱托"].ToString(); apply.申请信息.姓名 = dw["姓名"].ToString(); apply.申请信息.婚姻状况 = dw["婚姻状况"].ToString(); apply.申请信息.年龄 = dw["年龄"].ToString(); apply.申请信息.床号 = dw["床号"].ToString(); apply.申请信息.性别 = dw["性别"].ToString(); apply.申请信息.是否允许查看报告 = false; apply.申请信息.是否危重 = false; apply.申请信息.是否婴儿 = dw["婴儿"].ToString() == "1" ? true : false; apply.申请信息.是否急诊 = dw["紧急"].ToString() == "1" ? true : false; apply.申请信息.是否绿色通道 = false; apply.申请信息.来源 = Int32.Parse(dw["病人来源"].ToString()); apply.申请信息.申请医生 = dw["申请医生"].ToString(); apply.申请信息.申请科室 = dw["申请科室"].ToString(); apply.申请信息.英文名 = PYConvert.ConvertPy(apply.申请信息.姓名); apply.申请信息.身高 = ""; apply.申请信息.附加内容 = dw["附加内容"].ToString(); //单独查询的数据 apply.申请信息.检查项目.项目名称 = dw["项目名称"].ToString(); apply.申请信息.CopyBasePro(apply); //患者信息 patData.除标记 = 0; patData.姓名 = dw["姓名"].ToString(); patData.患者ID = apply.患者ID; patData.患者关联ID = ""; patData.患者识别码 = dw["病人ID"].ToString(); patData.身份证号 = dw["身份证号"].ToString(); patData.患者信息.出生日期 = DateTime.Now.ToString(); patData.患者信息.国家 = dw["国籍"].ToString(); patData.患者信息.婚姻状况 = dw["婚姻状况"].ToString(); patData.患者信息.性别 = dw["性别"].ToString(); patData.患者信息.民族 = dw["民族"].ToString(); patData.患者信息.监护人 = ""; patData.患者信息.籍贯 = dw["籍贯"].ToString(); patData.患者信息.职业 = dw["职业"].ToString(); patData.患者信息.证件号码 = dw["身份证号"].ToString(); patData.患者信息.证件类型 = "身份证"; patData.患者信息.OftenContact.地址 = dw["常用联系地址"].ToString(); patData.患者信息.OftenContact.电话 = dw["常用联系电话"].ToString(); patData.患者信息.OftenContact.邮编 = dw["常用邮编"].ToString(); patData.患者信息.BakContact.地址 = dw["备用联系地址"].ToString(); patData.患者信息.BakContact.电话 = dw["备用联系电话"].ToString(); patData.患者信息.BakContact.邮编 = dw["备用邮编"].ToString(); patData.患者信息.CopyBasePro(patData); //根据上述信息,产生新的检查号 apply.检查号 = noRoleModel.GetStudyNo(patData.患者识别码, apply.影像类别, "6LfuLw/NyEabUbskclSyiQ", true); } catch (Exception ex) { MsgBox.ShowException(ex, this); return(false); } return(true); }
private void DoLineupCall(LineUpData lineupInfo, QueueData queueData) { DateTime callTime = _qm.GetServerStamp(); lineupInfo.检查房间 = _stationInfo.RoomName; if (lineupInfo.附加信息.首次呼叫时间 == default(DateTime)) { lineupInfo.附加信息.首次呼叫时间 = callTime; } lineupInfo.附加信息.末次呼叫时间 = callTime; lineupInfo.附加信息.播放站点 = queueData.队列信息.播放站点; if (lineupInfo.排队状态 == LineUpState.qsQueueing) { lineupInfo.排队状态 = LineUpState.qsWaitCall; } lineupInfo.附加信息.CopyBasePro(lineupInfo); LineCallData callInfo = new LineCallData(); callInfo.呼叫ID = SqlHelper.GetNumGuid(); callInfo.排队ID = lineupInfo.排队ID; callInfo.队列ID = lineupInfo.队列ID; callInfo.生成日期 = callTime; callInfo.呼叫站点 = queueData.队列信息.播放站点; callInfo.呼叫信息.原始内容 = queueData.队列信息.呼叫格式.Replace("[排队号码]", lineupInfo.号码前缀 + lineupInfo.排队号码).Replace("[患者姓名]", lineupInfo.患者姓名).Replace("[检查房间]", lineupInfo.检查房间).Replace("[科室名称]", lineupInfo.科室名称); callInfo.呼叫信息.格式内容 = queueData.队列信息.呼叫格式.Replace("[排队号码]", lineupInfo.号码前缀 + lineupInfo.排队号码).Replace("[患者姓名]", PYConvert.FormatCallSurname(lineupInfo.患者姓名)).Replace("[检查房间]", lineupInfo.检查房间).Replace("[科室名称]", lineupInfo.科室名称); callInfo.呼叫信息.CopyBasePro(callInfo); _qm.TransactionBegin(); try { _qm.UpdateLineupInfo(lineupInfo); _qm.NewCall(callInfo); _qm.TransactionCommit(); } catch (Exception ex) { _qm.TransactionRollback(); throw ex; } }