您的位置:首页 > 编程语言

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

2015-06-01 19:30 513 查看

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

3.2.3辅助检查

3.2.3.1辅助检查主界面

辅助检查这个模块可以实现医生根据病人病历来开一些体检、化验、治疗、体检套餐、化验检查组合等的辅助检查项目。一个病人可以新增多条的辅助检查项目但不会新增想同的项目。这里可以根据病人姓名、医生姓名等进行多条件查询辅助检查项目的处方单。

主界面截图:



3.2.3.1(图1)
从界面上可以看到我们这里用到的控件有:

控件名称
说明
文本框控件textBox
第一要设置每个控件的Text,第二设置控件Name;不同的是dataGridView右键进行编辑列。
下拉框控件comboBox
按钮控件button
表格控件dataGridView
时间控件dateTimePicker
查询功能实现:

第一步:数据库

1、表与关系



[align=left] [/align]

3.2.2.1(图2)

1:处方单表(PW_OrdonnanceTable)

列名
数据类型
主键/外键
说明
OrdonnanceID
int - Identity
主键
处方单ID
OrdonnanceNumber
nchar (30)
处方单号
PatientID
int
外键
病人ID
PrescriptionDate
datetime
处方时间
ClinicTechnicalOffices_TechnicalOfficesID
int
外键
就诊科室_科室ID
TreatmentDoctor_StaffID
int
外键
就诊医生_员工ID
AS_ChargeStatusID
int
外键
收费状态ID
ChargeForPersonnel_StaffID
int
外键
收费人员_员工ID
ChargeTime
datetime
收费时间
AS_TakeMedicineStatusID
int
外键
发药状态ID
TakeMedicinePersonnel_StaffID
int
外键
发药人员_员工ID
TakeMedicineTime
datetime
发药时间
BedID
int
外键
床位ID
OutpatientMedicalRecordsTemplateID
int
外键
门诊病历模板ID
WhetherEffective
bit
有效否
表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')
BEGIN
SELECT    LTRIM(RTRIM(StaffID)) AS StaffID,
LTRIM(RTRIM(StaffName)) AS StaffName
FROM         BT_StaffTable
WHERE      BT_StaffTable.AS_StaffPositionID =21
END
--查询科室名称
IF(@Type ='FRM_FuZhuJianCha_Load_SelectTechnicalOffices')
BEGIN
SELECT     LTRIM(RTRIM(TechnicalOfficesID )) AS TechnicalOfficesID,
LTRIM(RTRIM(TechnicalOfficesName)) AS TechnicalOfficesName
FROM         BT_TechnicalOfficesTable
END
--查询会员类型
IF(@Type ='FRM_FuZhuJianCha_Load_SelectMemberCategory')
BEGIN
SELECT     LTRIM (RTRIM(MemberCategoryID)) AS MemberCategoryID,
LTRIM (RTRIM(MemberCategoryName)) AS MemberCategoryName
FROM         BT_MemberCategoryTable
END
--查询参保类型
IF(@Type ='FRM_FuZhuJianCha_Load_SelectInsuredType')
BEGIN
SELECT     LTRIM (RTRIM(AttributeDetailsID)) AS InsuredTypeID,
LTRIM (RTRIM(AttributeDetailsName)) AS InsuredTypeName
FROM         BT_AttributeDetailsTable
WHERE      BT_AttributeDetailsTable.AttributeSetID =21
END
--查询处方信息
IF(@Type ='FRM_FuZhuJianCha_Load_SelectRegister')
BEGIN
SELECT
LTRIM(RTRIM(PW_OrdonnanceTable.OrdonnanceID)) AS OrdonnanceID,
LTRIM(RTRIM(PW_OrdonnanceTable.OrdonnanceNumber)) AS OrdonnanceNumber  ,
LTRIM(RTRIM(PW_RegisterTable.RegisterID)) AS RegisterID,
LTRIM(RTRIM(PW_RegisterTable.RegisterNumber)) AS RegisterNumber,
LTRIM(RTRIM(BT_PatientTable.PatientCardNumber))AS PatientCardNumber,
LTRIM(RTRIM(BT_PatientTable.PatientName)) AS PatientName, PW_RegisterTable.RegisterTime,
LTRIM(RTRIM(PW_RegisterTable.Doctor_StaffID)) AS Doctor_StaffID,
LTRIM(RTRIM(BT_StaffTable.StaffName)) AS StaffName,
LTRIM(RTRIM(PW_RegisterTable.TechnicalOfficesID)) AS TechnicalOfficesID,
LTRIM(RTRIM(BT_TechnicalOfficesTable.TechnicalOfficesName)) AS TechnicalOfficesName,
LTRIM(RTRIM(PW_RegisterTable.RegisterSum)) AS RegisterSum,
LTRIM(RTRIM(PW_RegisterTable.AS_RegisterStatusID)) AS AS_RegisterStatusID,
LTRIM(RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS RegisterStatus,
LTRIM(RTRIM(BT_PatientTable.AS_SexID)) AS AS_SexID,
LTRIM(RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS Sex,
LTRIM(RTRIM(BT_PatientTable.AS_MaritalStatusID)) AS AS_MaritalStatusID,
LTRIM(RTRIM(BT_AttributeDetailsTable_2.AttributeDetailsName)) AS MaritalStatus,
LTRIM(RTRIM(BT_PatientTable.Profession)) AS Profession,
LTRIM(RTRIM(BT_PatientTable.Age)) AS Age,
LTRIM(RTRIM(BT_PatientTable.AS_InsuredTypeID)) AS AS_InsuredTypeID,
LTRIM(RTRIM(BT_AttributeDetailsTable_3.AttributeDetailsName))AS InsuredType,
LTRIM(RTRIM(BT_PatientTable.MemberTypeID)) AS MemberTypeID,
LTRIM(RTRIM(BT_MemberCategoryTable.MemberCategoryName)) AS MemberCategoryName,
LTRIM(RTRIM(BT_PatientTable.ContactTelephone)) AS ContactTelephone,
LTRIM(RTRIM(BT_PatientTable.ContactAddress)) AS ContactAddress,
LTRIM(RTRIM(BT_PatientTable.PersonalTaboo))AS PersonalTaboo,
LTRIM(RTRIM(BT_PatientTable.DrugAllergyHistory)) AS DrugAllergyHistory,
LTRIM(RTRIM(PW_RegisterTable.RegisterRemarks)) AS RegisterRemarks,
LTRIM(RTRIM(BT_PatientTable.PatientID)) AS PatientID
FROM         PW_RegisterTable INNER JOIN
BT_PatientTable ON PW_RegisterTable.PatientID = BT_PatientTable.PatientID INNER JOIN
BT_StaffTable ON PW_RegisterTable.Doctor_StaffID = BT_StaffTable.StaffID INNER JOIN
BT_TechnicalOfficesTable ON PW_RegisterTable.TechnicalOfficesID = BT_TechnicalOfficesTable.TechnicalOfficesID INNER JOIN
BT_AttributeDetailsTable ON PW_RegisterTable.AS_RegisterStatusID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOIN
BT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON BT_PatientTable.AS_SexID = BT_AttributeDetailsTable_1.AttributeDetailsID
INNER JOIN
BT_AttributeDetailsTable AS BT_AttributeDetailsTable_2 ON BT_PatientTable.AS_MaritalStatusID =
BT_AttributeDetailsTable_2.AttributeDetailsID INNER JOIN
BT_AttributeDetailsTable AS BT_AttributeDetailsTable_3 ON BT_PatientTable.AS_InsuredTypeID =
BT_AttributeDetailsTable_3.AttributeDetailsID INNER JOIN
BT_MemberCategoryTable ON BT_PatientTable.MemberTypeID = BT_MemberCategoryTable.MemberCategoryID INNER JOIN
PW_OrdonnanceTable ON BT_PatientTable.PatientID = PW_OrdonnanceTable.PatientID
WHERE   PW_RegisterTable.WhetherEffective =0 AND AS_RegisterStatusID=356
END
--查询体检项目
IF(@Type ='FRM_FuZhuJianCha_Load_SelectAllItem')
BEGIN
SELECT     LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID,
LTRIM(RTRIM(BT_ItemTable.ItemName)) AS Name,
LTRIM(RTRIM(BT_ItemTable.ProjectPrice)) AS Price,
LTRIM(RTRIM(BT_ItemTable.ItemCoding)) AS Coding,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID
FROM         PW_AuxiliaryItemDetailTable LEFT OUTER JOIN
BT_ItemTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_ItemTable.ItemID
WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID
AND PW_AuxiliaryItemDetailTable.ItemCategoryID =1
union
--查询化验项目

SELECT     LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID,
LTRIM(RTRIM(BT_AssayItemsTable.AssayItemsName))	  AS Name,
LTRIM(RTRIM(BT_AssayItemsTable.AssayItemsPrice)) AS Price,
LTRIM(RTRIM(BT_AssayItemsTable.AssayItemsNumber)) AS Coding,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID
FROM         PW_AuxiliaryItemDetailTable LEFT OUTER JOIN
BT_AssayItemsTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_AssayItemsTable.AssayItemsID
WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID
AND PW_AuxiliaryItemDetailTable.ItemCategoryID =2

--查询治疗项目
union
SELECT     LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID,
LTRIM(RTRIM(BT_TreatmentItemsTable.TreatmentItemName)) AS Name,
LTRIM(RTRIM(BT_TreatmentItemsTable.GeneralPricing)) AS Price,
LTRIM(RTRIM(BT_TreatmentItemsTable.ItemNumber)) AS Coding,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID
FROM         PW_AuxiliaryItemDetailTable LEFT OUTER JOIN
BT_TreatmentItemsTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_TreatmentItemsTable.TreatmentItemID
WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID
AND PW_AuxiliaryItemDetailTable.ItemCategoryID =3
---查询体检套餐
union
SELECT     LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID,
LTRIM(RTRIM(BT_PhysicalExaminationSetMealTable.PhysicalExaminationSetMealName)) AS Name,
LTRIM(RTRIM(BT_PhysicalExaminationSetMealTable.CashPrice)) AS Price,
LTRIM(RTRIM(BT_PhysicalExaminationSetMealTable.SetMealNumber)) AS Coding,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID
FROM         PW_AuxiliaryItemDetailTable INNER JOIN
BT_PhysicalExaminationSetMealTable ON PW_AuxiliaryItemDetailTable.AllItemID =
BT_PhysicalExaminationSetMealTable.PhysicalExaminationSetMealID
WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID
AND PW_AuxiliaryItemDetailTable.ItemCategoryID =4
--查询化验检查组合
union
SELECT     LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.OrdonnanceID)) AS OrdonnanceID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID,
LTRIM(RTRIM(BT_AssayInspectCombinationTable.CombinationName)) AS Name,
LTRIM(RTRIM(BT_AssayInspectCombinationTable.Price)) AS Price,
LTRIM(RTRIM(BT_AssayInspectCombinationTable.CombinationNumber)) AS Coding,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID,
LTRIM(RTRIM(PW_AuxiliaryItemDetailTable.ItemCategoryID)) AS ItemCategoryID
FROM         PW_AuxiliaryItemDetailTable LEFT OUTER JOIN
BT_AssayInspectCombinationTable ON PW_AuxiliaryItemDetailTable.AllItemID =
BT_AssayInspectCombinationTable.AssayInspectCombinationID
WHERE PW_AuxiliaryItemDetailTable.OrdonnanceID =@OrdonnanceID
AND PW_AuxiliaryItemDetailTable.ItemCategoryID =5
END	<span style="font-size: 14px;"><strong>
</strong></span>


