Exemple #1
0
        private MED_OPERATION_SCHEDULE setOperationSubmit(string sql_GetMaxOperationNo, MED_OPERATION_SCHEDULE item)
        {
            MED_OPERATION_SCHEDULE dbSCHEDULE = dapper.Set <MED_OPERATION_SCHEDULE>().Single(item); //判断收到已经提交

            if (dbSCHEDULE.OPER_STATUS_CODE == 1)                                                   //实时判断,没提交才能判断
            {
                #region 获取MED_OPERATION_SCHEDULE_NAME表数据
                List <MED_OPERATION_SCHEDULE_NAME> scheduleNameItemList = dapper.Set <MED_OPERATION_SCHEDULE_NAME>().Select(d => d.PATIENT_ID == item.PATIENT_ID && d.VISIT_ID == item.VISIT_ID && d.SCHEDULE_ID == item.SCHEDULE_ID).OrderBy(d => d.OPER_NO).ToList <MED_OPERATION_SCHEDULE_NAME>();
                #endregion
                int    OperationNo       = GetMaxOperationNo(sql_GetMaxOperationNo, item);
                string tempOperationName = string.Empty;
                #region 向MED_OPERATION_NAME表插入数据
                List <MED_OPERATION_NAME> operNameItemList = new List <MED_OPERATION_NAME>();
                foreach (MED_OPERATION_SCHEDULE_NAME scheduleNameItem in scheduleNameItemList)
                {
                    MED_OPERATION_NAME operNameItem = new MED_OPERATION_NAME();
                    operNameItem.PATIENT_ID = scheduleNameItem.PATIENT_ID;
                    operNameItem.VISIT_ID   = scheduleNameItem.VISIT_ID;
                    operNameItem.OPER_ID    = item.OPER_ID;
                    operNameItem.OPER_NO    = ++OperationNo;
                    operNameItem.OPER_NAME  = scheduleNameItem.OPER_NAME;
                    operNameItem.OPER_CODE  = scheduleNameItem.OPER_CODE;
                    operNameItem.OPER_SCALE = scheduleNameItem.OPER_SCALE;
                    operNameItem.WOUND_TYPE = scheduleNameItem.WOUND_TYPE;
                    operNameItem.RESERVED1  = scheduleNameItem.RESERVED1;
                    operNameItem.RESERVED2  = scheduleNameItem.RESERVED2;
                    operNameItem.RESERVED3  = scheduleNameItem.RESERVED3;
                    operNameItem.RESERVED4  = scheduleNameItem.RESERVED4;
                    operNameItemList.Add(operNameItem);
                    tempOperationName += "," + scheduleNameItem.RESERVED2 + scheduleNameItem.OPER_NAME;
                }
                dapper.Set <MED_OPERATION_NAME>().Insert(operNameItemList);
                #endregion
                tempOperationName = tempOperationName.TrimStart(',');
                #region 向MED_OPERATION_MASTER表插入数据
                MED_OPERATION_MASTER masterITEM = new MED_OPERATION_MASTER
                {
                    PATIENT_ID            = item.PATIENT_ID,
                    VISIT_ID              = item.VISIT_ID,
                    OPER_ID               = Convert.ToInt32(item.OPER_ID),
                    HOSP_BRANCH           = item.HOSP_BRANCH,
                    WARD_CODE             = item.WARD_CODE,
                    DEPT_CODE             = item.DEPT_CODE,
                    OPER_DEPT_CODE        = item.OPER_DEPT_CODE,
                    OPER_ROOM             = item.OPER_ROOM,
                    OPER_ROOM_NO          = item.OPER_ROOM_NO,
                    SEQUENCE              = item.SEQUENCE,
                    OPER_CLASS            = item.OPER_CLASS,
                    DIAG_BEFORE_OPERATION = item.DIAG_BEFORE_OPERATION,
                    DIAG_AFTER_OPERATION  = item.DIAG_BEFORE_OPERATION,
                    PATIENT_CONDITION     = item.PATIENT_CONDITION,
                    OPER_SCALE            = item.OPER_SCALE,
                    WOUND_TYPE            = item.WOUND_TYPE,
                    ASA_GRADE             = item.ASA_GRADE,
                    EMERGENCY_IND         = item.EMERGENCY_IND,
                    OPER_SOURCE           = item.OPER_SOURCE,
                    ISOLATION_IND         = item.ISOLATION_IND,
                    INFECTED_IND          = item.INFECTED_IND,
                    RADIATE_IND           = item.RADIATE_IND,
                    SURGEON               = item.SURGEON,
                    FIRST_OPER_ASSISTANT  = item.FIRST_OPER_ASSISTANT,
                    SECOND_OPER_ASSISTANT = item.SECOND_OPER_ASSISTANT,
                    THIRD_OPER_ASSISTANT  = item.THIRD_OPER_ASSISTANT,
                    FOURTH_OPER_ASSISTANT = item.FOURTH_OPER_ASSISTANT,
                    ANES_METHOD           = item.ANES_METHOD,
                    ANES_DOCTOR           = item.ANES_DOCTOR,
                    FIRST_ANES_ASSISTANT  = item.FIRST_ANES_ASSISTANT,
                    SECOND_ANES_ASSISTANT = item.SECOND_ANES_ASSISTANT,
                    THIRD_ANES_ASSISTANT  = item.THIRD_ANES_ASSISTANT,
                    FOURTH_ANES_ASSISTANT = item.FOURTH_ANES_ASSISTANT,
                    FIRST_ANES_NURSE      = item.FIRST_ANES_NURSE,
                    SECOND_ANES_NURSE     = item.SECOND_ANES_NURSE,
                    THIRD_ANES_NURSE      = item.THIRD_ANES_NURSE,
                    CPB_DOCTOR            = item.CPB_DOCTOR,
                    FIRST_CPB_ASSISTANT   = item.FIRST_CPB_ASSISTANT,
                    SECOND_CPB_ASSISTANT  = item.SECOND_CPB_ASSISTANT,
                    THIRD_CPB_ASSISTANT   = item.THIRD_CPB_ASSISTANT,
                    FOURTH_CPB_ASSISTANT  = item.FOURTH_CPB_ASSISTANT,
                    FIRST_OPER_NURSE      = item.FIRST_OPER_NURSE,
                    SECOND_OPER_NURSE     = item.SECOND_OPER_NURSE,
                    THIRD_OPER_NURSE      = item.THIRD_OPER_NURSE,
                    FOURTH_OPER_NURSE     = item.FOURTH_OPER_NURSE,
                    FIRST_SUPPLY_NURSE    = item.FIRST_SUPPLY_NURSE,
                    SECOND_SUPPLY_NURSE   = item.SECOND_SUPPLY_NURSE,
                    THIRD_SUPPLY_NURSE    = item.THIRD_SUPPLY_NURSE,
                    FOURTH_SUPPLY_NURSE   = item.FOURTH_SUPPLY_NURSE,
                    PACU_DOCTOR           = item.PACU_DOCTOR,
                    FIRST_PACU_ASSISTANT  = item.FIRST_PACU_ASSISTANT,
                    SECOND_PACU_ASSISTANT = item.SECOND_PACU_ASSISTANT,
                    FIRST_PACU_NURSE      = item.FIRST_PACU_NURSE,
                    SECOND_PACU_NURSE     = item.SECOND_PACU_NURSE,
                    REQ_DATE_TIME         = item.REQ_DATE_TIME,
                    SCHEDULED_DATE_TIME   = item.SCHEDULED_DATE_TIME,
                    OPER_POSITION         = item.OPER_POSITION,
                    BED_NO            = item.BED_NO,
                    OPERATION_NAME    = tempOperationName,
                    SPECIAL_EQUIPMENT = item.SPECIAL_EQUIPMENT,
                    SPECIAL_INFECT    = item.SPECIAL_INFECT,
                    OPER_STATUS_CODE  = item.OPER_STATUS_CODE,
                    HIS_PATIENT_ID    = item.HIS_PATIENT_ID,
                    HIS_VISIT_ID      = item.HIS_VISIT_ID,
                    HIS_SCHEDULE_ID   = item.HIS_SCHEDULE_ID,
                    HIS_OPER_STATUS   = item.HIS_OPER_STATUS,
                    MEMO = item.NOTES_ON_OPERATION
                };

                bool flag = dapper.Set <MED_OPERATION_MASTER>().Insert(masterITEM);
                #endregion
                item.OPERATION_NAME = tempOperationName;
                dapper.Set <MED_OPERATION_SCHEDULE>().Update(item, d => new { d.ANES_CONFIRM, d.NURSE_CONFIRM, d.OPER_STATUS_CODE, d.OPER_ID, d.OPERATION_NAME, d.ANES_DOCTOR });
                if (flag)
                {
                    //确认成功后,从visit表中往plan表中写入手术名称,身高体重数据
                    MED_ANESTHESIA_PLAN anesPlan = dapper.Set <MED_ANESTHESIA_PLAN>().Single(d => d.PATIENT_ID == masterITEM.PATIENT_ID && d.VISIT_ID == masterITEM.VISIT_ID && d.OPER_ID == masterITEM.OPER_ID);
                    if (anesPlan == null)
                    {
                        anesPlan            = new MED_ANESTHESIA_PLAN();
                        anesPlan.PATIENT_ID = masterITEM.PATIENT_ID;
                        anesPlan.VISIT_ID   = masterITEM.VISIT_ID;
                        anesPlan.OPER_ID    = masterITEM.OPER_ID;
                    }
                    if (!string.IsNullOrEmpty(masterITEM.OPERATION_NAME))
                    {
                        anesPlan.OPERATION_NAME = masterITEM.OPERATION_NAME;
                    }
                    dapper.Set <MED_ANESTHESIA_PLAN>().Save(anesPlan, d => d.PATIENT_ID == masterITEM.PATIENT_ID && d.VISIT_ID == masterITEM.VISIT_ID && d.OPER_ID == masterITEM.OPER_ID);

                    MED_ANESTHESIA_PLAN_PMH anesPlanPmh = dapper.Set <MED_ANESTHESIA_PLAN_PMH>().Single(d => d.PATIENT_ID == masterITEM.PATIENT_ID && d.VISIT_ID == masterITEM.VISIT_ID && d.OPER_ID == masterITEM.OPER_ID);
                    MED_PAT_VISIT           patVisit    = dapper.Set <MED_PAT_VISIT>().Single(d => d.PATIENT_ID == masterITEM.PATIENT_ID && d.VISIT_ID == masterITEM.VISIT_ID);
                    if (anesPlanPmh == null)
                    {
                        anesPlanPmh            = new MED_ANESTHESIA_PLAN_PMH();
                        anesPlanPmh.PATIENT_ID = masterITEM.PATIENT_ID;
                        anesPlanPmh.VISIT_ID   = masterITEM.VISIT_ID;
                        anesPlanPmh.OPER_ID    = masterITEM.OPER_ID;
                        if (patVisit != null)
                        {
                            anesPlanPmh.HEIGHT     = patVisit.BODY_HEIGHT.HasValue ? patVisit.BODY_HEIGHT.Value.ToString() : "";
                            anesPlanPmh.WEIGHT     = patVisit.BODY_WEIGHT.HasValue ? patVisit.BODY_WEIGHT.Value.ToString() : "";
                            anesPlanPmh.BLOOD_TYPE = patVisit.BLOOD_TYPE + " " + patVisit.BLOOD_TYPE_RH;
                        }
                    }
                    else
                    {
                        if (patVisit != null)
                        {
                            anesPlanPmh.HEIGHT     = patVisit.BODY_HEIGHT.HasValue ? patVisit.BODY_HEIGHT.Value.ToString() : "";;
                            anesPlanPmh.WEIGHT     = patVisit.BODY_WEIGHT.HasValue ? patVisit.BODY_WEIGHT.Value.ToString() : "";;
                            anesPlanPmh.BLOOD_TYPE = patVisit.BLOOD_TYPE + " " + patVisit.BLOOD_TYPE_RH;
                        }
                    }
                    dapper.Set <MED_ANESTHESIA_PLAN_PMH>().Save(anesPlanPmh, d => d.PATIENT_ID == anesPlanPmh.PATIENT_ID && d.VISIT_ID == anesPlanPmh.VISIT_ID && d.OPER_ID == anesPlanPmh.OPER_ID);
                    dapper.SaveChanges();
                    return(item);
                }
            }
            return(null);
        }
