实现医生工作站的辅助检查功能的代码(七)
2015-06-01 19:30
513 查看
实现医生工作站的辅助检查功能的代码(七)
3.2.3辅助检查
3.2.3.1辅助检查主界面
辅助检查这个模块可以实现医生根据病人病历来开一些体检、化验、治疗、体检套餐、化验检查组合等的辅助检查项目。一个病人可以新增多条的辅助检查项目但不会新增想同的项目。这里可以根据病人姓名、医生姓名等进行多条件查询辅助检查项目的处方单。主界面截图:
3.2.3.1(图1)
从界面上可以看到我们这里用到的控件有:
控件名称 | 说明 |
文本框控件textBox | 第一要设置每个控件的Text,第二设置控件Name;不同的是dataGridView右键进行编辑列。 |
下拉框控件comboBox | |
按钮控件button | |
表格控件dataGridView | |
时间控件dateTimePicker |
第一步:数据库
1、表与关系
[align=left] [/align]
3.2.2.1(图2)
表1:处方单表(PW_OrdonnanceTable)
列名 | 数据类型 | 主键/外键 | 说明 |
OrdonnanceID | int - Identity | 主键 | 处方单ID |
OrdonnanceNumber | nchar (30) | 处方单号 | |
PatientID | int | 外键 | 病人ID |
PrescriptionDate | datetime | 处方时间 | |
ClinicTechnicalOffices_TechnicalOfficesID | int | 外键 | 就诊科室_科室ID |
TreatmentDoctor_StaffID | int | 外键 | 就诊医生_员工ID |
AS_ChargeStatusID | int | 外键 | 收费状态ID |
ChargeForPersonnel_StaffID | int | 外键 | 收费人员_员工ID |
ChargeTime | datetime | 收费时间 | |
AS_TakeMedicineStatusID | int | 外键 | 发药状态ID |
TakeMedicinePersonnel_StaffID | int | 外键 | 发药人员_员工ID |
TakeMedicineTime | datetime | 发药时间 | |
BedID | int | 外键 | 床位ID |
OutpatientMedicalRecordsTemplateID | int | 外键 | 门诊病历模板ID |
WhetherEffective | bit | 有效否 |
列名 | 数据类型 | 主键/外键 | 说明 |
PatientID | int - Identity | 主键 | 病人ID |
PatientCardNumber | nchar (50) | 病人卡号 | |
PatientName | nchar (30) | 病人名称 | |
AS_SexID | int | 外键 | 性别ID |
Birthday | datetime | 出生年月 | |
IDCardNo | nchar (50) | 身份证号 | |
AS_MaritalStatusID | int | 外键 | 婚姻情况ID |
Profession | nchar (50) | 所在职业 | |
MemberTypeID | int | 外键 | 会员类型ID |
MedicareCardNumber | nchar (50) | 医保卡号 | |
AS_InsuredTypeID | int | 外键 | 参保类型ID |
ContactTelephone | nchar (30) | 联系电话 | |
ContactAddress | nchar (100) | 联系地址 | |
DrugAllergyHistory | nchar (100) | 药物过敏史 | |
PatientCategoryID | int | 外键 | 病人类别ID |
Age | nchar (30) | 年龄 | |
AlphabeticBrevityCode | nchar (20) | 拼音简码 | |
WubiInCode | nchar (20) | 五笔简码 | |
ContactMobilePhone | nchar (30) | 联系手机 | |
Email | nchar (30) | 电子邮件 | |
Introducer | nchar (30) | 介绍人员 | |
PersonalTaboo | nchar (70) | 个人忌讳 | |
HighestReputation | nchar (70) | 信誉上限 | |
NowIntegral | nchar (50) | 当前积分 | |
Debt | decimal (18, 2) | 尚欠金额 | |
ExpenseSum | decimal (18, 2) | 消费金额 | |
LastTime | datetime | 上次时间 | |
LastDoctor_StaffID | int | 外键 | 上次医生 |
Prescriptions | nchar (50) | 总处方数 | |
PatientPhotos | char (200) | 病人照片 | |
WhetherEffective | bit | 有效否 | |
WhetherMember | bit | 会员否 |
列名 | 数据类型 | 主键/外键 | 说明 |
AuxiliaryItemDetailID | int - Identity | 主键 | 辅助项目明细ID |
RegisterID | int | 外键 | 挂号ID |
AllItemID | int | 外键 | 总项目ID |
ItemCategoryID | int | 外键 | 项目类别ID |
WhetherEffective | bit | 有效否 | |
AS_PhysicalExaminationRegisterID | int | 外键 | 体检登记ID |
OrdonnanceID | int | 外键 | 处方单ID |
列名 | 数据类型 | 主键/外键 | 说明 |
ItemCategoryID | int - Identity | 主键 | 项目类别ID |
ItemCategoryName | nchar (30) | 项目类别名称 |
列名 | 数据类型 | 主键/外键 | 说明 |
ItemID | int - Identity | 主键 | 项目ID |
ItemName | nchar (70) | 项目名称 | |
ItemCoding | nchar (50) | 项目编号 | |
AS_UserStatusID | int | 外键 | 使用状态ID |
ProjectPrice | decimal (18, 2) | 现金价格 | |
TechnicalOfficesID | int | 外键 | 科室ID |
DiscountProportion | decimal (18, 2) | 折扣比例 | |
WhetherEffective | bit | 有效否 |
列名 | 数据类型 | 主键/外键 | 说明 |
AssayItemsID | int - Identity | 主键 | 化验项目ID |
AssayItemsNumber | nchar (20) | 化验项目编号 | |
AssayItemsName | nchar (40) | 化验项目名称 | |
ChineseName | nchar (50) | 中文名称 | |
AssayItemsUnits | nchar (50) | 化验项目单位 | |
ExperimentWay | nchar (70) | 实验方法 | |
AssayItemsPrice | decimal (18, 2) | 化验项目价格 | |
ResultDecimalPoint | int | 外键 | 结果小数点 |
AcquiescentValue | nchar (50) | 默认值 | |
WhetherEffective | bit | 有效否 |
列名 | 数据类型 | 主键/外键 | 说明 |
TreatmentItemID | int - Identity | 主键 | 治疗项目ID |
TreatmentItemName | nchar (50) | 治疗项目名称 | |
AS_ItemTypeID | int | 外键 | 项目类型ID |
ItemNumber | nchar (30) | 项目编号 | |
TreatmentItemsMedicareNumber | nchar (30) | 治疗项目医保编号 | |
WhetherMedicare | bit | 医保否 | |
AS_UserStatusID | int | 外键 | 使用状态ID |
AlphabeticBrevityCode | nchar (20) | 拼音简码 | |
WubiInCode | nchar (20) | 五笔简码 | |
ChargeCategoryID | int | 外键 | 收费类别 ID |
MedicineCategoryID | int | 外键 | 医学类别 ID |
PromotionalLogo | nchar (30) | 促销标识 | |
PhysicalExaminationPricing | decimal (18, 2) | 体检定价 | |
TotalInvestment | nchar (20) | 项目单位 | |
GeneralPricing | decimal (18, 2) | 普通定价 | |
MedicarePricing | decimal (18, 2) | 医保定价 | |
MemberPrice | decimal (18, 2) | 会员定价 | |
WhetherIntegral | bit | 积分否 | |
ProportionIntegral | decimal (18, 2) | 积分比例 | |
IntegralScores | decimal (18, 2) | 积分分数 | |
PhysicalExaminationTechnicalOfficesID | int | 外键 | 体检科室ID |
ItemRemarks | nchar (100) | 项目备注 | |
WhetherPhysicalExaminationItem | bit | 体检项目否 | |
MedicalApparatusID | int | 外键 | 化验仪器ID |
ItemID | int | 外键 | 项目ID |
WhetherAllowTheFrontDeskToChangePriceSales | bit | 允许前台改价销售否 | |
WhetherAllowTheFrontDeskDiscountSales | bit | 允许前台折扣销售否 | |
EntryStaff_StaffID | int | 外键 | 录入人员_员工ID |
EntryDate | datetime | 录入日期 | |
UpdateStaff_StaffID | int | 外键 | 修改人员_员工ID |
UpdateDate | datetime | 修改日期 | |
WhetherEffective | bit | 有效否 |
列名 | 数据类型 | 主键/外键 | 说明 |
PhysicalExaminationSetMealID | int - Identity | 主键 | 体检套餐ID |
PhysicalExaminationSetMealName | nchar (30) | 体检套餐名称 | |
ChargeCategoryID | int | 外键 | 收费类别 ID |
CashPrice | decimal (18, 2) | 现金价格 | |
DiscountRatio | decimal (18, 2) | 折扣比例 | |
SetMealNumber | nchar (30) | 套餐编号 | |
SetMealRemarks | nchar (150) | 套餐备注 | |
AS_UsableStatusID | int | 外键 | 可用状态ID |
EntryStaff_StaffID | int | 外键 | 录入人员_员工ID |
EntryDate | datetime | 录入日期 | |
UpdateStaff_StaffID | int | 外键 | 修改人员_员工ID |
UpdateDate | datetime | 修改日期 | |
WhetherEffective | bit | 有效否 |
列名 | 数据类型 | 主键/外键 | 说明 |
AssayInspectCombinationID | int - Identity | 主键 | 化验检查组合ID |
CombinationNumber | nchar (20) | 组合编号 | |
ChargeCategoryID | int | 外键 | 收费类别 ID |
CombinationName | nchar (50) | 组合名称 | |
AS_ApparatusTypeID | int | 外键 | 仪器类型ID |
AS_UsableStatusID | int | 外键 | 可用状态ID |
Price | decimal (18, 2) | 价格 | |
DiscountProportion | decimal (18, 2) | 折扣比例 | |
Remarks | nchar (150) | 备注 | |
WhetherEffective | bit | 有效否 |
多条件查询辅助检查处方单信息:
(1)、存储过程代码:
--查询医生姓名 IF(@Type='FRM_FuZhuJianCha_Load_SelectStaff') BEGIN SELECT LTRIM(RTRIM(StaffID)) AS StaffID, LTRIM(RTRIM(StaffName)) AS StaffName FROM BT_StaffTable WHERE BT_StaffTable.AS_StaffPositionID =21 END --查询科室名称 IF(@Type ='FRM_FuZhuJianCha_Load_SelectTechnicalOffices') BEGIN SELECT LTRIM(RTRIM(TechnicalOfficesID )) AS TechnicalOfficesID, LTRIM(RTRIM(TechnicalOfficesName)) AS TechnicalOfficesName FROM BT_TechnicalOfficesTable END --查询会员类型 IF(@Type ='FRM_FuZhuJianCha_Load_SelectMemberCategory') BEGIN SELECT LTRIM (RTRIM(MemberCategoryID)) AS MemberCategoryID, LTRIM (RTRIM(MemberCategoryName)) AS MemberCategoryName FROM BT_MemberCategoryTable END --查询参保类型 IF(@Type ='FRM_FuZhuJianCha_Load_SelectInsuredType') BEGIN SELECT LTRIM (RTRIM(AttributeDetailsID)) AS InsuredTypeID, LTRIM (RTRIM(AttributeDetailsName)) AS InsuredTypeName FROM BT_AttributeDetailsTable WHERE BT_AttributeDetailsTable.AttributeSetID =21 END --查询处方信息 IF(@Type ='FRM_FuZhuJianCha_Load_SelectRegister') BEGIN SELECT LTRIM(RTRIM(PW_OrdonnanceTable.OrdonnanceID)) AS OrdonnanceID, LTRIM(RTRIM(PW_OrdonnanceTable.OrdonnanceNumber)) AS OrdonnanceNumber , LTRIM(RTRIM(PW_RegisterTable.RegisterID)) AS RegisterID, LTRIM(RTRIM(PW_RegisterTable.RegisterNumber)) AS RegisterNumber, LTRIM(RTRIM(BT_PatientTable.PatientCardNumber))AS PatientCardNumber, LTRIM(RTRIM(BT_PatientTable.PatientName)) AS PatientName, PW_RegisterTable.RegisterTime, LTRIM(RTRIM(PW_RegisterTable.Doctor_StaffID)) AS Doctor_StaffID, LTRIM(RTRIM(BT_StaffTable.StaffName)) AS StaffName, LTRIM(RTRIM(PW_RegisterTable.TechnicalOfficesID)) AS TechnicalOfficesID, LTRIM(RTRIM(BT_TechnicalOfficesTable.TechnicalOfficesName)) AS TechnicalOfficesName, LTRIM(RTRIM(PW_RegisterTable.RegisterSum)) AS RegisterSum, LTRIM(RTRIM(PW_RegisterTable.AS_RegisterStatusID)) AS AS_RegisterStatusID, LTRIM(RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS RegisterStatus, LTRIM(RTRIM(BT_PatientTable.AS_SexID)) AS AS_SexID, LTRIM(RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS Sex, LTRIM(RTRIM(BT_PatientTable.AS_MaritalStatusID)) AS AS_MaritalStatusID, LTRIM(RTRIM(BT_AttributeDetailsTable_2.AttributeDetailsName)) AS MaritalStatus, LTRIM(RTRIM(BT_PatientTable.Profession)) AS Profession, LTRIM(RTRIM(BT_PatientTable.Age)) AS Age, LTRIM(RTRIM(BT_PatientTable.AS_InsuredTypeID)) AS AS_InsuredTypeID, LTRIM(RTRIM(BT_AttributeDetailsTable_3.AttributeDetailsName))AS InsuredType, LTRIM(RTRIM(BT_PatientTable.MemberTypeID)) AS MemberTypeID, LTRIM(RTRIM(BT_MemberCategoryTable.MemberCategoryName)) AS MemberCategoryName, LTRIM(RTRIM(BT_PatientTable.ContactTelephone)) AS ContactTelephone, LTRIM(RTRIM(BT_PatientTable.ContactAddress)) AS ContactAddress, LTRIM(RTRIM(BT_PatientTable.PersonalTaboo))AS PersonalTaboo, LTRIM(RTRIM(BT_PatientTable.DrugAllergyHistory)) AS DrugAllergyHistory, LTRIM(RTRIM(PW_RegisterTable.RegisterRemarks)) AS RegisterRemarks, LTRIM(RTRIM(BT_PatientTable.PatientID)) AS PatientID FROM PW_RegisterTable INNER JOIN BT_PatientTable ON PW_RegisterTable.PatientID = BT_PatientTable.PatientID INNER JOIN BT_StaffTable ON PW_RegisterTable.Doctor_StaffID = BT_StaffTable.StaffID INNER JOIN BT_TechnicalOfficesTable ON PW_RegisterTable.TechnicalOfficesID = BT_TechnicalOfficesTable.TechnicalOfficesID INNER JOIN BT_AttributeDetailsTable ON PW_RegisterTable.AS_RegisterStatusID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOIN BT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON BT_PatientTable.AS_SexID = BT_AttributeDetailsTable_1.AttributeDetailsID INNER JOIN BT_AttributeDetailsTable AS BT_AttributeDetailsTable_2 ON BT_PatientTable.AS_MaritalStatusID = BT_AttributeDetailsTable_2.AttributeDetailsID INNER JOIN BT_AttributeDetailsTable AS BT_AttributeDetailsTable_3 ON BT_PatientTable.AS_InsuredTypeID = BT_AttributeDetailsTable_3.AttributeDetailsID INNER JOIN BT_MemberCategoryTable ON BT_PatientTable.MemberTypeID = BT_MemberCategoryTable.MemberCategoryID INNER JOIN PW_OrdonnanceTable ON BT_PatientTable.PatientID = PW_OrdonnanceTable.PatientID WHERE PW_RegisterTable.WhetherEffective =0 AND AS_RegisterStatusID=356 END --查询体检项目 IF(@Type ='FRM_FuZhuJianCha_Load_SelectAllItem') BEGIN SELECT LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, LTRIM(RTRIM(BT_ItemTable.ItemName)) AS Name, LTRIM(RTRIM(BT_ItemTable.ProjectPrice)) AS Price, LTRIM(RTRIM(BT_ItemTable.ItemCoding)) AS Coding, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID FROM PW_AuxiliaryItemDetailTable LEFT OUTER JOIN BT_ItemTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_ItemTable.ItemID WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID AND PW_AuxiliaryItemDetailTable.ItemCategoryID =1 union --查询化验项目 SELECT LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, LTRIM(RTRIM(BT_AssayItemsTable.AssayItemsName)) AS Name, LTRIM(RTRIM(BT_AssayItemsTable.AssayItemsPrice)) AS Price, LTRIM(RTRIM(BT_AssayItemsTable.AssayItemsNumber)) AS Coding, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID FROM PW_AuxiliaryItemDetailTable LEFT OUTER JOIN BT_AssayItemsTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_AssayItemsTable.AssayItemsID WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID AND PW_AuxiliaryItemDetailTable.ItemCategoryID =2 --查询治疗项目 union SELECT LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, LTRIM(RTRIM(BT_TreatmentItemsTable.TreatmentItemName)) AS Name, LTRIM(RTRIM(BT_TreatmentItemsTable.GeneralPricing)) AS Price, LTRIM(RTRIM(BT_TreatmentItemsTable.ItemNumber)) AS Coding, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID FROM PW_AuxiliaryItemDetailTable LEFT OUTER JOIN BT_TreatmentItemsTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_TreatmentItemsTable.TreatmentItemID WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID AND PW_AuxiliaryItemDetailTable.ItemCategoryID =3 ---查询体检套餐 union SELECT LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, LTRIM(RTRIM(BT_PhysicalExaminationSetMealTable.PhysicalExaminationSetMealName)) AS Name, LTRIM(RTRIM(BT_PhysicalExaminationSetMealTable.CashPrice)) AS Price, LTRIM(RTRIM(BT_PhysicalExaminationSetMealTable.SetMealNumber)) AS Coding, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID FROM PW_AuxiliaryItemDetailTable INNER JOIN BT_PhysicalExaminationSetMealTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_PhysicalExaminationSetMealTable.PhysicalExaminationSetMealID WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID AND PW_AuxiliaryItemDetailTable.ItemCategoryID =4 --查询化验检查组合 union SELECT LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, LTRIM(RTRIM(BT_AssayInspectCombinationTable.CombinationName)) AS Name, LTRIM(RTRIM(BT_AssayInspectCombinationTable.Price)) AS Price, LTRIM(RTRIM(BT_AssayInspectCombinationTable.CombinationNumber)) AS Coding, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID FROM PW_AuxiliaryItemDetailTable LEFT OUTER JOIN BT_AssayInspectCombinationTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_AssayInspectCombinationTable.AssayInspectCombinationID WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID AND PW_AuxiliaryItemDetailTable.ItemCategoryID =5 END <span style="font-size: 14px;"><strong> </strong></span>
(2)、逻辑层代码:
[OperationContract] #region 查询医生姓名 public DataSet FRM_FuZhuJianCha_Load_SelectStaff() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectStaff"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询科室名称 public DataSet FRM_FuZhuJianCha_Load_SelectTechnicalOffices() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectTechnicalOffices"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询会员类型 public DataSet FRM_FuZhuJianCha_Load_SelectMemberCategory() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectMemberCategory"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询参保类型 public DataSet FRM_FuZhuJianCha_Load_SelectInsuredType() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectInsuredType"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询处方信息 public DataSet FRM_FuZhuJianCha_Load_SelectRegister() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectRegister"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询所有的辅助检查项目信息 public DataSet FRM_FuZhuJianCha_Load_SelectAllItem(int intOrdonnanceID) { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), new SqlParameter("@OrdonnanceID", SqlDbType.Int), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectAllItem"; SQLCMDpas[1].Value = intOrdonnanceID; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion<strong> </strong>
(3)、界面层代码:
#region Load事件 private void FRM_FuZhuJianCha_Load(object sender, EventArgs e) { DataTable dtDoctor = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectStaff().Tables[0]; cboDoctor = PublicStaticMothd.SetZhiXiaLaKuang(cboDoctor, dtDoctor, "StaffID", "StaffName");//查询绑定医生姓名 DataTable dtTechnicalOffices = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectTechnicalOffices().Tables[0]; cboTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboTechnicalOffices, dtTechnicalOffices, "TechnicalOfficesID", "TechnicalOfficesName");//查询绑定科室名称 DataTable dtMemberType = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectMemberCategory().Tables[0]; cboMemberType = PublicStaticMothd.SetZhiXiaLaKuang(cboMemberType, dtMemberType, "MemberCategoryID", "MemberCategoryName");//查询绑定会员类型 DataTable dtInsuredType = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectInsuredType().Tables[0]; cboInsuredType = PublicStaticMothd.SetZhiXiaLaKuang(cboInsuredType, dtInsuredType, "InsuredTypeID", "InsuredTypeName");//查询绑定参保类型 dgvOrdonnanceID.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectRegister().Tables[0]; dgvOrdonnanceID.ClearSelection(); } #endregion #region 多条件查询 private void btnSelect_Click(object sender, EventArgs e) { string strGuoLvTiaoJian = "";//声明一个字符串变量,作为查询的过滤条件。 if (chkRegisterTime.Checked) //当挂号时间的复选框被打上勾。 { DateTime StartRegisterTime = Convert.ToDateTime(dtpStartRegisterTime.Text); //开始时间转换成事件格式 DateTime EndRegisterTime = Convert.ToDateTime(dtpEndRegisterTime.Text); //结束时间转换成事件格式 strGuoLvTiaoJian = "(RegisterTime>='" + StartRegisterTime + "'and RegisterTime<='" + EndRegisterTime + "')"; } if (chkRegisterNumber.Checked) //当挂号编号的复选框被打上勾。 { if (strGuoLvTiaoJian != "")//当过滤条件不为空。 { strGuoLvTiaoJian = strGuoLvTiaoJian + "and RegisterNumber like'%" + txtRegisterNumber.Text.ToString().Trim() + "%'";//字符串拼接,把挂号编号拼接现有的条件组成多条件查询。 } else { strGuoLvTiaoJian = "RegisterNumber like'%" + txtRegisterNumber.Text.ToString().Trim() + "%'";//只有挂号编号作为条件进行查询。 } } if (chkPatientName.Checked) //当病人名称的复选框被打上勾。 { if (strGuoLvTiaoJian != "")//当过滤条件不为空。 { strGuoLvTiaoJian = strGuoLvTiaoJian + "and PatientName like'%" + txtPatientName.Text.ToString().Trim() + "%'"; } else { strGuoLvTiaoJian = "PatientName like'%" + txtPatientName.Text.ToString().Trim() + "%'"; } } if (chkDoctor.Checked) //当撰写医生的复选框被打上勾。 { if (strGuoLvTiaoJian != "")//当过滤条件不为空。 { strGuoLvTiaoJian = strGuoLvTiaoJian + "and Doctor_StaffID=" + cboDoctor.SelectedValue; } else { strGuoLvTiaoJian = "Doctor_StaffID=" + cboDoctor.SelectedValue; } } if (chkInsuredType.Checked) { if (strGuoLvTiaoJian != "")//当过滤条件不为空。 { strGuoLvTiaoJian = strGuoLvTiaoJian + "and AS_InsuredTypeID=" + cboInsuredType.SelectedValue; } else { strGuoLvTiaoJian = "AS_InsuredTypeID=" + cboInsuredType.SelectedValue; } } if (chkTechnicalOffices.Checked) //当撰写科室的复选框被打上勾。 { if (strGuoLvTiaoJian != "")//当过滤条件不为空。 { strGuoLvTiaoJian = strGuoLvTiaoJian + "and TechnicalOfficesID=" +cboTechnicalOffices. SelectedValue; } else { strGuoLvTiaoJian = "TechnicalOfficesID=" + cboTechnicalOffices.SelectedValue; } } if (chkMemberType.Checked) //当会员类别的复选框被打上勾。 { if (strGuoLvTiaoJian != "")//当过滤条件不为空。 { strGuoLvTiaoJian = strGuoLvTiaoJian + "and MemberTypeID=" + cboMemberType.SelectedValue; } else { strGuoLvTiaoJian = "MemberTypeID=" + cboMemberType.SelectedValue; } } DataTable dtChuFang = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectRegister().Tables[0]; //查询挂号信息。 DataView dv = new DataView(dtChuFang); //自定义一个视图并赋值查询出来的挂号信息数据 DataTable dt = new DataTable();//声明一个空表。 if (strGuoLvTiaoJian != "")//当过滤条件不为空。 { dv.RowFilter = strGuoLvTiaoJian; //筛选自定义视图根据查询条件查到的数据 dt = dv.ToTable();//把自定义视图筛选的数据转换成一个表赋值给事先声明的空 } if (strGuoLvTiaoJian == "") { dt = dv.ToTable();//查询出所有数据 } dgvOrdonnanceID.DataSource = dt; //处方单的单据的数据源等于过滤条件查出的 } #endregion
3.2.3.2新增辅助检查
点击3.2.3.1(图1)”新增项目“按钮会弹出一个界面供医生开辅助检查项目。新增辅助检查是当病人需要体检、化验、治疗时所提供的平台,医生可以在该病人的处方单处添加对应的检查项目。图中体检项目和体检套餐是相对应的,体检套擦是由体检项目组合而成,所以当添加的体检项目在体检套餐中有包含时体检项目不能新增;同样化验项目组合成化验检查组合,当新增的化验检查组合中有已添加的化验项目时,该化验检查组合不能新增,还有同一项目不能新增两次,就是项目不能重复。新增辅助检查截图:
[align=left] [/align]
3.2.3.2(图1)
2、功能代码实现
添加保存辅助项目:
(1)、存储过程代码:
--体检项目 IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectItem') BEGIN SELECT LTRIM(RTRIM(ItemID)) AS ItemID, LTRIM(RTRIM(ItemCoding)) AS ItemCoding, LTRIM(RTRIM(ItemName)) AS ItemName, LTRIM(RTRIM(ProjectPrice)) AS ProjectPrice FROM BT_ItemTable END --化验项目 IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectAssayItems') BEGIN SELECT LTRIM(RTRIM(AssayItemsID)) AS AssayItemsID, LTRIM(RTRIM(AssayItemsNumber)) AS AssayItemsNumber, LTRIM(RTRIM(AssayItemsName)) AS AssayItemsName, LTRIM(RTRIM(AssayItemsPrice)) AS AssayItemsPrice FROM BT_AssayItemsTable END --治疗项目 IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem') BEGIN SELECT LTRIM(RTRIM(TreatmentItemID)) AS TreatmentItemID, LTRIM(RTRIM(ItemNumber)) AS ItemNumber, LTRIM(RTRIM(TreatmentItemName)) AS TreatmentItemName, LTRIM(RTRIM(GeneralPricing)) AS GeneralPricing FROM BT_TreatmentItemsTable END --体检套餐 IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal') BEGIN SELECT LTRIM(RTRIM(PhysicalExaminationSetMealID)) AS PhysicalExaminationSetMealID, LTRIM(RTRIM(SetMealNumber)) AS SetMealNumber, LTRIM(RTRIM(PhysicalExaminationSetMealName)) AS PhysicalExaminationSetMealName, LTRIM(RTRIM(CashPrice)) AS CashPrice FROM BT_PhysicalExaminationSetMealTable END --化验检查组合 IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination') BEGIN SELECT LTRIM(RTRIM(AssayInspectCombinationID)) AS AssayInspectCombinationID, LTRIM(RTRIM(CombinationNumber)) AS CombinationNumber, LTRIM(RTRIM(CombinationName)) AS CombinationName, LTRIM(RTRIM(Price)) AS Price FROM BT_AssayInspectCombinationTable END --新增辅助项目 IF(@Type ='btnSave_Click_InsertAuxiliaryItemDetail') BEGIN INSERT PW_AuxiliaryItemDetailTable(RegisterID , OrdonnanceID, AllItemID, ItemCategoryID, WhetherEffective,AS_PhysicalExaminationRegisterID ) VALUES (@RegisterID, @OrdonnanceID, @AllItemID, @ItemCategoryID, 1,362) END
(2)、逻辑层代码:
[OperationContract] #region 查询体检项目 public DataSet FRM_FuZhuJianCha_Insert_Load_SelectItem() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectItem"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询化验项目 public DataSet FRM_FuZhuJianCha_Insert_Load_SelectAssayItems() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectAssayItems"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询治疗项目 public DataSet FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询体检套餐 public DataSet FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询化验检查组合 public DataSet FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination"; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 新增辅助检查项目信息 public int btnSave_Click_InsertAuxiliaryItemDetail(int intRegisterID, int intOrdonnanceID, int intAllItemID, int intItemCategoryID) { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), new SqlParameter ("@RegisterID",SqlDbType.Int), new SqlParameter ("@OrdonnanceID",SqlDbType.Int), new SqlParameter ("@AllItemID",SqlDbType.Int), new SqlParameter ("@ItemCategoryID",SqlDbType.Int), }; SQLCMDpas[0].Value = "btnSave_Click_InsertAuxiliaryItemDetail"; SQLCMDpas[1].Value = intRegisterID; SQLCMDpas[2].Value = intOrdonnanceID; SQLCMDpas[3].Value = intAllItemID; SQLCMDpas[4].Value = intItemCategoryID; int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); return count; } #endregion
(3)、界面层代码:
#region 声明全局变量 BLL医院管理系统.YiShengGongZuoZhan.FRM_FuZhuJianCha.FRM_FuZhuJianChaClient myFRM_FuZhuJianChaClient = new BLL医院管理系统.YiShengGongZuoZhan.FRM_FuZhuJianCha.FRM_FuZhuJianChaClient(); int intOrdonnanceID;//声明挂号ID int intRegisterID;//挂号ID string Number;//声明挂号单号 #endregion #region 关闭事件 private void btnClose_Click(object sender, EventArgs e) { this.Close(); this.Dispose(); } #endregion #region 保存事件 private void btnSave_Click(object sender, EventArgs e) { int count = 0; for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { if (intOrdonnanceID > 0) { int intAllItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value); int intItemCategoryID=Convert.ToInt32 (dgvAuxiliaryItemDetail.Rows [i].Cells ["ItemCategoryID"].Value); count += myFRM_FuZhuJianChaClient.btnSave_Click_InsertAuxiliaryItemDetail(intRegisterID, intOrdonnanceID, intAllItemID, intItemCategoryID); } else { MessageBox.Show("请选择挂号的病人!"); } } if (count == dgvAuxiliaryItemDetail.Rows.Count) { MessageBox.Show("新增辅助检查项目成功,新增的单是:" + Number); this.Close(); } } #endregion #region FRM_FuZhuJianCha_Insert_Load事件 private void FRM_FuZhuJianCha_Insert_Load(object sender, EventArgs e) { dgvPhysicalExaminationItem.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectItem().Tables[0];//绑定体检项目 dgvAssayItems.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectAssayItems().Tables[0];//绑定化验项目 dgvTreatmentItems.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem().Tables[0];//绑定治疗项目 dgvPhysicalExaminationSetMeal.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal().Tables[0];//绑定体检套餐 dgvAssayInspectCombination.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination().Tables[0];//绑定化验检查组合 dgvRegister.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectRegister().Tables[0]; } #endregion #region dgvRegister_CellMouseClick事件 private void dgvRegister_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { intOrdonnanceID = Convert.ToInt32(dgvRegister.CurrentRow.Cells["OrdonnanceID"].Value); intRegisterID = Convert.ToInt32(dgvRegister.CurrentRow.Cells["RegisterID"].Value); Number = dgvRegister.CurrentRow.Cells["OrdonnanceNumber"].Value.ToString(); } #endregion #region 移除事件 private void dgvAuxiliaryItemDetail_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 0) { DialogResult dr = MessageBox.Show("是否删除?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);//弹出确定对话框 if (dr == DialogResult.OK)//如果点了确定按钮 { dgvAuxiliaryItemDetail.Rows.RemoveAt(dgvAuxiliaryItemDetail.CurrentRow.Index); } } } #endregion #region 把项目信息赋值到辅助项目 #region 体检项目 bool PhysicalExaminationItem = false; int PhysicalExaminationSetMealID = 0;//体检套餐ID int AssayInspectCombinationID = 0;//化验检查ID; private void dgvPhysicalExaminationItem_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { int ItemID1 = Convert.ToInt32(dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目ID"].Value); int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemCategoryID == 4) { PhysicalExaminationSetMealID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value);//获取已存在的体检套餐ID //根据循环得到的体检套餐ID查询体检套餐明细 DataTable DTPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(PhysicalExaminationSetMealID).Tables[0]; for (int j = 0; j < DTPhysicalExaminationSetMealDetail.Rows.Count; j++) { int DetailItemID = Convert.ToInt32(DTPhysicalExaminationSetMealDetail.Rows[j]["ItemID"]); if (DetailItemID == ItemID1) { MessageBox.Show("已添加了含有该项目的体检套餐,不能再添加该项!"); return; } } } if (ItemID == ItemID1 && ItemCategoryID == 1)//项目类别ItemCategoryID用来判断表,值为1时是体检项目表。 { PhysicalExaminationItem = false; MessageBox.Show("该项目已存在!"); break; } else { PhysicalExaminationItem = true; } } } else { PhysicalExaminationItem = true; } if (PhysicalExaminationItem == true)//当快关为真时,新增项目 { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvPhysicalExaminationItem.CurrentRow.Cells["体检现金价格"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 1; //项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表 } } #endregion #region 化验项目 bool AssayItems = false; private void dgvAssayItems_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { //查询化验检查组合明细 int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value); int ItemID2 = Convert.ToInt32(dgvAssayItems.CurrentRow.Cells["化验项目ID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemCategoryID ==5) { AssayInspectCombinationID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value); DataTable DTAssayInspectCombinationID = myFRM_FuZhuJianChaClient.dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail(AssayInspectCombinationID).Tables[0]; for (int j = 0; j < DTAssayInspectCombinationID.Rows.Count; j++) { int DetailItemID = Convert.ToInt32(DTAssayInspectCombinationID.Rows[j]["AssayItemsID"]); if (DetailItemID == ItemID2) { MessageBox.Show("已添加了含有该项目的化验检查组合,不能再添加该项!"); return; } } } if (ItemID == ItemID2 && ItemCategoryID == 2)//项目类别ItemCategoryID用来判断表,值为2时是化验项目表。 { AssayItems = false; MessageBox.Show("该项目已存在!"); break; } else { AssayItems = true; } } } else { AssayItems = true; } if (AssayItems == true)//当快关为真时,新增项目 { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvAssayItems.CurrentRow.Cells["化验项目ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvAssayItems.CurrentRow.Cells["化验项目编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvAssayItems.CurrentRow.Cells["化验项目名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvAssayItems.CurrentRow.Cells["化验项目价格"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 2; //项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表 } } #endregion #region 治疗项目 bool TreatmentItems = false; private void dgvTreatmentItems_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value); int ItemID3 = Convert.ToInt32(dgvTreatmentItems.CurrentRow.Cells["治疗项目ID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemID == ItemID3 && ItemCategoryID == 3)//项目类别ItemCategoryID用来判断表,值为3时是治疗项目表。 { TreatmentItems = false; MessageBox.Show("该项目已存在!"); break; } else { TreatmentItems = true; } } } else { TreatmentItems = true; } if (TreatmentItems == true)//当快关为真时,新增项目 { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvTreatmentItems.CurrentRow.Cells["治疗项目ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvTreatmentItems.CurrentRow.Cells["治疗项目编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvTreatmentItems.CurrentRow.Cells["治疗项目名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvTreatmentItems.CurrentRow.Cells["普通定价"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 3; //项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表 } } #endregion #region 体检套餐 bool PhysicalExaminationSetMeal = false; private void dgvPhysicalExaminationSetMeal_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value); int ItemID4 = Convert.ToInt32(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["体检套餐ID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemCategoryID == 1) { //查询体检套餐明细 DataTable DtPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(ItemID4).Tables[0]; for (int j = 0; j < DtPhysicalExaminationSetMealDetail.Rows.Count; j++) { int DetailItemID = Convert.ToInt32(DtPhysicalExaminationSetMealDetail.Rows[j]["ItemID"]); if (DetailItemID == ItemID) { MessageBox.Show("已添加了该体检套餐的明细单项,不能再添加该套餐!"); return; } } } if (ItemID == ItemID4 && ItemCategoryID == 4)//判断当新增的体检套餐ID的项目ID已存在;项目类别ItemCategoryID用来判断表,值为4时是体检套餐表。 { PhysicalExaminationSetMeal = false;//快关为假 MessageBox.Show("该项目已存在!"); break; } else { PhysicalExaminationSetMeal = true; //快关为真 } } } else { PhysicalExaminationSetMeal = true; //快关为真 } if (PhysicalExaminationSetMeal == true) //当快关为真时,新增项目 { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["体检套餐ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvPhysicalExaminationSetMeal.CurrentRow.Cells["套餐编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvPhysicalExaminationSetMeal.CurrentRow.Cells["套餐名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["现金价格"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 4; //项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表 } } #endregion #region 化验检查组合 bool AssayInspectCombination = false;//声明一个bool快关; private void dgvAssayInspectCombination_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)//循环辅助检查项目明细表dgvAuxiliaryItemDetail的行数。 { int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value); int ItemID5 = Convert.ToInt32(dgvAssayInspectCombination.CurrentRow.Cells["化验检查组合ID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemCategoryID == 2) { //根据化验检查组合dgvAssayInspectCombination的当前行ID查询化验检查组合明细。 DataTable DtPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(ItemID5).Tables[0]; for (int j = 0; j < DtPhysicalExaminationSetMealDetail.Rows.Count; j++)//循环化验检查组合明细表。 { int DetailItemID = Convert.ToInt32(DtPhysicalExaminationSetMealDetail.Rows[j]["AssayItemsID"]);//获取化验检查组合明细的项目ID。 if (DetailItemID == ItemID)//判断当化验检查组合明细的项目ID与辅助检查项目明细表的项目ID相同。 { MessageBox.Show("已添加了该化验检查组合的明细单项,不能再添加该化验检查组合!"); return; } } } if (ItemID == ItemID5 && ItemCategoryID == 5)//判断新增的化验检查组合ID的项目ID是否存在,项目类别ItemCategoryID用来判断表,值为5时是化验检查组合表 { AssayInspectCombination = false;//快关为假 MessageBox.Show("该项目已存在!"); break; } else { AssayInspectCombination = true; //快关为真 } } } else { AssayInspectCombination = true; //快关为真 } if (AssayInspectCombination == true)//快关为真时,新增一条新数据。 { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvAssayInspectCombination.CurrentRow.Cells["化验检查组合ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvAssayInspectCombination.CurrentRow.Cells["组合编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvAssayInspectCombination.CurrentRow.Cells["组合名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvAssayInspectCombination.CurrentRow.Cells["组合价格"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 5; //项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表 } } #endregion #endregion
3.2.3.3修改辅助检查
点击3.2.3.1(图1)”修改项目“按钮也会弹出修改辅助检查界面供医生对输错的辅助项目进行修改。可以再新增辅助检查项目或移除不适合的或是多余的辅助检查项目。修改辅助检查截图:
[align=left] [/align]
3.2.3.3(图1)
功能代码实现
修改辅助项目:
(1)、存储过程代码:
--修改辅助项目 IF(@Type ='btnSave_Click_UpdateAuxiliaryItemDetail') BEGIN Update PW_AuxiliaryItemDetailTable SET OrdonnanceID = @OrdonnanceID, AllItemID=@AllItemID , ItemCategoryID=@ItemCategoryID WHERE PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID =@AuxiliaryItemDetailID END --删除辅助检查项目 IF(@Type='dgvAuxiliaryItemDetail_CellClick_DeleteAuxiliaryItemDetail') BEGIN DELETE PW_AuxiliaryItemDetailTable WHERE PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID=@AuxiliaryItemDetailID END --查询体检套餐明细 IF(@Type ='dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail') BEGIN SELECT BT_PhysicalExaminationSetMealDetailTable.ItemID, BT_ItemTable.ItemName FROM BT_PhysicalExaminationSetMealDetailTable INNER JOIN BT_ItemTable ON BT_PhysicalExaminationSetMealDetailTable.ItemID = BT_ItemTable.ItemID WHERE PhysicalExaminationSetMealID=@PhysicalExaminationSetMealID END --查询化验检查组合明细 IF(@Type ='dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail') BEGIN SELECT BT_AssayInspectCombinationDetailTable.AssayItemsID, BT_AssayItemsTable.AssayItemsName FROM BT_AssayInspectCombinationDetailTable INNER JOIN BT_AssayItemsTable ON BT_AssayInspectCombinationDetailTable.AssayItemsID = BT_AssayItemsTable.AssayItemsID WHERE AssayInspectCombinationID=@AssayInspectCombinationID END
(2)、逻辑层代码:
[OperationContract] #region 修改辅助检查项目信息 public int btnSave_Click_UpdateAuxiliaryItemDetail(int intOrdonnanceID, int intAllItemID, int intItemCategoryID, int intAuxiliaryItemDetailID) { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), new SqlParameter ("@OrdonnanceID",SqlDbType.Int), new SqlParameter ("@AllItemID",SqlDbType.Int), new SqlParameter ("@ItemCategoryID",SqlDbType.Int), new SqlParameter ("@AuxiliaryItemDetailID",SqlDbType.Int), }; SQLCMDpas[0].Value = "btnSave_Click_UpdateAuxiliaryItemDetail"; SQLCMDpas[1].Value = intOrdonnanceID; SQLCMDpas[2].Value = intAllItemID; SQLCMDpas[3].Value = intItemCategoryID; SQLCMDpas[4].Value = intAuxiliaryItemDetailID; int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); return count; } #endregion [OperationContract] #region 删除辅助检查项目 public int dgvAuxiliaryItemDetail_CellClick_DeleteAuxiliaryItemDetail(int intAuxiliaryItemDetailID) { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), new SqlParameter ("@AuxiliaryItemDetailID",SqlDbType.Int), }; SQLCMDpas[0].Value = "dgvAuxiliaryItemDetail_CellClick_DeleteAuxiliaryItemDetail"; SQLCMDpas[1].Value = intAuxiliaryItemDetailID; int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); return count; } #endregion [OperationContract] #region 查询体检套餐明细 public DataSet dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(int intPhysicalExaminationSetMealID) { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), new SqlParameter ("@PhysicalExaminationSetMealID",SqlDbType.Int), }; SQLCMDpas[0].Value = "dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail"; SQLCMDpas[1].Value = intPhysicalExaminationSetMealID; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion [OperationContract] #region 查询化验检查组合明细 public DataSet dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail(int intAssayInspectCombinationID) { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), new SqlParameter ("@AssayInspectCombinationID",SqlDbType.Char), }; SQLCMDpas[0].Value = "dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail"; SQLCMDpas[1].Value = intAssayInspectCombinationID; DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion
(3)、界面层代码:
DataGridViewRow DGVR; public FRM_FuZhuJianCha_Update(DataGridViewRow dgvr) { DGVR = dgvr; InitializeComponent(); } #region 声明全局变量 BLL医院管理系统.YiShengGongZuoZhan.FRM_FuZhuJianCha.FRM_FuZhuJianChaClient myFRM_FuZhuJianChaClient = new BLL医院管理系统.YiShengGongZuoZhan.FRM_FuZhuJianCha.FRM_FuZhuJianChaClient(); int intOrdonnanceID = 0;//声明处方ID int intRegisterID = 0;//声明挂号ID string Number;//声明处方编号 #endregion #region 关闭窗体事件 private void btnClose_Click(object sender, EventArgs e) { this.Close(); this.Dispose(); } #endregion #region 保存事件 private void btnSave_Click(object sender, EventArgs e) { int CountMingXiWeiTian = 0; int A = 0; int a = 0; int M = 0; foreach (DataGridViewRow dgvr in dgvAuxiliaryItemDetail.Rows) { if (dgvr.Cells["Coding"].Value == null || dgvr.Cells["Name1"].Value == null || dgvr.Cells["Price"].Value == null) { } else { int intAuxiliaryItemDetailID;//声明辅助项目明细ID intAuxiliaryItemDetailID = Convert.ToInt32(dgvr.Cells["AuxiliaryItemDetailID"].Value); if (intOrdonnanceID > 0) { if (intAuxiliaryItemDetailID == 0) { int intAllItemID = Convert.ToInt32(dgvr.Cells["AllItemID"].Value); int intItemCategoryID = Convert.ToInt32(dgvr.Cells["ItemCategoryID"].Value); a = myFRM_FuZhuJianChaClient.btnSave_Click_InsertAuxiliaryItemDetail(intRegisterID, intOrdonnanceID, intAllItemID, intItemCategoryID); } else { int intAllItemID1 = Convert.ToInt32(dgvr.Cells["AllItemID"].Value); int intItemCategoryID1 = Convert.ToInt32(dgvr.Cells["ItemCategoryID"].Value); A = myFRM_FuZhuJianChaClient.btnSave_Click_UpdateAuxiliaryItemDetail(intOrdonnanceID, intAllItemID1, intItemCategoryID1, intAuxiliaryItemDetailID); } } else { MessageBox.Show("没有可供修改的辅助检查项目信息!"); } } } if (a > 0 && A > 0 && M > 0 || A > 0 && M > 0 || a > 0 && A > 0) { MessageBox.Show("成功修改辅助检查项目!" + "修改的处方单为:" + Number); this.Close(); } } #endregion #region 添加辅助检查项目 #region 体检项目 bool PhysicalExaminationItem = false; int PhysicalExaminationSetMealID = 0;//体检套餐ID int AssayInspectCombinationID = 0;//化验检查ID; private void dgvPhysicalExaminationItem_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { int ItemID1 = Convert.ToInt32(dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目ID"].Value); int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemCategoryID == 4) { PhysicalExaminationSetMealID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value);//获取已存在的体检套餐ID //根据循环得到的体检套餐ID查询体检套餐明细 DataTable DTPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(PhysicalExaminationSetMealID).Tables[0]; for (int j = 0; j < DTPhysicalExaminationSetMealDetail.Rows.Count; j++) { int DetailItemID = Convert.ToInt32(DTPhysicalExaminationSetMealDetail.Rows[j]["ItemID"]); if (DetailItemID == ItemID1) { MessageBox.Show("已添加了含有该项目的体检套餐,不能再添加该项!"); return; } } } if (ItemID == ItemID1 && ItemCategoryID == 1)//项目类别ItemCategoryID用来判断表,值为1时是体检项目表。 { PhysicalExaminationItem = false; MessageBox.Show("该项目已存在!"); break; } else { PhysicalExaminationItem = true; } } } else { PhysicalExaminationItem = true; } if (PhysicalExaminationItem == true) { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvPhysicalExaminationItem.CurrentRow.Cells["体检现金价格"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 1; } } #endregion #region 化验项目 bool AssayItems = false; private void dgvAssayItems_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value); int ItemID2 = Convert.ToInt32(dgvAssayItems.CurrentRow.Cells["化验项目ID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemCategoryID == 5) { AssayInspectCombinationID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value); DataTable DTAssayInspectCombinationID = myFRM_FuZhuJianChaClient.dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail(AssayInspectCombinationID).Tables[0]; for (int j = 0; j < DTAssayInspectCombinationID.Rows.Count; j++) { int DetailItemID = Convert.ToInt32(DTAssayInspectCombinationID.Rows[j]["AssayItemsID"]); if (DetailItemID == ItemID2) { MessageBox.Show("已添加了含有该项目的化验检查组合,不能再添加该项!"); return; } } } if (ItemID == ItemID2 && ItemCategoryID==2) { AssayItems = false; MessageBox.Show("该项目已存在!"); break; } else { AssayItems = true; } } } else { AssayItems = true; } if (AssayItems == true) { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvAssayItems.CurrentRow.Cells["化验项目ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvAssayItems.CurrentRow.Cells["化验项目编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvAssayItems.CurrentRow.Cells["化验项目名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvAssayItems.CurrentRow.Cells["化验项目价格"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 2; } } #endregion #region 治疗项目 bool TreatmentItems = false; private void dgvTreatmentItems_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value); int ItemID3 = Convert.ToInt32(dgvTreatmentItems.CurrentRow.Cells["治疗项目ID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemID == ItemID3 && ItemCategoryID==3) { TreatmentItems = false; MessageBox.Show("该项目已存在!"); break; } else { TreatmentItems = true; } } } else { TreatmentItems = true; } if (TreatmentItems == true) { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvTreatmentItems.CurrentRow.Cells["治疗项目ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvTreatmentItems.CurrentRow.Cells["治疗项目编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvTreatmentItems.CurrentRow.Cells["治疗项目名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvTreatmentItems.CurrentRow.Cells["普通定价"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 3; } } #endregion #region 体检套餐 bool PhysicalExaminationSetMeal = false; private void dgvPhysicalExaminationSetMeal_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value); int ItemID4 = Convert.ToInt32(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["体检套餐ID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemCategoryID == 1) { DataTable DtPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(ItemID4).Tables[0]; for (int j = 0; j < DtPhysicalExaminationSetMealDetail.Rows.Count; j++) { int DetailItemID = Convert.ToInt32(DtPhysicalExaminationSetMealDetail.Rows[j]["ItemID"]); if (DetailItemID == ItemID) { MessageBox.Show("已添加了该体检套餐的明细单项,不能再添加该套餐!"); return; } } } if (ItemID == ItemID4 && ItemCategoryID==4) { PhysicalExaminationSetMeal = false; MessageBox.Show("该项目已存在!"); break; } else { PhysicalExaminationSetMeal = true; } } } else { PhysicalExaminationSetMeal = true; } if (PhysicalExaminationSetMeal == true) { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["体检套餐ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvPhysicalExaminationSetMeal.CurrentRow.Cells["套餐编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvPhysicalExaminationSetMeal.CurrentRow.Cells["套餐名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["现金价格"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 4; } } #endregion #region 化验检查组合 bool AssayInspectCombination = false; private void dgvAssayInspectCombination_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据 { for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++) { int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value); int ItemID5 = Convert.ToInt32(dgvAssayInspectCombination.CurrentRow.Cells["化验检查组合ID"].Value); int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value); if (ItemCategoryID == 2) { //根据化验检查组合dgvAssayInspectCombination的当前行ID查询化验检查组合明细。 DataTable DtPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(ItemID5).Tables[0]; for (int j = 0; j < DtPhysicalExaminationSetMealDetail.Rows.Count; j++)//循环化验检查组合明细表。 { int DetailItemID = Convert.ToInt32(DtPhysicalExaminationSetMealDetail.Rows[j]["AssayItemsID"]);//获取化验检查组合明细的项目ID。 if (DetailItemID == ItemID)//判断当化验检查组合明细的项目ID与辅助检查项目明细表的项目ID相同。 { MessageBox.Show("已添加了该化验检查组合的明细单项,不能再添加该化验检查组合!"); return; } } } if (ItemID == ItemID5 && ItemCategoryID==5) { AssayInspectCombination = false; MessageBox.Show("该项目已存在!"); break; } else { AssayInspectCombination = true; } } } else { AssayInspectCombination = true; } if (AssayInspectCombination == true) { dgvAuxiliaryItemDetail.Rows.Add(); int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1; dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvAssayInspectCombination.CurrentRow.Cells["化验检查组合ID"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvAssayInspectCombination.CurrentRow.Cells["组合编号"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvAssayInspectCombination.CurrentRow.Cells["组合名称"].Value.ToString(); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvAssayInspectCombination.CurrentRow.Cells["组合价格"].Value); dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 5; } } #endregion #endregion #region FRM_FuZhuJianCha_Update_Load事件 private void FRM_FuZhuJianCha_Update_Load(object sender, EventArgs e) { dgvPhysicalExaminationItem.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectItem().Tables[0];//绑定体检项目 dgvAssayItems.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectAssayItems().Tables[0];//绑定化验项目 dgvTreatmentItems.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem().Tables[0];//绑定治疗项目 dgvPhysicalExaminationSetMeal.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal().Tables[0];//绑定体检套餐 dgvAssayInspectCombination.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination().Tables[0];//绑定化验检查组合 dgvRegister.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectRegister().Tables[0]; } #endregion #region dgvRegister_CellClick事件 private void dgvRegister_CellClick(object sender, DataGridViewCellEventArgs e) { intOrdonnanceID = Convert.ToInt32(dgvRegister.CurrentRow.Cells["OrdonnanceID"].Value); intRegisterID = Convert.ToInt32(dgvRegister.CurrentRow.Cells["RegisterID"].Value); Number = dgvRegister.CurrentRow.Cells["OrdonnanceNumber"].Value.ToString (); DataTable dtAuxiliaryItemDetail = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectAllItem(Convert.ToInt32(dgvRegister.CurrentRow.Cells["OrdonnanceID"].Value)).Tables[0]; dgvAuxiliaryItemDetail.Rows.Clear();//清空空行 for (int i = 0; i < dtAuxiliaryItemDetail.Rows.Count; i++) { dgvAuxiliaryItemDetail.Rows.Add(); dgvAuxiliaryItemDetail.Rows[i].Cells["Coding"].Value = dtAuxiliaryItemDetail.Rows[i]["Coding"].ToString(); dgvAuxiliaryItemDetail.Rows[i].Cells["Name1"].Value = dtAuxiliaryItemDetail.Rows[i]["Name"].ToString(); dgvAuxiliaryItemDetail.Rows[i].Cells["Price"].Value = dtAuxiliaryItemDetail.Rows[i]["Price"].ToString(); dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value = dtAuxiliaryItemDetail.Rows[i]["AllItemID"].ToString(); dgvAuxiliaryItemDetail.Rows[i].Cells["OrdonnanceID_D"].Value = dtAuxiliaryItemDetail.Rows[i]["OrdonnanceID"].ToString(); dgvAuxiliaryItemDetail.Rows[i].Cells["AuxiliaryItemDetailID"].Value = dtAuxiliaryItemDetail.Rows[i]["AuxiliaryItemDetailID"].ToString(); dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value = dtAuxiliaryItemDetail.Rows[i]["ItemCategoryID"].ToString(); } } #endregion #region 移除辅助检查项目 ArrayList arr = new ArrayList(); private void dgvAuxiliaryItemDetail_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex == 0) { if (dgvAuxiliaryItemDetail.CurrentRow.Cells["AuxiliaryItemDetailID"].Value == null) { if (dgvAuxiliaryItemDetail.Rows.Count == 1) { if (e.ColumnIndex == 0) { dgvAuxiliaryItemDetail.Rows.Clear(); dgvAuxiliaryItemDetail.Rows.Add(); } } else { if (MessageBox.Show("是否移除?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { dgvAuxiliaryItemDetail.Rows.Remove(dgvAuxiliaryItemDetail.CurrentRow); } } } else { arr.Add(dgvAuxiliaryItemDetail.CurrentRow.Cells["AuxiliaryItemDetailID"].Value); dgvAuxiliaryItemDetail.Rows.Remove(dgvAuxiliaryItemDetail.CurrentRow); for (int i = 0; i < arr.Count; i++) { myFRM_FuZhuJianChaClient.dgvAuxiliaryItemDetail_CellClick_DeleteAuxiliaryItemDetail(Convert.ToInt32(arr[i])); } } } } #endregion
仅供学习,禁止用于商业用途。
相关文章推荐
- PaintCode 教程:矢量图轻松转换成CoreGraphics代码
- setjmp和longjmp goto应用
- Java正则表达式
- java中long和Long的区别
- AOP jdk动态代理
- Python 的 time模块
- Java学习之Iterator(迭代器)的一般用法和详解
- java实现各种排序算法
- 观察者模式及Java实现例子
- 在C++中string类用法
- PHPMailer使用教程(PHPMailer发送邮件实例分析)
- PHP分页类代码
- java判断字符串编码
- Spring(AbstractRoutingDataSource)实现动态数据源切换
- spring的一些注解
- Struts2中 Result类型配置详解
- c++ 输入一行字符串
- Java的static
- c++ 设计模式之创建者(生成器)模式
- socket编程HelloWorld客户服务器端源码