(2)、逻辑层代码:

[OperationContract]
#region 查询医生姓名
public DataSet FRM_FuZhuJianCha_Load_SelectStaff()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectStaff";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询科室名称
public DataSet FRM_FuZhuJianCha_Load_SelectTechnicalOffices()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectTechnicalOffices";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询会员类型
public DataSet FRM_FuZhuJianCha_Load_SelectMemberCategory()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectMemberCategory";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询参保类型
public DataSet FRM_FuZhuJianCha_Load_SelectInsuredType()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectInsuredType";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询处方信息
public DataSet FRM_FuZhuJianCha_Load_SelectRegister()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectRegister";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询所有的辅助检查项目信息
public DataSet FRM_FuZhuJianCha_Load_SelectAllItem(int intOrdonnanceID)
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
new SqlParameter("@OrdonnanceID", SqlDbType.Int),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Load_SelectAllItem";
SQLCMDpas[1].Value = intOrdonnanceID;
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion<strong>
</strong>


(3)、界面层代码:

#region Load事件
private void FRM_FuZhuJianCha_Load(object sender, EventArgs e)
{
DataTable dtDoctor = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectStaff().Tables[0];
cboDoctor = PublicStaticMothd.SetZhiXiaLaKuang(cboDoctor, dtDoctor, "StaffID", "StaffName");//查询绑定医生姓名

DataTable dtTechnicalOffices = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectTechnicalOffices().Tables[0];
cboTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboTechnicalOffices, dtTechnicalOffices, "TechnicalOfficesID", "TechnicalOfficesName");//查询绑定科室名称
DataTable dtMemberType = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectMemberCategory().Tables[0];
cboMemberType = PublicStaticMothd.SetZhiXiaLaKuang(cboMemberType, dtMemberType, "MemberCategoryID", "MemberCategoryName");//查询绑定会员类型

