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

3.2.6病历模板

3.2.6.1病历模板主界面

病历模板是在医生书写病历时用来调用用的,医生可以根据病人常得的病和对应病常用到的药书写成一个病历作为模板,当某一病人来看病刚好有相似或相同的病时,医生就可以直接调用该病历。这样就可以方便医生书写病历的同时也为医生节省时间。进一步提高医生看病的效率。

主界面截图:

3.2.6.1(图1)

查询功能实现

第一步:数据库

1、  表与关系

3.2.6.1(图2)

表1:门诊病历模板表(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

表2:员工表(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

有效否

表3:科室表(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

有效否

表4:属性明细表(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_BingLiMuBan_Load_ChaXunBingLiDGV')BEGINSELECT     LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.OutpatientMedicalRecordsTemplateID ))AS OutpatientMedicalRecordsTemplateID, LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.TemplateNumber))AS TemplateNumber, LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.TemplateName))AS TemplateName, LTRIM(RTRIM(BT_StaffTable.StaffName))AS StaffName,LTRIM(RTRIM(BT_TechnicalOfficesTable.TechnicalOfficesName))AS TechnicalOfficesName, LTRIM(RTRIM(BT_AttributeDetailsTable.AttributeDetailsName))AS AttributeDetailsName, LTRIM(RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName))AS InvokingJurisdiction,BT_OutpatientMedicalRecordsTemplateTable.WhetherOperation AS WhetherOperation,LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.TemplateRemarks))AS TemplateRemarks,LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.SuitCase))AS SuitCase,LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.PatientActionInChief))AS PatientActionInChief, LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.PatientMedicalHistory))AS PatientMedicalHistory,LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.PhysicalExaminationCase))AS PhysicalExaminationCase, LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.InitialDiagnosis))AS InitialDiagnosis, LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.DisposeIdea))AS DisposeIdea, LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.WriteDoctor_StaffID))AS WriteDoctor_StaffID, LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.WriteTechnicalOfficesID))AS WriteTechnicalOfficesID, LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.AS_TemplateTypeID))AS AS_TemplateTypeID,LTRIM(RTRIM(BT_OutpatientMedicalRecordsTemplateTable.AS_InvokingJurisdictionID))AS AS_InvokingJurisdictionID              FROM         BT_OutpatientMedicalRecordsTemplateTable INNER JOINBT_StaffTable ON BT_OutpatientMedicalRecordsTemplateTable.WriteDoctor_StaffID = BT_StaffTable.StaffID INNER JOINBT_TechnicalOfficesTable ON BT_OutpatientMedicalRecordsTemplateTable.WriteTechnicalOfficesID = BT_TechnicalOfficesTable.TechnicalOfficesID INNER JOINBT_AttributeDetailsTable ON BT_OutpatientMedicalRecordsTemplateTable.AS_TemplateTypeID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOINBT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON BT_OutpatientMedicalRecordsTemplateTable.AS_InvokingJurisdictionID = BT_AttributeDetailsTable_1.AttributeDetailsID      END
--查询调用权限
IF(@Type ='FRM_BingLiMuBan_Insert_Load_ChaXunDiaoYongQuanXian')BEGINSELECT    LTRIM (RTRIM( AttributeDetailsID)) AS AttributeDetailsID, LTRIM (RTRIM(AttributeDetailsName)) AS AttributeDetailsNameFROM         BT_AttributeDetailsTableWHERE     BT_AttributeDetailsTable.AttributeSetID =25END
--查询模板类型
IF(@Type='FRM_BingLiMuBan_Insert_Load_ChaXunMuBanLeiXing')BEGINSELECT    LTRIM (RTRIM( AttributeDetailsID)) AS AttributeDetailsID, LTRIM (RTRIM(AttributeDetailsName)) AS AttributeDetailsNameFROM         BT_AttributeDetailsTableWHERE     BT_AttributeDetailsTable.AttributeSetID =42END
--查询撰写医生
IF(@Type='FRM_BingLiMuBan_Insert_Load_ChaXunZhuanXieYiSheng')BEGINSELECT    LTRIM(RTRIM( StaffID)) AS StaffID, LTRIM(RTRIM(StaffName)) AS StaffNameFROM         BT_StaffTableWHERE      BT_StaffTable.AS_StaffPositionID =21END
--查询科室
IF(@Type ='FRM_BingLiMuBan_Insert_Load_ChaXunKeShi')BEGINSELECT     LTRIM(RTRIM(TechnicalOfficesID )) AS TechnicalOfficesID, LTRIM(RTRIM(TechnicalOfficesName)) AS TechnicalOfficesNameFROM         BT_TechnicalOfficesTableEND

(2)、逻辑层代码:

[OperationContract]#region 查询病历模板public DataSet FRM_BingLiMuBan_Load_ChaXunBingLiDGV(){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),                                         };SQLCMDpas[0].Value = "FRM_BingLiMuBan_Load_ChaXunBingLiDGV";DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_BingLiMuBan", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion        [OperationContract]#region 查询调用权限public DataSet FRM_BingLiMuBan_Insert_Load_ChaXunDiaoYongQuanXian(){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),};SQLCMDpas[0].Value = "FRM_BingLiMuBan_Insert_Load_ChaXunDiaoYongQuanXian";DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_BingLiMuBan", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 查询模板类型public DataSet FRM_BingLiMuBan_Insert_Load_ChaXunMuBanLeiXing(){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),};SQLCMDpas[0].Value = "FRM_BingLiMuBan_Insert_Load_ChaXunMuBanLeiXing";DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_BingLiMuBan", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 查询撰写医生public DataSet FRM_BingLiMuBan_Insert_Load_ChaXunZhuanXieYiSheng(){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),};SQLCMDpas[0].Value = "FRM_BingLiMuBan_Insert_Load_ChaXunZhuanXieYiSheng";DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_BingLiMuBan", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion[OperationContract]#region 查询撰写科室public DataSet FRM_BingLiMuBan_Insert_Load_ChaXunKeShi(){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),};SQLCMDpas[0].Value = "FRM_BingLiMuBan_Insert_Load_ChaXunKeShi";DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_BingLiMuBan", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion

(3)、界面层代码:

#region 多条件查询private void tsbtnSelect_Click(object sender, EventArgs e){string GuoLvTiaoJian = "";//声明一个字符串变量,作为过滤条件。if (chkTemplateNumber.Checked) //模板编号的复选框被选中{GuoLvTiaoJian = "TemplateNumber like '%" + txtTemplateNumber.Text.ToString().Trim() + "%'";//模板编号已作为查询条件}if (chkTemplateName.Checked) //模板名称的复选框被选中{if (GuoLvTiaoJian != "")//过滤条件不为空{GuoLvTiaoJian = GuoLvTiaoJian + "and  TemplateName like '%" + txtTemplateName.ToString().Trim() + "%'";//查询条件又增加一个模板名称}else{GuoLvTiaoJian = "TemplateName like '%" + txtTemplateName.Text.ToString().Trim() + "%'";//只有模板名称作为查询条件}}if (chkWriteDoctor.Checked) //撰写医生的复选框被选中{if (GuoLvTiaoJian != "")//过滤条件不为空{GuoLvTiaoJian = GuoLvTiaoJian + "and WriteDoctor_StaffID=" + cboWriteDoctor.SelectedValue; //模板名称结合其它被选中的条件形成多条件查询。}else{GuoLvTiaoJian = "WriteDoctor_StaffID=" + cboWriteDoctor.SelectedValue; //只有撰写医生作为查询条件}}if (chkWriteTechnicalOffices.Checked) //撰写科室的复选框被选中{if (GuoLvTiaoJian != "")//过滤条件不为空{GuoLvTiaoJian = GuoLvTiaoJian + "and WriteTechnicalOfficesID=" + cboWriteTechnicalOffices.SelectedValue; //撰写科室结合其它被选中的条件形成多条件查询。}else{GuoLvTiaoJian = "WriteTechnicalOfficesID=" + cboWriteTechnicalOffices.SelectedValue; //只有撰写科室作为查询条件}}if (chkTemplateType.Checked) //模板类型的复选框被选中{if (GuoLvTiaoJian != "")//过滤条件不为空{GuoLvTiaoJian = GuoLvTiaoJian + "and AS_TemplateTypeID=" + cboTemplateType.SelectedValue; //模板类型结合其它被选中的条件形成多条件查询。}else{GuoLvTiaoJian = "AS_TemplateTypeID=" + cboTemplateType.SelectedValue; //只有模板类型作为查询条件}}if (chkInvokingJurisdiction.Checked) //调用权限的复选框被选中{if (GuoLvTiaoJian != "")//过滤条件不为空{GuoLvTiaoJian = GuoLvTiaoJian + "and AS_InvokingJurisdictionID=" + cboInvokingJurisdiction.SelectedValue; //调用权限结合其它被选中的条件形成多条件查询。}else{GuoLvTiaoJian = "AS_InvokingJurisdictionID=" + cboInvokingJurisdiction.SelectedValue; //只有调用权限作为查询条件}}DataTable dtDGV = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Load_ChaXunBingLiDGV().Tables[0]; //查询病历信息DataView DV = new DataView(dtDGV); //自定义一个视图并赋值查询出来的病历模板单据DataTable dt = new DataTable();//声明一个空表if (GuoLvTiaoJian != "")//过滤条件不为空{DV.RowFilter = GuoLvTiaoJian; //筛选自定义视图根据查询条件查到的数据dt = DV.ToTable();//把自定义视图筛选的数据转换成一个表赋值给事先声明的空}if (GuoLvTiaoJian == "")//过滤条件为空{dt = DV.ToTable();//查询所有病例模板信息}dgvBingLiMuBan.DataSource = dt;}#endregion

删除门诊病历模板

(1)、存储过程代码:

--删除病历
IF(@Type='btnShanChu_Click_ShanChuBingLi')  BEGINDELETE      BT_OutpatientMedicalRecordsTemplateTableWHERE       BT_OutpatientMedicalRecordsTemplateTable.OutpatientMedicalRecordsTemplateID =@OutpatientMedicalRecordsTemplateIDEND

(2)、逻辑层代码:

[OperationContract]#region 删除病历模板public int btnShanChu_Click_ShanChuBingLi(int intOutpatientMedicalRecordsTemplateID){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),new  SqlParameter ("@OutpatientMedicalRecordsTemplateID",SqlDbType.Int),};SQLCMDpas[0].Value = "btnShanChu_Click_ShanChuBingLi";SQLCMDpas[1].Value = intOutpatientMedicalRecordsTemplateID;int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_BingLiMuBan", SQLCMDpas);return count;}#endregion

(3)、界面层代码:

#region 删除事件private void tsbtnDelete_Click(object sender, EventArgs e){DialogResult dr = MessageBox.Show("是否删除?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);//弹出确定对话框if (dr == DialogResult.OK)//如果点了确定按钮{OutpatientMedicalRecordsTemplateID = Convert.ToInt32(dgvBingLiMuBan.CurrentRow.Cells["病历模板ID"].Value);if (OutpatientMedicalRecordsTemplateID != 0){myFRM_BingLiMuBanClient.btnShanChu_Click_ShanChuBingLi(OutpatientMedicalRecordsTemplateID);dgvBingLiMuBan.DataSource = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Load_ChaXunBingLiDGV().Tables[0];}else{MessageBox.Show("请选择要删除的行。");}}}#endregion

3.2.6.2新增病历模板

点击3.2.6.1(图1)的“新增”按钮事件弹出编辑门诊病历模板界面,供医生编辑病历模板,病历模板涉及到病人主诉、病人病史、体检情况等字段,模板编号是自动生成的。

新增病历模板截图:

3.2.6.2(图1)

功能代码:

编辑病历模板

(1)、存储过程代码:

--新增病历
IF(@Type='btnBaoCun_Click_XinZengBingLi')BEGINBEGIN TRANINSERT     BT_OutpatientMedicalRecordsTemplateTable(TemplateNumber, TemplateName, WriteDoctor_StaffID, WriteTechnicalOfficesID, AS_TemplateTypeID, AS_InvokingJurisdictionID, WhetherOperation, TemplateRemarks, SuitCase, PatientActionInChief, PatientMedicalHistory, PhysicalExaminationCase, InitialDiagnosis, DisposeIdea)              VALUES     (@TemplateNumber, @TemplateName, @WriteDoctor_StaffID, @WriteTechnicalOfficesID, @AS_TemplateTypeID, @AS_InvokingJurisdictionID, @WhetherOperation, @TemplateRemarks, @SuitCase,               @PatientActionInChief, @PatientMedicalHistory, @PhysicalExaminationCase, @InitialDiagnosis, @DisposeIdea)       SELECT @@IDENTITY COMMIT TRANEND
--查询最大单据号
IF(@Type ='btnBaoCun_ClickSelectZuiDaDanJuHao')BEGINUPDATE    PW_TheLargestNumberStatisticalTable SET       MaximumNumberOfDocumentsToTheOutpatientMedicalRecords=MaximumNumberOfDocumentsToTheOutpatientMedicalRecords+1SELECT    MaximumNumberOfDocumentsToTheOutpatientMedicalRecordsFROM      PW_TheLargestNumberStatisticalTableEND

(2)、逻辑层代码:

[OperationContract]#region 新增病历模板public int btnBaoCun_Click_XinZengBingLi(string strTemplateNumber, string strTemplateName, int intWriteDoctor_StaffID,int intWriteTechnicalOfficesID, int intAS_TemplateTypeID, int intAS_InvokingJurisdictionID, bool blWhetherOperation, string strTemplateRemarks,string strSuitCase, string strPatientActionInChief, string strPatientMedicalHistory, string strPhysicalExaminationCase, string strInitialDiagnosis, string strDisposeIdea){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),new  SqlParameter ("@TemplateNumber",SqlDbType.Char),new  SqlParameter ("@TemplateName",SqlDbType.Char),new  SqlParameter ("@WriteDoctor_StaffID",SqlDbType.Int),new  SqlParameter ("@WriteTechnicalOfficesID",SqlDbType.Int),new  SqlParameter ("@AS_TemplateTypeID",SqlDbType.Int),new  SqlParameter ("@AS_InvokingJurisdictionID",SqlDbType.Int),                                       new  SqlParameter ("@WhetherOperation",SqlDbType.Bit),new  SqlParameter ("@TemplateRemarks",SqlDbType.Char),new  SqlParameter ("@SuitCase",SqlDbType.Char),new  SqlParameter ("@PatientActionInChief",SqlDbType.Char),new  SqlParameter ("@PatientMedicalHistory",SqlDbType.Char),  new  SqlParameter ("@PhysicalExaminationCase",SqlDbType.Char),new  SqlParameter ("@InitialDiagnosis",SqlDbType.Char),new  SqlParameter ("@DisposeIdea",SqlDbType.Char),  };SQLCMDpas[0].Value = "btnBaoCun_Click_XinZengBingLi";SQLCMDpas[1].Value = strTemplateNumber;SQLCMDpas[2].Value = strTemplateName;SQLCMDpas[3].Value = intWriteDoctor_StaffID;SQLCMDpas[4].Value = intWriteTechnicalOfficesID;SQLCMDpas[5].Value = intAS_TemplateTypeID;SQLCMDpas[6].Value = intAS_InvokingJurisdictionID;SQLCMDpas[7].Value = blWhetherOperation;SQLCMDpas[8].Value = strTemplateRemarks;SQLCMDpas[9].Value = strSuitCase;SQLCMDpas[10].Value = strPatientActionInChief;SQLCMDpas[11].Value = strPatientMedicalHistory;SQLCMDpas[12].Value = strPhysicalExaminationCase;SQLCMDpas[13].Value = strInitialDiagnosis;SQLCMDpas[14].Value = strDisposeIdea;int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_BingLiMuBan", SQLCMDpas);return count;}#endregion[OperationContract]#region 查询最大门诊病历数public DataSet btnBaoCun_ClickSelectZuiDaDanJuHao(){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),};SQLCMDpas[0].Value = "btnBaoCun_ClickSelectZuiDaDanJuHao";DataTable myDataTable = myDALMethod.QueryDataTable("YiShengGongZuoZhan_FRM_BingLiMuBan", SQLCMDpas);DataSet myDataSet = new DataSet();myDataSet.Tables.Add(myDataTable);return myDataSet;}#endregion

(3)、界面层代码:

#region 声明全局变量BLL医院管理系统.YiShengGongZuoZhan.FRM_BingLiMuBan.FRM_BingLiMuBanClient myFRM_BingLiMuBanClient= new BLL医院管理系统.YiShengGongZuoZhan.FRM_BingLiMuBan.FRM_BingLiMuBanClient();#endregion        #region 保存事件private void btnBaoCun_Click(object sender, EventArgs e){#region 生成订单号           string strDanShu;//声明单数string strDanHao;//声明单号string strBingLiHaoJianCheng = "DD";//声明单号简称DateTime JieDingDanShiJian = DateTime.Now;//声明接单时间strDanShu = myFRM_BingLiMuBanClient.btnBaoCun_ClickSelectZuiDaDanJuHao().Tables[0].Rows[0][0].ToString().Trim();//查询最大单据switch (strDanShu.Length){case 1: strDanShu = "000" + strDanShu; break; //case 2: strDanShu = "00" + strDanShu; break;case 3: strDanShu = "0" + strDanShu; break;default: break;}strDanHao = ShengChengDanHao(strBingLiHaoJianCheng, strDanShu).ToString();txtTemplateNumber.Text = strDanHao;//病历编号            #endregionstring strTemplateNumber = txtTemplateNumber.Text.ToString().Trim();string strTemplateName = txtTemplateName.Text.ToString().Trim();int intWriteDoctor_StaffID = Convert.ToInt32(cboWriteTechnicalOffices.SelectedValue);int intWriteTechnicalOfficesID = Convert.ToInt32(cboTechnicalOffices.SelectedValue);int intAS_TemplateTypeID = Convert.ToInt32(cboTemplateType.SelectedValue);int intAS_InvokingJurisdictionID = Convert.ToInt32(cboInvokingJurisdiction.SelectedValue);bool blWhetherOperation = Convert.ToBoolean(chkShiFouShouShu.Checked);string strTemplateRemarks = txtMuBanBeiZhu.Text.ToString().Trim();string strSuitCase = txtSuitCase.Text.ToString().Trim();string strPatientActionInChief = rTxtPatientActionInChief.Text.ToString().Trim();string strPatientMedicalHistory = rTxtPatientMedicalHistory.Text.ToString().Trim();string strPhysicalExaminationCase = rTxtPhysicalExaminationCase.Text.ToString().Trim();string strInitialDiagnosis = rTxtInitialDiagnosis.Text.ToString().Trim();string strDisposeIdea = rTxtDisposeIdea.Text.ToString().Trim();if (strTemplateNumber != "" && strTemplateName != "" && intWriteDoctor_StaffID.ToString() != "" && intWriteTechnicalOfficesID.ToString() != "" &&intAS_TemplateTypeID.ToString() != "" && intAS_InvokingJurisdictionID.ToString() != "" && strTemplateRemarks != "" && strSuitCase != "" &&strPatientActionInChief != "" && strPatientMedicalHistory != "" && strPhysicalExaminationCase != "" && strInitialDiagnosis != "" && strDisposeIdea != ""){int count = myFRM_BingLiMuBanClient.btnBaoCun_Click_XinZengBingLi(strTemplateNumber, strTemplateName, intWriteDoctor_StaffID,intWriteTechnicalOfficesID, intAS_TemplateTypeID, intAS_InvokingJurisdictionID, blWhetherOperation, strTemplateRemarks, strSuitCase,strPatientActionInChief, strPatientMedicalHistory, strPhysicalExaminationCase, strInitialDiagnosis, strDisposeIdea);if (count > 0){MessageBox.Show("新增病历成功。。。");this.Close();}}else{MessageBox.Show("病历内容还没填完,请继续。。。");}}#endregion#region Load 事件private void FRM_BingLiMuBan_Insert_Load(object sender, EventArgs e){DataTable dtDiaoYongQuanXian = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Insert_Load_ChaXunDiaoYongQuanXian().Tables[0];DataTable dtMuBanLeiXing = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Insert_Load_ChaXunMuBanLeiXing().Tables[0];DataTable dtZhuanXieYiSheng = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Insert_Load_ChaXunZhuanXieYiSheng().Tables[0];DataTable dtZhuanXieKeShi = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Insert_Load_ChaXunKeShi().Tables[0];cboInvokingJurisdiction = PublicStaticMothd.SetZhiXiaLaKuang(cboInvokingJurisdiction, dtDiaoYongQuanXian, "AttributeDetailsID", "AttributeDetailsName");cboTemplateType = PublicStaticMothd.SetZhiXiaLaKuang(cboTemplateType, dtMuBanLeiXing, "AttributeDetailsID", "AttributeDetailsName");cboWriteTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboWriteTechnicalOffices, dtZhuanXieYiSheng, "StaffID", "StaffName");cboTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboTechnicalOffices, dtZhuanXieKeShi, "TechnicalOfficesID", "TechnicalOfficesName",true);}#endregion#region 生成门诊病历编号public string ShengChengDanHao(string strJieZhangJianCheng, string strDanShu)//生成单号{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 strJieZhangJianCheng + strYear + strMonth + strDay + strDanShu;}#endregion

3.2.6.3修改病历模板

点击3.2.6.1(图1)的“修改”按钮弹出修改门诊病历模板界面,该界面是提供给医生对错误的门诊病历模板进行修正。

修改病历模板截图:

3.2.6.3(图1)

功能代码

修改门诊病历模板

(1)、存储过程代码:

--修改病历
IF(@Type ='btnBaoCun_Click_XiuGaiBingLi')BEGINUPDATE      BT_OutpatientMedicalRecordsTemplateTableSET         TemplateNumber=@TemplateNumber, TemplateName=@TemplateName, WriteDoctor_StaffID=@WriteDoctor_StaffID, WriteTechnicalOfficesID=@WriteTechnicalOfficesID,AS_TemplateTypeID=@AS_TemplateTypeID, AS_InvokingJurisdictionID=@AS_InvokingJurisdictionID, WhetherOperation=@WhetherOperation, TemplateRemarks=@TemplateRemarks,SuitCase=@SuitCase,                             PatientActionInChief=@PatientActionInChief, PatientMedicalHistory=@PatientMedicalHistory, PhysicalExaminationCase=@PhysicalExaminationCase, InitialDiagnosis=@InitialDiagnosis, DisposeIdea=@DisposeIdeaWHERE       BT_OutpatientMedicalRecordsTemplateTable.OutpatientMedicalRecordsTemplateID =@OutpatientMedicalRecordsTemplateIDEND

(2)、逻辑层代码:

[OperationContract]#region 修改病历模板public int btnBaoCun_Click_XiuGaiBingLi(string strTemplateNumber, string strTemplateName, int intWriteDoctor_StaffID,int intWriteTechnicalOfficesID, int intAS_TemplateTypeID, int intAS_InvokingJurisdictionID, bool blWhetherOperation, string strTemplateRemarks,string strSuitCase, string strPatientActionInChief, string strPatientMedicalHistory, string strPhysicalExaminationCase, string strInitialDiagnosis,string strDisposeIdea, int intOutpatientMedicalRecordsTemplateID){SqlParameter[] SQLCMDpas ={new  SqlParameter ("@Type",SqlDbType.Char),new  SqlParameter ("@TemplateNumber",SqlDbType.Char),new  SqlParameter ("@TemplateName",SqlDbType.Char),new  SqlParameter ("@WriteDoctor_StaffID",SqlDbType.Int),new  SqlParameter ("@WriteTechnicalOfficesID",SqlDbType.Int),new  SqlParameter ("@AS_TemplateTypeID",SqlDbType.Int),new  SqlParameter ("@AS_InvokingJurisdictionID",SqlDbType.Int),                                       new  SqlParameter ("@WhetherOperation",SqlDbType.Bit),new  SqlParameter ("@TemplateRemarks",SqlDbType.Char),new  SqlParameter ("@SuitCase",SqlDbType.Char),new  SqlParameter ("@PatientActionInChief",SqlDbType.Char),new  SqlParameter ("@PatientMedicalHistory",SqlDbType.Char),  new  SqlParameter ("@PhysicalExaminationCase",SqlDbType.Char),new  SqlParameter ("@InitialDiagnosis",SqlDbType.Char),new  SqlParameter ("@DisposeIdea",SqlDbType.Char),new  SqlParameter ("@OutpatientMedicalRecordsTemplateID",SqlDbType.Int),};SQLCMDpas[0].Value = "btnBaoCun_Click_XiuGaiBingLi";SQLCMDpas[1].Value = strTemplateNumber;SQLCMDpas[2].Value = strTemplateName;SQLCMDpas[3].Value = intWriteDoctor_StaffID;SQLCMDpas[4].Value = intWriteTechnicalOfficesID;SQLCMDpas[5].Value = intAS_TemplateTypeID;SQLCMDpas[6].Value = intAS_InvokingJurisdictionID;SQLCMDpas[7].Value = blWhetherOperation;SQLCMDpas[8].Value = strTemplateRemarks;SQLCMDpas[9].Value = strSuitCase;SQLCMDpas[10].Value = strPatientActionInChief;SQLCMDpas[11].Value = strPatientMedicalHistory;SQLCMDpas[12].Value = strPhysicalExaminationCase;SQLCMDpas[13].Value = strInitialDiagnosis;SQLCMDpas[14].Value = strDisposeIdea;SQLCMDpas[15].Value = intOutpatientMedicalRecordsTemplateID;int count = myDALMethod.UpdateData("YiShengGongZuoZhan_FRM_BingLiMuBan", SQLCMDpas);return count;}#endregion

(3)、界面层代码:

#region 声明全局变量BLL医院管理系统 .YiShengGongZuoZhan .FRM_BingLiMuBan .FRM_BingLiMuBanClient myFRM_BingLiMuBanClient =new BLL医院管理系统.YiShengGongZuoZhan.FRM_BingLiMuBan.FRM_BingLiMuBanClient ();           #endregion#region Load事件private void FRM_BingLiMuBan_Update_Load(object sender, EventArgs e){DataTable dtDiaoYongQuanXian = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Insert_Load_ChaXunDiaoYongQuanXian().Tables[0];DataTable dtMuBanLeiXing = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Insert_Load_ChaXunMuBanLeiXing().Tables[0];DataTable dtZhuanXieYiSheng = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Insert_Load_ChaXunZhuanXieYiSheng().Tables[0];DataTable dtZhuanXieKeShi = myFRM_BingLiMuBanClient.FRM_BingLiMuBan_Insert_Load_ChaXunKeShi().Tables[0];cboInvokingJurisdiction = PublicStaticMothd.SetZhiXiaLaKuang(cboInvokingJurisdiction, dtDiaoYongQuanXian, "AttributeDetailsID", "AttributeDetailsName");cboTemplateType = PublicStaticMothd.SetZhiXiaLaKuang(cboTemplateType, dtMuBanLeiXing, "AttributeDetailsID", "AttributeDetailsName");cboWriteTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboWriteTechnicalOffices, dtZhuanXieYiSheng, "StaffID", "StaffName");cboTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboTechnicalOffices, dtZhuanXieKeShi, "TechnicalOfficesID", "TechnicalOfficesName");txtTemplateNumber.Text = DGVR.Cells["TemplateNumber"].Value.ToString();txtTemplateName.Text = DGVR.Cells["TemplateName"].Value.ToString();cboWriteTechnicalOffices.SelectedValue = Convert.ToInt32(DGVR.Cells["StaffID"].Value.ToString());cboTechnicalOffices.SelectedValue = Convert.ToInt32(DGVR.Cells["WriteTechnicalOfficesID"].Value.ToString());cboTemplateType.SelectedValue = Convert.ToInt32(DGVR.Cells["TemplateTypeID"].Value.ToString());cboInvokingJurisdiction.SelectedValue = Convert.ToInt32(DGVR.Cells["InvokingJurisdictionID"].Value);txtTemplateRemarks.Text = DGVR.Cells["TemplateRemarks"].Value.ToString();txtSuitCase.Text = DGVR.Cells["SuitCase"].Value.ToString();rTxtPatientActionInChief.Text = DGVR.Cells["PatientActionInChief"].Value.ToString();rTxtPatientMedicalHistory.Text = DGVR.Cells["PatientMedicalHistory"].Value.ToString();rTxtPhysicalExaminationCase.Text = DGVR.Cells["PhysicalExaminationCase"].Value.ToString();rTxtInitialDiagnosis.Text = DGVR.Cells["InitialDiagnosis"].Value.ToString();rTxtDisposeIdea.Text = DGVR.Cells["DisposeIdea"].Value.ToString();if (Convert.ToInt32(DGVR.Cells["WhetherOperation"].Value) == 1){chkWhetherOperation.Checked = true;}else{chkWhetherOperation.Checked = false;}}#endregion#region 修改保存事件private void btnBaoCun_Click(object sender, EventArgs e){if (txtTemplateNumber.Text != "" && txtTemplateName.Text != "" && cboWriteTechnicalOffices.SelectedValue.ToString() != "" &&cboTechnicalOffices.SelectedValue.ToString() != "" && cboTemplateType.SelectedValue.ToString() != "" &&cboInvokingJurisdiction.SelectedValue.ToString() != "" && txtTemplateRemarks.Text != "" && txtSuitCase.Text != "" &&rTxtPatientActionInChief.Text != "" && rTxtPatientMedicalHistory.Text != "" && rTxtPhysicalExaminationCase.Text != "" && rTxtInitialDiagnosis.Text!= "" && rTxtDisposeIdea.Text!="")                {string strTemplateNumber = txtTemplateNumber.Text.ToString().Trim();string strTemplateName = txtTemplateName.Text.ToString().Trim();int intWriteDoctor_StaffID = Convert.ToInt32(cboWriteTechnicalOffices.SelectedValue);int intWriteTechnicalOfficesID = Convert.ToInt32(cboTechnicalOffices.SelectedValue);int intAS_TemplateTypeID = Convert.ToInt32(cboTemplateType.SelectedValue);int intAS_InvokingJurisdictionID = Convert.ToInt32(cboInvokingJurisdiction.SelectedValue);bool blWhetherOperation = Convert.ToBoolean(chkWhetherOperation.Checked);string strTemplateRemarks = txtTemplateRemarks.Text.ToString().Trim();string strSuitCase = txtSuitCase.Text.ToString().Trim();string strPatientActionInChief = rTxtPatientActionInChief.Text.ToString().Trim();string strPatientMedicalHistory = rTxtPatientMedicalHistory.Text.ToString().Trim();string strPhysicalExaminationCase = rTxtPhysicalExaminationCase.Text.ToString().Trim();string strInitialDiagnosis = rTxtInitialDiagnosis.Text.ToString().Trim();string strDisposeIdea = rTxtDisposeIdea.Text.ToString().Trim();int intOutpatientMedicalRecordsTemplateID = Convert.ToInt32(DGVR.Cells["OutpatientMedicalRecordsID"].Value.ToString());            int count=  myFRM_BingLiMuBanClient.btnBaoCun_Click_XiuGaiBingLi(strTemplateNumber, strTemplateName, intWriteDoctor_StaffID,intWriteTechnicalOfficesID, intAS_TemplateTypeID, intAS_InvokingJurisdictionID, blWhetherOperation, strTemplateRemarks, strSuitCase,strPatientActionInChief, strPatientMedicalHistory, strPhysicalExaminationCase, strInitialDiagnosis, strDisposeIdea,intOutpatientMedicalRecordsTemplateID);if (count > 0){MessageBox.Show("修改病历成功,修改的单据为:" + strTemplateNumber);this.Close();}else{MessageBox.Show("修改病历失败!");}} else{MessageBox.Show("请把数据填写完整!");}}#endregion

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

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

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

    实现医生工作站的处方模板功能的代码(十一) 3.2.7处方模板 处方模板这个模块实现医生根据病人病历来开药方的功能,点击3.2.2.1(图1)"新增"按钮弹出医生开取药方的界面,供 ...

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

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

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

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

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

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

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

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

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

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

  7. B/S电子病历编辑器源码,电子病历模板制作

    B/S电子病历系统源码 电子病历编辑器源码 电子病历系统基于云端SaaS服务的方式,采用B/S(Browser/Server)架构提供,使用用户通过浏览器即能访问,无需关注系统的部署.维护.升级等问题 ...

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

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

  9. 电子病历模板_年会献礼3:浮针专家平台病历撰写系统年会启动

    面对全民健康保健飞速发展的迫切需求,我们浮针人以患者健康管理为理念,开发了一套基于JAVA云计算的浮针专家诊疗云平台,该系统于2017年3月份开始投入研发,同年12月份正式部署到阿里云上,一直由广东省 ...

最新文章

  1. mysql 变量set
  2. 一起认识FileShare
  3. hadoop2.2支持snappy压缩安装及配置
  4. RyuJIT的华丽转身
  5. 【转载】别了,摩托罗拉(十):“战争部落”和“独立王国”
  6. Eclips将lib打入war中
  7. linux内核端口绑定,linux 多网卡bonding 绑定 端口聚合
  8. C4d酷炫立体空间质感电商海报素材,紧抓时尚潮流
  9. 如何看待小米10的葫芦屏?
  10. 新AlphaGo这么强!36小时从0自学成大师,100:0把李世乭版秒成渣渣 | Nature论文
  11. 用户管理 之 Linux 用户管理工具介绍
  12. 给你一个全自动的屏幕适配方案(基于SW方案)二 —— Calces.Screen插件拓展功能升级...
  13. 图像 - 灰度化、灰度反转、二值化
  14. ES6的类Class基础知识点
  15. 郑州园博园“私房照”曝光,8月试运营对市民免费开放!这可是咱郑州人家门口的“苏州园林”!...
  16. Clonezilla克隆还原系统
  17. 微信公众号编辑有哪些实用的小工具和小技巧?
  18. Linux 环境下配置远程jupyter notebook server
  19. Linux修改主机名(静态主机名、临时主机名)
  20. mysql5.6 rpm安装配置

热门文章

  1. 群晖 python_利用群晖Docker安装ubuntu16.04搭建python网站服务器(安装篇)
  2. iPhone退出恢复模式失败怎么办?
  3. Android修改系统语言
  4. java实现串的反转
  5. signature=6f1ae6ad5c67016da86cc9325f33f066,中国石油自主聚丙烯熔喷专用料开发成功
  6. wddns安装及使用
  7. JAVA1V1人机对战游戏
  8. 数字经济时代怎能没有数字钱包?| 区块链数据货币钱包系列一
  9. IB纪录:At the heard of the image
  10. 【总结】回顾2021,年终总结