实现医生工作站的病历模板功能的代码(十)
实现医生工作站的病历模板功能的代码(十)
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) |
员工照片 |
|
|
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
仅供学习,禁止用于商业用途。
实现医生工作站的病历模板功能的代码(十)相关推荐
- 实现医生工作站的处方模板功能的代码(十一)
实现医生工作站的处方模板功能的代码(十一) 3.2.7处方模板 处方模板这个模块实现医生根据病人病历来开药方的功能,点击3.2.2.1(图1)"新增"按钮弹出医生开取药方的界面,供 ...
- 实现医生工作站的检查模板功能的代码(十四)
实现医生工作站的检查模板功能的代码(十四) 3.2.10检查模板 3.2.10.1检查模板主界面 检查模板同其他模板相同都是供医生做参考和调用的.医生可以事先总结一些病的检查结果和诊断,当有某个病人的 ...
- 实现医生工作站的病程模板功能的代码(十二)
实现医生工作站的病程模板功能的代码(十二) 3.2.8病程模板 3.2.8.1病程模板主界面 病程模板是记录每种病的历程,是供医生做参考的.医生可以通过记录病程从而熟悉每个病人的病和预测病的发展,从而 ...
- 实现医生工作站的辅助检查功能的代码(七)
实现医生工作站的辅助检查功能的代码(七) 3.2.3辅助检查 3.2.3.1辅助检查主界面 辅助检查这个模块可以实现医生根据病人病历来开一些体检.化验.治疗.体检套餐.化验检查组合等的辅助检查项目.一 ...
- 实现医生工作站中处方录入功能的代码(六)
实现医生工作站中处方录入功能的代码(六) 3.2.2处方录入 3.2.2.1处方录入主界面 处方录入这个模块可以实现医生根据病人病历来开药方,点击3.2.2.1(图1)"新增"按钮 ...
- 承志医院管理系统项目解析 门诊医生工作站—书写病历(四)
1.3门诊医生工作站 由门诊医生进行看病,开药与诊疗方案. 1.31书写病历 书写病历这个模块,主要是给病人写病历,如图(1) 图(1) 控件名称 说明 日期控件(DateTimePicker) 控件 ...
- B/S电子病历编辑器源码,电子病历模板制作
B/S电子病历系统源码 电子病历编辑器源码 电子病历系统基于云端SaaS服务的方式,采用B/S(Browser/Server)架构提供,使用用户通过浏览器即能访问,无需关注系统的部署.维护.升级等问题 ...
- 实现医生工作站中书写病历功能的代码(五)
实现医生工作站中书写病历功能的代码(五) 3.2医生工作站 3.2.1书写病历 3.2.1.1书写病历主界面 书写病历这个模块可以实现医生书写病历功能,点击3.2.1(图1)"新增" ...
- 电子病历模板_年会献礼3:浮针专家平台病历撰写系统年会启动
面对全民健康保健飞速发展的迫切需求,我们浮针人以患者健康管理为理念,开发了一套基于JAVA云计算的浮针专家诊疗云平台,该系统于2017年3月份开始投入研发,同年12月份正式部署到阿里云上,一直由广东省 ...
最新文章
- mysql 变量set
- 一起认识FileShare
- hadoop2.2支持snappy压缩安装及配置
- RyuJIT的华丽转身
- 【转载】别了,摩托罗拉(十):“战争部落”和“独立王国”
- Eclips将lib打入war中
- linux内核端口绑定,linux 多网卡bonding 绑定 端口聚合
- C4d酷炫立体空间质感电商海报素材,紧抓时尚潮流
- 如何看待小米10的葫芦屏?
- 新AlphaGo这么强!36小时从0自学成大师,100:0把李世乭版秒成渣渣 | Nature论文
- 用户管理 之 Linux 用户管理工具介绍
- 给你一个全自动的屏幕适配方案(基于SW方案)二 —— Calces.Screen插件拓展功能升级...
- 图像 - 灰度化、灰度反转、二值化
- ES6的类Class基础知识点
- 郑州园博园“私房照”曝光,8月试运营对市民免费开放!这可是咱郑州人家门口的“苏州园林”!...
- Clonezilla克隆还原系统
- 微信公众号编辑有哪些实用的小工具和小技巧?
- Linux 环境下配置远程jupyter notebook server
- Linux修改主机名(静态主机名、临时主机名)
- mysql5.6 rpm安装配置