DataTable dtInsuredType = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectInsuredType().Tables[0];
cboInsuredType = PublicStaticMothd.SetZhiXiaLaKuang(cboInsuredType, dtInsuredType, "InsuredTypeID", "InsuredTypeName");//查询绑定参保类型
dgvOrdonnanceID.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectRegister().Tables[0];
dgvOrdonnanceID.ClearSelection();

}
#endregion
#region 多条件查询
private void btnSelect_Click(object sender, EventArgs e)
{
string strGuoLvTiaoJian = "";//声明一个字符串变量,作为查询的过滤条件。
if (chkRegisterTime.Checked) //当挂号时间的复选框被打上勾。
{

DateTime StartRegisterTime = Convert.ToDateTime(dtpStartRegisterTime.Text); //开始时间转换成事件格式
DateTime EndRegisterTime = Convert.ToDateTime(dtpEndRegisterTime.Text); //结束时间转换成事件格式

strGuoLvTiaoJian = "(RegisterTime>='" + StartRegisterTime + "'and RegisterTime<='" + EndRegisterTime + "')";
}

if (chkRegisterNumber.Checked) //当挂号编号的复选框被打上勾。
{
if (strGuoLvTiaoJian != "")//当过滤条件不为空。
{
strGuoLvTiaoJian = strGuoLvTiaoJian + "and RegisterNumber like'%" + txtRegisterNumber.Text.ToString().Trim() + "%'";//字符串拼接,把挂号编号拼接现有的条件组成多条件查询。
}
else
{
strGuoLvTiaoJian = "RegisterNumber like'%" + txtRegisterNumber.Text.ToString().Trim() + "%'";//只有挂号编号作为条件进行查询。

}
}
if (chkPatientName.Checked) //当病人名称的复选框被打上勾。
{
if (strGuoLvTiaoJian != "")//当过滤条件不为空。
{
strGuoLvTiaoJian = strGuoLvTiaoJian + "and PatientName like'%" + txtPatientName.Text.ToString().Trim() + "%'";
}
else
{
strGuoLvTiaoJian = "PatientName like'%" + txtPatientName.Text.ToString().Trim() + "%'";
}
}
if (chkDoctor.Checked) //当撰写医生的复选框被打上勾。
{
if (strGuoLvTiaoJian != "")//当过滤条件不为空。
{
strGuoLvTiaoJian = strGuoLvTiaoJian + "and Doctor_StaffID=" + cboDoctor.SelectedValue;
}
else
{
strGuoLvTiaoJian = "Doctor_StaffID=" + cboDoctor.SelectedValue;
}
}
if (chkInsuredType.Checked)
{
if (strGuoLvTiaoJian != "")//当过滤条件不为空。
{
strGuoLvTiaoJian = strGuoLvTiaoJian + "and AS_InsuredTypeID=" + cboInsuredType.SelectedValue;
}
else
{
strGuoLvTiaoJian = "AS_InsuredTypeID=" + cboInsuredType.SelectedValue;
}
}
if (chkTechnicalOffices.Checked) //当撰写科室的复选框被打上勾。
{
if (strGuoLvTiaoJian != "")//当过滤条件不为空。
{
strGuoLvTiaoJian = strGuoLvTiaoJian + "and TechnicalOfficesID=" +cboTechnicalOffices. SelectedValue;
}
else
{
strGuoLvTiaoJian = "TechnicalOfficesID=" + cboTechnicalOffices.SelectedValue;
}
}
if (chkMemberType.Checked) //当会员类别的复选框被打上勾。
{
if (strGuoLvTiaoJian != "")//当过滤条件不为空。
{
strGuoLvTiaoJian = strGuoLvTiaoJian + "and MemberTypeID=" + cboMemberType.SelectedValue;
}
else
{
strGuoLvTiaoJian = "MemberTypeID=" + cboMemberType.SelectedValue;
}
}
DataTable dtChuFang = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectRegister().Tables[0]; //查询挂号信息。
DataView dv = new DataView(dtChuFang); //自定义一个视图并赋值查询出来的挂号信息数据

DataTable dt = new DataTable();//声明一个空表。
if (strGuoLvTiaoJian != "")//当过滤条件不为空。
{
dv.RowFilter = strGuoLvTiaoJian; //筛选自定义视图根据查询条件查到的数据
dt = dv.ToTable();//把自定义视图筛选的数据转换成一个表赋值给事先声明的空
}
if (strGuoLvTiaoJian == "")
{
dt = dv.ToTable();//查询出所有数据
}
dgvOrdonnanceID.DataSource = dt; //处方单的单据的数据源等于过滤条件查出的
}
#endregion

3.2.3.2新增辅助检查

点击3.2.3.1(图1)”新增项目“按钮会弹出一个界面供医生开辅助检查项目。新增辅助检查是当病人需要体检、化验、治疗时所提供的平台,医生可以在该病人的处方单处添加对应的检查项目。图中体检项目和体检套餐是相对应的,体检套擦是由体检项目组合而成,所以当添加的体检项目在体检套餐中有包含时体检项目不能新增;同样化验项目组合成化验检查组合,当新增的化验检查组合中有已添加的化验项目时,该化验检查组合不能新增,还有同一项目不能新增两次,就是项目不能重复。

新增辅助检查截图:



[align=left] [/align]

3.2.3.2(图1)
2、功能代码实现

添加保存辅助项目:

(1)、存储过程代码:

