实现医生工作站的辅助检查功能的代码(七)
来源:互联网 发布:手机淘宝团购在哪 编辑:程序博客网 时间:2024/04/29 17:16
实现医生工作站的辅助检查功能的代码(七)
3.2.3辅助检查
3.2.3.1辅助检查主界面
辅助检查这个模块可以实现医生根据病人病历来开一些体检、化验、治疗、体检套餐、化验检查组合等的辅助检查项目。一个病人可以新增多条的辅助检查项目但不会新增想同的项目。这里可以根据病人姓名、医生姓名等进行多条件查询辅助检查项目的处方单。
主界面截图:
3.2.3.1(图1)
从界面上可以看到我们这里用到的控件有:
控件名称
说明
文本框控件textBox
第一要设置每个控件的Text,第二设置控件Name;不同的是dataGridView右键进行编辑列。
下拉框控件comboBox
按钮控件button
表格控件dataGridView
时间控件dateTimePicker
查询功能实现:
第一步:数据库
1、表与关系
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
有效否
表2:病人表(BT_PatientTable)
列名
数据类型
主键/外键
说明
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)
联系手机
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
会员否
表3:辅助项目明细表(PW_AuxiliaryItemDetailTable)
列名
数据类型
主键/外键
说明
AuxiliaryItemDetailID
int - Identity
主键
辅助项目明细ID
RegisterID
int
外键
挂号ID
AllItemID
int
外键
总项目ID
ItemCategoryID
int
外键
项目类别ID
WhetherEffective
bit
有效否
AS_PhysicalExaminationRegisterID
int
外键
体检登记ID
OrdonnanceID
int
外键
处方单ID
表4:项目类别表(PW_ItemCategoryTable)
列名
数据类型
主键/外键
说明
ItemCategoryID
int - Identity
主键
项目类别ID
ItemCategoryName
nchar (30)
项目类别名称
表5:体检项目表(BT_ItemTable):
列名
数据类型
主键/外键
说明
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
有效否
表4:化验项目表(BT_AssayItemsTable)
列名
数据类型
主键/外键
说明
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
有效否
表5:治疗项目表(BT_TreatmentItemsTable):
列名
数据类型
主键/外键
说明
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
有效否
表6:体检套餐表(BT_PhysicalExaminationSetMealTable)
列名
数据类型
主键/外键
说明
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
有效否
表7:化验检查组合表(BT_AssayInspectCombinationTable)
列名
数据类型
主键/外键
说明
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
有效否
2、功能代码实现
多条件查询辅助检查处方单信息:
(1)、存储过程代码:
--查询医生姓名IF(@Type='FRM_FuZhuJianCha_Load_SelectStaff')BEGINSELECT LTRIM(RTRIM(StaffID)) AS StaffID, LTRIM(RTRIM(StaffName)) AS StaffNameFROM BT_StaffTableWHERE BT_StaffTable.AS_StaffPositionID =21END--查询科室名称IF(@Type ='FRM_FuZhuJianCha_Load_SelectTechnicalOffices')BEGINSELECT LTRIM(RTRIM(TechnicalOfficesID )) AS TechnicalOfficesID, LTRIM(RTRIM(TechnicalOfficesName)) AS TechnicalOfficesNameFROM BT_TechnicalOfficesTableEND--查询会员类型IF(@Type ='FRM_FuZhuJianCha_Load_SelectMemberCategory')BEGINSELECT LTRIM (RTRIM(MemberCategoryID)) AS MemberCategoryID, LTRIM (RTRIM(MemberCategoryName)) AS MemberCategoryNameFROM BT_MemberCategoryTableEND--查询参保类型IF(@Type ='FRM_FuZhuJianCha_Load_SelectInsuredType')BEGIN SELECT LTRIM (RTRIM(AttributeDetailsID)) AS InsuredTypeID, LTRIM (RTRIM(AttributeDetailsName)) AS InsuredTypeNameFROM BT_AttributeDetailsTableWHERE BT_AttributeDetailsTable.AttributeSetID =21END--查询处方信息IF(@Type ='FRM_FuZhuJianCha_Load_SelectRegister')BEGINSELECT 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.PatientIDWHERE PW_RegisterTable.WhetherEffective =0 AND AS_RegisterStatusID=356END--查询体检项目IF(@Type ='FRM_FuZhuJianCha_Load_SelectAllItem')BEGINSELECT 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 ItemCategoryIDFROM PW_AuxiliaryItemDetailTable LEFT OUTER JOIN BT_ItemTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_ItemTable.ItemIDWHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceIDAND 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 ItemCategoryIDFROM PW_AuxiliaryItemDetailTable LEFT OUTER JOIN BT_AssayItemsTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_AssayItemsTable.AssayItemsID WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID AND PW_AuxiliaryItemDetailTable.ItemCategoryID =2 --查询治疗项目unionSELECT 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 ItemCategoryIDFROM PW_AuxiliaryItemDetailTable LEFT OUTER JOIN BT_TreatmentItemsTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_TreatmentItemsTable.TreatmentItemIDWHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceIDAND PW_AuxiliaryItemDetailTable.ItemCategoryID =3---查询体检套餐unionSELECT 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 ItemCategoryIDFROM PW_AuxiliaryItemDetailTable INNER JOIN BT_PhysicalExaminationSetMealTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_PhysicalExaminationSetMealTable.PhysicalExaminationSetMealID WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID AND PW_AuxiliaryItemDetailTable.ItemCategoryID =4--查询化验检查组合unionSELECT 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 ItemCategoryIDFROM PW_AuxiliaryItemDetailTable LEFT OUTER JOIN BT_AssayInspectCombinationTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_AssayInspectCombinationTable.AssayInspectCombinationIDWHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceIDAND 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)”新增项目“按钮会弹出一个界面供医生开辅助检查项目。新增辅助检查是当病人需要体检、化验、治疗时所提供的平台,医生可以在该病人的处方单处添加对应的检查项目。图中体检项目和体检套餐是相对应的,体检套擦是由体检项目组合而成,所以当添加的体检项目在体检套餐中有包含时体检项目不能新增;同样化验项目组合成化验检查组合,当新增的化验检查组合中有已添加的化验项目时,该化验检查组合不能新增,还有同一项目不能新增两次,就是项目不能重复。
新增辅助检查截图:
3.2.3.2(图1)
2、功能代码实现
添加保存辅助项目:
(1)、存储过程代码:
--体检项目IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectItem')BEGINSELECT LTRIM(RTRIM(ItemID)) AS ItemID, LTRIM(RTRIM(ItemCoding)) AS ItemCoding, LTRIM(RTRIM(ItemName)) AS ItemName, LTRIM(RTRIM(ProjectPrice)) AS ProjectPriceFROM BT_ItemTableEND--化验项目IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectAssayItems')BEGINSELECT LTRIM(RTRIM(AssayItemsID)) AS AssayItemsID, LTRIM(RTRIM(AssayItemsNumber)) AS AssayItemsNumber, LTRIM(RTRIM(AssayItemsName)) AS AssayItemsName, LTRIM(RTRIM(AssayItemsPrice)) AS AssayItemsPriceFROM BT_AssayItemsTableEND--治疗项目IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem')BEGINSELECT LTRIM(RTRIM(TreatmentItemID)) AS TreatmentItemID, LTRIM(RTRIM(ItemNumber)) AS ItemNumber, LTRIM(RTRIM(TreatmentItemName)) AS TreatmentItemName, LTRIM(RTRIM(GeneralPricing)) AS GeneralPricingFROM BT_TreatmentItemsTableEND--体检套餐IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal')BEGINSELECT LTRIM(RTRIM(PhysicalExaminationSetMealID)) AS PhysicalExaminationSetMealID, LTRIM(RTRIM(SetMealNumber)) AS SetMealNumber, LTRIM(RTRIM(PhysicalExaminationSetMealName)) AS PhysicalExaminationSetMealName, LTRIM(RTRIM(CashPrice)) AS CashPriceFROM BT_PhysicalExaminationSetMealTableEND--化验检查组合IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination')BEGINSELECT LTRIM(RTRIM(AssayInspectCombinationID)) AS AssayInspectCombinationID, LTRIM(RTRIM(CombinationNumber)) AS CombinationNumber, LTRIM(RTRIM(CombinationName)) AS CombinationName, LTRIM(RTRIM(Price)) AS PriceFROM BT_AssayInspectCombinationTableEND--新增辅助项目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)”修改项目“按钮也会弹出修改辅助检查界面供医生对输错的辅助项目进行修改。可以再新增辅助检查项目或移除不适合的或是多余的辅助检查项目。
修改辅助检查截图:
3.2.3.3(图1)
功能代码实现
修改辅助项目:
(1)、存储过程代码:
--修改辅助项目IF(@Type ='btnSave_Click_UpdateAuxiliaryItemDetail')BEGINUpdate PW_AuxiliaryItemDetailTableSET OrdonnanceID = @OrdonnanceID, AllItemID=@AllItemID , ItemCategoryID=@ItemCategoryIDWHERE PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID =@AuxiliaryItemDetailIDEND--删除辅助检查项目IF(@Type='dgvAuxiliaryItemDetail_CellClick_DeleteAuxiliaryItemDetail')BEGINDELETE PW_AuxiliaryItemDetailTableWHERE PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID=@AuxiliaryItemDetailID END--查询体检套餐明细IF(@Type ='dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail')BEGINSELECT BT_PhysicalExaminationSetMealDetailTable.ItemID, BT_ItemTable.ItemNameFROM BT_PhysicalExaminationSetMealDetailTable INNER JOIN BT_ItemTable ON BT_PhysicalExaminationSetMealDetailTable.ItemID = BT_ItemTable.ItemIDWHERE PhysicalExaminationSetMealID=@PhysicalExaminationSetMealIDEND--查询化验检查组合明细IF(@Type ='dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail')BEGINSELECT BT_AssayInspectCombinationDetailTable.AssayItemsID, BT_AssayItemsTable.AssayItemsNameFROM BT_AssayInspectCombinationDetailTable INNER JOIN BT_AssayItemsTable ON BT_AssayInspectCombinationDetailTable.AssayItemsID = BT_AssayItemsTable.AssayItemsIDWHERE 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
仅供学习,禁止用于商业用途。
- 实现医生工作站的辅助检查功能的代码(七)
- 实现医生工作站的检查模板功能的代码(十四)
- 实现医生工作站的历次处方功能的代码(八)
- 实现医生工作站的病历模板功能的代码(十)
- 实现医生工作站的处方模板功能的代码(十一)
- 实现医生工作站的病程模板功能的代码(十二)
- 实现医生工作站的医技模板功能的代码(十三)
- 实现医生工作站的疾病档案功能的代码(十五)
- 实现医生工作站中书写病历功能的代码(五)
- 实现医生工作站中处方录入功能的代码(六)
- 承志医院管理系统项目解析 门诊医生工作站—辅助检查项目(六)
- 实现护士工作站的注射室管理功能的代码(十六)
- 门诊医生工作站的小贴士------运维日志27
- iOS5开发:从程序里直接跳转到设置项的实现和代码分享(类似于金山电池医生功能,iOS5有效)
- iOS5开发:从程序里直接跳转到设置项的实现和代码分享(类似于金山电池医生功能,iOS5有效)
- 实现医技工作站的X光检查功能的代码(十七)
- 医院信息系统基本功能规范---门诊医生工作站分系统功能规范
- 门诊医生工作站处方类型的修改-----运维日志3
- Linux网络编程:原始套接字编程及实例分析(一)
- PaintCode 教程:矢量图轻松转换成CoreGraphics代码
- docker添加多网卡
- 六一儿童节就要过去了,您是否因为工作忙绿而没办法陪孩子玩
- 支付宝网银支付接口
- 实现医生工作站的辅助检查功能的代码(七)
- ls -l各个位置详解
- lucene3.6.0 经典案例 入门教程
- 做了一个噩梦,梦见你离开,我从哭泣中醒来
- Spark1.3.1 Standalone 基于文件系统的 HA 部署
- zookeeper
- ASIHttpRequest
- 插入排序
- 3D数学基础 图形与游戏开发的学习 (四)[2D笛卡尔数学]