实现医生工作站的辅助检查功能的代码(七)

来源:互联网 发布:手机淘宝团购在哪 编辑:程序博客网 时间: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)

 

联系手机

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

 

会员否

 

表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


仅供学习,禁止用于商业用途。



 





 

1 0