}//fn_CxrResultSplit public dbResultMessage saveCxrResultStrDropdownlist( //CXR下拉清單 string inputCxrResultStr //Cxr檢查結果 , string inputSqlDetailTableName //[RCS_RECORD_DETAIL] [RCS_CPT_ASS_DETAIL] ){ dbResultMessage dbResultMsg = new dbResultMessage(); DataTable sysParams_DTable = new DataTable();// RCS_SYS_PARAMS的資料 try { // 初步獲得 [RCS_SYS_PARAMS] CXR下拉清單 // [P_MODEL] = [RCS_RECORD_DETAIL] [RCS_CPT_ASS_DETAIL] // [P_GROUP] = 'cxr_result' List<string> CxrResultDropdownList = getCxrResultStr_DropdownList(); //檢查輸入值是否 [RCS_SYS_PARAMS] 已經存在 if (!string.IsNullOrWhiteSpace(inputCxrResultStr) && !CxrResultDropdownList.Contains(inputCxrResultStr) ){ string sqlcmd = @"SELECT TOP 0 * FROM " + GetTableName.RCS_SYS_PARAMS.ToString().Trim(); sysParams_DTable = this.DBA.getSqlDataTable(sqlcmd); DataRow sysParams_newDRow = sysParams_DTable.NewRow(); { sysParams_newDRow["P_ID"] = DateTime.Now.ToString("yyyyMMddHHmmss") + user_info.user_id; sysParams_newDRow["P_MODEL"] = inputSqlDetailTableName; //[RCS_RECORD_DETAIL] [RCS_CPT_ASS_DETAIL] sysParams_newDRow["P_GROUP"] = "cxr_result"; sysParams_newDRow["P_NAME"] = inputCxrResultStr; //[Cxr檢查結果] sysParams_newDRow["P_VALUE"] = inputCxrResultStr; //[Cxr檢查結果] sysParams_newDRow["P_LANG"] = "zh-tw"; sysParams_newDRow["P_SORT"] = (CxrResultDropdownList.Count + 1).ToString(); //存入個數 sysParams_newDRow["P_MEMO"] = ""; sysParams_newDRow["P_STATUS"] = "1"; sysParams_newDRow["P_MANAGE"] = "0"; } sysParams_DTable.Rows.Add(sysParams_newDRow); /*-------------------------*/ dbResultMsg = this.DBA.UpdateResult(sysParams_DTable, GetTableName.RCS_SYS_PARAMS.ToString()); //新增成功 if (this.DBA.LastError != null && this.DBA.LastError == "" && dbResultMsg.State == enmDBResultState.Success ){ //新增成功,不做任何事,保留 [dbResultMsg] 成功訊息。 } //新增失敗 else { LogTool.SaveLogMessage("CXR下拉清單新增失敗1:" + this.DBA.LastError.ToString(), "saveCxrResultStrDropdownlist"); LogTool.SaveLogMessage("CXR下拉清單新增失敗2:" + dbResultMsg.dbErrorMessage, "saveCxrResultStrDropdownlist"); this.DBA.Rollback(); } }//if-(IsNullOrWhiteSpace) } catch (Exception ex) { LogTool.SaveLogMessage(ex, "saveCxrResultStrDropdownlist"); } return dbResultMsg; }//saveCxrResultStrDropdownlist
}//SQL[Read讀取] /*-------------------------[上] Read讀取 + Save儲存 [下]-------------------------*/ /*-------------------------[上] Read讀取 + Save儲存 [下]-------------------------*/ /// <summary> /// SQL [Save儲存] Cxr資料庫 [RCS_CXR_JSON] /// 輸入 List<CXR_XYwmc> 要有資料,才會儲存 [RCS_CXR_JSON] Cxr資料庫 /// 若輸入 List<CXR_XYwmc> 無資料,仍要 [更新] 刪除 [Cxr_CJID流水號] 舊資料 /// </summary> /// <param name="inputA_CxrCjid">[Cxr_CJID] Cxr流水號 [RCS_CXR_JSON] 資料庫</param> /// <param name="paraCxrXywmc_List">[CJ_VALUE] Xywmc座標 [RCS_CXR_JSON] 資料庫</param> /// <returns></returns> public dbResultMessage saveRcsCxrJson_byCjid_NullDelete( string inputA_CxrCjid //[Cxr_CJID] Cxr流水號 , List<CXR_XYwmc> inputB_CxrXywmcList // [NULL空值] 自動刪除 [RCS_CXR_JSON] 資料庫 ){ // 流水號來源:row.RECORD_ID = SQL.GetFixedStrSerialNumber(); [SQLProvider] // 流水號來源:DateTime.Now.ToString("yyyyMMddHHmmssfffff") + [user_id 使用者代碼] + [pIpdno 批價序號] dbResultMessage dbResultMsg = new dbResultMessage(); try { dbResultMsg.State = enmDBResultState.Success; //初始值,設定 [成功]。 //只有 [Cxr_CJID] 流水號 if (!string.IsNullOrWhiteSpace(inputA_CxrCjid) //&& inputB_CxrXywmcList != null (勿開啟功能) //&& inputB_CxrXywmcList.Count > 0 (勿開啟功能) ){ //正常save功能,有 [Cxr_CJID] 流水號 + [Xywmc] 座標 if (!string.IsNullOrWhiteSpace(inputA_CxrCjid) && inputB_CxrXywmcList != null && inputB_CxrXywmcList.Count > 0 ){ /*----------------------------------- 暫存 [DataTable] 表格 [下] -----------------------------------*/ // 1.產生 [DataTable] 等待存入 [RCS_CXR_JSON] Cxr資料庫 DataTable newCxrTable = new DataTable(); newCxrTable.Columns.Add("CJ_ID"); newCxrTable.Columns.Add("CJ_INDEX"); newCxrTable.Columns.Add("CJ_VALUE"); int ii = 0; // 2.讀取每一筆 List<CXR_XYwmc> 暫存 [DataTable] 表格 foreach (CXR_XYwmc CxrXywmc_Node in inputB_CxrXywmcList) { // [mouse] 一定要有 "動作值" if (CxrXywmc_Node != null && !string.IsNullOrWhiteSpace(CxrXywmc_Node.mouse) ){ ii++; // 3.讀取每一筆 List<CXR_XYwmc> 暫存 [DataTable] 表格 DataRow newRow = newCxrTable.NewRow(); { newRow["CJ_ID"] = inputA_CxrCjid; newRow["CJ_INDEX"] = ii.ToString("0000"); //前面補0數字 newRow["CJ_VALUE"] = JsonConvert.SerializeObject(CxrXywmc_Node).Trim(); } newCxrTable.Rows.Add(newRow); }//if }//foreach /*------------------ [上] 暫存 [DataTable] 表格 + 存入 [RCS_CXR_JSON] Cxr資料庫 [下] ------------------*/ // 4.先刪除 [Cxr_CJID流水號] 舊資料 // 若 [inputB_CxrXywmcList == null] 空值,要 [更新] 刪除 [Cxr_CJID流水號] 舊資料 dbResultMsg = this.DBA.ExecuteNonQuery( "DELETE " + GetTableName.RCS_CXR_JSON.ToString() + " WHERE CJ_ID = " + SQLDefend.SQLString(inputA_CxrCjid.Trim()) ); //刪除成功 if (this.DBA.LastError != null && this.DBA.LastError == "" && dbResultMsg.State == enmDBResultState.Success ){ //存入 [RCS_CXR_JSON] Cxr資料庫 (先確認 [DataTable] 有值,才會儲存) //若 [DataTable] 沒有值,代表此病人沒有Cxr圖,已經 [更新] 刪除 [Cxr_CJID流水號] 舊資料 (上方已經刪除) if (newCxrTable.Rows.Count > 0) { // 5.存入 [RCS_CXR_JSON] Cxr資料庫 dbResultMsg = this.DBA.UpdateResult(newCxrTable, GetTableName.RCS_CXR_JSON.ToString()); //儲存成功 if (this.DBA.LastError != null && this.DBA.LastError == "" && dbResultMsg.State == enmDBResultState.Success ){ //成功,不做任何事,保留 [dbResultMsg] 成功訊息。 } //儲存失敗 else { LogTool.SaveLogMessage("Cxr儲存失敗1:" + this.DBA.LastError.ToString(), "saveRcsCxrJson_byCjid_NullDelete"); LogTool.SaveLogMessage("Cxr儲存失敗2:" + dbResultMsg.dbErrorMessage, "saveRcsCxrJson_byCjid_NullDelete"); this.DBA.Rollback(); } }//if (newCxrTable.Rows.Count > 0) } //刪除失敗 else { LogTool.SaveLogMessage("Cxr刪除失敗1:" + this.DBA.LastError.ToString(), "saveRcsCxrJson_byCjid_NullDelete"); LogTool.SaveLogMessage("Cxr刪除失敗2:" + dbResultMsg.dbErrorMessage, "saveRcsCxrJson_byCjid_NullDelete"); this.DBA.Rollback(); } /*------------------ [上] 存入 [RCS_CXR_JSON] Cxr資料庫 ------------------*/ }//if (inputB_CxrXywmcList != null //有 [Cxr_CJID] 流水號,但 [Xywmc座標] 空值,則要 [刪除] else if (!string.IsNullOrWhiteSpace(inputA_CxrCjid) && (inputB_CxrXywmcList == null || inputB_CxrXywmcList.Count == 0) ){ // 4.先刪除 [Cxr_CJID流水號] 舊資料 // 若 [inputB_CxrXywmcList == null] 空值,要 [更新] 刪除 [Cxr_CJID流水號] 舊資料 dbResultMsg = this.DBA.ExecuteNonQuery( "DELETE " + GetTableName.RCS_CXR_JSON.ToString() + " WHERE CJ_ID = " + SQLDefend.SQLString(inputA_CxrCjid.Trim()) ); //刪除成功 if (this.DBA.LastError != null && this.DBA.LastError == "" && dbResultMsg.State == enmDBResultState.Success ){ //刪除成功,不做任何事,保留 [dbResultMsg] 成功訊息。 } //刪除失敗 else { LogTool.SaveLogMessage("Cxr刪除失敗1:" + this.DBA.LastError.ToString(), "saveRcsCxrJson_byCjid_NullDelete"); LogTool.SaveLogMessage("Cxr刪除失敗2:" + dbResultMsg.dbErrorMessage, "saveRcsCxrJson_byCjid_NullDelete"); this.DBA.Rollback(); } }//else 有 [Cxr_CJID] 流水號,但 [Xywmc座標] null,則要 [刪除] /*------------------ [上] 存入 [RCS_CXR_JSON] Cxr資料庫 ------------------*/ } //沒有 [Cxr_CJID] 流水號 else //if [!string.IsNullOrWhiteSpace(inputA_CxrCjid)] { //流水號空白,強制不進行動作,紀錄於 [Log] 以待檢查,返回主畫面。 LogTool.SaveLogMessage("紀錄提醒Cxr儲存功能 [Cxr_CJID] 流水號不得為空白,請確認 [Controller控制器] 程式碼", "saveRcsCxrJson_byCjid_NullDelete"); return dbResultMsg; } }//try catch (Exception ex) { LogTool.SaveLogMessage(ex, "saveRcsCxrJson_byCjid_NullDelete"); LogTool.SaveLogMessage(this.DBA.LastError.ToString(), "saveRcsCxrJson_byCjid_NullDelete"); LogTool.SaveLogMessage(dbResultMsg.dbErrorMessage, "saveRcsCxrJson_byCjid_NullDelete"); this.DBA.Rollback(); }//catch return dbResultMsg; }//[Save儲存] RCS_CXR_JSON