实现医技工作站的X光检查功能的代码(十七)

实现医技工作站的X光检查功能的代码(十七)

3.4医技工作站

3.4.1X光检查

只有需要进行X光检查的项目才会在此界面显示,每点击一条检查项目,界面会自动绑定该项目对应的病人信息。点击“浏览图片”选择对应到的图片,输入检查内容和对图片的检查描述、诊断提示等信息点击“保存”按钮就会生成一条医技检查报告。点击“调用模板”会弹出门诊医技模板的界面如3.2.9.1(图1),医生可以调用界面中的信息。点击“编辑模板”会弹出新增医技模板界面3.2.9.2(图1)也可以编辑门诊医技模板。点击“病历”按钮会弹出书写病历的界面如3.2.1.1(图1)。医生可以对该病进行病历的书写补充。点击“清除”的按钮,界面的数据会清空。还可以根据病人卡号、病人类别、病人姓名和挂号时间等条件点击“立即查询”进行多条件查询检查项目。

主界面截图:

 

3.4.1(图1

从界面上可以看到我们这里用到的控件有:

控件名称

说明

文本框控件textBox

第一要设置每个控件的Text,第二设置控件Name;不同的是dataGridView右键进行编辑列。

下拉框控件comboBox

按钮控件button

表格控件dataGridView

时间控件dateTimePicker

查询功能实现

第一步:数据库

1、表与关系

 

3.4.1(图2

1:医技检查报告表(X光、B超、心电图)(PW_MedicalSkillInspectReportTable)

列名

数据类型

主键/外键

说明

MedicalSkillInspectReportID

int - Identity

主键

医技检查报告ID

PatientID

int

外键

病人ID

AccomplishTime

datetime

 

完成时间

DiagnosisNumber

nchar (20)

 

诊疗号

UltrasoundNumber

nchar (20)

 

超声号

ReportName

nchar (30)

 

报告名称

AS_ReportValuationID

int

外键

报告评价ID

WhetherAffirm

bit

 

是否确认

InspectDescribe

nchar (50)

 

检查描述

DiagnosisPrompt

nchar (50)

 

诊断提示

Picture

image

 

图片

WhetherEffective

bit

 

有效否

AtriumRate

nchar (30)

 

心房率

Ventricle

nchar (30)

 

心室率

PRInterval

nchar (30)

 

P-R间隔

QTInterval

nchar (30)

 

Q-T间隔

 

2:处方单表(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

 

有效否

3:病人表(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

 

会员否

4:辅助项目明细表(PW_AuxiliaryItemDetailTable)

列名

数据类型

主键/外键

说明

AuxiliaryItemDetailID

int - Identity

主键

辅助项目明细ID

RegisterID

int

外键

挂号ID

AllItemID

int

外键

总项目ID

ItemCategoryID

int

外键

项目类别ID

WhetherEffective

bit

 

有效否

AS_PhysicalExaminationRegisterID

int

外键

体检登记ID

OrdonnanceID

int

外键

处方单ID

 

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

 

有效否

 

6:化验项目表(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

 

有效否

 

7:治疗项目表(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

 

有效否

 

 

8:体检套餐表(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

 

有效否

 

9:化验检查组合表(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

 

有效否

表10:属性明细表(BT_AttributeDetailsTable

列名

数据类型

主键/外键

说明

AttributeDetailsID

int - Identity

主键

属性明细ID

AttributeDetailsID_F

int

外键

属性明细ID_父

AttributeSetID

int

外键

属性集合ID

AttributeDetailsName

nchar (30)

 

属性明细名称

Number

nchar (30)

 

编号

RetrievalInCode

nchar (30)

 

检索简码

BuiltInIdentifiers

bit

 

内置标识

Remarks

nchar (100)

 

备注

WhetherEffective

bit

 

有效否

 

2、功能代码实现

查询X光检查

1)、存储过程代码:

--查询性别
IF(@Type ='FRM_XGuangJianCha_Load_SelectSex')
	BEGIN
		SELECT     LTRIM (RTRIM( AttributeDetailsID)) AS SexID, 
		           LTRIM (RTRIM( AttributeDetailsName)) AS Sex
		FROM         BT_AttributeDetailsTable
		WHERE      BT_AttributeDetailsTable.AttributeSetID =2
	END
--查询病人类别
IF(@Type ='FRM_XGuangJianCha_Load_SelectPatientCategory')
	BEGIN
		SELECT     LTRIM (RTRIM( PatientCategoryID)) AS PatientCategoryID, 
		           LTRIM (RTRIM( CategoryName)) AS CategoryName
		FROM         BT_PatientCategoryTable
	END
--报告评价
IF(@Type ='FRM_XGuangJianCha_Load_SelectReportValuation')
	BEGIN
		SELECT     LTRIM (RTRIM( AttributeDetailsID)) AS ReportValuationID, 
				   LTRIM (RTRIM( AttributeDetailsName)) AS ReportValuation
		FROM         BT_AttributeDetailsTable
		WHERE      BT_AttributeDetailsTable.AttributeSetID=33
	END	
IF(@Type ='FRM_XGuangJianCha_Load_SelectDGVGuaHao')
	BEGIN
--查询检查项目	
		SELECT     LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.RegisterID)) AS RegisterID, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCategoryID)) AS PatientCategoryID, 
			  LTRIM (RTRIM(BT_PatientCategoryTable.CategoryName)) AS CategoryName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientName)) AS PatientName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCardNumber)) AS PatientCardNumber, 
			  LTRIM (RTRIM(BT_PatientTable.AS_SexID)) AS AS_SexID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS Sex, 
			  LTRIM (RTRIM(BT_PatientTable.Age)) AS Age, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, 			 
			  PW_RegisterTable.RegisterTime AS RegisterTime, 
			  LTRIM (RTRIM(PW_RegisterTable.PatientID)) AS PatientID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS RegisterStatus, 
			  LTRIM (RTRIM(BT_ItemTable.ItemName)) AS ItemName
		FROM         PW_AuxiliaryItemDetailTable INNER JOIN
			  PW_RegisterTable ON PW_AuxiliaryItemDetailTable.RegisterID = PW_RegisterTable.RegisterID INNER JOIN
			  BT_PatientTable ON PW_RegisterTable.PatientID = BT_PatientTable.PatientID INNER JOIN
			  BT_PatientCategoryTable ON BT_PatientTable.PatientCategoryID = BT_PatientCategoryTable.PatientCategoryID INNER JOIN
			  BT_AttributeDetailsTable ON BT_PatientTable.AS_SexID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOIN
			  BT_ItemTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_ItemTable.ItemID INNER JOIN
			  BT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON PW_RegisterTable.AS_RegisterStatusID = 
			  BT_AttributeDetailsTable_1.AttributeDetailsID
		WHERE    PW_AuxiliaryItemDetailTable.ItemCategoryID =1 
	--查询化验项目
	union
		SELECT     LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.RegisterID)) AS RegisterID, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCategoryID)) AS PatientCategoryID, 
			  LTRIM (RTRIM(BT_PatientCategoryTable.CategoryName)) AS CategoryName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientName)) AS PatientName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCardNumber)) AS PatientCardNumber, 
			  LTRIM (RTRIM(BT_PatientTable.AS_SexID)) AS AS_SexID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS Sex, 
			  LTRIM (RTRIM(BT_PatientTable.Age)) AS Age, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, 
			  PW_RegisterTable.RegisterTime AS RegisterTime, 
			  LTRIM (RTRIM(PW_RegisterTable.PatientID)) AS PatientID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS RegisterStatus, 
			  LTRIM (RTRIM(BT_AssayItemsTable.AssayItemsName)) AS ItemName
		FROM         PW_AuxiliaryItemDetailTable INNER JOIN
			  PW_RegisterTable ON PW_AuxiliaryItemDetailTable.RegisterID = PW_RegisterTable.RegisterID INNER JOIN
			  BT_PatientTable ON PW_RegisterTable.PatientID = BT_PatientTable.PatientID INNER JOIN
			  BT_PatientCategoryTable ON BT_PatientTable.PatientCategoryID = BT_PatientCategoryTable.PatientCategoryID INNER JOIN
			  BT_AttributeDetailsTable ON BT_PatientTable.AS_SexID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOIN
			  BT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON PW_RegisterTable.AS_RegisterStatusID = 
			  BT_AttributeDetailsTable_1.AttributeDetailsID INNER JOIN
			  BT_AssayItemsTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_AssayItemsTable.AssayItemsID	
		WHERE    PW_AuxiliaryItemDetailTable.ItemCategoryID =2	  			  	
	--查询治疗项目
	union
		SELECT     LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.RegisterID)) AS RegisterID, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCategoryID)) AS PatientCategoryID, 
			  LTRIM (RTRIM(BT_PatientCategoryTable.CategoryName)) AS CategoryName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientName)) AS PatientName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCardNumber)) AS PatientCardNumber, 
			  LTRIM (RTRIM(BT_PatientTable.AS_SexID)) AS AS_SexID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS Sex, 
			  LTRIM (RTRIM(BT_PatientTable.Age)) AS Age, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, 
			  PW_RegisterTable.RegisterTime AS RegisterTime, 
			  LTRIM (RTRIM(PW_RegisterTable.PatientID)) AS PatientID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS RegisterStatus, 
			  LTRIM (RTRIM(BT_TreatmentItemsTable.TreatmentItemName)) AS ItemName
		FROM         PW_AuxiliaryItemDetailTable INNER JOIN
			  PW_RegisterTable ON PW_AuxiliaryItemDetailTable.RegisterID = PW_RegisterTable.RegisterID INNER JOIN
			  BT_PatientTable ON PW_RegisterTable.PatientID = BT_PatientTable.PatientID INNER JOIN
			  BT_PatientCategoryTable ON BT_PatientTable.PatientCategoryID = BT_PatientCategoryTable.PatientCategoryID INNER JOIN
			  BT_AttributeDetailsTable ON BT_PatientTable.AS_SexID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOIN
			  BT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON PW_RegisterTable.AS_RegisterStatusID = 
			  BT_AttributeDetailsTable_1.AttributeDetailsID INNER JOIN
			  BT_TreatmentItemsTable ON PW_AuxiliaryItemDetailTable.AllItemID = BT_TreatmentItemsTable.TreatmentItemID
		WHERE    PW_AuxiliaryItemDetailTable.ItemCategoryID =3	  
	--查询体检套餐