--体检项目
IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectItem')
BEGIN
SELECT     LTRIM(RTRIM(ItemID)) AS ItemID,
LTRIM(RTRIM(ItemCoding)) AS ItemCoding,
LTRIM(RTRIM(ItemName)) AS ItemName,
LTRIM(RTRIM(ProjectPrice)) AS ProjectPrice
FROM         BT_ItemTable
END
--化验项目
IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectAssayItems')
BEGIN
SELECT     LTRIM(RTRIM(AssayItemsID)) AS AssayItemsID,
LTRIM(RTRIM(AssayItemsNumber)) AS AssayItemsNumber,
LTRIM(RTRIM(AssayItemsName)) AS AssayItemsName,
LTRIM(RTRIM(AssayItemsPrice)) AS AssayItemsPrice
FROM         BT_AssayItemsTable
END
--治疗项目
IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem')
BEGIN
SELECT     LTRIM(RTRIM(TreatmentItemID)) AS TreatmentItemID,
LTRIM(RTRIM(ItemNumber)) AS ItemNumber,
LTRIM(RTRIM(TreatmentItemName)) AS TreatmentItemName,
LTRIM(RTRIM(GeneralPricing)) AS GeneralPricing
FROM         BT_TreatmentItemsTable
END
--体检套餐
IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal')
BEGIN
SELECT     LTRIM(RTRIM(PhysicalExaminationSetMealID)) AS PhysicalExaminationSetMealID,
LTRIM(RTRIM(SetMealNumber)) AS SetMealNumber,
LTRIM(RTRIM(PhysicalExaminationSetMealName)) AS PhysicalExaminationSetMealName,
LTRIM(RTRIM(CashPrice)) AS CashPrice
FROM         BT_PhysicalExaminationSetMealTable
END
--化验检查组合
IF(@Type='FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination')
BEGIN
SELECT     LTRIM(RTRIM(AssayInspectCombinationID)) AS AssayInspectCombinationID,
LTRIM(RTRIM(CombinationNumber)) AS CombinationNumber,
LTRIM(RTRIM(CombinationName)) AS CombinationName,
LTRIM(RTRIM(Price)) AS Price
FROM         BT_AssayInspectCombinationTable
END

--新增辅助项目
IF(@Type ='btnSave_Click_InsertAuxiliaryItemDetail')
BEGIN
INSERT    PW_AuxiliaryItemDetailTable(RegisterID , OrdonnanceID, AllItemID, ItemCategoryID,
WhetherEffective,AS_PhysicalExaminationRegisterID )
VALUES   (@RegisterID, @OrdonnanceID, @AllItemID, @ItemCategoryID, 1,362)
END

(2)、逻辑层代码:

[OperationContract]
#region 查询体检项目
public DataSet FRM_FuZhuJianCha_Insert_Load_SelectItem()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectItem";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询化验项目
public DataSet FRM_FuZhuJianCha_Insert_Load_SelectAssayItems()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectAssayItems";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询治疗项目
public DataSet FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询体检套餐
public DataSet FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询化验检查组合
public DataSet FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination()
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
};
SQLCMDpas[0].Value = "FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination";
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 新增辅助检查项目信息
public int btnSave_Click_InsertAuxiliaryItemDetail(int intRegisterID, int intOrdonnanceID, int intAllItemID, int intItemCategoryID)
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
new  SqlParameter ("@RegisterID",SqlDbType.Int),
new  SqlParameter ("@OrdonnanceID",SqlDbType.Int),
new  SqlParameter ("@AllItemID",SqlDbType.Int),
new  SqlParameter ("@ItemCategoryID",SqlDbType.Int),
};
SQLCMDpas[0].Value = "btnSave_Click_InsertAuxiliaryItemDetail";
SQLCMDpas[1].Value = intRegisterID;
SQLCMDpas[2].Value = intOrdonnanceID;
SQLCMDpas[3].Value = intAllItemID;
SQLCMDpas[4].Value = intItemCategoryID;
int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
return count;
}
#endregion

(3)、界面层代码:

