Exemplo n.º 1
0
        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;
            }
        }