Exemple #2
0
        protected override void OnSaveData(Dictionary <string, DataTable> dataSource)//, ref bool bNeedMsg
        {
            foreach (MTextBox mtb in textBoxs)
            {
                if (string.IsNullOrEmpty(mtb.Text) && !string.IsNullOrEmpty(mtb.InputNeededMessage))
                {
                    MessageBoxFormPC.Show("*号为必填项目,请重新填写");
                    // bNeedMsg = false;
                    return;
                }
            }
            string patientID = BindControls("MED_PAT_MASTER_INDEX", "PATIENT_ID");

            if (operationMaster == null)
            {
                operationMaster = new MED_OPERATION_MASTER();
            }
            operationMaster.SetValue("PATIENT_ID", patientID);
            operationMaster.SetValue("VISIT_ID", visitID);
            operationMaster.SetValue("OPER_ID", operID);
            operationMaster.SetValue("OPER_ROOM", ExtendAppContext.CurntSelect.OperRoom);
            operationMaster.SetValue("HOSP_BRANCH", ExtendAppContext.CurntSelect.HospBranchCode);
            operationMaster.SetValue("EMERGENCY_IND", BindControls("MED_OPERATION_MASTER", "EMERGENCY_IND"));
            operationMaster.SetValue("DEPT_CODE", BindControls("MED_OPERATION_MASTER", "DEPT_CODE"));
            operationMaster.SetValue("BED_NO", BindControls("MED_OPERATION_MASTER", "BED_NO"));
            operationMaster.SetValue("SCHEDULED_DATE_TIME", BindControls("MED_OPERATION_MASTER", "SCHEDULED_DATE_TIME"));
            operationMaster.SetValue("OPER_ROOM_NO", BindControls("MED_OPERATION_MASTER", "OPER_ROOM_NO"));
            operationMaster.SetValue("SEQUENCE", BindControls("MED_OPERATION_MASTER", "SEQUENCE"));
            operationMaster.SetValue("ANES_DOCTOR", BindControls("MED_OPERATION_MASTER", "ANES_DOCTOR"));
            operationMaster.SetValue("DIAG_BEFORE_OPERATION", BindControls("MED_OPERATION_MASTER", "DIAG_BEFORE_OPERATION"));
            operationMaster.SetValue("OPERATION_NAME", BindControls("MED_OPERATION_MASTER", "OPERATION_NAME"));
            operationMaster.SetValue("OPER_STATUS_CODE", 2);

            if (currentOperSchedule != null)
            {
                currentOperSchedule.SetValue("OPER_STATUS_CODE", 2);
            }

            if (patVisit == null)
            {
                patVisit = new MED_PAT_VISIT();
            }
            patVisit.SetValue("PATIENT_ID", patientID);
            patVisit.SetValue("VISIT_ID", visitID);
            patVisit.SetValue("INP_NO", BindControls("MED_PATS_IN_HOSPITAL", "INP_NO"));

            if (patMasterIndex == null)
            {
                patMasterIndex = new MED_PAT_MASTER_INDEX();
            }
            patMasterIndex.SetValue("PATIENT_ID", patientID);
            patMasterIndex.SetValue("NAME", BindControls("MED_PAT_MASTER_INDEX", "NAME"));
            patMasterIndex.SetValue("SEX", BindControls("MED_PAT_MASTER_INDEX", "SEX"));
            patMasterIndex.SetValue("DATE_OF_BIRTH", BindControls("MED_PAT_MASTER_INDEX", "DATE_OF_BIRTH"));

            string strOperName = BindControls("MED_OPERATION_MASTER", "OPER_NAME");

            if (!string.IsNullOrEmpty(strOperName))
            {
                string[] operNameArr = strOperName.Split('+');
                for (int i = 0; i < operNameArr.Length; i++)
                {
                    MED_OPERATION_NAME operName = new MED_OPERATION_NAME();
                    operName.SetValue("PATIENT_ID", operationMaster.PATIENT_ID);
                    operName.SetValue("VISIT_ID", operationMaster.VISIT_ID);
                    operName.SetValue("OPER_ID", operationMaster.OPER_ID);
                    operName.SetValue("OPER_NO", i + 1);
                    operName.SetValue("OPER_NAME", operNameArr[i].ToString());
                    operNameNewList.Add(operName);
                }
            }

            MED_ANESTHESIA_PLAN      anesPlan     = OperationInfoService.GetAnesPlan(patientID, visitID, operID);
            MED_ANESTHESIA_PLAN_PMH  anesPlanPmh  = OperationInfoService.GetAnesPlanPmh(patientID, visitID, operID);
            MED_ANESTHESIA_PLAN_EXAM anesPlanExam = OperationInfoService.GetAnesPlanExam(patientID, visitID, operID);

            if (anesPlan == null)
            {
                anesPlan = new MED_ANESTHESIA_PLAN();
                anesPlan.SetValue("PATIENT_ID", patientID);
                anesPlan.SetValue("VISIT_ID", visitID);
                anesPlan.SetValue("OPER_ID", operID);
            }
            if (anesPlanPmh == null)
            {
                anesPlanPmh = new MED_ANESTHESIA_PLAN_PMH();
                anesPlanPmh.SetValue("PATIENT_ID", patientID);
                anesPlanPmh.SetValue("VISIT_ID", visitID);
                anesPlanPmh.SetValue("OPER_ID", operID);
            }
            if (anesPlanExam == null)
            {
                anesPlanExam = new MED_ANESTHESIA_PLAN_EXAM();
                anesPlanExam.SetValue("PATIENT_ID", patientID);
                anesPlanExam.SetValue("VISIT_ID", visitID);
                anesPlanExam.SetValue("OPER_ID", operID);
            }
            OperationInfoService.SavePatientOperation(currentOperSchedule, patVisit, patMasterIndex, null, operNameNewList, operationMaster, anesPlan, anesPlanPmh, anesPlanExam, null);
        }