#region 声明全局变量
BLL医院管理系统.YiShengGongZuoZhan.FRM_FuZhuJianCha.FRM_FuZhuJianChaClient myFRM_FuZhuJianChaClient
= new BLL医院管理系统.YiShengGongZuoZhan.FRM_FuZhuJianCha.FRM_FuZhuJianChaClient();
int intOrdonnanceID;//声明挂号ID
int intRegisterID;//挂号ID
string Number;//声明挂号单号
#endregion
#region 关闭事件
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
this.Dispose();
}
#endregion
#region 保存事件
private void btnSave_Click(object sender, EventArgs e)
{
int count = 0;
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
if (intOrdonnanceID > 0)
{
int intAllItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value);
int intItemCategoryID=Convert.ToInt32 (dgvAuxiliaryItemDetail.Rows [i].Cells ["ItemCategoryID"].Value);
count += myFRM_FuZhuJianChaClient.btnSave_Click_InsertAuxiliaryItemDetail(intRegisterID, intOrdonnanceID, intAllItemID, intItemCategoryID);
}
else
{
MessageBox.Show("请选择挂号的病人!");
}
}
if (count == dgvAuxiliaryItemDetail.Rows.Count)
{
MessageBox.Show("新增辅助检查项目成功,新增的单是:" + Number);
this.Close();
}
}
#endregion
#region FRM_FuZhuJianCha_Insert_Load事件
private void FRM_FuZhuJianCha_Insert_Load(object sender, EventArgs e)
{
dgvPhysicalExaminationItem.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectItem().Tables[0];//绑定体检项目
dgvAssayItems.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectAssayItems().Tables[0];//绑定化验项目
dgvTreatmentItems.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem().Tables[0];//绑定治疗项目
dgvPhysicalExaminationSetMeal.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal().Tables[0];//绑定体检套餐
dgvAssayInspectCombination.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination().Tables[0];//绑定化验检查组合
dgvRegister.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectRegister().Tables[0];
}
#endregion
#region dgvRegister_CellMouseClick事件
private void dgvRegister_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
intOrdonnanceID = Convert.ToInt32(dgvRegister.CurrentRow.Cells["OrdonnanceID"].Value);
intRegisterID = Convert.ToInt32(dgvRegister.CurrentRow.Cells["RegisterID"].Value);
Number = dgvRegister.CurrentRow.Cells["OrdonnanceNumber"].Value.ToString();
}
#endregion
#region 移除事件
private void dgvAuxiliaryItemDetail_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
DialogResult dr = MessageBox.Show("是否删除?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);//弹出确定对话框
if (dr == DialogResult.OK)//如果点了确定按钮
{
dgvAuxiliaryItemDetail.Rows.RemoveAt(dgvAuxiliaryItemDetail.CurrentRow.Index);
}
}
}
#endregion
#region 把项目信息赋值到辅助项目
#region 体检项目
bool PhysicalExaminationItem = false;
int PhysicalExaminationSetMealID = 0;//体检套餐ID
int AssayInspectCombinationID = 0;//化验检查ID;
private void dgvPhysicalExaminationItem_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
int ItemID1 = Convert.ToInt32(dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目ID"].Value);
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemCategoryID == 4)
{
PhysicalExaminationSetMealID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value);//获取已存在的体检套餐ID
//根据循环得到的体检套餐ID查询体检套餐明细
DataTable DTPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(PhysicalExaminationSetMealID).Tables[0];
for (int j = 0; j < DTPhysicalExaminationSetMealDetail.Rows.Count; j++)
{
int DetailItemID = Convert.ToInt32(DTPhysicalExaminationSetMealDetail.Rows[j]["ItemID"]);
if (DetailItemID == ItemID1)
{
MessageBox.Show("已添加了含有该项目的体检套餐,不能再添加该项!");
return;
}
}
}
if (ItemID == ItemID1 && ItemCategoryID == 1)//项目类别ItemCategoryID用来判断表,值为1时是体检项目表。
{
PhysicalExaminationItem = false;
MessageBox.Show("该项目已存在!");
break;
}
else
{
PhysicalExaminationItem = true;
}
}
}
else
{
PhysicalExaminationItem = true;
}
if (PhysicalExaminationItem == true)//当快关为真时,新增项目
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvPhysicalExaminationItem.CurrentRow.Cells["体检现金价格"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 1;
//项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表
}
}
#endregion
#region 化验项目
bool AssayItems = false;
private void dgvAssayItems_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
//查询化验检查组合明细
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value);
int ItemID2 = Convert.ToInt32(dgvAssayItems.CurrentRow.Cells["化验项目ID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemCategoryID ==5)
{
AssayInspectCombinationID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value);
DataTable DTAssayInspectCombinationID = myFRM_FuZhuJianChaClient.dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail(AssayInspectCombinationID).Tables[0];
for (int j = 0; j < DTAssayInspectCombinationID.Rows.Count; j++)
{
int DetailItemID = Convert.ToInt32(DTAssayInspectCombinationID.Rows[j]["AssayItemsID"]);
if (DetailItemID == ItemID2)
{
MessageBox.Show("已添加了含有该项目的化验检查组合,不能再添加该项!");
return;
}
}
}
if (ItemID == ItemID2 && ItemCategoryID == 2)//项目类别ItemCategoryID用来判断表,值为2时是化验项目表。
{
AssayItems = false;
MessageBox.Show("该项目已存在!");
break;
}
else
{
AssayItems = true;
}
}
}
else
{
AssayItems = true;
}
if (AssayItems == true)//当快关为真时,新增项目
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvAssayItems.CurrentRow.Cells["化验项目ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvAssayItems.CurrentRow.Cells["化验项目编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvAssayItems.CurrentRow.Cells["化验项目名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvAssayItems.CurrentRow.Cells["化验项目价格"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 2;
//项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表
}
}
#endregion
#region 治疗项目
bool TreatmentItems = false;
private void dgvTreatmentItems_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value);
int ItemID3 = Convert.ToInt32(dgvTreatmentItems.CurrentRow.Cells["治疗项目ID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemID == ItemID3 && ItemCategoryID == 3)//项目类别ItemCategoryID用来判断表,值为3时是治疗项目表。
{
TreatmentItems = false;
MessageBox.Show("该项目已存在!");
break;
}
else
{
TreatmentItems = true;
}
}
}
else
{
TreatmentItems = true;
}
if (TreatmentItems == true)//当快关为真时,新增项目
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvTreatmentItems.CurrentRow.Cells["治疗项目ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvTreatmentItems.CurrentRow.Cells["治疗项目编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvTreatmentItems.CurrentRow.Cells["治疗项目名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvTreatmentItems.CurrentRow.Cells["普通定价"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 3;
//项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表
}
}
#endregion
#region 体检套餐
bool PhysicalExaminationSetMeal = false;
private void dgvPhysicalExaminationSetMeal_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value);
int ItemID4 = Convert.ToInt32(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["体检套餐ID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemCategoryID == 1)
{
//查询体检套餐明细
DataTable DtPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(ItemID4).Tables[0];
for (int j = 0; j < DtPhysicalExaminationSetMealDetail.Rows.Count; j++)
{
int DetailItemID = Convert.ToInt32(DtPhysicalExaminationSetMealDetail.Rows[j]["ItemID"]);
if (DetailItemID == ItemID)
{
MessageBox.Show("已添加了该体检套餐的明细单项,不能再添加该套餐!");
return;
}
}
}
if (ItemID == ItemID4 && ItemCategoryID == 4)//判断当新增的体检套餐ID的项目ID已存在;项目类别ItemCategoryID用来判断表,值为4时是体检套餐表。
{
PhysicalExaminationSetMeal = false;//快关为假
MessageBox.Show("该项目已存在!");
break;
}
else
{
PhysicalExaminationSetMeal = true;   //快关为真
}
}
}
else
{
PhysicalExaminationSetMeal = true; //快关为真
}
if (PhysicalExaminationSetMeal == true) //当快关为真时,新增项目
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["体检套餐ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvPhysicalExaminationSetMeal.CurrentRow.Cells["套餐编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvPhysicalExaminationSetMeal.CurrentRow.Cells["套餐名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["现金价格"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 4;
//项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表
}
}
#endregion
#region 化验检查组合
bool AssayInspectCombination = false;//声明一个bool快关;
private void dgvAssayInspectCombination_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)//循环辅助检查项目明细表dgvAuxiliaryItemDetail的行数。
{
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ID"].Value);
int ItemID5 = Convert.ToInt32(dgvAssayInspectCombination.CurrentRow.Cells["化验检查组合ID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemCategoryID == 2)
{
//根据化验检查组合dgvAssayInspectCombination的当前行ID查询化验检查组合明细。
DataTable DtPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(ItemID5).Tables[0];
for (int j = 0; j < DtPhysicalExaminationSetMealDetail.Rows.Count; j++)//循环化验检查组合明细表。
{
int DetailItemID = Convert.ToInt32(DtPhysicalExaminationSetMealDetail.Rows[j]["AssayItemsID"]);//获取化验检查组合明细的项目ID。
if (DetailItemID == ItemID)//判断当化验检查组合明细的项目ID与辅助检查项目明细表的项目ID相同。
{
MessageBox.Show("已添加了该化验检查组合的明细单项,不能再添加该化验检查组合!");
return;
}
}
}
if (ItemID == ItemID5 && ItemCategoryID == 5)//判断新增的化验检查组合ID的项目ID是否存在,项目类别ItemCategoryID用来判断表,值为5时是化验检查组合表
{
AssayInspectCombination = false;//快关为假
MessageBox.Show("该项目已存在!");
break;
}
else
{
AssayInspectCombination = true; //快关为真
}
}
}
else
{
AssayInspectCombination = true; //快关为真
}
if (AssayInspectCombination == true)//快关为真时,新增一条新数据。
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ID"].Value = Convert.ToInt32(dgvAssayInspectCombination.CurrentRow.Cells["化验检查组合ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["编号"].Value = dgvAssayInspectCombination.CurrentRow.Cells["组合编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["名称"].Value = dgvAssayInspectCombination.CurrentRow.Cells["组合名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["价格"].Value = Convert.ToDecimal(dgvAssayInspectCombination.CurrentRow.Cells["组合价格"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 5;
//项目类别ItemCategoryID用来判断表,值为1时是体检项目表、值为2时是化验项目表、值为3时是治疗项目表、值为4时是体检套餐表、值为5时是化验检查组合表
}
}
#endregion
#endregion

3.2.3.3修改辅助检查

点击3.2.3.1(图1)”修改项目“按钮也会弹出修改辅助检查界面供医生对输错的辅助项目进行修改。可以再新增辅助检查项目或移除不适合的或是多余的辅助检查项目。
修改辅助检查截图:



[align=left] [/align]

3.2.3.3(图1)
功能代码实现

修改辅助项目:

(1)、存储过程代码:

--修改辅助项目
IF(@Type ='btnSave_Click_UpdateAuxiliaryItemDetail')
BEGIN
Update PW_AuxiliaryItemDetailTable
SET    OrdonnanceID = @OrdonnanceID, AllItemID=@AllItemID , ItemCategoryID=@ItemCategoryID
WHERE  PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID =@AuxiliaryItemDetailID
END
--删除辅助检查项目
IF(@Type='dgvAuxiliaryItemDetail_CellClick_DeleteAuxiliaryItemDetail')
BEGIN
DELETE     PW_AuxiliaryItemDetailTable
WHERE      PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID=@AuxiliaryItemDetailID
END
--查询体检套餐明细
IF(@Type ='dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail')
BEGIN
SELECT     BT_PhysicalExaminationSetMealDetailTable.ItemID, BT_ItemTable.ItemName
FROM         BT_PhysicalExaminationSetMealDetailTable INNER JOIN
BT_ItemTable ON BT_PhysicalExaminationSetMealDetailTable.ItemID = BT_ItemTable.ItemID
WHERE      PhysicalExaminationSetMealID=@PhysicalExaminationSetMealID
END
--查询化验检查组合明细
IF(@Type ='dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail')
BEGIN
SELECT     BT_AssayInspectCombinationDetailTable.AssayItemsID, BT_AssayItemsTable.AssayItemsName
FROM         BT_AssayInspectCombinationDetailTable INNER JOIN
BT_AssayItemsTable ON BT_AssayInspectCombinationDetailTable.AssayItemsID = BT_AssayItemsTable.AssayItemsID
WHERE      AssayInspectCombinationID=@AssayInspectCombinationID
END

(2)、逻辑层代码:

[OperationContract]
#region 修改辅助检查项目信息
public int btnSave_Click_UpdateAuxiliaryItemDetail(int intOrdonnanceID, int intAllItemID, int intItemCategoryID, int intAuxiliaryItemDetailID)
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
new  SqlParameter ("@OrdonnanceID",SqlDbType.Int),
new  SqlParameter ("@AllItemID",SqlDbType.Int),
new  SqlParameter ("@ItemCategoryID",SqlDbType.Int),
new  SqlParameter ("@AuxiliaryItemDetailID",SqlDbType.Int),
};
SQLCMDpas[0].Value = "btnSave_Click_UpdateAuxiliaryItemDetail";
SQLCMDpas[1].Value = intOrdonnanceID;
SQLCMDpas[2].Value = intAllItemID;
SQLCMDpas[3].Value = intItemCategoryID;
SQLCMDpas[4].Value = intAuxiliaryItemDetailID;
int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
return count;
}
#endregion
[OperationContract]
#region 删除辅助检查项目
public int dgvAuxiliaryItemDetail_CellClick_DeleteAuxiliaryItemDetail(int intAuxiliaryItemDetailID)
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
new  SqlParameter ("@AuxiliaryItemDetailID",SqlDbType.Int),
};
SQLCMDpas[0].Value = "dgvAuxiliaryItemDetail_CellClick_DeleteAuxiliaryItemDetail";
SQLCMDpas[1].Value = intAuxiliaryItemDetailID;
int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
return count;
}
#endregion
[OperationContract]
#region 查询体检套餐明细
public DataSet dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(int intPhysicalExaminationSetMealID)
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
new  SqlParameter ("@PhysicalExaminationSetMealID",SqlDbType.Int),
};
SQLCMDpas[0].Value = "dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail";
SQLCMDpas[1].Value = intPhysicalExaminationSetMealID;
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion
[OperationContract]
#region 查询化验检查组合明细
public DataSet dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail(int intAssayInspectCombinationID)
{
SqlParameter[] SQLCMDpas ={
new  SqlParameter ("@Type",SqlDbType.Char),
new  SqlParameter ("@AssayInspectCombinationID",SqlDbType.Char),
};
SQLCMDpas[0].Value = "dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail";
SQLCMDpas[1].Value = intAssayInspectCombinationID;
DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataSet;
}
#endregion

