/// <summary> /// 更新原始单据信息 /// </summary> /// <param name="caseBill">病历单据</param> /// <returns>-1-失败,1-成功</returns> private int UpdateCaseBillToGrid(HISFC.Models.HealthRecord.Case.CaseBill caseBill) { try { if (this.neuSpread1_Sheet1.RowCount == 0) { caseBill.Memo = "New"; this.callReturn = this.AddCaseBillToGrid(caseBill); } else { // 查找行号 int row = this.GetRowID(caseBill); if (row >= 0) { caseBill.Memo = "Old"; this.SetBillToRow(caseBill, row); } else { caseBill.Memo = "New"; this.AddCaseBillToGrid(caseBill); } } } catch (Exception exception) { MessageBox.Show(exception.Message); return(-1); } return(callReturn); }
/// <summary> /// 添加病历出库单到表格 /// </summary> /// <param name="caseBill">病历出库单</param> /// <returns>-1-失败,1-成功</returns> private int AddCaseBillToGrid(HISFC.Models.HealthRecord.Case.CaseBill caseBill) { this.neuSpread1_Sheet1.Rows.Add(this.neuSpread1_Sheet1.Rows.Count, 1); int row = this.neuSpread1_Sheet1.Rows.Count - 1; try { #region 赋值 SetBillToRow(caseBill, row); #endregion } catch (Exception exception) { Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); this.neuSpread1_Sheet1.RemoveRows(row, 1); MessageBox.Show(exception.Message); return(-1); } return(1); }
/// <summary> /// 更新出库单记录 /// </summary> /// <param name="caseBill">病历出库单</param> /// <param name="updateCondition">更新条件</param> /// <returns>-1-失败,影响的行数</returns> private int Update(HISFC.Models.HealthRecord.Case.CaseBill caseBill, string updateCondition) { string updateSql = string.Empty; intReturn = this.Sql.GetSql("Neusoft.HISFC.Management.HealthRecord.Case.CaseBill.Update", ref updateSql); if (this.intReturn < 0) { this.Err = "更新病历出库单失败" + this.Err; return(-1); } this.intReturn = this.ConvertEntityToArray(caseBill); if (this.intReturn == -1) { return(-1); } try { updateSql = string.Format(updateSql, field); } catch (Exception exception) { this.Err = "更新病历出库单失败" + exception.Message; return(-1); } updateSql = updateSql + " " + updateCondition; this.intReturn = this.ExecNoQuery(updateSql); if (this.intReturn < 0) { this.Err = "更新病历出库单失败" + this.Err; return(-1); } return(intReturn); }
/// <summary> /// 根据流水主键更新出库单记录 /// </summary> /// <param name="caseBill">流水主键</param> /// <returns>-1-失败,影响的行数</returns> public int UpdateByID(HISFC.Models.HealthRecord.Case.CaseBill caseBill) { string updateSql = string.Empty; intReturn = this.Sql.GetSql("Neusoft.HISFC.Management.HealthRecord.Case.CaseBill.ID", ref updateSql); if (this.intReturn < 0) { this.Err = "更新病历出库单失败" + this.Err; return(-1); } try { updateSql = string.Format(updateSql, caseBill.ID); } catch (Exception exception) { this.Err = "更新病历出库单失败" + exception.Message; return(-1); } return(this.Update(caseBill, updateSql)); }
/// <summary> /// 插入数据库 /// </summary> /// <param name="caseBill">病历出库单</param> /// <returns>-1-失败,1-成功</returns> public int Insert(HISFC.Models.HealthRecord.Case.CaseBill caseBill) { string insertSql = string.Empty; intReturn = this.Sql.GetSql("Neusoft.HISFC.Management.HealthRecord.Case.CaseBill.Insert", ref insertSql); if (this.intReturn < 0) { this.Err = "插入病历出库单失败" + this.Err; return(-1); } this.intReturn = this.ConvertEntityToArray(caseBill); if (this.intReturn == -1) { return(-1); } try { insertSql = string.Format(insertSql, this.field); } catch (Exception exception) { this.Err = "插入病历出库单失败(匹配SQL参数失败)" + exception.Message; return(-1); } this.intReturn = this.ExecNoQuery(insertSql); if (this.intReturn <= 0) { this.Err = "插入病历出库单失败" + this.Err; return(-1); } return(1); }
/// <summary> /// 设置单据到行 /// </summary> /// <param name="caseBill">单据</param> /// <param name="row">行号</param> private void SetBillToRow(HISFC.Models.HealthRecord.Case.CaseBill caseBill, int row) { this.neuSpread1_Sheet1.Rows [row].Tag = caseBill; // 病历号 this.neuSpread1_Sheet1.Cells [row, 0].Text = caseBill.CaseInfo.Patient.PID.CardNO; // 姓名 this.neuSpread1_Sheet1.Cells [row, 1].Text = caseBill.CaseInfo.Patient.Name; // 性别 this.neuSpread1_Sheet1.Cells [row, 2].Text = this.GetSex(caseBill.CaseInfo.Patient.Sex.ID.ToString()); // 出生日期 this.neuSpread1_Sheet1.Cells [row, 3].Text = caseBill.CaseInfo.Patient.Birthday.ToString("yyyy-MM-dd"); // 申请的出库科室 this.neuSpread1_Sheet1.Cells [row, 4].Text = caseBill.FromDept.Name; // 申请科室 this.neuSpread1_Sheet1.Cells [row, 5].Text = caseBill.InRequestOper.Dept.Name; // 申请入库人 this.neuSpread1_Sheet1.Cells [row, 6].Text = caseBill.InRequestOper.Name; // 申请入库日期 this.neuSpread1_Sheet1.Cells [row, 7].Text = caseBill.InRequestOper.OperTime.ToString(); // 出库审核人 this.neuSpread1_Sheet1.Cells [row, 8].Text = caseBill.OutAuditingOper.Name; // 出库审核时间 this.neuSpread1_Sheet1.Cells [row, 9].Text = caseBill.OutAuditingOper.OperTime.ToString(); // 入库确认人 this.neuSpread1_Sheet1.Cells [row, 10].Text = caseBill.InConfirmOper.Name; // 入库确认时间 this.neuSpread1_Sheet1.Cells [row, 11].Text = caseBill.InConfirmOper.OperTime.ToString(); // 单据类型 this.neuSpread1_Sheet1.Cells [row, 12].Text = caseBill.BillType.Name; // 是否已经发送 if (caseBill.IsSend) { this.neuSpread1_Sheet1.Cells [row, 13].Text = "是"; } else { this.neuSpread1_Sheet1.Cells [row, 13].Text = "否"; } // 发送人 this.neuSpread1_Sheet1.Cells [row, 14].Text = caseBill.SendOper.Name; // 发送时间 this.neuSpread1_Sheet1.Cells [row, 15].Text = caseBill.SendOper.OperTime.ToString(); // 是否已经接收 if (caseBill.IsReceive) { this.neuSpread1_Sheet1.Cells [row, 16].Text = "是"; } else { this.neuSpread1_Sheet1.Cells [row, 16].Text = "否"; } // 接收人 this.neuSpread1_Sheet1.Cells [row, 17].Text = caseBill.ReceiveOper.Name; // 接收时间 this.neuSpread1_Sheet1.Cells [row, 18].Text = caseBill.ReceiveOper.OperTime.ToString(); }
/// <summary> /// 转换实体为字段数组 /// </summary> /// <param name="caseBill">病历出库单实体</param> /// <returns>-1-失败,1-成功</returns> private int ConvertEntityToArray(HISFC.Models.HealthRecord.Case.CaseBill caseBill) { try { #region 赋值 // 唯一主键 if (caseBill.ID == null || caseBill.ID == "") { caseBill.ID = this.GetSequence("Neusoft.HISFC.Management.HealthRecord.Case.CaseBill.GetSequence"); } field [0] = caseBill.ID; // 出库单号码,一个单据可以包括多个病历 field [1] = caseBill.BillCode; // 入库申请人工号 field [2] = caseBill.InRequestOper.ID; // 入库申请科室编码 field [3] = caseBill.InRequestOper.Dept.ID; // 入库申请病区编码 field [4] = caseBill.InRequestNurse.ID; // 入库申请时间 field [5] = caseBill.InRequestOper.OperTime.ToString(); // 入库申请分区编码 field [6] = caseBill.InRequestPartition.ID; // 出库审核人工号 field [7] = caseBill.OutAuditingOper.ID; // 出库审核科室编码 field [8] = caseBill.OutAuditingOper.Dept.ID; // 出库审核病区编码 field [9] = caseBill.OutAuditingNurse.ID; // 出库审核时间 field [10] = caseBill.OutAuditingOper.OperTime.ToString(); // 入库确认人工号 field [11] = caseBill.InConfirmOper.ID; // 入库确认时间 field [12] = caseBill.InConfirmOper.OperTime.ToString(); // 单据类型、出库类型,对应常数表的CASE01 field [13] = caseBill.BillType.ID; // 发送人工号 field [14] = caseBill.SendOper.ID; // 发送时间 field [15] = caseBill.SendOper.OperTime.ToString(); // 接收人工号 field [16] = caseBill.ReceiveOper.ID; // 接收时间 field [17] = caseBill.ReceiveOper.OperTime.ToString(); // 是否已经接收:1-是、0-否 if (caseBill.IsReceive) { field [18] = "1"; } else { field [18] = "0"; } // 病历唯一ID field [19] = caseBill.CaseInfo.ID.ToString(); // 单据状态:0-入库申请、1-出库审核、2、入库确认 field [20] = ((int)caseBill.CaseBillState).ToString(); // 该申请的病历是否被发送:1-是、0-否 if (caseBill.IsSend) { field [21] = "1"; } else { field [21] = "0"; } // 申请的目标科室:可以是病区、科室——病历所在科室 field [22] = caseBill.FromDept.ID; // 扩展 field [23] = caseBill.User01; field [24] = caseBill.User02; field [25] = caseBill.User03; #endregion } catch (Exception exception) { this.Err = "插入数据库转换字段数组失败" + exception.Message; return(-1); } return(1); }
/// <summary> /// 转换Reader为实体 /// </summary> /// <param name="caseBill">病历出库单实体</param> /// <returns>-1-失败,1-成功</returns> private int ConvertReaderToObject(ref HISFC.Models.HealthRecord.Case.CaseBill caseBill) { try { #region 赋值 // 唯一主键 caseBill.ID = this.Reader[0].ToString(); // 出库单号码,一个单据可以包括多个病历 caseBill.BillCode = this.Reader [1].ToString(); // 入库申请人工号 caseBill.InRequestOper.ID = this.Reader [2].ToString(); caseBill.InRequestOper.Name = this.Reader [3].ToString(); // 入库申请科室编码 caseBill.InRequestOper.Dept.ID = this.Reader[4].ToString(); caseBill.InRequestOper.Dept.Name = this.Reader [5].ToString(); // 入库申请病区编码 caseBill.InRequestNurse.ID = this.Reader[6].ToString(); caseBill.InRequestNurse.Name = this.Reader [7].ToString(); // 入库申请时间 caseBill.InRequestOper.OperTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.Reader [8].ToString()); // 入库申请分区编码 caseBill.InRequestPartition.ID = this.Reader[9].ToString(); caseBill.InRequestPartition.Name = this.Reader [10].ToString(); // 出库审核人工号 caseBill.OutAuditingOper.ID = this.Reader[11].ToString(); caseBill.OutAuditingOper.Name = this.Reader [12].ToString(); // 出库审核科室编码 caseBill.OutAuditingOper.Dept.ID = this.Reader[13].ToString(); caseBill.OutAuditingOper.Dept.Name = this.Reader [14].ToString(); // 出库审核病区编码 caseBill.OutAuditingNurse.ID = this.Reader[15].ToString(); caseBill.OutAuditingNurse.Name = this.Reader [16].ToString(); // 出库审核时间 caseBill.OutAuditingOper.OperTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.Reader[17].ToString()); // 入库确认人工号 caseBill.InConfirmOper.ID = this.Reader[18].ToString(); caseBill.InConfirmOper.Name = this.Reader [19].ToString(); // 入库确认时间 caseBill.InConfirmOper.OperTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.Reader[20].ToString()); // 单据类型、出库类型,对应常数表的CASE01 caseBill.BillType.ID = this.Reader[21].ToString(); caseBill.BillType.Name = this.Reader [22].ToString(); // 发送人工号 caseBill.SendOper.ID = this.Reader[23].ToString(); caseBill.SendOper.Name = this.Reader [24].ToString(); // 发送时间 caseBill.SendOper.OperTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.Reader[25].ToString()); // 接收人工号 caseBill.ReceiveOper.ID = this.Reader[26].ToString(); caseBill.ReceiveOper.Name = this.Reader [27].ToString(); // 接收时间 caseBill.ReceiveOper.OperTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.Reader[28].ToString()); // 是否已经接收:1-是、0-否 if (this.Reader [29].ToString() == "1") { caseBill.IsReceive = true; } else { caseBill.IsReceive = false; } // 病历唯一ID caseBill.CaseInfo.ID = this.Reader[30].ToString(); caseBill.CaseInfo.Patient.PID.CardNO = this.Reader [31].ToString(); caseBill.CaseInfo.Patient.Name = this.Reader [32].ToString(); caseBill.CaseInfo.Patient.Sex.ID = this.Reader [33].ToString(); caseBill.CaseInfo.Patient.Birthday = Neusoft.FrameWork.Function.NConvert.ToDateTime(this.Reader [34].ToString()); // 单据状态:0-入库申请、1-出库审核、2、入库确认 switch (this.Reader [35].ToString()) { case "0": caseBill.CaseBillState = Neusoft.HISFC.Models.HealthRecord.Case.EnumCaseBillState.InRequest; break; case "1": caseBill.CaseBillState = Neusoft.HISFC.Models.HealthRecord.Case.EnumCaseBillState.OutAuditing; break; case "2": caseBill.CaseBillState = Neusoft.HISFC.Models.HealthRecord.Case.EnumCaseBillState.InConfirm; break; } // 该申请的病历是否被发送:1-是、0-否 if (this.Reader [36].ToString() == "1") { caseBill.IsSend = true; } else { caseBill.IsSend = false; } // 申请的病历所在科室或病区 caseBill.FromDept.ID = this.Reader [37].ToString(); caseBill.FromDept.Name = this.Reader [38].ToString(); // 扩展 caseBill.User01 = this.Reader [39].ToString(); caseBill.User02 = this.Reader [40].ToString(); caseBill.User03 = this.Reader [41].ToString(); // 病历状态 caseBill.CaseInfo.CaseState.Name = this.Reader [42].ToString(); // 所在类型 caseBill.CaseInfo.InType = Neusoft.FrameWork.Function.NConvert.ToInt32(this.Reader[43].ToString()); caseBill.CaseInfo.InDept.ID = this.Reader [44].ToString(); caseBill.CaseInfo.InDept.Name = this.Reader [45].ToString(); caseBill.CaseInfo.InEmployee.ID = this.Reader [46].ToString(); caseBill.CaseInfo.InEmployee.Name = this.Reader [47].ToString(); #endregion } catch (Exception exception) { this.Err = "转换Reader为出库单实体出错" + exception.Message; return(-1); } return(1); }