实现医生工作站的处方模板功能的代码(十一)

3.2.7处方模板

处方模板这个模块实现医生根据病人病历来开药方的功能,点击3.2.2.1(图1)”新增“按钮弹出医生开取药方的界面,供医生开药;同样点击3.2.2.1(图2)” 修改“按钮弹出医生修改处方的界面,供医生对错误的处方单进行修改;还可以根据处方编号、病人名称等进行多条件查询处方单。点击每一条处方单多可以在处方明细中查询相对应的药品信息。

3.2.7.1处方模板主界面

主界面截图:

3.2.7.1(图1)

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

控件名称

说明

组装箱控件groupBox

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

文本框控件textBox

下拉框控件comboBox

按钮控件button

表格控件dataGridView

查询功能实现

第一步:数据库

1、  表与关系

3.2.7.1(图2)

表1:处方模板表(BT_PrescriptionTemplateTable)

列名

数据类型

主键/外键

说明

PrescriptionTemplateID

int - Identity

主键

处方模板ID

TemplateName

nchar (50)

模板名称

Doctor_StaffID

int

外键

医生名称_员工ID

AS_TemplateTypeID

int

外键

模板类型ID

AS_PrescriptionTypeID

int

外键

处方类型ID

TechnicalOfficesID

int

外键

科室名称_科室ID

AS_TemplateSortID

int

外键

模板分类ID

PrescriptionRemarks

nchar (300)

处方备注

PrescriptionDiagnosis

nchar (300)

处方诊断

WhetherEffective

bit

有效否

 

表2:处方模板明细表(BT_PrescriptionTemplateDetailTable)

列名

数据类型

主键/外键

说明

PrescriptionTemplateDetailID

int - Identity

主键

处方模板明细ID

PrescriptionTemplateID

int

外键

处方模板ID

DrugID

int

外键

药品ID

ChineseMedicineNumberOfAgent

nchar (30)

中药剂数

EachAgentDosage

nchar (20)

每剂用量

AS_DrugUseMannerID

int

外键

用药方式ID

AS_DDDSID

int

外键

用药频率

DispensingVolume

nchar (50)

发药总量

Remarks

nchar (200)

备注

WhetherEffective

bit

有效否

 

表3:药品表(BT_OutpatientMedicalRecordsTemplateTable)

列名

数据类型

主键/外键

说明

OutpatientMedicalRecordsTemplateID

int  - Identity

主键

门诊病历模板ID

TemplateNumber

nchar  (50)

模板编号

TemplateName

nchar  (50)

模板名称

WriteDoctor_StaffID

int

外键

撰写医生_员工ID

WriteTechnicalOfficesID

int

外键

撰写科室_科室ID

AS_TemplateTypeID

int

外键

模板类型ID

AS_InvokingJurisdictionID

int

外键

调用权限ID

WhetherOperation

bit

是否手术

TemplateRemarks

nchar  (200)

模板备注

SuitCase

nchar  (200)

适合情况

PatientActionInChief

nchar  (300)

病人主诉

PatientMedicalHistory

nchar  (300)

病人病史

PhysicalExaminationCase

nchar  (300)

体检情况

InitialDiagnosis

nchar  (300)

初步诊断

DisposeIdea

nchar  (300)

处理意见

WhetherEffective

bit

有效否

RegisterID

int

外键

挂号ID

表4:员工表(BT_StaffTable)

列名

数据类型

主键/外键

说明

StaffID

int - Identity

主键

员工ID

TechnicalOfficesID

int

外键

科室ID

StaffNumber

nchar (20)

员工编号

StaffName

nchar (20)

员工名称

WhetherOperator

bit

操作员否

AlphabeticBrevityCode

nchar (20)

拼音简码

WubiInCode

nchar (20)

五笔简码

AS_StaffPositionID

int

外键

员工职务ID

AS_MedicalTitlesID

int

外键

医务职称ID

AS_WorkingStatusID

int

外键

工作状态ID

AS_SexID

int

外键

性别ID

ContactTelephone

nchar (50)

联系电话

WhetherBuiltIn

bit

内置否

RegisteredSum

decimal (18, 2)

挂号金额

AS_IntoTheHobbyID

int

外键

录入爱好ID

StaffPhotos

char (200)

员工照片

Email

nchar (70)

电子邮件

IDCardNo

nchar (100)

身份证号

ContactAddress

nchar (100)

联系地址

Birthday

datetime

出生日期

WhetherBirthdayRemind

bit

生日提醒否

WorkDate

datetime

工作日期

TerminationDate

datetime

离职日期

AS_OfficialAcademicCredentialsID

int

外键

最高学历ID

StudySubject

nchar (70)

学习专业

AS_PoliticsStatusID

int

外键

政治面貌ID

Remarks

nchar (100)

员工备注

WhetherEffective

bit

有效否

 

表5:科室表(BT_TechnicalOfficesTable)

列名

数据类型

主键/外键

说明

TechnicalOfficesID

int - Identity

主键

科室ID

DepartmentID

int

外键

部门ID

TechnicalOfficesNumber

nchar (20)

科室编号

TechnicalOfficesName

nchar (20)

科室名称

RegisterSum

decimal (18, 2)

挂号金额

WhetherAllowRegister

bit

允许挂号否

AlphabeticBrevityCode

nchar (20)

拼音简码

WubiInCode

nchar (20)

五笔简码

TechnicalOfficesLocation

nchar (100)

科室位置

Remarks

nchar (200)

备注

WhetherEffective

bit

有效否

