示例#1
0
        }//getCxrResultList_byPatient

        /*-------------------------[上] Read讀取-SQL底層 + Read讀取-應用層 [下]-------------------------*/

        // [CHART_NO 病歷號] + [IPD_NO 住院序號] → [SqlMasterDetail_ID 流水號]
        public List<CxrResultJson_cls> getCxrResultList_byPatient(
            string inputChartNo //[CHART_NO] 病歷號 = 04691561
            , string inputIpdNo //[IPD_NO] 住院序號 = I0333017
            , string inputSqlNameMaster //[RCS_CPT_ASS_MASTER] [RCS_RECORD_MASTER]資料庫
            , string inputSqlNameDetail //[RCS_CPT_ASS_DETAIL] [RCS_RECORD_DETAIL]資料庫
        ){
            List<CxrResultJson_cls> CxrResultJson_List = new List<CxrResultJson_cls>();
            try //SQL[Read讀取]
            {
                if (!string.IsNullOrWhiteSpace(inputChartNo) && !string.IsNullOrWhiteSpace(inputIpdNo)) //傳入input不為空值
                {
                    //1.根據 [CHART_NO 病歷號] + [IPD_NO 住院序號] 搜尋 [RCS_MASTER] 主資料庫
                    string sqlcmd_Master = @"
                        SELECT *
                            FROM {2}
                        WHERE CHART_NO = {0}
                            AND IPD_NO = {1}
                        ";
                    DataTable Master_Table = this.DBA.getSqlDataTable(string.Format(
                        sqlcmd_Master
                        , SQLDefend.SQLString(inputChartNo.Trim()) //[CHART_NO] 病歷號 = 04691561
                        , SQLDefend.SQLString(inputIpdNo.Trim()) //[IPD_NO] 住院序號 = I0333017
                        , inputSqlNameMaster //[RCS_CPT_ASS_MASTER]資料庫
                        ));

                    /*------------------獲得 [SQL] 欄位名稱 [下]------------------*/
                    DataTable Detail_ColumnName = this.DBA.getSqlDataTable(string.Format(
                        @"SELECT TOP 0 * FROM {0}"
                        , inputSqlNameDetail //[RCS_CPT_ASS_DETAIL]資料庫
                        ));
                    string Master_ID = Master_Table.Columns[0].ColumnName; //["CPT_ID"] ["RECORD_ID"]主檔編號
                    /*------------------[上] 獲得 [SQL] 欄位名稱------------------*/

                    //2.若 [RCS_MASTER] 主資料庫,有找到資料
                    if (Master_Table != null
                        && Master_Table.Rows.Count > 0
                        && Master_Table.Rows[0][Master_ID] != null
                        && !string.IsNullOrWhiteSpace(Master_Table.Rows[0][Master_ID].ToString())
                    ){
                        foreach (DataRow Master_Rows in Master_Table.Rows)
                        {
                            //3.根據 Master_Rows[Master_ID] 流水號_數值 20170718144526maya
                            //搜尋 [RCS_DETAIL] 細項資料庫
                            CxrResultJson_List = getCxrResultList_byIdDetail(
                                Master_Rows[Master_ID].ToString().Trim()
                                , inputSqlNameDetail
                                );
                        }//foreach-Master
                    }//Master 有資料
                }//傳入input不為空值
            }//try
            catch (Exception ex)
            {
                LogTool.SaveLogMessage(ex, "getCxrResultList_byPatient");
            }//catch
            return CxrResultJson_List;
        }//getCxrResultList_byPatient
示例#2
0
        public DataTable getRCS_SYS_PARAMS_DT(string Id = "", string pModel = "", string pGroup = "", string pLang = "zh-tw", string pValue = "", string pStatus = "", string pManage = "", List <string> pModelList = null)
        {
            List <string>    wSql           = new List <string>();
            string           sql            = "SELECT * FROM {0} WHERE {1} ORDER BY P_SORT";
            List <SysParams> SelectListItem = new List <SysParams>();

            try
            {
                if (!string.IsNullOrEmpty(Id))
                {
                    wSql.Add(string.Format(" P_ID = {0}", SQLDefend.SQLString(Id)));
                }
                if (!string.IsNullOrEmpty(pModel))
                {
                    wSql.Add(string.Format(" P_MODEL = {0}", SQLDefend.SQLString(pModel)));
                }
                if (pModelList != null && pModelList.Count > 0)
                {
                    wSql.Add(string.Format(" P_MODEL in ('{0}')", string.Join("','", pModelList)));
                }
                if (!string.IsNullOrEmpty(pGroup))
                {
                    wSql.Add(string.Format(" P_GROUP = {0}", SQLDefend.SQLString(pGroup)));
                }
                if (!string.IsNullOrEmpty(pLang))
                {
                    wSql.Add(string.Format(" P_LANG = {0}", SQLDefend.SQLString(pLang)));
                }
                if (!string.IsNullOrEmpty(pValue))
                {
                    wSql.Add(string.Format(" P_VALUE = {0}", SQLDefend.SQLString(pValue)));
                }
                if (!string.IsNullOrEmpty(pStatus))
                {
                    wSql.Add(string.Format(" P_STATUS = {0}", SQLDefend.SQLString(pStatus)));
                }
                if (!string.IsNullOrEmpty(pManage))
                {
                    wSql.Add(string.Format(" P_MANAGE = {0}", SQLDefend.SQLString(pManage)));
                }
                sql = string.Format(sql, GetTableName.RCS_SYS_PARAMS.ToString(), string.Join(" AND ", wSql));
                DataTable dt = this.DBA.getSqlDataTable(sql);
                return(dt);
            }
            catch (Exception ex)
            {
                LogTool.SaveLogMessage(ex, MethodInfo.GetCurrentMethod().Name, GetLogToolCS.BaseModel);
            }
            return(null);
        }
示例#3
0
        }//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