union
		SELECT     LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.RegisterID)) AS RegisterID, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCategoryID)) AS PatientCategoryID, 
			  LTRIM (RTRIM(BT_PatientCategoryTable.CategoryName)) AS CategoryName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientName)) AS PatientName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCardNumber)) AS PatientCardNumber, 
			  LTRIM (RTRIM(BT_PatientTable.AS_SexID)) AS AS_SexID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS Sex, 
			  LTRIM (RTRIM(BT_PatientTable.Age)) AS Age, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, 
			  PW_RegisterTable.RegisterTime AS RegisterTime, 
			  LTRIM (RTRIM(PW_RegisterTable.PatientID)) AS PatientID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS RegisterStatus, 
			  LTRIM (RTRIM(BT_PhysicalExaminationSetMealTable.PhysicalExaminationSetMealName)) AS ItemName
		FROM         PW_AuxiliaryItemDetailTable INNER JOIN
			  PW_RegisterTable ON PW_AuxiliaryItemDetailTable.RegisterID = PW_RegisterTable.RegisterID INNER JOIN
			  BT_PatientTable ON PW_RegisterTable.PatientID = BT_PatientTable.PatientID INNER JOIN
			  BT_PatientCategoryTable ON BT_PatientTable.PatientCategoryID = BT_PatientCategoryTable.PatientCategoryID INNER JOIN
			  BT_AttributeDetailsTable ON BT_PatientTable.AS_SexID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOIN
			  BT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON PW_RegisterTable.AS_RegisterStatusID = 
			  BT_AttributeDetailsTable_1.AttributeDetailsID INNER JOIN
			  BT_PhysicalExaminationSetMealTable ON PW_AuxiliaryItemDetailTable.AllItemID = 
			  BT_PhysicalExaminationSetMealTable.PhysicalExaminationSetMealID
		WHERE    PW_AuxiliaryItemDetailTable.ItemCategoryID =4	 
	--查询化验检查组合