(3)、界面层代码:

DataGridViewRow DGVR;
public FRM_FuZhuJianCha_Update(DataGridViewRow dgvr)
{
DGVR = dgvr;
InitializeComponent();
}
#region 声明全局变量
BLL医院管理系统.YiShengGongZuoZhan.FRM_FuZhuJianCha.FRM_FuZhuJianChaClient myFRM_FuZhuJianChaClient
= new BLL医院管理系统.YiShengGongZuoZhan.FRM_FuZhuJianCha.FRM_FuZhuJianChaClient();
int intOrdonnanceID = 0;//声明处方ID
int intRegisterID = 0;//声明挂号ID
string Number;//声明处方编号
#endregion
#region 关闭窗体事件
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
this.Dispose();
}
#endregion
#region 保存事件
private void btnSave_Click(object sender, EventArgs e)
{
int CountMingXiWeiTian = 0;
int A = 0; int a = 0; int M = 0;
foreach (DataGridViewRow dgvr in dgvAuxiliaryItemDetail.Rows)
{
if (dgvr.Cells["Coding"].Value == null ||
dgvr.Cells["Name1"].Value == null ||
dgvr.Cells["Price"].Value == null)
{ }
else
{
int intAuxiliaryItemDetailID;//声明辅助项目明细ID
intAuxiliaryItemDetailID = Convert.ToInt32(dgvr.Cells["AuxiliaryItemDetailID"].Value);
if (intOrdonnanceID > 0)
{
if (intAuxiliaryItemDetailID == 0)
{
int intAllItemID = Convert.ToInt32(dgvr.Cells["AllItemID"].Value);
int intItemCategoryID = Convert.ToInt32(dgvr.Cells["ItemCategoryID"].Value);
a = myFRM_FuZhuJianChaClient.btnSave_Click_InsertAuxiliaryItemDetail(intRegisterID, intOrdonnanceID, intAllItemID, intItemCategoryID);
}
else
{
int intAllItemID1 = Convert.ToInt32(dgvr.Cells["AllItemID"].Value);
int intItemCategoryID1 = Convert.ToInt32(dgvr.Cells["ItemCategoryID"].Value);
A = myFRM_FuZhuJianChaClient.btnSave_Click_UpdateAuxiliaryItemDetail(intOrdonnanceID, intAllItemID1, intItemCategoryID1, intAuxiliaryItemDetailID);
}
}
else
{
MessageBox.Show("没有可供修改的辅助检查项目信息!");
}
}
}
if (a > 0 && A > 0 && M > 0 || A > 0 && M > 0 || a > 0 && A > 0)
{
MessageBox.Show("成功修改辅助检查项目!" + "修改的处方单为:" + Number);
this.Close();
}
}
#endregion
#region 添加辅助检查项目
#region 体检项目
bool PhysicalExaminationItem = false;
int PhysicalExaminationSetMealID = 0;//体检套餐ID
int AssayInspectCombinationID = 0;//化验检查ID;
private void dgvPhysicalExaminationItem_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
int ItemID1 = Convert.ToInt32(dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目ID"].Value);
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemCategoryID == 4)
{
PhysicalExaminationSetMealID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value);//获取已存在的体检套餐ID
//根据循环得到的体检套餐ID查询体检套餐明细
DataTable DTPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(PhysicalExaminationSetMealID).Tables[0];
for (int j = 0; j < DTPhysicalExaminationSetMealDetail.Rows.Count; j++)
{
int DetailItemID = Convert.ToInt32(DTPhysicalExaminationSetMealDetail.Rows[j]["ItemID"]);
if (DetailItemID == ItemID1)
{
MessageBox.Show("已添加了含有该项目的体检套餐,不能再添加该项!");
return;
}
}
}
if (ItemID == ItemID1 && ItemCategoryID == 1)//项目类别ItemCategoryID用来判断表,值为1时是体检项目表。
{
PhysicalExaminationItem = false;
MessageBox.Show("该项目已存在!");
break;
}
else
{
PhysicalExaminationItem = true;
}
}
}
else
{
PhysicalExaminationItem = true;
}
if (PhysicalExaminationItem == true)
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvPhysicalExaminationItem.CurrentRow.Cells["体检项目名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvPhysicalExaminationItem.CurrentRow.Cells["体检现金价格"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 1;
}
}
#endregion
#region 化验项目
bool AssayItems = false;
private void dgvAssayItems_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value);
int ItemID2 = Convert.ToInt32(dgvAssayItems.CurrentRow.Cells["化验项目ID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemCategoryID == 5)
{
AssayInspectCombinationID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value);
DataTable DTAssayInspectCombinationID = myFRM_FuZhuJianChaClient.dgvAssayItems_CellClick_SelectAssayInspectCombinationDetail(AssayInspectCombinationID).Tables[0];
for (int j = 0; j < DTAssayInspectCombinationID.Rows.Count; j++)
{
int DetailItemID = Convert.ToInt32(DTAssayInspectCombinationID.Rows[j]["AssayItemsID"]);
if (DetailItemID == ItemID2)
{
MessageBox.Show("已添加了含有该项目的化验检查组合,不能再添加该项!");
return;
}
}
}
if (ItemID == ItemID2 && ItemCategoryID==2)
{
AssayItems = false;
MessageBox.Show("该项目已存在!");
break;
}
else
{
AssayItems = true;
}
}
}
else
{
AssayItems = true;
}
if (AssayItems == true)
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvAssayItems.CurrentRow.Cells["化验项目ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvAssayItems.CurrentRow.Cells["化验项目编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvAssayItems.CurrentRow.Cells["化验项目名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvAssayItems.CurrentRow.Cells["化验项目价格"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 2;
}
}
#endregion
#region 治疗项目
bool TreatmentItems = false;
private void dgvTreatmentItems_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value);
int ItemID3 = Convert.ToInt32(dgvTreatmentItems.CurrentRow.Cells["治疗项目ID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemID == ItemID3 && ItemCategoryID==3)
{
TreatmentItems = false;
MessageBox.Show("该项目已存在!");
break;
}
else
{
TreatmentItems = true;
}
}
}
else
{
TreatmentItems = true;
}
if (TreatmentItems == true)
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvTreatmentItems.CurrentRow.Cells["治疗项目ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvTreatmentItems.CurrentRow.Cells["治疗项目编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvTreatmentItems.CurrentRow.Cells["治疗项目名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvTreatmentItems.CurrentRow.Cells["普通定价"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 3;
}
}
#endregion
#region 体检套餐
bool PhysicalExaminationSetMeal = false;
private void dgvPhysicalExaminationSetMeal_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value);
int ItemID4 = Convert.ToInt32(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["体检套餐ID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemCategoryID == 1)
{
DataTable DtPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(ItemID4).Tables[0];
for (int j = 0; j < DtPhysicalExaminationSetMealDetail.Rows.Count; j++)
{
int DetailItemID = Convert.ToInt32(DtPhysicalExaminationSetMealDetail.Rows[j]["ItemID"]);
if (DetailItemID == ItemID)
{
MessageBox.Show("已添加了该体检套餐的明细单项,不能再添加该套餐!");
return;
}
}
}
if (ItemID == ItemID4 && ItemCategoryID==4)
{
PhysicalExaminationSetMeal = false;
MessageBox.Show("该项目已存在!");
break;
}
else
{
PhysicalExaminationSetMeal = true;
}
}
}
else
{
PhysicalExaminationSetMeal = true;
}
if (PhysicalExaminationSetMeal == true)
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["体检套餐ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvPhysicalExaminationSetMeal.CurrentRow.Cells["套餐编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvPhysicalExaminationSetMeal.CurrentRow.Cells["套餐名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvPhysicalExaminationSetMeal.CurrentRow.Cells["现金价格"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 4;
}
}
#endregion
#region 化验检查组合
bool AssayInspectCombination = false;
private void dgvAssayInspectCombination_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvAuxiliaryItemDetail.Rows.Count > 0)//判断dgvAuxiliaryItemDetail是否有数据
{
for (int i = 0; i < dgvAuxiliaryItemDetail.Rows.Count; i++)
{
int ItemID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value);
int ItemID5 = Convert.ToInt32(dgvAssayInspectCombination.CurrentRow.Cells["化验检查组合ID"].Value);
int ItemCategoryID = Convert.ToInt32(dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value);
if (ItemCategoryID == 2)
{
//根据化验检查组合dgvAssayInspectCombination的当前行ID查询化验检查组合明细。
DataTable DtPhysicalExaminationSetMealDetail = myFRM_FuZhuJianChaClient.dgvPhysicalExaminationItem_CellClick_SelectPhysicalExaminationSetMealDetail(ItemID5).Tables[0];
for (int j = 0; j < DtPhysicalExaminationSetMealDetail.Rows.Count; j++)//循环化验检查组合明细表。
{
int DetailItemID = Convert.ToInt32(DtPhysicalExaminationSetMealDetail.Rows[j]["AssayItemsID"]);//获取化验检查组合明细的项目ID。
if (DetailItemID == ItemID)//判断当化验检查组合明细的项目ID与辅助检查项目明细表的项目ID相同。
{
MessageBox.Show("已添加了该化验检查组合的明细单项,不能再添加该化验检查组合!");
return;
}
}
}
if (ItemID == ItemID5 && ItemCategoryID==5)
{
AssayInspectCombination = false;
MessageBox.Show("该项目已存在!");
break;
}
else
{
AssayInspectCombination = true;
}
}
}
else
{
AssayInspectCombination = true;
}
if (AssayInspectCombination == true)
{
dgvAuxiliaryItemDetail.Rows.Add();
int rowsCount = dgvAuxiliaryItemDetail.Rows.Count - 1;
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["AllItemID"].Value = Convert.ToInt32(dgvAssayInspectCombination.CurrentRow.Cells["化验检查组合ID"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Coding"].Value = dgvAssayInspectCombination.CurrentRow.Cells["组合编号"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Name1"].Value = dgvAssayInspectCombination.CurrentRow.Cells["组合名称"].Value.ToString();
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["Price"].Value = Convert.ToDecimal(dgvAssayInspectCombination.CurrentRow.Cells["组合价格"].Value);
dgvAuxiliaryItemDetail.Rows[rowsCount].Cells["ItemCategoryID"].Value = 5;
}

}
#endregion
#endregion
#region FRM_FuZhuJianCha_Update_Load事件
private void FRM_FuZhuJianCha_Update_Load(object sender, EventArgs e)
{
dgvPhysicalExaminationItem.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectItem().Tables[0];//绑定体检项目
dgvAssayItems.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectAssayItems().Tables[0];//绑定化验项目
dgvTreatmentItems.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectTreatmentItem().Tables[0];//绑定治疗项目
dgvPhysicalExaminationSetMeal.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectPhysicalExaminationSetMeal().Tables[0];//绑定体检套餐
dgvAssayInspectCombination.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Insert_Load_SelectAssayInspectCombination().Tables[0];//绑定化验检查组合
dgvRegister.DataSource = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectRegister().Tables[0];

}
#endregion
#region dgvRegister_CellClick事件
private void dgvRegister_CellClick(object sender, DataGridViewCellEventArgs e)
{
intOrdonnanceID = Convert.ToInt32(dgvRegister.CurrentRow.Cells["OrdonnanceID"].Value);
intRegisterID = Convert.ToInt32(dgvRegister.CurrentRow.Cells["RegisterID"].Value);
Number = dgvRegister.CurrentRow.Cells["OrdonnanceNumber"].Value.ToString ();
DataTable dtAuxiliaryItemDetail = myFRM_FuZhuJianChaClient.FRM_FuZhuJianCha_Load_SelectAllItem(Convert.ToInt32(dgvRegister.CurrentRow.Cells["OrdonnanceID"].Value)).Tables[0];
dgvAuxiliaryItemDetail.Rows.Clear();//清空空行
for (int i = 0; i < dtAuxiliaryItemDetail.Rows.Count; i++)
{
dgvAuxiliaryItemDetail.Rows.Add();
dgvAuxiliaryItemDetail.Rows[i].Cells["Coding"].Value = dtAuxiliaryItemDetail.Rows[i]["Coding"].ToString();
dgvAuxiliaryItemDetail.Rows[i].Cells["Name1"].Value = dtAuxiliaryItemDetail.Rows[i]["Name"].ToString();
dgvAuxiliaryItemDetail.Rows[i].Cells["Price"].Value = dtAuxiliaryItemDetail.Rows[i]["Price"].ToString();
dgvAuxiliaryItemDetail.Rows[i].Cells["AllItemID"].Value = dtAuxiliaryItemDetail.Rows[i]["AllItemID"].ToString();
dgvAuxiliaryItemDetail.Rows[i].Cells["OrdonnanceID_D"].Value = dtAuxiliaryItemDetail.Rows[i]["OrdonnanceID"].ToString();
dgvAuxiliaryItemDetail.Rows[i].Cells["AuxiliaryItemDetailID"].Value = dtAuxiliaryItemDetail.Rows[i]["AuxiliaryItemDetailID"].ToString();
dgvAuxiliaryItemDetail.Rows[i].Cells["ItemCategoryID"].Value = dtAuxiliaryItemDetail.Rows[i]["ItemCategoryID"].ToString();
}
}
#endregion
#region 移除辅助检查项目
ArrayList arr = new ArrayList();
private void dgvAuxiliaryItemDetail_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == 0)
{
if (dgvAuxiliaryItemDetail.CurrentRow.Cells["AuxiliaryItemDetailID"].Value == null)
{
if (dgvAuxiliaryItemDetail.Rows.Count == 1)
{
if (e.ColumnIndex == 0)
{
dgvAuxiliaryItemDetail.Rows.Clear();
dgvAuxiliaryItemDetail.Rows.Add();
}
}
else
{
if (MessageBox.Show("是否移除?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
dgvAuxiliaryItemDetail.Rows.Remove(dgvAuxiliaryItemDetail.CurrentRow);
}
}
}
else
{
arr.Add(dgvAuxiliaryItemDetail.CurrentRow.Cells["AuxiliaryItemDetailID"].Value);
dgvAuxiliaryItemDetail.Rows.Remove(dgvAuxiliaryItemDetail.CurrentRow);
for (int i = 0; i < arr.Count; i++)
{
myFRM_FuZhuJianChaClient.dgvAuxiliaryItemDetail_CellClick_DeleteAuxiliaryItemDetail(Convert.ToInt32(arr[i]));
}
}
}
}
#endregion


仅供学习,禁止用于商业用途。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: