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); }
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); }
/// <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); } }
/// <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); }
/// <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()); }
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); } }
/// <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); }
//保存申请单 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); }
/// <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); }