Exemplo n.º 1
0
        private bool CreateApplicationDB(clsLisApplMainVO patientInfo, clsTestApplyItme_VO[] arrChargeInfo, bool isSended, string[] strUnits)
        {
            clsLIS_App objApp      = null;
            ArrayList  arrChargeId = null;
            bool       isConstruct = ConstructAppliction(patientInfo, arrChargeInfo, strUnits, out objApp, out arrChargeId);

            if (!isConstruct)
            {
                return(false);
            }

            this.m_currentApplication = objApp;
            string strMessage = null;

            if (!m_blnSaveApp(out strMessage, m_currentApplication))
            {
                errorMessage = strMessage;
                return(false);
            }

            if (isSended)
            {
                if (!m_blnSendApp(out strMessage, m_currentApplication))
                {
                    errorMessage = strMessage;
                    return(false);
                }
            }

            m_arrResults.Add(GetApplicationResult(objApp, arrChargeId));
            return(true);
        }
Exemplo n.º 2
0
        private bool ConstructAppliction(clsLisApplMainVO p_objPatientInfo, clsTestApplyItme_VO[] p_objChargeInfoArr, string[] strUnits, out clsLIS_App objApp, out ArrayList arrChargeId)
        {
            objApp      = null;
            arrChargeId = null;

            clsGeneratorCheckContent checkContent = new clsGeneratorCheckContent(strUnits);

            if (checkContent.Apps == null)
            {
                return(false);
            }

            //自定义检验申请单参数
            clsLisApplMainVO objMainVO = new clsLisApplMainVO();

            p_objPatientInfo.m_mthCopyTo(objMainVO);

            objApp = new clsLIS_App(objMainVO);
            objApp.m_ObjAppApplyUnits.AddRange(checkContent.AppApplyUnits);
            objApp.m_ObjAppReports.AddRange(checkContent.AppReports);
            objApp.m_ObjDataVO.m_strSampleTypeID = m_mthGetSampleType(strUnits);
            objApp.m_ObjDataVO.m_strSampleType   = new ctlLISSampleTypeComboBox().m_strGetTypeName(objApp.m_ObjDataVO.m_strSampleTypeID);
            objApp.m_ObjDataVO.m_strAppl_Dat     = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            arrChargeId = new ArrayList();

            foreach (clsTestApplyItme_VO objTestVO in p_objChargeInfoArr)
            {
                foreach (string strUnit in strUnits)
                {
                    arrChargeId.Add(objTestVO.strPartID);
                    m_unitOrder.Add(objTestVO.m_strItemID, objTestVO.m_strOrderID);
                }
            }

            //如果是微生物标本,则获取医生实际选择的标本类型!
            bool isGermSample = strUnits != null && strUnits.Length == 1 && p_objChargeInfoArr.Length > 0 &&
                                !string.IsNullOrEmpty(objApp.m_ObjDataVO.m_strSampleType) &&
                                objApp.m_ObjDataVO.m_strSampleType.Trim() == "微生物标本";

            if (isGermSample)
            {
                foreach (clsTestApplyItme_VO applyItem in p_objChargeInfoArr)
                {
                    if (applyItem.m_strItemID == strUnits[0])
                    {
                        objApp.m_ObjDataVO.m_strSampleTypeID = applyItem.m_strUsageID;
                        objApp.m_ObjDataVO.m_strSampleType   = new ctlLISSampleTypeComboBox().m_strGetTypeName(objApp.m_ObjDataVO.m_strSampleTypeID);
                    }
                }
            }

            //收费信息
            objApp.m_ObjDataVO.m_strChargeInfo = GetChargeInfo(p_objChargeInfoArr, strUnits);
            //获取检验内容
            objApp.m_ObjDataVO.m_strCheckContent = GetCheckContent(objApp);
            objApp.m_ObjDataVO.m_strOperator_ID  = operatorID;

            return(true);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 创建申请单的报告组【1】
        /// </summary>
        /// <param name="p_strApplyUnitsIDArr"></param>
        /// <returns></returns>
        private void m_mthGenerateAppContent(string[] p_strApplyUnitsIDArr)
        {
            //形成申请单的申请单元
            m_mthGenerateAppApplyUnits(p_strApplyUnitsIDArr);

            if (m_objAppApplyUnits.Count == 0)
            {
                return;
            }


            //创建申请单的报告组
            m_mthGenerateAppReports();

            foreach (clsLIS_AppCheckReport objReport in m_objAppReports)
            {
                clsLisApplMainVO objAppVO = new clsLisApplMainVO();
                clsLIS_App       objApp   = new clsLIS_App(objAppVO, false);

                foreach (clsLIS_AppSampleGroup objSG in objReport.m_ObjAppSampleGroups)
                {
                    for (int i = 0; i < objSG.m_ObjAppUnitArr.Length; i++)
                    {
                        objApp.m_ObjAppApplyUnits.Add(objSG.m_ObjAppUnitArr[i]);
                    }
                }

                m_objApps.Add(objApp);
                objApp.m_ObjAppReports.Add(objReport);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 获取申请的结果
        /// </summary>
        /// <param name="objApp">申请单VO</param>
        /// <param name="arlChargeIDs">数组</param>
        /// <returns></returns>
        private clsLISAppResults GetApplicationResult(clsLIS_App application, ArrayList arrChargeId)
        {
            clsLISAppResults objResult = new clsLISAppResults();

            objResult.m_StrApplicationID       = application.m_ObjDataVO.m_strAPPLICATION_ID;
            objResult.m_strSampleTypeID        = application.m_ObjDataVO.m_strSampleTypeID;
            objResult.m_strSampleTypeName      = application.m_ObjDataVO.m_strSampleType;
            objResult.m_StrAppCheckContentDesc = application.m_ObjDataVO.m_strCheckContent;

            int applyUnitCount = application.m_ObjAppApplyUnits.Count;

            objResult.m_ObjApplyUnitIDArr = new string[applyUnitCount];

            List <string> lstOrderId = new List <string>();

            for (int i = 0; i < applyUnitCount; i++)
            {
                objResult.m_ObjApplyUnitIDArr[i] = application.m_ObjAppApplyUnits[i].m_ObjDataVO.m_strAPPLY_UNIT_ID_CHR;
                string[] arrOrder = m_unitOrder.GetValues(application.m_ObjAppApplyUnits[i].m_ObjDataVO.m_strAPPLY_UNIT_ID_CHR);
                lstOrderId.AddRange(arrOrder);
            }

            objResult.m_arrOrderId   = lstOrderId.ToArray();
            objResult.m_strChargeIDs = (string[])arrChargeId.ToArray(typeof(string));
            return(objResult);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 获取检验项目内容
        /// </summary>
        /// <param name="objAppInfo"></param>
        /// <returns></returns>
        private string GetCheckContent(clsLIS_App objAppInfo)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            foreach (clsLIS_AppApplyUnit obj in objAppInfo.m_ObjAppApplyUnits)
            {
                if (obj.m_ObjApplyUnit.m_ObjDataVO.strApplUnitName != null && obj.m_ObjApplyUnit.m_ObjDataVO.strApplUnitName.Trim() != "")
                {
                    sb.Append(obj.m_ObjApplyUnit.m_ObjDataVO.strApplUnitName + ",");
                }
            }
            if (sb.Length > 0)
            {
                sb.Remove(sb.Length - 1, 1);
            }

            return(sb.ToString());
        }
Exemplo n.º 6
0
 public void m_mthGenerateAppContent()
 {
     m_mthGenerateAppApplyUnits();
     m_mthGenerateAppReports();
     foreach (clsLIS_AppCheckReport objReport in m_objAppReports)
     {
         clsLisApplMainVO objAppVO = new clsLisApplMainVO();
         clsLIS_App       objApp   = new clsLIS_App(objAppVO, false);
         foreach (clsLIS_AppSampleGroup objSG in objReport.m_ObjAppSampleGroups)
         {
             for (int i = 0; i < objSG.m_ObjAppUnitArr.Length; i++)
             {
                 objApp.m_ObjAppApplyUnits.Add(objSG.m_ObjAppUnitArr[i]);
             }
         }
         this.m_objApps.Add(objApp);
         objApp.m_ObjAppReports.Add(objReport);
     }
 }
Exemplo n.º 7
0
        /// <summary>
        /// 发送申请单
        /// </summary>
        /// <param name="p_strMessage">消息</param>
        /// <param name="objApp"></param>
        /// <returns>是/否成功</returns>
        private bool m_blnSendApp(out string message, clsLIS_App objApp)
        {
            message = "";
            if (objApp.m_StrAppID == null || objApp.m_StrAppID == "")
            {
                message = "请先保存申请!";
                return(false);
            }

            objApp.m_IntPStatus = 2;

            long lngRes = clsApplicationSmp.s_obj.m_lngAddNewApplication(objApp.m_ObjDataVO);

            if (lngRes > 0)
            {
                objApp.m_mthAcceptChanges();
                return(true);
            }

            objApp.m_IntPStatus    = 1;
            objApp.m_StrOperatorID = objApp.m_ObjOriginalDataVO.m_strOperator_ID;
            message = "操作失败!";
            return(false);
        }
Exemplo n.º 8
0
        //保存申请单
        public bool m_blnSaveApp(out string p_strMessage)
        {
            p_strMessage = "";
            clsLIS_App objApp = this.m_frmViewer.m_objCurrApp;

            #region 构造保存参数
            ArrayList arlRep      = new ArrayList();
            ArrayList arlSam      = new ArrayList();
            ArrayList arlItem     = new ArrayList();
            ArrayList arlUnit     = new ArrayList();
            ArrayList arlUnitItem = new ArrayList();

            foreach (clsLIS_AppCheckReport objRep in objApp.m_ObjAppReports)
            {
                arlRep.Add(objRep.m_ObjDataVO);
                foreach (clsLIS_AppSampleGroup objSam in objRep.m_ObjAppSampleGroups)
                {
                    arlSam.Add(objSam.m_ObjDataVO);
                    foreach (clsLIS_AppCheckItem objItem in objSam.m_ObjAppCheckItems)
                    {
                        arlItem.Add(objItem.m_ObjDataVO);
                    }
                }
            }
            foreach (clsLIS_AppApplyUnit objUnit in objApp.m_ObjAppApplyUnits)
            {
                arlUnit.Add(objUnit.m_ObjDataVO);
                arlUnitItem.AddRange(objUnit.m_ObjItemArr);
            }

            clsT_OPR_LIS_APP_REPORT_VO[]     objRepArr      = (clsT_OPR_LIS_APP_REPORT_VO[])arlRep.ToArray(typeof(clsT_OPR_LIS_APP_REPORT_VO));
            clsT_OPR_LIS_APP_SAMPLE_VO[]     objSamArr      = (clsT_OPR_LIS_APP_SAMPLE_VO[])arlSam.ToArray(typeof(clsT_OPR_LIS_APP_SAMPLE_VO));
            clsT_OPR_LIS_APP_CHECK_ITEM_VO[] objItemArr     = (clsT_OPR_LIS_APP_CHECK_ITEM_VO[])arlItem.ToArray(typeof(clsT_OPR_LIS_APP_CHECK_ITEM_VO));
            clsT_OPR_LIS_APP_APPLY_UNIT_VO[] objUnitArr     = (clsT_OPR_LIS_APP_APPLY_UNIT_VO[])arlUnit.ToArray(typeof(clsT_OPR_LIS_APP_APPLY_UNIT_VO));
            clsLisAppUnitItemVO[]            objUnitItemArr = (clsLisAppUnitItemVO[])arlUnitItem.ToArray(typeof(clsLisAppUnitItemVO));

            #endregion

            if (objApp.m_StrAppID == null)
            {
                //获取检验配置信息
                string strConfig = "";
                long   lngRes    = new clsDomainController_ApplicationManage().m_lngGetCollocate(out strConfig, "4002");
                if (lngRes < 0)
                {
                    return(false);
                }

                //根据配置信息选择流程
                switch (strConfig.Trim())
                {
                case "1":
                    lngRes = 0;
                    this.m_frmViewer.m_objCurrApp.m_ObjDataVO.m_intPStatus_int = 2;
                    lngRes = new clsDomainController_ApplicationManage().m_lngAddNewAppAndSampleInfoWithBarcode(this.m_frmViewer.m_objCurrApp.m_ObjDataVO, objRepArr, objSamArr, objItemArr, objUnitArr, objUnitItemArr);
                    break;

                case "2":       //跳过采集不跳过核收
                    lngRes = 0;
                    this.m_frmViewer.m_objCurrApp.m_ObjDataVO.m_intPStatus_int = 2;
                    lngRes = new clsDomainController_ApplicationManage().m_lngAddAppInfoWithoutReceive(this.m_frmViewer.m_objCurrApp.m_ObjDataVO, objRepArr, objSamArr, objItemArr, objUnitArr, objUnitItemArr);
                    break;

                default:
                    lngRes = 0;
                    lngRes = new clsDomainController_ApplicationManage().m_lngAddNewAppInfo(this.m_frmViewer.m_objCurrApp.m_ObjDataVO, objRepArr, objSamArr, objItemArr, objUnitArr, objUnitItemArr);
                    break;
                }
                if (lngRes > 0)
                {
                    this.m_frmViewer.m_objCurrApp.m_mthAcceptChanges();
                    return(true);
                }
            }
            else if (objApp.m_ObjAppApplyUnits.Count > 0)
            {
                long lngRes = new clsDomainController_ApplicationManage().m_lngModifyAppInfo(this.m_frmViewer.m_objCurrApp.m_ObjDataVO,
                                                                                             objRepArr, objSamArr, objItemArr, objUnitArr, objUnitItemArr);
                if (lngRes > 0)
                {
                    this.m_frmViewer.m_objCurrApp.m_mthAcceptChanges();
                    return(true);
                }
            }
            else
            {
                long lngRes = new clsDomainController_ApplicationManage().m_lngAddNewApplication(objApp.m_ObjDataVO);
                if (lngRes > 0)
                {
                    this.m_frmViewer.m_objCurrApp.m_mthAcceptChanges();
                    return(true);
                }
            }
            p_strMessage = "操作失败!";
            return(false);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 保存申请单
        /// </summary>
        /// <param name="p_strMessage">消息</param>
        /// <param name="objApp"></param>
        /// <returns></returns>
        private bool m_blnSaveApp(out string errorMessage, clsLIS_App objApp)
        {
            errorMessage = string.Empty;

            #region 构造保存参数

            ArrayList arlRep      = new ArrayList();
            ArrayList arlSam      = new ArrayList();
            ArrayList arlItem     = new ArrayList();
            ArrayList arlUnit     = new ArrayList();
            ArrayList arlUnitItem = new ArrayList();

            foreach (clsLIS_AppCheckReport objRep in objApp.m_ObjAppReports)
            {
                arlRep.Add(objRep.m_ObjDataVO);
                foreach (clsLIS_AppSampleGroup objSam in objRep.m_ObjAppSampleGroups)
                {
                    arlSam.Add(objSam.m_ObjDataVO);
                    foreach (clsLIS_AppCheckItem objItem in objSam.m_ObjAppCheckItems)
                    {
                        arlItem.Add(objItem.m_ObjDataVO);
                    }
                }
            }

            foreach (clsLIS_AppApplyUnit objUnit in objApp.m_ObjAppApplyUnits)
            {
                arlUnit.Add(objUnit.m_ObjDataVO);
                arlUnitItem.AddRange(objUnit.m_ObjItemArr);
            }

            clsT_OPR_LIS_APP_REPORT_VO[]     objRepArr      = (clsT_OPR_LIS_APP_REPORT_VO[])arlRep.ToArray(typeof(clsT_OPR_LIS_APP_REPORT_VO));
            clsT_OPR_LIS_APP_SAMPLE_VO[]     objSamArr      = (clsT_OPR_LIS_APP_SAMPLE_VO[])arlSam.ToArray(typeof(clsT_OPR_LIS_APP_SAMPLE_VO));
            clsT_OPR_LIS_APP_CHECK_ITEM_VO[] objItemArr     = (clsT_OPR_LIS_APP_CHECK_ITEM_VO[])arlItem.ToArray(typeof(clsT_OPR_LIS_APP_CHECK_ITEM_VO));
            clsT_OPR_LIS_APP_APPLY_UNIT_VO[] objUnitArr     = (clsT_OPR_LIS_APP_APPLY_UNIT_VO[])arlUnit.ToArray(typeof(clsT_OPR_LIS_APP_APPLY_UNIT_VO));
            clsLisAppUnitItemVO[]            objUnitItemArr = (clsLisAppUnitItemVO[])arlUnitItem.ToArray(typeof(clsLisAppUnitItemVO));

            #endregion

            if (objApp.m_StrAppID == null)
            {
                long lngRes = 0;

                //4002开关:是否跳过样本的采集和核收
                int intConfig = clsLisSetting.IsSkipCollectionReceive();
                switch (intConfig)
                {
                case 1:
                    objApp.m_ObjDataVO.m_intPStatus_int = 2;
                    lngRes = 0;
                    lngRes = clsApplicationBizSmp.s_obj.m_lngAddApplicationInfo(objApp.m_ObjDataVO, objRepArr, objSamArr, objItemArr, objUnitArr, objUnitItemArr);
                    break;

                case 2:       //跳过采集不跳过核收
                    lngRes = 0;
                    objApp.m_ObjDataVO.m_intPStatus_int = 2;
                    lngRes = clsApplicationBizSmp.s_obj.m_lngAddNewAppInfo(objApp.m_ObjDataVO, objRepArr, objSamArr, objItemArr, objUnitArr, objUnitItemArr);
                    break;

                default:
                    lngRes = 0;
                    lngRes = clsApplicationBizSmp.s_obj.m_lngAddNewAppInfo(objApp.m_ObjDataVO, objRepArr, objSamArr, objItemArr, objUnitArr, objUnitItemArr);
                    new com.digitalwave.Utility.clsLogText().LogError(errorMessage);
                    break;
                }

                if (lngRes > 0)
                {
                    objApp.m_mthAcceptChanges();
                    return(true);
                }
            }
            else if (objApp.m_ObjAppApplyUnits.Count > 0)
            {
                long lngRes = clsApplicationBizSmp.s_obj.m_lngModifyAppInfo(objApp.m_ObjDataVO, objRepArr, objSamArr, objItemArr, objUnitArr, objUnitItemArr);
                if (lngRes > 0)
                {
                    objApp.m_mthAcceptChanges();
                    return(true);
                }
            }
            else
            {
                long lngRes = clsApplicationSmp.s_obj.m_lngAddNewApplication(objApp.m_ObjDataVO);
                if (lngRes > 0)
                {
                    objApp.m_mthAcceptChanges();
                    return(true);
                }
            }

            errorMessage = "操作失败!";
            return(false);
        }