表6:属性明细表(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

有效否

功能代码

查询处方模板

(1)、存储过程代码:

--查询处方信息
IF(@Type='FRM_ChuFangMuBan_Load_ChaXunChuFangXinXi')BEGINSELECT     LTRIM(RTRIM(BT_PrescriptionTemplateTable.PrescriptionTemplateID)) AS PrescriptionTemplateID, LTRIM(RTRIM(BT_PrescriptionTemplateTable.TemplateName)) AS TemplateName, LTRIM(RTRIM(BT_StaffTable.StaffName)) AS StaffName, LTRIM(RTRIM(BT_TechnicalOfficesTable.TechnicalOfficesName)) AS TechnicalOfficesName, LTRIM(RTRIM(BT_PrescriptionTemplateTable.PrescriptionRemarks)) AS PrescriptionRemarks, LTRIM(RTRIM(BT_PrescriptionTemplateTable.PrescriptionDiagnosis)) AS PrescriptionDiagnosis, LTRIM(RTRIM(BT_PrescriptionTemplateTable.AS_TemplateTypeID)) AS AS_TemplateTypeID, LTRIM(RTRIM(BT_PrescriptionTemplateTable.AS_PrescriptionTypeID)) AS AS_PrescriptionTypeID, LTRIM(RTRIM(BT_PrescriptionTemplateTable.TechnicalOfficesID)) AS TechnicalOfficesID, LTRIM(RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS AttributeDetailsName, LTRIM(RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS PrescriptionType, LTRIM(RTRIM(BT_AttributeDetailsTable_2.AttributeDetailsName)) AS TemplateSort, LTRIM(RTRIM(BT_PrescriptionTemplateTable.Doctor_StaffID)) AS Doctor_StaffID, LTRIM(RTRIM(BT_PrescriptionTemplateTable.AS_TemplateSortID))AS AS_TemplateSortIDFROM         BT_AttributeDetailsTable AS BT_AttributeDetailsTable_2 INNER JOINBT_AttributeDetailsTable INNER JOINBT_StaffTable INNER JOINBT_PrescriptionTemplateTable ON BT_StaffTable.StaffID = BT_PrescriptionTemplateTable.Doctor_StaffID ON BT_AttributeDetailsTable.AttributeDetailsID = BT_PrescriptionTemplateTable.AS_TemplateTypeID INNER JOINBT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON BT_PrescriptionTemplateTable.AS_PrescriptionTypeID = BT_AttributeDetailsTable_1.AttributeDetailsID INNER JOINBT_TechnicalOfficesTable ON BT_PrescriptionTemplateTable.TechnicalOfficesID = BT_TechnicalOfficesTable.TechnicalOfficesID ON BT_AttributeDetailsTable_2.AttributeDetailsID = BT_PrescriptionTemplateTable.AS_TemplateSortIDEND
--查询处方明细
IF(@Type='FRM_ChuFangMuBan_Load_ChaXunChuFangMingXi')BEGINSELECT     LTRIM(RTRIM(BT_PrescriptionTemplateDetailTable.PrescriptionTemplateDetailID)) AS PrescriptionTemplateDetailID, LTRIM(RTRIM(BT_PrescriptionTemplateDetailTable.PrescriptionTemplateID)) AS PrescriptionTemplateID, LTRIM(RTRIM(BT_DrugTable.DrugEncoding)) AS DrugEncoding, LTRIM(RTRIM(BT_DrugTable.DrugName)) AS DrugName, LTRIM(RTRIM(BT_DrugTable.DrugSpecification))AS DrugSpecification,  LTRIM(RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS DrugUseManner, LTRIM(RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS DDDS, LTRIM(RTRIM(BT_PrescriptionTemplateDetailTable.Remarks)) AS Remarks, LTRIM(RTRIM(BT_PrescriptionTemplateDetailTable.ChineseMedicineNumberOfAgent))AS ChineseMedicineNumberOfAgent, LTRIM(RTRIM(BT_PrescriptionTemplateDetailTable.EachAgentDosage)) AS EachAgentDosage, LTRIM(RTRIM(BT_PrescriptionTemplateDetailTable.DispensingVolume)) AS DispensingVolume, LTRIM(RTRIM(BT_PrescriptionTemplateDetailTable.AS_DrugUseMannerID))AS AS_DrugUseMannerID,  LTRIM(RTRIM(BT_PrescriptionTemplateDetailTable.AS_DDDSID)) AS AS_DDDSID, LTRIM(RTRIM(BT_PrescriptionTemplateDetailTable.DrugID)) AS DrugID, LTRIM(RTRIM(BT_DrugTable.DrugTaboo)) AS DrugTabooFROM         BT_AttributeDetailsTable INNER JOINBT_PrescriptionTemplateDetailTable INNER JOINBT_DrugTable ON BT_PrescriptionTemplateDetailTable.DrugID = BT_DrugTable.DrugID ON BT_AttributeDetailsTable.AttributeDetailsID = BT_PrescriptionTemplateDetailTable.AS_DrugUseMannerID INNER JOINBT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON BT_PrescriptionTemplateDetailTable.AS_DDDSID = BT_AttributeDetailsTable_1.AttributeDetailsIDWHERE      BT_PrescriptionTemplateDetailTable.PrescriptionTemplateID =@PrescriptionTemplateIDEND

(2)、逻辑层代码:

[OperationContract]#region 查询处方信息public DataSet FRM_ChuFangMuBan_Load_ChaXunChuFangXinXi(){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),};SQLCMDpas[0].Value = "FRM_ChuFangMuBan_Load_ChaXunChuFangXinXi";DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_ChuFangMuBan", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 查询处方明细public DataSet FRM_ChuFangMuBan_Load_ChaXunChuFangMingXi(int PrescriptionTemplateID){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),new  SqlParameter ("@PrescriptionTemplateID",SqlDbType.Int),};SQLCMDpas[0].Value = "FRM_ChuFangMuBan_Load_ChaXunChuFangMingXi";SQLCMDpas[1].Value = PrescriptionTemplateID;DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_ChuFangMuBan", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]

(3)、界面层代码:

#region FRM_ChuFangMuBan_Load事件private void FRM_ChuFangMuBan_Load(object sender, EventArgs e){            dgvPrescriptionTemplate.DataSource = myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Load_ChaXunChuFangXinXi().Tables[0];//查询处方信息dgvPrescriptionTemplate.ClearSelection();//清空dgvPrescriptionTemplate默认选项}#endregion
#region dgvPrescriptionTemplate_SelectionChanged事件,根据处方单查询处方明细信息private void dgvPrescriptionTemplate_SelectionChanged(object sender, EventArgs e){if (dgvPrescriptionTemplateDetail.Rows.Count >= 0)//判断dgvPrescriptionTemplateDetail的行总数大于0{PrescriptionTemplateID = Convert.ToInt32(dgvPrescriptionTemplate.CurrentRow.Cells["处方模板ID"].Value);//点击dgvPrescriptionTemplate的获取当前行处方模板IDdgvPrescriptionTemplateDetail.DataSource = myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Load_ChaXunChuFangMingXi(PrescriptionTemplateID).Tables[0];//根据处方模板ID查询处方模板明细信息dgvPrescriptionTemplate.ClearSelection();//清空dgvPrescriptionTemplate默认的选项。}}#endregion

3.2.7.2新增处方模板

医生可以在3.2.7.2(图1)此界面进行处方模板的编写,这里处方的录入是可以填写用药方式、用药频率、发药总量等。为医生看病开处方时提供一个参考。

新增处方模板截图:

3.2.7.2(图1)

功能代码:

(1)、存储过程代码:

--新增处方信息
IF(@Type='btnBaoCun_Click_XinZengChuFangXinXi')BEGIN         BEGIN TRAN     INSERT   BT_PrescriptionTemplateTable(TemplateName, Doctor_StaffID, AS_TemplateTypeID, AS_PrescriptionTypeID,TechnicalOfficesID, AS_TemplateSortID, PrescriptionRemarks, PrescriptionDiagnosis)VALUES   (@TemplateName, @Doctor_StaffID, @AS_TemplateTypeID, @AS_PrescriptionTypeID, @TechnicalOfficesID, @AS_TemplateSortID, @PrescriptionRemarks, @PrescriptionDiagnosis)SELECT @@IDENTITY COMMIT TRANEND
--新增处方明细
IF(@Type ='btnBaoCun_Click_XinZengChuFangMingXi')BEGIN  BEGIN TRANINSERT   BT_PrescriptionTemplateDetailTable( PrescriptionTemplateID, DrugID, ChineseMedicineNumberOfAgent, EachAgentDosage, AS_DrugUseMannerID, AS_DDDSID, DispensingVolume, Remarks)VALUES   ( @PrescriptionTemplateID, @DrugID, @ChineseMedicineNumberOfAgent, @EachAgentDosage, @AS_DrugUseMannerID,@AS_DDDSID, @DispensingVolume, @Remarks)--SELECT @@IDENTITY COMMIT TRANEND

(2)、逻辑层代码:

[OperationContract]#region 新增处方模板信息public DataSet btnBaoCun_Click_XinZengChuFangXinXi(string strTemplateName, int intDoctor_StaffID, int intAS_TemplateTypeID, int intAS_PrescriptionTypeID,int intTechnicalOfficesID, int intAS_TemplateSortID, string strPrescriptionRemarks, string strPrescriptionDiagnosis){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),new  SqlParameter ("@TemplateName",SqlDbType.Char),new  SqlParameter ("@Doctor_StaffID",SqlDbType.Int),new  SqlParameter ("@AS_TemplateTypeID",SqlDbType.Int),new  SqlParameter ("@AS_PrescriptionTypeID",SqlDbType.Int),new  SqlParameter ("@TechnicalOfficesID",SqlDbType.Int),new  SqlParameter ("@AS_TemplateSortID",SqlDbType.Int),new  SqlParameter ("@PrescriptionRemarks",SqlDbType.Char),new  SqlParameter ("@PrescriptionDiagnosis",SqlDbType.Char),};SQLCMDpas[0].Value = "btnBaoCun_Click_XinZengChuFangXinXi";SQLCMDpas[1].Value = strTemplateName;SQLCMDpas[2].Value = intDoctor_StaffID;SQLCMDpas[3].Value = intAS_TemplateTypeID;SQLCMDpas[4].Value = intAS_PrescriptionTypeID;SQLCMDpas[5].Value = intTechnicalOfficesID;SQLCMDpas[6].Value = intAS_TemplateSortID;SQLCMDpas[7].Value = strPrescriptionRemarks;SQLCMDpas[8].Value = strPrescriptionDiagnosis;DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_ChuFangMuBan", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion        [OperationContract]#region 新增处方模板明细public int btnBaoCun_Click_XinZengChuFangMingXi(int  intPrescriptionTemplateID,int intDrugID,string strChineseMedicineNumberOfAgent,string strEachAgentDosage, int intAS_DrugUseMannerID, int intAS_DDDSID, string strDispensingVolume, string strRemarks){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),new  SqlParameter ("@PrescriptionTemplateID",SqlDbType.Int),  new  SqlParameter ("@DrugID",SqlDbType.Int),                                         new  SqlParameter ("@ChineseMedicineNumberOfAgent",SqlDbType.Char),new  SqlParameter ("@EachAgentDosage",SqlDbType.Char),new  SqlParameter ("@AS_DrugUseMannerID",SqlDbType.Int),new  SqlParameter ("@AS_DDDSID",SqlDbType.Int),new  SqlParameter ("@DispensingVolume",SqlDbType.Char),new  SqlParameter ("@Remarks",SqlDbType.Char),};SQLCMDpas[0].Value = "btnBaoCun_Click_XinZengChuFangMingXi";SQLCMDpas[1].Value = intPrescriptionTemplateID;SQLCMDpas[2].Value = intDrugID;SQLCMDpas[3].Value = strChineseMedicineNumberOfAgent;SQLCMDpas[4].Value = strEachAgentDosage;SQLCMDpas[5].Value = intAS_DrugUseMannerID;SQLCMDpas[6].Value = intAS_DDDSID;SQLCMDpas[7].Value = strDispensingVolume;SQLCMDpas[8].Value = strRemarks;int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_ChuFangMuBan", SQLCMDpas);return count;}#endregion

(3)、界面层代码:

#region 保存新增处方private void btnSave_Click(object sender, EventArgs e){#region 新增处方模板信息string strTemplateName = txtTemplateName.Text.ToString().Trim();//模板名称int intDoctor_StaffID = Convert.ToInt32(cboDoctor.SelectedValue);//撰写医生int intAS_TemplateTypeID = Convert.ToInt32(cboTemplateType.SelectedValue);//模板类型int intAS_PrescriptionTypeID = Convert.ToInt32(cboPrescriptionType.SelectedValue);//处方类型int intTechnicalOfficesID = Convert.ToInt32(cboTechnicalOffices.SelectedValue);//撰写科室int intAS_TemplateSortID = Convert.ToInt32(cboTemplateSort.SelectedValue);//模板分类string strPrescriptionRemarks = txtPrescriptionRemarks.Text.ToString().Trim();//处方模板备注string strPrescriptionDiagnosis = txtPrescriptionDiagnosis.Text.ToString().Trim();//处方模板诊断DataTable dtChuFangXinXi = myFRM_ChuFangMuBanClient.btnBaoCun_Click_XinZengChuFangXinXi(strTemplateName,intDoctor_StaffID, intAS_TemplateTypeID, intAS_PrescriptionTypeID, intTechnicalOfficesID, intAS_TemplateSortID,strPrescriptionRemarks, strPrescriptionDiagnosis).Tables[0];//新增处方模板#endregion#region 新增处方模板明细int intPrescriptionTemplateID = Convert.ToInt32(dtChuFangXinXi.Rows[0][0].ToString());//获取心中的处方模板信息的IDif (dgvChuFangMuBan.Rows.Count > 0)//判断处方模板的行数大于0{int count = 0;//声明一个整形变量,用来记录新增模板明细的行数for (int i = 0; i < dgvChuFangMuBan.Rows.Count; i++)//循环dgvChuFangMuBan的行数的集合{int intDrugID = Convert.ToInt32(dgvChuFangMuBan.Rows[i].Cells["处方药品ID"].Value);//药品IDstring strChineseMedicineNumberOfAgent = dgvChuFangMuBan.Rows[i].Cells["中药剂数"].Value.ToString();//中药剂数string strEachAgentDosage = dgvChuFangMuBan.Rows[i].Cells["每剂用量"].Value.ToString();//每剂用量int intAS_DrugUseMannerID = Convert.ToInt32(dgvChuFangMuBan.Rows[i].Cells["用药方式"].Value);//用药方式int intAS_DDDSID = Convert.ToInt32(dgvChuFangMuBan.Rows[i].Cells["用药频率"].Value);//用药频率string strDispensingVolume = dgvChuFangMuBan.Rows[i].Cells["用药总量"].Value.ToString();//用药总量string strRemarks = dgvChuFangMuBan.Rows[i].Cells["明细备注"].Value.ToString();//明细备注count += myFRM_ChuFangMuBanClient.btnBaoCun_Click_XinZengChuFangMingXi(intPrescriptionTemplateID, intDrugID, strChineseMedicineNumberOfAgent,strEachAgentDosage, intAS_DrugUseMannerID, intAS_DDDSID, strDispensingVolume, strRemarks);//循环新增模板明细信息}if (count > 0)//当行数大于0时,表明新增数据成功。{MessageBox.Show("新增处方模板成功!");this.Close();}else{MessageBox.Show("新增处方模板失败,请查看是否有空白数据!");}}#endregion}#endregion

3.2.7.3修改处方模板

医生可以在此界面对错误的处方模板进行修该,可以对多余的药品进行移除和新增药品等。

修改处方模板截图:

3.2.7.3(图1)

功能代码

修改处方模板

(1)、存储过程的代码:

--修改处方信息
IF(@Type='btnBaoCun_Click_XiuGaiChuFangXinXi')BEGINUPDATE      BT_PrescriptionTemplateTableSET         TemplateName=@TemplateName, Doctor_StaffID=@Doctor_StaffID, AS_TemplateTypeID=@AS_TemplateTypeID, AS_PrescriptionTypeID=@AS_PrescriptionTypeID, TechnicalOfficesID=@TechnicalOfficesID, AS_TemplateSortID=@AS_TemplateSortID,PrescriptionRemarks= @PrescriptionRemarks, PrescriptionDiagnosis=@PrescriptionDiagnosisWHERE    BT_PrescriptionTemplateTable.PrescriptionTemplateID =@PrescriptionTemplateIDEND
--修改处方明细
IF(@Type ='btnBaoCun_Click_XiuGaiChuFangMingXi')BEGINUPDATE      BT_PrescriptionTemplateDetailTableSET         PrescriptionTemplateID=@PrescriptionTemplateID, DrugID=@DrugID, ChineseMedicineNumberOfAgent=@ChineseMedicineNumberOfAgent,  EachAgentDosage=@EachAgentDosage,AS_DrugUseMannerID=@AS_DrugUseMannerID,AS_DDDSID=@AS_DDDSID, DispensingVolume=@DispensingVolume,Remarks=@Remarks WHERE       BT_PrescriptionTemplateDetailTable.PrescriptionTemplateDetailID =@PrescriptionTemplateDetailIDEND--删除
IF(@Type='btnShanChu_Click_ShanChuChuFang')BEGINDELETE   BT_PrescriptionTemplateTableWHERE  BT_PrescriptionTemplateTable.PrescriptionTemplateID =@PrescriptionTemplateIDEND

(2)、逻辑层的代码:

[OperationContract]#region 修改处方模板信息public int btnBaoCun_Click_XiuGaiChuFangXinXi(string strTemplateName, int intDoctor_StaffID, int intAS_TemplateTypeID, int intAS_PrescriptionTypeID,int intTechnicalOfficesID, int intAS_TemplateSortID, string strPrescriptionRemarks, string strPrescriptionDiagnosis, int intPrescriptionTemplateID){SqlParameter[] SQLCMDpas ={                                         new  SqlParameter ("@Type",SqlDbType.Char),new  SqlParameter ("@TemplateName",SqlDbType.Char),new  SqlParameter ("@Doctor_StaffID",SqlDbType.Int),new  SqlParameter ("@AS_TemplateTypeID",SqlDbType.Int),new  SqlParameter ("@AS_PrescriptionTypeID",SqlDbType.Int),new  SqlParameter ("@TechnicalOfficesID",SqlDbType.Int),new  SqlParameter ("@AS_TemplateSortID",SqlDbType.Int),new  SqlParameter ("@PrescriptionRemarks",SqlDbType.Char),new  SqlParameter ("@PrescriptionDiagnosis",SqlDbType.Char), new  SqlParameter ("@PrescriptionTemplateID",SqlDbType.Int),};                                          SQLCMDpas[0].Value = "btnBaoCun_Click_XiuGaiChuFangXinXi";SQLCMDpas[1].Value = strTemplateName;SQLCMDpas[2].Value = intDoctor_StaffID;SQLCMDpas[3].Value = intAS_TemplateTypeID;SQLCMDpas[4].Value = intAS_PrescriptionTypeID;SQLCMDpas[5].Value = intTechnicalOfficesID;SQLCMDpas[6].Value = intAS_TemplateSortID;SQLCMDpas[7].Value = strPrescriptionRemarks;SQLCMDpas[8].Value = strPrescriptionDiagnosis;SQLCMDpas[9].Value = intPrescriptionTemplateID;int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_ChuFangMuBan", SQLCMDpas);return count;}#endregion[OperationContract]#region 修改处方模板明细public int btnBaoCun_Click_XiuGaiChuFangMingXi(int intPrescriptionTemplateID, int intDrugID, string strChineseMedicineNumberOfAgent,string strEachAgentDosage, int intAS_DrugUseMannerID, int intAS_DDDSID, string strDispensingVolume, string strRemarks,int intPrescriptionTemplateDetailID){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),new  SqlParameter ("@PrescriptionTemplateID",SqlDbType.Int),  new  SqlParameter ("@DrugID",SqlDbType.Int),                                         new  SqlParameter ("@ChineseMedicineNumberOfAgent",SqlDbType.Char),new  SqlParameter ("@EachAgentDosage",SqlDbType.Char),new  SqlParameter ("@AS_DrugUseMannerID",SqlDbType.Int),new  SqlParameter ("@AS_DDDSID",SqlDbType.Int),new  SqlParameter ("@DispensingVolume",SqlDbType.Char),new  SqlParameter ("@Remarks",SqlDbType.Char),new  SqlParameter ("@PrescriptionTemplateDetailID",SqlDbType.Int),};SQLCMDpas[0].Value = "btnBaoCun_Click_XiuGaiChuFangMingXi";SQLCMDpas[1].Value = intPrescriptionTemplateID;SQLCMDpas[2].Value = intDrugID;SQLCMDpas[3].Value = strChineseMedicineNumberOfAgent;SQLCMDpas[4].Value = strEachAgentDosage;SQLCMDpas[5].Value = intAS_DrugUseMannerID;SQLCMDpas[6].Value = intAS_DDDSID;SQLCMDpas[7].Value = strDispensingVolume;SQLCMDpas[8].Value = strRemarks;SQLCMDpas[9].Value = intPrescriptionTemplateDetailID;int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_ChuFangMuBan", SQLCMDpas);return count;}#endregion        [OperationContract]#region 删除处方模板public int btnShanChu_Click_ShanChuChuFang(int intPrescriptionTemplateID){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),new  SqlParameter ("@PrescriptionTemplateID",SqlDbType.Int),};SQLCMDpas[0].Value = "btnShanChu_Click_ShanChuChuFang";SQLCMDpas[1].Value = intPrescriptionTemplateID;int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_ChuFangMuBan", SQLCMDpas);return count;}#endregion

(3)、界面层的代码:

bool A = false;int DrugID = 0;//处方模板药品IDint count = 0;int intPrescriptionTemplateID;//处方模板ID#region load事件private void FRM_ChuFangMuBan_Update_Load(object sender, EventArgs e){DataTable dtDoctor = myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Insert_Load_ChaXunZhuanXieYiSheng().Tables[0];DataTable dtTechnicalOffices = myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Insert_Load_ChaXunKeShi().Tables[0];DataTable dtPrescriptionType = myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Load_ChaXunChuFangLeiXing().Tables[0];DataTable dtTemplateType = myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Load_ChaXunMuBanLeiXing().Tables[0];DataTable dtTemplateSort= myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Insert_Load_ChaXunMuBanFenLei().Tables[0];DataTable dtDrugUseManner = myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Insert_Load_ChaXunYongYaoFangShi().Tables[0];DataTable dtDDDS = myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Insert_Load_ChaXunYongYaoPinLv().Tables[0];cboDoctor = PublicStaticMothd.SetZhiXiaLaKuang(cboDoctor, dtDoctor, "StaffID", "StaffName");//绑定撰写医生的下拉框数据cboTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboTechnicalOffices, dtTechnicalOffices, "TechnicalOfficesID", "TechnicalOfficesName");//绑定撰写科室的下拉框数据cboPrescriptionType = PublicStaticMothd.SetZhiXiaLaKuang(cboPrescriptionType, dtPrescriptionType, "AttributeDetailsID", "AttributeDetailsName");//绑定处方类型的下拉框数据cboTemplateType = PublicStaticMothd.SetZhiXiaLaKuang(cboTemplateType, dtTemplateType, "AttributeDetailsID", "AttributeDetailsName");//绑定模板类型的下拉框数据cboTemplateSort = PublicStaticMothd.SetZhiXiaLaKuang(cboTemplateSort, dtTemplateSort, "AttributeDetailsID", "AttributeDetailsName");//绑定模板分类的下拉框数据cboDrugUseManner = PublicStaticMothd.SetZhiXiaLaKuang(cboDrugUseManner, dtDrugUseManner, "AttributeDetailsID", "AttributeDetailsName");//绑定用药方式的下拉框数据cboDDDS = PublicStaticMothd.SetZhiXiaLaKuang(cboDDDS, dtDDDS, "AttributeDetailsID", "AttributeDetailsName");//绑定用药频率的下拉框数据dgvYaoPin.Visible = false;//从主界面的DGV表格中给修改界面每个控件赋值txtTemplateName.Text = DGVR.Cells["模板名称"].Value.ToString().Trim();cboDoctor.SelectedValue = Convert.ToInt32(DGVR.Cells["撰写医生ID"].Value);cboTemplateType.SelectedValue = Convert.ToInt32(DGVR.Cells["模板类型ID"].Value);cboPrescriptionType.SelectedValue = Convert.ToInt32(DGVR.Cells["处方类型ID"].Value);cboTechnicalOffices.SelectedValue = Convert.ToInt32(DGVR.Cells["撰写科室ID"].Value);cboTemplateSort.SelectedValue = Convert.ToInt32(DGVR.Cells["模板分类ID"].Value);txtPrescriptionRemarks.Text = DGVR.Cells["处方备注"].Value.ToString().Trim();txtPrescriptionDiagnosis.Text = DGVR.Cells["处方诊断"].Value.ToString().Trim();intPrescriptionTemplateID = Convert.ToInt32(DGVR.Cells["处方模板ID"].Value);//根据处方模板ID查询处方明细信息DataTable dtPrescriptionTemplateDetail = myFRM_ChuFangMuBanClient.FRM_ChuFangMuBan_Load_ChaXunChuFangMingXi(intPrescriptionTemplateID).Tables[0];for (int i = 0; i < dtPrescriptionTemplateDetail.Rows.Count; i++)//循环处方明细信息的行数{//给处方模板明细的DGV赋值dgvChuFangMuBan.Rows.Add();dgvChuFangMuBan.Rows[i].Cells["处方模板明细ID"].Value = dtPrescriptionTemplateDetail.Rows[i]["PrescriptionTemplateDetailID"].ToString();dgvChuFangMuBan.Rows[i].Cells["处方模板ID"].Value = dtPrescriptionTemplateDetail.Rows[i]["PrescriptionTemplateID"].ToString();dgvChuFangMuBan.Rows[i].Cells["药品编号"].Value = dtPrescriptionTemplateDetail.Rows[i]["DrugEncoding"].ToString();dgvChuFangMuBan.Rows[i].Cells["药品名称"].Value = dtPrescriptionTemplateDetail.Rows[i]["DrugName"].ToString();dgvChuFangMuBan.Rows[i].Cells["药品规格"].Value = dtPrescriptionTemplateDetail.Rows[i]["DrugSpecification"].ToString();dgvChuFangMuBan.Rows[i].Cells["用药方式"].Value = dtPrescriptionTemplateDetail.Rows[i]["DrugUseManner"].ToString();dgvChuFangMuBan.Rows[i].Cells["用药频率"].Value = dtPrescriptionTemplateDetail.Rows[i]["DDDS"].ToString();dgvChuFangMuBan.Rows[i].Cells["备注"].Value = dtPrescriptionTemplateDetail.Rows[i]["Remarks"].ToString();dgvChuFangMuBan.Rows[i].Cells["剂数"].Value = dtPrescriptionTemplateDetail.Rows[i]["ChineseMedicineNumberOfAgent"];dgvChuFangMuBan.Rows[i].Cells["每剂用量"].Value = dtPrescriptionTemplateDetail.Rows[i]["EachAgentDosage"].ToString();dgvChuFangMuBan.Rows[i].Cells["用药总量"].Value = dtPrescriptionTemplateDetail.Rows[i]["DispensingVolume"].ToString();                dgvChuFangMuBan.Rows[i].Cells["处方药品ID"].Value = dtPrescriptionTemplateDetail.Rows[i]["DrugID"];dgvChuFangMuBan.Rows[i].Cells["用药方式ID"].Value = dtPrescriptionTemplateDetail.Rows[i]["AS_DrugUseMannerID"].ToString();dgvChuFangMuBan.Rows[i].Cells["用药频率ID"].Value = dtPrescriptionTemplateDetail.Rows[i]["AS_DDDSID"];}}#endregion#region 保存事件private void btnBaoCun_Click(object sender, EventArgs e){string strTemplateName = txtTemplateName.Text.ToString().Trim();//模板名称int intDoctor_StaffID = Convert.ToInt32(cboDoctor.SelectedValue);//撰写医生int intAS_TemplateTypeID = Convert.ToInt32(cboTemplateType.SelectedValue);//模板类型int intAS_PrescriptionTypeID = Convert.ToInt32(cboPrescriptionType.SelectedValue);//处方类型int intTechnicalOfficesID = Convert.ToInt32(cboTechnicalOffices.SelectedValue);//撰写科室int intAS_TemplateSortID = Convert.ToInt32(cboTemplateSort.SelectedValue);//模板分类string strPrescriptionRemarks = txtPrescriptionRemarks.Text.ToString().Trim();//处方模板备注string strPrescriptionDiagnosis = txtPrescriptionDiagnosis.Text.ToString().Trim();//处方模板诊断int A = 0; int a = 0; int M = 0;//声明三个整形变量并赋初始值0M = myFRM_ChuFangMuBanClient.btnBaoCun_Click_XiuGaiChuFangXinXi(strTemplateName,intDoctor_StaffID,intAS_TemplateTypeID,intAS_PrescriptionTypeID,intTechnicalOfficesID,intAS_TemplateSortID,strPrescriptionRemarks,strPrescriptionDiagnosis,intPrescriptionTemplateID);//M是新增数据的行数值为一,用来判断是否新增数据。foreach (DataGridViewRow dgvr in dgvChuFangMuBan.Rows)//循环处方模板的行数{if (dgvr.Cells["药品编号"].Value == null &&dgvr.Cells["药品名称"].Value == null &&dgvr.Cells["药品规格"].Value == null &&dgvr.Cells["每剂用量"].Value == null &&dgvr.Cells["用药方式"].Value == null &&dgvr.Cells["用药频率"].Value == null &&dgvr.Cells["备注"].Value == null &&dgvr.Cells["剂数"].Value == null &&dgvr.Cells["用药总量"].Value == null)//判断是否存在空数据{}else{int intPrescriptionTemplateDetailID;//声明处方模板明细的IDintPrescriptionTemplateDetailID = Convert.ToInt32(dgvr.Cells["处方模板明细ID"].Value);//把主界面的处方模板明细ID赋值给声明的处方模板明细的IDif (intPrescriptionTemplateDetailID == 0)//判断当处方模板明细ID等于0时{int intDrugID = Convert.ToInt32(dgvr.Cells["处方药品ID"].Value);string strChineseMedicineNumberOfAgent = dgvr.Cells["剂数"].Value.ToString();string strEachAgentDosage = dgvr.Cells["每剂用量"].Value.ToString();int intAS_DrugUseMannerID = Convert.ToInt32(dgvr.Cells["用药方式ID"].Value);int intAS_DDDSID = Convert.ToInt32(dgvr.Cells["用药频率ID"].Value);string strDispensingVolume = dgvr.Cells["用药总量"].Value.ToString();string strRemarks = dgvr.Cells["备注"].Value.ToString();                       a = myFRM_ChuFangMuBanClient.btnBaoCun_Click_XinZengChuFangMingXi(intPrescriptionTemplateID, intDrugID, strChineseMedicineNumberOfAgent,strEachAgentDosage, intAS_DrugUseMannerID, intAS_DDDSID, strDispensingVolume, strRemarks);//新增新的药品数据}else{int intDrugID1 = Convert.ToInt32(dgvr.Cells["处方药品ID"].Value);string strChineseMedicineNumberOfAgent1 = dgvr.Cells["剂数"].Value.ToString();string strEachAgentDosage1 = dgvr.Cells["每剂用量"].Value.ToString();int intAS_DrugUseMannerID1 = Convert.ToInt32(dgvr.Cells["用药方式ID"].Value);int intAS_DDDSID1 = Convert.ToInt32(dgvr.Cells["用药频率ID"].Value);string strDispensingVolume1 = dgvr.Cells["用药总量"].Value.ToString();string strRemarks1 = dgvr.Cells["备注"].Value.ToString();A = myFRM_ChuFangMuBanClient.btnBaoCun_Click_XiuGaiChuFangMingXi(intPrescriptionTemplateID, intDrugID1, strChineseMedicineNumberOfAgent1,strEachAgentDosage1, intAS_DrugUseMannerID1, intAS_DDDSID1, strDispensingVolume1, strRemarks1,intPrescriptionTemplateDetailID);//修改药品数据                 }                       }}if (a > 0 && A > 0 && M > 0 || A > 0 && M > 0 || a > 0 && A > 0)//判断是否全部数据都新增成功{MessageBox.Show("成功修改处方模板!" + "修改模板名称为:" + strTemplateName);this.Close();}else{MessageBox.Show("操作处方模板失败!" );}            }#endregion
#region 移除数据private void dgvChuFangMuBan_CellClick(object sender, DataGridViewCellEventArgs e){if (e.ColumnIndex == 0){DialogResult dr = MessageBox.Show("是否删除?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);//弹出确定对话框if (dr == DialogResult.OK)//如果点了确定按钮{dgvChuFangMuBan.Rows.RemoveAt(dgvChuFangMuBan.CurrentRow.Index);}}}#endregion

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

实现医生工作站的处方模板功能的代码(十一)相关推荐

  1. 实现医生工作站中处方录入功能的代码(六)

    实现医生工作站中处方录入功能的代码(六) 3.2.2处方录入 3.2.2.1处方录入主界面 处方录入这个模块可以实现医生根据病人病历来开药方,点击3.2.2.1(图1)"新增"按钮 ...

  2. 实现医生工作站的病历模板功能的代码(十)

    实现医生工作站的病历模板功能的代码(十) 3.2.6病历模板 3.2.6.1病历模板主界面 病历模板是在医生书写病历时用来调用用的,医生可以根据病人常得的病和对应病常用到的药书写成一个病历作为模板,当 ...

  3. 实现医生工作站的检查模板功能的代码(十四)

    实现医生工作站的检查模板功能的代码(十四) 3.2.10检查模板 3.2.10.1检查模板主界面 检查模板同其他模板相同都是供医生做参考和调用的.医生可以事先总结一些病的检查结果和诊断,当有某个病人的 ...

  4. 实现医生工作站的病程模板功能的代码(十二)

    实现医生工作站的病程模板功能的代码(十二) 3.2.8病程模板 3.2.8.1病程模板主界面 病程模板是记录每种病的历程,是供医生做参考的.医生可以通过记录病程从而熟悉每个病人的病和预测病的发展,从而 ...

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

    实现医生工作站的辅助检查功能的代码(七) 3.2.3辅助检查 3.2.3.1辅助检查主界面 辅助检查这个模块可以实现医生根据病人病历来开一些体检.化验.治疗.体检套餐.化验检查组合等的辅助检查项目.一 ...

  6. 实现医生工作站中书写病历功能的代码(五)

    实现医生工作站中书写病历功能的代码(五) 3.2医生工作站 3.2.1书写病历 3.2.1.1书写病历主界面 书写病历这个模块可以实现医生书写病历功能,点击3.2.1(图1)"新增" ...

  7. 北京协和医院住院医生工作站系统案例

    北京协和医院住院医生工作站系统案例   来源:支点网 作者: 医院信息化的根本目的是快捷全面地传递病人信息,为医生诊断和医院管理提供全方位服务,但全方位服务离不开IT和医学的全面结合,也就是临床管理的 ...

  8. 医院信息学项目-门诊医生工作站(1)

    一.系统建模与设计 时间:2019.03.28 1.1 系统设计 1.1.1系统角色定位 系统最终用户为医院挂号员.收费员和医生,这些职业的人群一般对计算机知识掌握都是较少,因此对本系统的操作方便性要 ...

  9. 承志医院管理系统项目解析 门诊医生工作站—书写病历(四)

    1.3门诊医生工作站 由门诊医生进行看病,开药与诊疗方案. 1.31书写病历 书写病历这个模块,主要是给病人写病历,如图(1) 图(1) 控件名称 说明 日期控件(DateTimePicker) 控件 ...

最新文章

  1. 基于Erlang语言的视频相似推荐系统 | 深度
  2. 杂项-权限管理:RBAC
  3. 多个视频切换时,只改变SourceFilter,不改变Filter Graph中其他Filter的C#实现
  4. C语言——数组、函数、指针
  5. 训练日志 2019.7.24
  6. MySQL客户端mysql常用命令
  7. JPA的单向一对多关联(oneToMany)实现示例(基于Spring Boot + JPA +MySQL,表自动维护)
  8. windows入门Elasticsearch7.10(es)之3:本地集群搭建
  9. 小米无线网卡linux驱动下载,Linux下安装MT7601U无线网卡驱动
  10. 地面监视雷达系统的设计与试验
  11. websphere liberty
  12. Android 第三方应用广告拦截实现
  13. C -CPT-SS-PDI 喜树碱-双硫键-聚苝酰亚胺/PEI-g–PLO 聚乙烯亚胺-聚L-鸟氨酸
  14. 使用支付宝支付出现问题:交易订单处理失败 请稍后再试 ALI38173
  15. [Python]Django模型(Model)
  16. Ten Digit Powers
  17. Android TV TIF源码阅读笔记
  18. Python 花瓣网动态爬虫
  19. 液晶弹性自由能计算_加州理工学院白若冰博士、Bhattacharya教授:光敏液晶弹性体中的光-力耦合...
  20. 打造H5动感影集的爱恨情仇(动画性能篇)

热门文章

  1. java中jquery怎么学,Jquery的基础学习
  2. java打包后的图片文件在哪,java程序打包jar文件自带图片
  3. Wikileaks公布CIA的代码混淆工具Marble
  4. opencv实现轮廓的内接正矩形
  5. 后端开发【一大波有用知识】Redis的线程模型和异步机制
  6. 校园通课表功能android,基于Android的“科师校园通”移动应用终端的设计与实现参考.doc...
  7. 24V转5V,24V转3.3V,24V转3V芯片,大电流降压和低功耗LDO
  8. 详解TCP协议与UDP协议的区别
  9. 爱普生L805开机后所有灯一起闪烁不打印
  10. 阿里云ecs windows 2008 安装ftp