union
		SELECT     LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AuxiliaryItemDetailID)) AS AuxiliaryItemDetailID, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.RegisterID)) AS RegisterID, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCategoryID)) AS PatientCategoryID, 
			  LTRIM (RTRIM(BT_PatientCategoryTable.CategoryName)) AS CategoryName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientName)) AS PatientName, 
			  LTRIM (RTRIM(BT_PatientTable.PatientCardNumber)) AS PatientCardNumber, 
			  LTRIM (RTRIM(BT_PatientTable.AS_SexID)) AS AS_SexID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS Sex, 
			  LTRIM (RTRIM(BT_PatientTable.Age)) AS Age, 
			  LTRIM (RTRIM(PW_AuxiliaryItemDetailTable.AllItemID)) AS AllItemID, 
			  PW_RegisterTable.RegisterTime AS RegisterTime, 
			  LTRIM (RTRIM(PW_RegisterTable.PatientID)) AS PatientID, 
			  LTRIM (RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS RegisterStatus, 
			  LTRIM (RTRIM(BT_AssayInspectCombinationTable.CombinationName)) AS ItemName
		FROM         PW_AuxiliaryItemDetailTable INNER JOIN
			  PW_RegisterTable ON PW_AuxiliaryItemDetailTable.RegisterID = PW_RegisterTable.RegisterID INNER JOIN
			  BT_PatientTable ON PW_RegisterTable.PatientID = BT_PatientTable.PatientID INNER JOIN
			  BT_PatientCategoryTable ON BT_PatientTable.PatientCategoryID = BT_PatientCategoryTable.PatientCategoryID INNER JOIN
			  BT_AttributeDetailsTable ON BT_PatientTable.AS_SexID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOIN
			  BT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON PW_RegisterTable.AS_RegisterStatusID = 
			  BT_AttributeDetailsTable_1.AttributeDetailsID INNER JOIN
			  BT_AssayInspectCombinationTable ON PW_AuxiliaryItemDetailTable.AllItemID = 
			  BT_AssayInspectCombinationTable.AssayInspectCombinationID	
		WHERE    PW_AuxiliaryItemDetailTable.ItemCategoryID =5		
	END

(2)、逻辑层代码:

[OperationContract]
        #region 查询性别
        public DataSet FRM_XGuangJianCha_Load_SelectSex()
        {
            SqlParameter[] SQLCMDpas ={
                                          new  SqlParameter ("@Type",SqlDbType.Char),
                                              };
            SQLCMDpas[0].Value = "FRM_XGuangJianCha_Load_SelectSex";
            DataTable myDataTable = myDALMethod.QueryDataTable("YiJiGongZuoZhan_FRM_XGuangJianCha", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion
        [OperationContract]
        #region 查询病人类型
        public DataSet FRM_XGuangJianCha_Load_SelectPatientCategory()
        {
            SqlParameter[] SQLCMDpas ={
                                          new  SqlParameter ("@Type",SqlDbType.Char),
                                              };
            SQLCMDpas[0].Value = "FRM_XGuangJianCha_Load_SelectPatientCategory";
            DataTable myDataTable = myDALMethod.QueryDataTable("YiJiGongZuoZhan_FRM_XGuangJianCha", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion
        [OperationContract]
        #region 查询报告评价
        public DataSet FRM_XGuangJianCha_Load_SelectReportValuation()
        {
            SqlParameter[] SQLCMDpas ={
                                          new  SqlParameter ("@Type",SqlDbType.Char),
                                              };
            SQLCMDpas[0].Value = "FRM_XGuangJianCha_Load_SelectReportValuation";
            DataTable myDataTable = myDALMethod.QueryDataTable("YiJiGongZuoZhan_FRM_XGuangJianCha", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion       
        [OperationContract]
        #region 查询X光检查报告
        public DataSet FRM_XGuangJianCha_Load_SelectDGVGuaHao()
        {
            SqlParameter[] SQLCMDpas ={
                                          new  SqlParameter ("@Type",SqlDbType.Char),                                         
                                              };
            SQLCMDpas[0].Value = "FRM_XGuangJianCha_Load_SelectDGVGuaHao";            
            DataTable myDataTable = myDALMethod.QueryDataTable("YiJiGongZuoZhan_FRM_XGuangJianCha", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

3)、界面层代码:

#region Load事件
        private void FRM_XGuangJianCha_Load(object sender, EventArgs e)
        {
            //查询绑定性别数据
            DataTable dtSex = myFRM_XGuangJianChaClient.FRM_XGuangJianCha_Load_SelectSex().Tables[0];
            cboSex = PublicStaticMothd.SetZhiXiaLaKuang(cboSex, dtSex, "SexID", "Sex");
            //查询绑定病人类别数据 
            DataTable dtPatientCategory = myFRM_XGuangJianChaClient.FRM_XGuangJianCha_Load_SelectPatientCategory ().Tables[0];
            cboPatientCategory = PublicStaticMothd.SetZhiXiaLaKuang(cboPatientCategory, dtPatientCategory, "PatientCategoryID", "CategoryName");
            //查询绑定报告评价数据
            DataTable dtReportValuation = myFRM_XGuangJianChaClient.FRM_XGuangJianCha_Load_SelectReportValuation().Tables[0];
            cboReportValuation = PublicStaticMothd.SetZhiXiaLaKuang(cboReportValuation, dtReportValuation, "ReportValuationID", "ReportValuation");

            dgvXRay.DataSource = myFRM_XGuangJianChaClient.FRM_XGuangJianCha_Load_SelectDGVGuaHao().Tables[0];//查询绑定X光检查报告的数据
            dgvXRay.ClearSelection();//清空默认选行           
        }
        #endregion

新增X光检查报告

1)、存储过程代码:

--新增X光检查报告	
IF(@Type='btnSave_Click_InsertMedicalSkillInspectReport')
	BEGIN
		INSERT PW_MedicalSkillInspectReportTable(PatientID, AccomplishTime, DiagnosisNumber, UltrasoundNumber,
			 ReportName, AS_ReportValuationID, WhetherAffirm, InspectDescribe, DiagnosisPrompt, Picture)
		VALUES (@PatientID, @AccomplishTime, @DiagnosisNumber, @UltrasoundNumber, @ReportName,
			 @AS_ReportValuationID, @WhetherAffirm, @InspectDescribe, @DiagnosisPrompt, @Picture)		
	END
--超声号最大单据数
IF(@Type='btnSave_Click_SelectChaoShengHao')
	BEGIN	
	BEGIN TRAN  
		UPDATE     PW_TheLargestNumberStatisticalTable
		SET        UltrasoundMaximumNumber=UltrasoundMaximumNumber+1
		SELECT     UltrasoundMaximumNumber
		FROM       PW_TheLargestNumberStatisticalTable
	COMMIT TRAN
	END	

2)、逻辑层代码:

[OperationContract]
        #region 新增医技检查报告
        public int btnSave_Click_InsertMedicalSkillInspectReport(int intPatientID, DateTime dtmAccomplishTime, string strDiagnosisNumber,
            string strUltrasoundNumber,string strReportName,int intAS_ReportValuationID,bool blWhetherAffirm, string strInspectDescribe,
            string strDiagnosisPrompt, byte[][] bytePicture)
			
        {
            string strWenJianName = WenJianLiuZhuanHuanLuJing(bytePicture);
            SqlParameter[] SQLCMDpas ={
                                          new  SqlParameter ("@Type",SqlDbType.Char),
                                          new  SqlParameter ("@PatientID",SqlDbType.Int),
                                          new  SqlParameter ("@AccomplishTime",SqlDbType.Int),
                                          new  SqlParameter ("@DiagnosisNumber",SqlDbType.Int),
                                          new  SqlParameter ("@UltrasoundNumber",SqlDbType.Int),
                                          new  SqlParameter ("@ReportName",SqlDbType.Int),
                                          new  SqlParameter ("@AS_ReportValuationID",SqlDbType.Int),
                                          new  SqlParameter ("@WhetherAffirm",SqlDbType.Int),
                                          new  SqlParameter ("@InspectDescribe",SqlDbType.Int),
                                          new  SqlParameter ("@DiagnosisPrompt",SqlDbType.Int),
                                          new  SqlParameter ("@Picture",SqlDbType.Int),
                                      };
            SQLCMDpas[0].Value = "btnSave_Click_InsertMedicalSkillInspectReport";
            SQLCMDpas[1].Value = intPatientID;
            SQLCMDpas[2].Value = dtmAccomplishTime;
            SQLCMDpas[3].Value = strDiagnosisNumber;
            SQLCMDpas[4].Value = strUltrasoundNumber;
            SQLCMDpas[5].Value = strReportName;
            SQLCMDpas[6].Value = intAS_ReportValuationID;
            SQLCMDpas[7].Value = blWhetherAffirm;
            SQLCMDpas[8].Value = strInspectDescribe;
            SQLCMDpas[9].Value = strDiagnosisPrompt;
            SQLCMDpas[10].Value = strWenJianName;           
            int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_FuZhuJianCha", SQLCMDpas);
            return count;
        }
        #endregion
        #region  文件流转换路径
        private string WenJianLiuZhuanHuanLuJing(byte[][] byteTuPian)
        {
            try
            {
                string strWenJianQianZui = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString(); 
                string strWenJianName = "";
                for (int i = 0; i < byteTuPian.Length; i++)//遍历二进制的数组的数组
                {
                    string strRiQiWenJian = strWenJianQianZui + i.ToString() + ".png";
                    string strBaoCunLuJing = System.AppDomain.CurrentDomain.BaseDirectory;

                    strBaoCunLuJing = strBaoCunLuJing + "image\\" + strRiQiWenJian;
                    FileInfo fi = new System.IO.FileInfo(strBaoCunLuJing);
                    FileStream fs;
                    fs = fi.OpenWrite();
                    fs.Write(byteTuPian[i], 0, byteTuPian[i].Length);
                    fs.Close();
                    strWenJianName += strRiQiWenJian + ";";
                }
                return strWenJianName;
            }
            catch
            {
                return null;
            }
        }
        #endregion
        [OperationContract]
        #region 查询超声号最大单据数
        public DataSet btnSave_Click_SelectChaoShengHao()
        {
            SqlParameter[] SQLCMDpas ={
                                          new  SqlParameter ("@Type",SqlDbType.Char),
                                              };
            SQLCMDpas[0].Value = "btnSave_Click_SelectChaoShengHao";
            DataTable myDataTable = myDALMethod.QueryDataTable("YiJiGongZuoZhan_FRM_XGuangJianCha", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

3)、界面层代码:

#region 保存事件
        private void btnSave_Click(object sender, EventArgs e)
        {
            byte[][] bytWenJian = new byte[lstBytes.Count][];
            for (int i = 0; i < lstBytes.Count; i++)
            {
                bytWenJian[i] = lstBytes[i];
            }
            if (txtDiagnosisNumber.Text != "" && txtUltrasoundNumber.Text != "" && txtDiagnosisNumber.Text != "" && txtUltrasoundNumber.Text != ""
                && txtReportName.Text != "" && cboReportValuation.SelectedValue.ToString() != "" && rtxtInspectDescribe.Text != "" && rtxtDiagnosisPrompt.Text != "")
            {
                txtDiagnosisNumber.Text = GenerateReceipts();//自动生成超声号
                txtUltrasoundNumber.Text = GenerateReceipts().Replace("BC", "ZL");//自动生成诊疗号
                DateTime dtmAccomplishTime = Convert.ToDateTime(dtpAccomplishTime.Value);
                string strDiagnosisNumber = txtDiagnosisNumber.Text;
                string strUltrasoundNumber = txtUltrasoundNumber.Text;
                string strReportName = txtReportName.Text;
                int intAS_ReportValuationID = Convert.ToInt32(cboReportValuation.SelectedValue);
                bool blWhetherAffirm = Convert.ToBoolean(chkWhetherAffirm.Checked);
                string strInspectDescribe = rtxtInspectDescribe.Text;
                string strDiagnosisPrompt = rtxtDiagnosisPrompt.Text;
                int count = myFRM_XGuangJianChaClient.btnSave_Click_InsertMedicalSkillInspectReport(intPatientID, dtmAccomplishTime, strDiagnosisNumber,
                    strUltrasoundNumber, strReportName, intAS_ReportValuationID, blWhetherAffirm, strInspectDescribe, strDiagnosisPrompt, bytWenJian);
                if (count > 0)
                {
                    MessageBox.Show("添加成功!");
                }

                else
                {
                    MessageBox.Show("添加失败!");
                }
            }
            else
            {
                MessageBox.Show("请查看是否存在空数据。");
            }
           
        }
        #endregion       
        #region 根据单据数 日期生成病人卡号
        public string GenerateReceipts() //生成单据数
        {
            DataTable dt = myFRM_XGuangJianChaClient.btnSave_Click_SelectChaoShengHao().Tables[0];
            strUltrasoundNumber = dt.Rows[0]["UltrasoundMaximumNumber"].ToString();
            switch (strUltrasoundNumber.Length)
            {
                case 1:
                    strUltrasoundNumber = "000" + strUltrasoundNumber;
                    break;
                case 2:
                    strUltrasoundNumber = "00" + strUltrasoundNumber;
                    break;
                case 3:
                    strUltrasoundNumber = "0" + strUltrasoundNumber;
                    break;
                case 4:
                    strUltrasoundNumber = "" + strUltrasoundNumber;
                    break;
                default:
                    break;
            }
            DateTime dtmNow = DateTime.Now;
            string strYear = dtmNow.Year.ToString().Trim();
            string strMonth = dtmNow.Month.ToString().Trim();
            strMonth = (strMonth.Length == 1 ? "0" + strMonth : strMonth);
            string strDay = dtmNow.Day.ToString().Trim();
            strDay = (strDay.Length == 1 ? "0" + strDay : strDay);
            return "BC" + strYear + strMonth + strDay + strUltrasoundNumber;
        }
        #endregion
        #region 图片
        int intTuPianWeiZhiY = 0;
        List<string> lisWenJianMing = new List<string>();
        List<byte[]> lstBytes = new List<byte[]>();
        private void btnPicture_Click(object sender, EventArgs e)
        {
            ofdWenJian.Multiselect = true;//多选图片
            if (ofdWenJian.ShowDialog() == DialogResult.OK)
            {
                for (int i = 0; i < ofdWenJian.FileNames.Length; i++)
                {
                    txtPictureRoute.Text += ofdWenJian.FileNames[i] + ";";
                    using (Stream sm = new FileStream(ofdWenJian.FileNames[i], FileMode.Open, FileAccess.ReadWrite, FileShare.None))//运行方法体后,消毁对象
                    {
                        int Length = (int)sm.Length; //二进制文件长度
                        byte[] bytes = new byte[Length];  //二进制文件存放的二进制数组
                        sm.Read(bytes, 0, Length); //内存流读取
                        sm.Close(); //关闭内存流
                        lstBytes.Add(bytes);  将数据保存到数据库中
                        XianShiTuPian(bytes);
                    }
                }
            }
        }
        #endregion
        #region 显示图片
        void XianShiTuPian(byte[] mybyte)
        {
             MemoryStream stmBLOBData = new MemoryStream(mybyte);//实例化一个内存流的对象
            PictureBox myPictureBox = new PictureBox();
            Image myImage = Image.FromStream(stmBLOBData);
            myPictureBox.Size = pnlPicture.Size;
            myPictureBox.Location = new Point(0, intTuPianWeiZhiY);
            myPictureBox.BackgroundImage = myImage;
            myPictureBox.BackgroundImageLayout = ImageLayout.Zoom;
            this.pnlPicture.Controls.Add(myPictureBox);
            intTuPianWeiZhiY += pnlPicture.Size.Height;
            
        }
        #endregion

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

 

志不立,天下无可成之事。——王阳明 

 

夫学须志也,才须学也,非学无以广才,非志无以成学。——诸葛亮 

 

有志者事竟成也!——刘秀




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值