Exemple #3
0
        /// <summary>
        /// 保存患者信息
        /// </summary>
        protected override SaveResult SaveData()
        {
            bool result = true;

            if (_masterRow != null && _anesthesiaPlanRow != null)
            {
                _masterRow.OPER_ROOM_NO          = OPER_ROOM_NO;
                _masterRow.SEQUENCE              = SEQUENCE;
                _masterRow.BED_NO                = BED_NO;
                _masterRow.DEPT_CODE             = DEPT_CODE;
                _masterRow.DIAG_BEFORE_OPERATION = DIAG_BEFORE_OPERATION;
                // 手术名称(新分隔符)
                string operName = string.Empty;
                if (OPERATION_NAME != null)
                {
                    foreach (string operDict in OPERATION_NAME)
                    {
                        operName += operDict + CommonSplit;
                    }
                }
                if (operName.Length > 0)
                {
                    operName = operName.Substring(0, operName.Length - CommonSplit.Length);
                }
                _masterRow.OPERATION_NAME = operName;

                _masterRow.OPER_SCALE        = OPER_SCALE;
                _masterRow.OPER_POSITION     = OPER_POSITION;
                _masterRow.EMERGENCY_IND     = EMERGENCY_IND;
                _masterRow.ISOLATION_IND     = ISOLATION_IND;
                _masterRow.RADIATE_IND       = RADIATE_IND;
                _masterRow.PATIENT_CONDITION = PATIENT_CONDITION;
                // 麻醉方法多选处理
                //string anesMethod = string.Empty;
                //if (ANES_METHOD != null)
                //{
                //    foreach (string item in ANES_METHOD)
                //    {
                //        anesMethod += item + CommonSplit;
                //    }
                //}
                //if (anesMethod.Length > 0)
                //{
                //    anesMethod = anesMethod.Substring(0, anesMethod.Length - CommonSplit.Length);
                //}
                //_masterRow.ANES_METHOD = anesMethod;

                _masterRow.ANES_METHOD = ANES_METHOD_NAME;

                _masterRow.ANAESTHESIA_TYPE = ANAESTHESIA_TYPE;

                #region 人员保存特殊处理
                if (SURGEON == null && SURGEON_NAME != null)
                {
                    SURGEON = SURGEON_NAME;
                }
                _masterRow.SURGEON = SURGEON;
                if (FIRST_OPER_ASSISTANT == null && FIRST_OPER_ASSISTANT_NAME != null)
                {
                    FIRST_OPER_ASSISTANT = FIRST_OPER_ASSISTANT_NAME;
                }
                _masterRow.FIRST_OPER_ASSISTANT = FIRST_OPER_ASSISTANT;
                if (SECOND_OPER_ASSISTANT == null && SECOND_OPER_ASSISTANT_NAME != null)
                {
                    SECOND_OPER_ASSISTANT = SECOND_OPER_ASSISTANT_NAME;
                }
                _masterRow.SECOND_OPER_ASSISTANT = SECOND_OPER_ASSISTANT;
                if (CPB_DOCTOR == null && CPB_DOCTOR_NAME != null)
                {
                    CPB_DOCTOR = CPB_DOCTOR_NAME;
                }
                _masterRow.CPB_DOCTOR = CPB_DOCTOR;
                if (FIRST_CPB_ASSISTANT == null && FIRST_CPB_ASSISTANT_NAME != null)
                {
                    FIRST_CPB_ASSISTANT = FIRST_CPB_ASSISTANT_NAME;
                }
                _masterRow.FIRST_CPB_ASSISTANT = FIRST_CPB_ASSISTANT;
                if (FIRST_OPER_NURSE == null && FIRST_OPER_NURSE_NAME != null)
                {
                    FIRST_OPER_NURSE = FIRST_OPER_NURSE_NAME;
                }
                _masterRow.FIRST_OPER_NURSE = FIRST_OPER_NURSE;
                if (SECOND_OPER_NURSE == null && SECOND_OPER_NURSE_NAME != null)
                {
                    SECOND_OPER_NURSE = SECOND_OPER_NURSE_NAME;
                }
                _masterRow.SECOND_OPER_NURSE = SECOND_OPER_NURSE;
                if (FIRST_SUPPLY_NURSE == null && FIRST_SUPPLY_NURSE_NAME != null)
                {
                    FIRST_SUPPLY_NURSE = FIRST_SUPPLY_NURSE_NAME;
                }
                _masterRow.FIRST_SUPPLY_NURSE = FIRST_SUPPLY_NURSE;
                if (SECOND_SUPPLY_NURSE == null && SECOND_SUPPLY_NURSE_NAME != null)
                {
                    SECOND_SUPPLY_NURSE = SECOND_SUPPLY_NURSE_NAME;
                }
                _masterRow.SECOND_SUPPLY_NURSE = SECOND_SUPPLY_NURSE;
                if (ANES_DOCTOR == null && ANES_DOCTOR_NAME != null)
                {
                    ANES_DOCTOR = ANES_DOCTOR_NAME;
                }
                _masterRow.ANES_DOCTOR = ANES_DOCTOR;
                if (FIRST_ANES_ASSISTANT == null && FIRST_ANES_ASSISTANT_NAME != null)
                {
                    FIRST_ANES_ASSISTANT = FIRST_ANES_ASSISTANT_NAME;
                }
                _masterRow.FIRST_ANES_ASSISTANT = FIRST_ANES_ASSISTANT;
                if (SECOND_ANES_ASSISTANT == null && SECOND_ANES_ASSISTANT_NAME != null)
                {
                    SECOND_ANES_ASSISTANT = SECOND_ANES_ASSISTANT_NAME;
                }
                _masterRow.SECOND_ANES_ASSISTANT = SECOND_ANES_ASSISTANT;
                if (THIRD_ANES_ASSISTANT == null && THIRD_ANES_ASSISTANT_NAME != null)
                {
                    THIRD_ANES_ASSISTANT = THIRD_ANES_ASSISTANT_NAME;
                }
                _masterRow.THIRD_ANES_ASSISTANT = THIRD_ANES_ASSISTANT;
                #endregion

                _masterRow.ASA_GRADE        = ASA_GRADE;
                _masterRow.WOUND_TYPE       = WOUND_TYPE;
                _masterRow.MINIMAL_INVASIVE = this.MINIMAL_INVASIVE;
                _masterRow.LOCAL_ANESTHESIA = this.LOCAL_ANESTHESIA;
                // 局麻手术
                if (this.isAfterOperInfo)
                {
                    if (1 == this.LOCAL_ANESTHESIA)
                    {
                        _masterRow.IN_DATE_TIME     = this.IN_DATE_TIME;
                        _masterRow.START_DATE_TIME  = this.START_DATE_TIME;
                        _masterRow.END_DATE_TIME    = this.END_DATE_TIME;
                        _masterRow.OUT_DATE_TIME    = this.OUT_DATE_TIME;
                        _masterRow.OPER_STATUS_CODE = 35;
                    }
                    else
                    {
                        _masterRow.IN_DATE_TIME     = null;
                        _masterRow.START_DATE_TIME  = null;
                        _masterRow.END_DATE_TIME    = null;
                        _masterRow.OUT_DATE_TIME    = null;
                        _masterRow.OPER_STATUS_CODE = 0;
                    }
                }

                TransactionParamsters tp = TransactionParamsters.Create();
                tp.Append(_masterRow);

                List <MED_OPERATION_NAME> listOperationName = new List <MED_OPERATION_NAME>();
                int operNo = 1;
                foreach (var item in OPERATION_NAME)
                {
                    MED_OPERATION_NAME operationName = new MED_OPERATION_NAME();
                    operationName.PATIENT_ID = _masterRow.PATIENT_ID;
                    operationName.VISIT_ID   = _masterRow.VISIT_ID;
                    operationName.OPER_ID    = _masterRow.OPER_ID;
                    operationName.OPER_NO    = operNo++;
                    operationName.OPER_NAME  = item;
                    listOperationName.Add(operationName);
                }
                tp.Append(listOperationName);
                _anesthesiaPlanRow.OPER_ID           = _anesthesiaPlanRow.OPER_ID;
                _anesthesiaPlanRow.RETURN_TO_SURGERY = RETURN_TO_SURGERY;
                _anesthesiaPlanRow.PLAN_WHEREABORTS  = PLAN_WHEREABORTS;
                tp.Append(_anesthesiaPlanRow);
                result = CommonService.ClientInstance.UpdateByTransaction(tp.ToString());
            }
            if (result)
            {
                saveResult = SaveResult.Success;
            }

            return(saveResult);
        }
Exemple #4
0
        /// <summary>
        /// 保存手术室外麻醉
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int SaveOutOperatingRoomAnesRecordData(OutOperatingRoomAnesRecordEntity model)
        {
            if (model == null)
            {
                return(0);
            }

            try
            {
                if (string.IsNullOrEmpty(model.PATIENT_ID))
                {
                    model.PATIENT_ID = model.INP_NO;
                }
                //获取master主表是否有改挑手术
                MED_OPERATION_MASTER operationMaster = dapper.Set <MED_OPERATION_MASTER>().Single(
                    x => x.PATIENT_ID == model.PATIENT_ID && x.VISIT_ID == model.VISIT_ID && x.OPER_ID == model.OPER_ID);

                int result = 0;
                if (operationMaster != null)
                {
                    operationMaster.DEPT_CODE             = model.DEPT_CODE;
                    operationMaster.DIAG_BEFORE_OPERATION = model.DIAG_BEFORE_OPERATION;
                    operationMaster.OPERATION_NAME        = model.OPERATION_NAME;
                    operationMaster.ANES_METHOD           = model.ANES_METHOD;
                    operationMaster.ANES_DOCTOR           = model.ANES_DOCTOR;
                    operationMaster.FIRST_ANES_ASSISTANT  = model.FIRST_ANES_ASSISTANT;
                    operationMaster.FIRST_OPER_NURSE      = model.FIRST_OPER_NURSE;
                    operationMaster.SECOND_OPER_NURSE     = model.SECOND_OPER_NURSE;
                    operationMaster.ASA_GRADE             = model.ASA_GRADE;
                    operationMaster.EMERGENCY_IND         = Convert.ToInt32(model.EMERGENCY_IND);
                    operationMaster.IN_DATE_TIME          = model.IN_DATE_TIME;
                    operationMaster.START_DATE_TIME       = model.START_DATE_TIME;
                    operationMaster.END_DATE_TIME         = model.END_DATE_TIME;
                    operationMaster.OUT_DATE_TIME         = model.OUT_DATE_TIME;
                    operationMaster.LOCAL_ANESTHESIA      = 1;
                    operationMaster.OPER_STATUS_CODE      = 35;
                    operationMaster.OPER_ROOM             = model.OPER_ROOM;
                    operationMaster.OPER_ROOM_NO          = model.OPER_ROOM_NO;
                    operationMaster.OPER_SCALE            = model.OPER_SCALE;
                    operationMaster.SURGEON = model.SURGEON;
                    operationMaster.FIRST_OPER_ASSISTANT = model.FIRST_OPER_ASSISTANT;
                    result = dapper.Set <MED_OPERATION_MASTER>().Update(operationMaster) > 0 ? 1 : 0;
                }
                else
                {
                    MED_OPERATION_MASTER newModel = new MED_OPERATION_MASTER();
                    newModel.PATIENT_ID            = model.PATIENT_ID;
                    newModel.VISIT_ID              = model.VISIT_ID;
                    newModel.OPER_ID               = model.OPER_ID;
                    newModel.DEPT_CODE             = model.DEPT_CODE;
                    newModel.DIAG_BEFORE_OPERATION = model.DIAG_BEFORE_OPERATION;
                    newModel.OPERATION_NAME        = model.OPERATION_NAME;

                    newModel.ANES_METHOD          = model.ANES_METHOD;
                    newModel.ANES_DOCTOR          = model.ANES_DOCTOR;
                    newModel.FIRST_ANES_ASSISTANT = model.FIRST_ANES_ASSISTANT;
                    newModel.FIRST_OPER_NURSE     = model.FIRST_OPER_NURSE;
                    newModel.SECOND_OPER_NURSE    = model.SECOND_OPER_NURSE;
                    newModel.ASA_GRADE            = model.ASA_GRADE;
                    newModel.EMERGENCY_IND        = Convert.ToInt32(model.EMERGENCY_IND);
                    newModel.IN_DATE_TIME         = model.IN_DATE_TIME;
                    newModel.SCHEDULED_DATE_TIME  = model.SCHEDULED_DATE_TIME;
                    newModel.START_DATE_TIME      = model.START_DATE_TIME;
                    newModel.END_DATE_TIME        = model.END_DATE_TIME;
                    newModel.OUT_DATE_TIME        = model.OUT_DATE_TIME;
                    newModel.LOCAL_ANESTHESIA     = 1;
                    newModel.OPER_STATUS_CODE     = 35;
                    newModel.OPER_ROOM            = model.OPER_ROOM;
                    newModel.OPER_ROOM_NO         = model.OPER_ROOM_NO;
                    newModel.OPER_SCALE           = model.OPER_SCALE;
                    newModel.SURGEON = model.SURGEON;
                    newModel.FIRST_OPER_ASSISTANT = model.FIRST_OPER_ASSISTANT;
                    result = dapper.Set <MED_OPERATION_MASTER>().Insert(newModel) == true ? 1 : 0;
                }

                //手术名称表(先删再增)
                //删除模版
                dapper.Set <MED_OPERATION_NAME>().Delete(d => d.PATIENT_ID == model.PATIENT_ID && d.VISIT_ID == model.VISIT_ID &&
                                                         d.OPER_ID == model.OPER_ID);

                if (!string.IsNullOrEmpty(model.OPERATION_NAME))
                {
                    string[] operNames = model.OPERATION_NAME.Split('+');
                    for (int i = 1; i <= operNames.Length; i++)
                    {
                        MED_OPERATION_NAME operNameModel = new MED_OPERATION_NAME();
                        operNameModel.PATIENT_ID = model.PATIENT_ID;
                        operNameModel.VISIT_ID   = model.VISIT_ID;
                        operNameModel.OPER_ID    = model.OPER_ID;
                        operNameModel.OPER_NO    = i;
                        operNameModel.OPER_NAME  = operNames[i - 1];
                        dapper.Set <MED_OPERATION_NAME>().Insert(operNameModel);
                    }
                }

                //室外麻醉手术在输入出手术室时间点击保存后,需要把对应的schedule表状态改为4,
                string OPER_STATUS_CODE = ""
                ; MED_OPERATION_SCHEDULE scheduleModel = dapper.Set <MED_OPERATION_SCHEDULE>().Single(
                    x => x.PATIENT_ID == model.PATIENT_ID && x.VISIT_ID == model.VISIT_ID && x.OPER_ID == model.OPER_ID);
                if (scheduleModel != null)
                {
                    OPER_STATUS_CODE = scheduleModel.OPER_STATUS_CODE.ToString();
                    scheduleModel.OPER_STATUS_CODE = 4;
                    scheduleModel.ModelStatus      = ModelStatus.Modeified;
                    dapper.Set <MED_OPERATION_SCHEDULE>().Update(scheduleModel);
                }


                //修改扩展 体重
                MED_ANESTHESIA_PLAN_PMH phmModel = dapper.Set <MED_ANESTHESIA_PLAN_PMH>().Single(
                    x => x.PATIENT_ID == model.PATIENT_ID && x.VISIT_ID == model.VISIT_ID && x.OPER_ID == model.OPER_ID);
                if (phmModel != null)
                {
                    phmModel.WEIGHT = model.WEIGHT;
                    dapper.Set <MED_ANESTHESIA_PLAN_PMH>().Update(phmModel);
                }
                else
                {
                    phmModel            = new MED_ANESTHESIA_PLAN_PMH();
                    phmModel.PATIENT_ID = model.PATIENT_ID;
                    phmModel.VISIT_ID   = model.VISIT_ID;
                    phmModel.OPER_ID    = model.OPER_ID;
                    phmModel.WEIGHT     = model.WEIGHT;
                    dapper.Set <MED_ANESTHESIA_PLAN_PMH>().Save(phmModel);
                }
                dapper.SaveChanges();

                //调用HISHIS203回写手术主表信息
                //if (OPER_STATUS_CODE != "4")  //回写之后不再回写
                //{
                //    if (SyncHIS203(model.PATIENT_ID, model.VISIT_ID,model.OPER_ID) != "")
                //    {
                //        return 2;
                //    }
                //}
            }
            catch (Exception ex)
            {
                return(0);
            }
            return(1);
        }