prescription的急性肠胃炎病例怎么写写

电子病历数据集分解_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
电子病历数据集分解
上传于||文档简介
&&电​子​病​历​标​准​数​据​集​结​构​化​分​解​规​范
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩28页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢医学词汇_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢医院诊断证明翻译模板--拿到国外给医生看要第三方翻译公司才可以翻译!
发布时间: 11:55:32
出院诊断证明翻译模板,出国就医看病之材料必备,翻译
Beijing Children's Hospital of Capital Medical University (for reference by insurance company)
Name: x&& Gender: male& Age: 8 years and 7 months and 25 days old& Admission No.: 604321&& Admission Date: February 12th 2013&&&&&&&&&&&&&&&&&
Discharge Date: March 4th 2013
Discharge diagnosis
Leave prognosis
Discharge information
(1) I diabetes mellitus
Improvement
(2) Diabetic ketosis
(3) Mild dehydration
(4) Acute upper respiratory infection
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Matters needing attention after discharge
Actively improve the way of life, low-salt diet, the daily calories shall be controlled at around 1600 kilocalorie considering both the growth and disease control needs. In addition, please do moderate exercise after eating. When the blood sugar is more than 15mmol/L, constrain exercise movement and test the urine acetone bodies.
At present, the diabetes mellitus requires lifelong treatment and I diabetes mellitus need lifelong insulin injections. Now, the proportion between the short-acting and the intermediate-acting of subcutaneous insulin injection (before breakfast) is 3IU:7IU; the proportion between the short-acting and the intermediate-acting of subcutaneous insulin injection (before dinner) is 1IU:2IU. The patient shall timely adjust the dosage according to the blood sugar information.
Strengthen the blood sugar monitoring. When the blood sugar is stable, the patient should test for 4 times. When the blood sugar fluctuates, the patient should test for 7 times. Pay attention to the symptoms of low blood sugar to avoid low blood sugar. If the blood sugar is lower than 4mmol/L, the patient can drink 200 if the blood sugar is lower than 3mmol/L, the patient can drink10gglucose or sugared beverages. After 15 to 30 minutes, retest the blood sugar. If the blood sugar is lower than 2mmol/L or such symptoms as dizziness, palpitation, sweat and weakness, etc appear, the patient shall be immediately rescued and timely see a doctor. The blood sugar control target is 5 to 8 mmol/L before breakfast and 5 to 10 mmol/L two hours after meal and the glycosylated hemoglobin shall be lower than 7.5%.
Attend the diabetes mellitus outpatient service clinic after 2 weeks and retest such 4 items as glycosylated hemoglobin, fasting blood glucose, fasting C-Peptide, routine urine test and tg chohdlldl, etc.
Monitor the body weight, height, blood pressure and growth and development information.
Adhere to record diabetes diary everyday (insulin dosage, blood glycosuria test results, food intake and special event).
Adhere to diabetes mellitus outpatient service for follow-up clinic for a long term. When the patient's condition is changed, timely go to the endocrine outpatient for follow-up clinic.
Things that need to bring: the parent need to check:
1 Reexamination laboratory test report: glycosylated hemoglobin, fasting blood glucose, fasting C-Peptide, routine urine test, tg chohdlldl and thyroid function five-item tests.
2 Diabetes health education prescription/ Obesity health education prescription
3 A piece of diabetes diary header
After discharge, the patient shall continue to take12gXiaoer Resuqing Granules orally for three days and three times each day. The patient shall periodically reexamine the blood routine + CRP.
*Have appointed to go to diabetes mellitus outpatient service for follow-up clinic 2 weeks later.
*Periodically go to the diabetes specialist outpatient service for reexamination.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Admission department: Genetic Metabolic Endocrine Center [the original Internal Medicine Department] Inpatient ward: Internal No.2 Ward&
Signature of doctor:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Notes: This certificate is valid after being stamped by the Admission Office.
(Official Certificate Stamp of the Admission Department ofBeijingChildren's Hospital).NET(18)
实现医生工作站中处方录入功能的代码(六)
3.2.2处方录入
3.2.2.1处方录入主界面
处方录入这个模块可以实现医生根据病人病历来开药方,点击3.2.2.1(图1)”新增“按钮弹出医生开取药方的界面,供医生开药;同样点击3.2.2.1(图2)”
修改“按钮弹出医生修改处方的界面,供医生对错误的处方单进行修改;还可以根据处方编号、病人名称等进行多条件查询处方单。点击每一条处方单多可以在处方明细中查询相对应的药品信息。
主界面效果图:
3.2.2.1(图1)
从界面上可以看到我们这里用到的控件有:
组装箱控件groupBox
&& 第一要设置每个控件的Text,第二设置控件Name;不同的是dataGridView右键进行编辑列。
标签控件lable
文本框控件textBox
下拉框控件comboBox
按钮控件button
表格控件dataGridView
时间控件dateTimePicker
查询功能实现:
第一步:数据库
1、表与关系
3.2.2.1(图2)
表1:处方单表(PW_OrdonnanceTable)
就诊科室_科室ID
就诊医生_员工ID
收费状态ID
收费人员_员工ID
发药状态ID
发药人员_员工ID
门诊病历模板ID
表2:处方单明细表(PW_OrdonnanceDetailTable)
处方单明细ID
处方单明细类型
处方单明细编码
用药方式ID
用药频率ID
表3:药品表(BT_OutpatientMedicalRecordsTemplateTable)
OutpatientMedicalRecordsTemplateID
int& - Identity
门诊病历模板ID
TemplateNumber
nchar& (50)
TemplateName
nchar& (50)
WriteDoctor_StaffID
撰写医生_员工ID
WriteTechnicalOfficesID
撰写科室_科室ID
AS_TemplateTypeID
模板类型ID
AS_InvokingJurisdictionID
调用权限ID
WhetherOperation
TemplateRemarks
nchar& (200)
nchar& (200)
PatientActionInChief
nchar& (300)
PatientMedicalHistory
nchar& (300)
PhysicalExaminationCase
nchar& (300)
InitialDiagnosis
nchar& (300)
DisposeIdea
nchar& (300)
WhetherEffective
RegisterID
表4:挂号表(PW_RegisterTable)
RegisterID
int - Identity
RegisterNumber
nchar (50)
AS_SettleAccountsWayID
结算方式ID
TechnicalOfficesID
Doctor_StaffID
医生_员工ID
RegisterSum
decimal (18, 2)
DiagnosisFee
decimal (18, 2)
CaseHistorySum
decimal (18, 2)
RegisterRemarks
nchar (50)
RegisterTime
AS_RegisterStatusID
挂号状态ID
InvoiceNumber
nchar (50)
RegisterOperator_StaffID
挂号人员_员工ID
WhetherEffective
NullifyRemarks
nchar (100)
NullifyOperator_StaffID
作废操作员_员工ID
表5:病人表(BT_PatientTable)
int - Identity
PatientCardNumber
nchar (50)
PatientName
nchar (30)
nchar (50)
AS_MaritalStatusID
婚姻情况ID
Profession
nchar (50)
MemberTypeID
会员类型ID
MedicareCardNumber
nchar (50)
AS_InsuredTypeID
参保类型ID
ContactTelephone
nchar (30)
ContactAddress
nchar (100)
DrugAllergyHistory
nchar (100)
药物过敏史
PatientCategoryID
病人类别ID
nchar (30)
AlphabeticBrevityCode
nchar (20)
WubiInCode
nchar (20)
ContactMobilePhone
nchar (30)
nchar (30)
Introducer
nchar (30)
PersonalTaboo
nchar (70)
HighestReputation
nchar (70)
NowIntegral
nchar (50)
decimal (18, 2)
ExpenseSum
decimal (18, 2)
LastDoctor_StaffID
Prescriptions
nchar (50)
PatientPhotos
char (200)
WhetherEffective
WhetherMember
表6:员工表(BT_StaffTable)
int - Identity
TechnicalOfficesID
StaffNumber
nchar (20)
nchar (20)
WhetherOperator
AlphabeticBrevityCode
nchar (20)
WubiInCode
nchar (20)
AS_StaffPositionID
员工职务ID
AS_MedicalTitlesID
医务职称ID
AS_WorkingStatusID
工作状态ID
ContactTelephone
nchar (50)
WhetherBuiltIn
RegisteredSum
decimal (18, 2)
AS_IntoTheHobbyID
录入爱好ID
StaffPhotos
char (200)
nchar (70)
nchar (100)
ContactAddress
nchar (100)
WhetherBirthdayRemind
生日提醒否
TerminationDate
AS_OfficialAcademicCredentialsID
最高学历ID
StudySubject
nchar (70)
AS_PoliticsStatusID
政治面貌ID
nchar (100)
WhetherEffective
表7:病人类别表(BT_PatientCategoryTable)
PatientCategoryID
int - Identity
病人类别 ID
CategoryNumber
nchar (20)
CategoryName
nchar (30)
CategoryDiscount
decimal (18, 2)
WhetherEffective
CategoryRemarks
nchar (100)
表8:科室表(BT_TechnicalOfficesTable)
TechnicalOfficesID
int - Identity
DepartmentID
TechnicalOfficesNumber
nchar (20)
TechnicalOfficesName
nchar (20)
RegisterSum
decimal (18, 2)
WhetherAllowRegister
允许挂号否
AlphabeticBrevityCode
nchar (20)
WubiInCode
nchar (20)
TechnicalOfficesLocation
nchar (100)
nchar (200)
WhetherEffective
表9:属性明细表(BT_AttributeDetailsTable)
AttributeDetailsID
int - Identity
属性明细ID
AttributeDetailsID_F
属性明细ID_父
AttributeSetID
属性集合ID
AttributeDetailsName
nchar (30)
属性明细名称
nchar (30)
RetrievalInCode
nchar (30)
BuiltInIdentifiers
nchar (100)
WhetherEffective
表10:挂号类别表(BT_RegisterCategoryTable)
RegisterCategoryID
int - Identity
挂号类别ID
RegisterCategoryNumber
nchar (50)
挂号类别编号
RegisterCategoryName
nchar (100)
挂号类别名称
RegisterNormalSum
decimal (18, 2)
挂号标准金额
nchar (200)
WhetherEffective
MemberCategoryName
nchar (30)
会员类别名称
nchar (150)
WhetherEffective
表11:门诊病历模板表(BT_OutpatientMedicalRecordsTemplateTable)
OutpatientMedicalRecordsTemplateID
int& - Identity
门诊病历模板ID
TemplateNumber
nchar& (50)
TemplateName
nchar& (50)
WriteDoctor_StaffID
撰写医生_员工ID
WriteTechnicalOfficesID
撰写科室_科室ID
AS_TemplateTypeID
模板类型ID
AS_InvokingJurisdictionID
调用权限ID
WhetherOperation
TemplateRemarks
nchar& (200)
nchar& (200)
PatientActionInChief
nchar& (300)
PatientMedicalHistory
nchar& (300)
PhysicalExaminationCase
nchar& (300)
InitialDiagnosis
nchar& (300)
DisposeIdea
nchar& (300)
WhetherEffective
RegisterID
2、功能代码实现
多条件查询处方信息:
(1)、存储过程代码:
--查询就诊医生
IF(@Type ='FRM_ChuFangLuRu_Insert_Load_SelectStaff')
LTRIM(RTRIM( StaffID)) AS StaffID,
LTRIM(RTRIM(StaffName)) AS StaffName
BT_StaffTable
BT_StaffTable.AS_StaffPositionID =21
--查询就诊科室
IF(@Type ='FRM_ChuFangLuRu_Insert_Load_SelectTechnicalOffices')
LTRIM(RTRIM(TechnicalOfficesID )) AS TechnicalOfficesID,
LTRIM(RTRIM(TechnicalOfficesName)) AS TechnicalOfficesName
BT_TechnicalOfficesTable
--查询处方单
IF(@Type='FRM_ChuFang_Load_SelectOrdonnance')
LTRIM(RTRIM(PW_OrdonnanceTable.OrdonnanceID)) AS OrdonnanceID,
LTRIM(RTRIM(PW_OrdonnanceTable.OrdonnanceNumber)) AS OrdonnanceNumber,
LTRIM(RTRIM(PW_OrdonnanceTable.PatientID)) AS PatientID,
LTRIM(RTRIM(BT_PatientTable.PatientName)) AS PatientName,
LTRIM(RTRIM(BT_PatientTable.AS_SexID)) AS AS_SexID,
LTRIM(RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS Sex,
LTRIM(RTRIM(BT_PatientTable.Age)) AS Age, PW_OrdonnanceTable.PrescriptionDate,
LTRIM(RTRIM(PW_OrdonnanceTable.ClinicTechnicalOffices_TechnicalOfficesID)) AS ClinicTechnicalOffices_TechnicalOfficesID,
LTRIM(RTRIM(BT_TechnicalOfficesTable.TechnicalOfficesName))AS TechnicalOfficesName,
LTRIM(RTRIM(PW_OrdonnanceTable.TreatmentDoctor_StaffID)) AS TreatmentDoctor_StaffID,
LTRIM(RTRIM(BT_StaffTable.StaffName)) AS StaffName,
LTRIM(RTRIM(PW_OrdonnanceTable.AS_ChargeStatusID)) AS AS_ChargeStatusID,
LTRIM(RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS ChargeStatus,
LTRIM(RTRIM(PW_OrdonnanceTable.AS_TakeMedicineStatusID)) AS AS_TakeMedicineStatusID,
LTRIM(RTRIM(BT_AttributeDetailsTable_2.AttributeDetailsName)) AS TakeMedicineStatus,
LTRIM(RTRIM(BT_PatientTable.RegisterCategoryID)) AS RegisterCategoryID,
LTRIM(RTRIM(BT_RegisterCategoryTable.RegisterCategoryName)) AS RegisterCategoryName,
LTRIM(RTRIM(BT_PatientTable.MemberTypeID)) AS MemberTypeID,
LTRIM(RTRIM(BT_MemberCategoryTable.MemberCategoryName)) AS MemberCategoryName,
LTRIM(RTRIM(BT_PatientTable.AS_InsuredTypeID)) AS AS_InsuredTypeID,
LTRIM(RTRIM(BT_AttributeDetailsTable_3.AttributeDetailsName)) AS InsuredType,
LTRIM(RTRIM(BT_PatientTable.DrugAllergyHistory)) AS DrugAllergyHistory,
LTRIM(RTRIM(BT_PatientTable.PersonalTaboo)) AS PersonalTaboo
PW_OrdonnanceTable INNER JOIN
BT_PatientTable ON PW_OrdonnanceTable.PatientID = BT_PatientTable.PatientID INNER JOIN
BT_AttributeDetailsTable ON BT_PatientTable.AS_SexID = BT_AttributeDetailsTable.AttributeDetailsID INNER JOIN
BT_TechnicalOfficesTable ON PW_OrdonnanceTable.ClinicTechnicalOffices_TechnicalOfficesID = BT_TechnicalOfficesTable.TechnicalOfficesID INNER JOIN
BT_StaffTable ON PW_OrdonnanceTable.TreatmentDoctor_StaffID = BT_StaffTable.StaffID INNER JOIN
BT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON PW_OrdonnanceTable.AS_ChargeStatusID = BT_AttributeDetailsTable_1.AttributeDetailsID INNER JOIN
BT_AttributeDetailsTable AS BT_AttributeDetailsTable_2 ON PW_OrdonnanceTable.AS_TakeMedicineStatusID = BT_AttributeDetailsTable_2.AttributeDetailsID INNER JOIN
BT_RegisterCategoryTable ON BT_PatientTable.RegisterCategoryID = BT_RegisterCategoryTable.RegisterCategoryID INNER JOIN
BT_MemberCategoryTable ON BT_PatientTable.MemberTypeID = BT_MemberCategoryTable.MemberCategoryID INNER JOIN
BT_AttributeDetailsTable AS BT_AttributeDetailsTable_3 ON BT_PatientTable.AS_InsuredTypeID = BT_AttributeDetailsTable_3.AttributeDetailsID INNER JOIN
PW_RegisterTable ON BT_PatientTable.PatientID = PW_RegisterTable.PatientID
PW_OrdonnanceTable.WhetherEffective =1
AND AS_RegisterStatusID=356
--查询处方明细
IF(@Type='dgvOrdonnance_SelectionChanged_SelectOrdonnanceDetail')
LTRIM(RTRIM(PW_OrdonnanceDetailTable.OrdonnanceDetailID))AS OrdonnanceDetailID,
LTRIM(RTRIM(PW_OrdonnanceDetailTable.OrdonnanceID))AS OrdonnanceID,
LTRIM(RTRIM(PW_OrdonnanceDetailTable.OrdonnanceDetailType))AS OrdonnanceDetailType,
LTRIM(RTRIM(PW_OrdonnanceDetailTable.OrdonnanceDetailEncoding))AS OrdonnanceDetailEncoding,
LTRIM(RTRIM(PW_OrdonnanceDetailTable.DrugID))AS DrugID,
LTRIM(RTRIM(BT_DrugTable.DrugEncoding))AS DrugEncoding,
LTRIM(RTRIM(BT_DrugTable.DrugName))AS DrugName,
LTRIM(RTRIM(BT_DrugTable.DrugSpecification))AS DrugSpecification,
LTRIM(RTRIM(PW_OrdonnanceDetailTable.TotalDrug))AS TotalDrug,
LTRIM(RTRIM(PW_OrdonnanceDetailTable.EachAgent))AS EachAgent,
LTRIM(RTRIM(PW_OrdonnanceDetailTable.AS_DrugUseMannerID))AS AS_DrugUseMannerID,
LTRIM(RTRIM(BT_AttributeDetailsTable.AttributeDetailsName)) AS DrugUseManner,
LTRIM(RTRIM(PW_OrdonnanceDetailTable.AS_DDDSID))AS AS_DDDSID,
LTRIM(RTRIM(BT_AttributeDetailsTable_1.AttributeDetailsName)) AS DDDS,
LTRIM(RTRIM(PW_OrdonnanceDetailTable.Remarks))AS Remarks
PW_OrdonnanceDetailTable INNER JOIN
BT_DrugTable ON PW_OrdonnanceDetailTable.DrugID = BT_DrugTable.DrugID INNER JOIN
BT_AttributeDetailsTable ON PW_OrdonnanceDetailTable.AS_DrugUseMannerID =
BT_AttributeDetailsTable.AttributeDetailsID INNER JOIN
BT_AttributeDetailsTable AS BT_AttributeDetailsTable_1 ON
PW_OrdonnanceDetailTable.AS_DDDSID = BT_AttributeDetailsTable_1.AttributeDetailsID
PW_OrdonnanceDetailTable.OrdonnanceID =@OrdonnanceID
(2)、逻辑层代码:
[OperationContract]
#region 查询就诊医生
public DataSet FRM_ChuFangLuRu_Insert_Load_SelectStaff()
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SQLCMDpas[0].Value = &FRM_ChuFangLuRu_Insert_Load_SelectStaff&;
DataTable myDataTable = myDALMethod.QueryDataTable(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataS
#endregion
[OperationContract]
#region 查询就诊科室
public DataSet FRM_ChuFangLuRu_Insert_Load_SelectTechnicalOffices()
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SQLCMDpas[0].Value = &FRM_ChuFangLuRu_Insert_Load_SelectTechnicalOffices&;
DataTable myDataTable = myDALMethod.QueryDataTable(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataS
#endregion
[OperationContract]
#region 查询处方单
public DataSet FRM_ChuFang_Load_SelectOrdonnance()
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SQLCMDpas[0].Value = &FRM_ChuFang_Load_SelectOrdonnance&;
DataTable myDataTable = myDALMethod.QueryDataTable(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataS
#endregion
[OperationContract]
#region 查询处方明细
public DataSet dgvOrdonnance_SelectionChanged_SelectOrdonnanceDetail(int intOrdonnanceID)
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SqlParameter (&@OrdonnanceID&,SqlDbType.Int),
SQLCMDpas[0].Value = &dgvOrdonnance_SelectionChanged_SelectOrdonnanceDetail&;
SQLCMDpas[1].Value = intOrdonnanceID;
DataTable myDataTable = myDALMethod.QueryDataTable(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataS
#endregion
[OperationContract]
(3)、界面层代码:
#region FRM_ChuFang_Load事件
private void FRM_ChuFang_Load(object sender, EventArgs e)
DataTable dtTreatmentDoctor = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectStaff().Tables[0];
cboTreatmentDoctor = PublicStaticMothd.SetZhiXiaLaKuang(cboTreatmentDoctor, dtTreatmentDoctor, &StaffID&, &StaffName&);//绑定就诊医生下拉框信息
DataTable dtClinicTechnicalOffices = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectTechnicalOffices().Tables[0];
cboClinicTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboClinicTechnicalOffices, dtClinicTechnicalOffices, &TechnicalOfficesID&, &TechnicalOfficesName&, true);//绑定就诊科室下拉框信息
DataTable dtTimeInterval = myFRM_GuaHaoGuanLi_SelectClient.FRM_GuaHaoGuanLi_Update_Load_ChaXunTimeSection().Tables[0];
cboTimeInterval = PublicStaticMothd.SetZhiXiaLaKuang(cboTimeInterval, dtTimeInterval, &TimeSectionID&, &TimeSection&,true);
dgvOrdonnance.DataSource = myFRM_ChuFangLuRuClient.FRM_ChuFang_Load_SelectOrdonnance().Tables[0];//绑定处方单
dgvOrdonnance.ClearSelection();
#endregion
#region 多条件查询
private void btnSelect_Click(object sender, EventArgs e)
string strSelect = &&;
//声明一个字符串变量
if (chkTimeInterval.Checked)
DateTime BeginTime = Convert.ToDateTime(dtpBeginTime . Text);
DateTime EndTime = Convert.ToDateTime(dtpEndTime. Text);
strSelect = &( PrescriptionDate&='& + BeginTime + &'and PrescriptionDate&='& + EndTime + &')&;
if (chkOrdonnanceNumber.Checked)
if (strSelect != &&)
strSelect = strSelect + &and OrdonnanceNumber
like '%& + txtOrdonnanceNumber.Text + &%'&;
strSelect = &OrdonnanceNumber
like '%& + txtOrdonnanceNumber.Text + &%'&;
if (chkPatientName.Checked)
if (strSelect != &&)
strSelect = strSelect + &and PatientName like '%& + txtPatientName.Text + &%'&;
strSelect = & PatientName like '%& + txtPatientName.Text + &%'&;
if (chkClinicTechnicalOffices.Checked)
if (strSelect != &&)
strSelect = strSelect + &and ClinicTechnicalOffices_TechnicalOfficesID=& + cboClinicTechnicalOffices.SelectedV
strSelect =& ClinicTechnicalOffices_TechnicalOfficesID=& + cboClinicTechnicalOffices.SelectedV
if (chkTreatmentDoctor.Checked)
if (strSelect != &&)
strSelect = strSelect + &and TreatmentDoctor_StaffID=& + cboTreatmentDoctor.SelectedV
strSelect =& TreatmentDoctor_StaffID=& + cboTreatmentDoctor.SelectedV
DataTable dtRegisterReportForms = myFRM_ChuFangLuRuClient.FRM_ChuFang_Load_SelectOrdonnance().Tables[0];
DataView dv = new DataView(dtRegisterReportForms);
DataTable dt = new DataTable();
if (strSelect != &&)
dv.RowFilter = strS
dt = dv.ToTable();
if (strSelect == &&)
dt = dv.ToTable();
dgvOrdonnance.DataSource =
#endregion
#region 时间段查询
private void cboTimeInterval_SelectedIndexChanged(object sender, EventArgs e)
DateTime dtpDateNow = DateTime.N//声明一个日期变量
DateTime dtpDateNowAddMonth = dtpDateNow.AddMonths(1);
DateTime dtpNowDay = DateTime.Now.D//获取今天的日期和时间
string strNowDay = DateTime.Now.Day.ToString();//获取今天日号
if (cboTimeInterval.Text == &今天&)//根据今天进行时间日期查询
string strYesterday = DateTime.Now.AddDays(-1).ToShortDateString() + & 23:59:59&;
string strTomorrow = DateTime.Now.AddDays(1).ToShortDateString() + & 00:00:00&;
dtpBeginTime.Text = strY//把昨天的日期和时间绑定到登记时间的控件上
dtpEndTime.Text = strT//把明天的日期和时间绑定到结束时间的控件上
if (cboTimeInterval.Text == &昨天&)
decimal decTheDayBeforeYesterday = Convert.ToDecimal(strNowDay) - 2;//获取前天的日号
//获取前天的日期和时间
string strTheDayBeforeYesterday = DateTime.Now.Year.ToString() + (DateTime.Now.Month & 9 ? &-& + DateTime.Now.Month.ToString() : &-0& + DateTime.Now.Month.ToString()) + &-& + decTheDayBeforeYesterday + & 23:59:59&;
dtpBeginTime.Text = strTheDayBeforeY//把前天的日期和时间绑定开始时间的控件上
dtpEndTime.Text = dtpNowDay.ToString();//把今天的日期和时间绑定到结束时间的控件上
if (cboTimeInterval.Text == &本周&)
int intThisWeek = Convert.ToInt32(dtpDateNow.DayOfWeek.ToString(&d&));//根据获取的星期的星期天数转型为整形对应的号码
DateTime dtpStartWeek = dtpDateNow.AddDays(1 - intThisWeek);//获取本周周一
DateTime dtpEndweek = dtpStartWeek.AddDays(6);//获取本周周日
dtpBeginTime.Text = dtpStartWeek.ToString();//把本周周一绑定到开始时间的控件中
dtpEndTime.Text = dtpEndweek.ToString();//把本周周日绑定到结束时间的控件中
if (cboTimeInterval.Text == &上周&)
int intLastWeek = Convert.ToInt32(dtpDateNow.DayOfWeek.ToString(&d&));///根据获取的星期的星期天数传型为整形对应的号码
DateTime dtpStartweek = dtpDateNow.AddDays(1 - intLastWeek - 7);
//获取上周周一
DateTime dtpEndWeek = dtpStartweek.AddDays(6);//获取上周周日
dtpBeginTime.Text = dtpStartweek.ToString(); //把上周周一绑定到开始时间的控件中
dtpEndTime.Text = dtpEndWeek.ToString();//把上周周日绑定到结束时间的控件中
if (cboTimeInterval.Text == &本月&)
string strThisMonthStart=dtpDateNow.AddDays (-(dtpDateNow.Day)+1).ToString(&yyyy-MM-dd&);//获取本月月初
string strThisMonthEnd = dtpDateNowAddMonth.AddDays(-dtpDateNow.Day).ToString(&yyyy-MM-dd&);//本月最后一天
dtpBeginTime .Text =strThisMonthS//把本月初绑定到开始时间上
dtpEndTime .Text =strThisMonthE//把本月末绑定到结束时间上
if (cboTimeInterval.Text == &上月&)
string strLastMonthStart = dtpDateNow.AddMonths(-1).AddDays(-(dtpDateNow.Day) + 1).ToString(&yyyy-MM-dd&);//获取上个月的月初
string strLastMonthEnd = dtpDateNow.AddDays(-(dtpDateNow.Day)).ToString(&yyyy-MM-dd&);//获取上个月的月末
dtpBeginTime.Text = strLastMonthS//把上个月初绑定登记开始时间上
dtpEndTime.Text = strLastMonthE//把上个月末绑定到结束时间上
if (cboTimeInterval.Text == &本季度&)
DateTime dtpThisStartQuarter = dtpDateNow.AddMonths(0 - (dtpDateNow.Month - 1) % 3).AddDays(1 - dtpDateNow.Day);//获取本季度初
DateTime dtpThisEndQuarter = dtpDateNow.AddMonths(3).AddDays(-1);//获取本季度末
dtpBeginTime.Text = dtpThisStartQuarter.ToString();//把本季度初绑定到开始时间上
dtpEndTime.Text = dtpThisEndQuarter.ToString();//把本月末绑定到结束时间上
if (cboTimeInterval.Text == &上季度&)
DateTime dtpLastStartQuarter = dtpDateNow.AddMonths(-3 - (dtpDateNow.Month - 1) % 3).AddDays(1 - dtpDateNow.Day);
//上季度初
DateTime dtpLastEndQuarter = dtpLastStartQuarter.AddMonths(3).AddDays(-1);
//上季度末
dtpBeginTime.Text = dtpLastStartQuarter.ToString(); //把上季度初绑定到开始时间上
dtpEndTime.Text = dtpLastEndQuarter.ToString();//把上季度末绑定到结束时间上
if (cboTimeInterval.Text == &本年&)
string strThisYearStart = DateTime.Parse(DateTime.Now.ToString(&yyyy-01-01&)).ToShortDateString();//获取本年初
string strThisYearEnd = DateTime.Parse(DateTime.Now.ToString(&yyyy-01-01&)).AddYears(1).AddDays(-1).ToShortDateString();//获取本年末
dtpBeginTime.Text = strThisYearStart.ToString(); //把本年初绑定到开始时间上
dtpEndTime.Text = strThisYearEnd.ToString();//把本年末绑定到结束时间上
if (cboTimeInterval.Text == &上年&)
string strLastYearStart = DateTime.Parse(DateTime.Now.ToString(&yyyy-01-01&)).AddYears(-1).ToShortDateString();//获取上年年初
string strLastYearEnd = DateTime.Parse(DateTime.Now.ToString(&yyyy-01-01&)).AddDays(-1).ToShortDateString();//获取上年年末
dtpBeginTime.Text = strLastYearStart.ToString();//把上年初绑定到开始时间上
dtpEndTime.Text = strLastYearEnd.ToString();//把上年末绑定到结束时间上
#endregion
#region 根据处方单查询处方明细事件
private void dgvOrdonnance_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
if (dgvOrdonnance.CurrentRow != null)
intOrdonnanceID = Convert.ToInt32(dgvOrdonnance.CurrentRow.Cells[&OrdonnanceID&].Value);
if (intOrdonnanceID != 0)
dgvOrdonnanceDetail.DataSource =
myFRM_ChuFangLuRuClient.dgvOrdonnance_SelectionChanged_SelectOrdonnanceDetail(intOrdonnanceID).Tables[0];
MessageBox.Show(&查询的处方明细失败!&);
MessageBox.Show(&抱歉!没有可供查询的处方单。&);
#endregion
删除处方信息:
(1)、存储过程代码:
--删除处方单
IF(@Type='btnDelect_Click_DeleteOrdonnance')
PW_OrdonnanceTable
PW_OrdonnanceTable.OrdonnanceID=@OrdonnanceID
--删除处方明细
IF(@Type='btnDelect_Click_DeleteOrdonnanceDetail')
PW_OrdonnanceDetailTable
PW_OrdonnanceDetailTable.OrdonnanceDetailID =@OrdonnanceDetailID
(2)、逻辑层代码:
[OperationContract]
#region 删除处方单
public int btnDelect_Click_DeleteOrdonnance(int intOrdonnanceID)
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SqlParameter (&@OrdonnanceID&,SqlDbType.Int),
SQLCMDpas[0].Value = &btnDelect_Click_DeleteOrdonnance&;
SQLCMDpas[1].Value = intOrdonnanceID;
int count = myDALMethod.UpdateData(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
#endregion
[OperationContract]
#region 删除处方明细
public int btnDelect_Click_DeleteOrdonnanceDetail(int intOrdonnanceDetailID)
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SqlParameter (&@OrdonnanceDetailID&,SqlDbType.Int),
SQLCMDpas[0].Value = &btnDelect_Click_DeleteOrdonnanceDetail&;
SQLCMDpas[1].Value = intOrdonnanceDetailID;
int count = myDALMethod.UpdateData(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
#endregion
(3)、界面层代码:
#region 删除事件
private void btnDelect_Click(object sender, EventArgs e)
if (dgvOrdonnance.CurrentRow != null)
DialogResult dr = MessageBox.Show(&是否删除&, &系统提示&, MessageBoxButtons.OKCancel, MessageBoxIcon.Question);//弹出确定对话框
if (dr == DialogResult.OK)//如果点了确定按钮
intOrdonnanceID = Convert.ToInt32(dgvOrdonnance.CurrentRow.Cells[&OrdonnanceID&].Value);
if (intOrdonnanceID != 0)
myFRM_ChuFangLuRuClient.btnDelect_Click_DeleteOrdonnance(intOrdonnanceID); //绑定处方明细单
dgvOrdonnance.DataSource = myFRM_ChuFangLuRuClient.FRM_ChuFang_Load_SelectOrdonnance().Tables[0];//绑定处方单
MessageBox.Show(&删除成功!&);
MessageBox.Show(&删除处方单失败!&);
MessageBox.Show(&没有可供删除的处方单!&);
#endregion
3.2.2.2新增处方录入
作用:提供医生根据病人病历信息进行开药,点击3.2.2.2(图1)图中的“调用处方模板”按钮可以弹出处方模板界面,医生可以调用里面的药品信息。图中的“新增处方”按钮可以弹出药品信息窗体,提供医生进行开药,同一个药品医生只能新增一次。同时还可以对新增到的多余的或者是错误的药品可以进行移除。
1、新增处方录入截图:
3.2.2.2(图1)
2、功能代码实现:
新增处方单:
(1)、存储过程代码:
--新增处方单
IF(@Type ='FRM_ChuFangLuRu_Insert_Load_InsertOrdonnance')
BEGIN TRAN
PW_OrdonnanceTable(OrdonnanceNumber, PatientID, PrescriptionDate, ClinicTechnicalOffices_TechnicalOfficesID,
TreatmentDoctor_StaffID, AS_ChargeStatusID, AS_TakeMedicineStatusID)
(@OrdonnanceNumber, @PatientID, @PrescriptionDate, @ClinicTechnicalOffices_TechnicalOfficesID,
@TreatmentDoctor_StaffID,159, 161)
SELECT @@IDENTITY
COMMIT TRAN
--新增处方明细
IF(@Type='FRM_ChuFangLuRu_Insert_Load_InsertOrdonnanceDetail')
PW_OrdonnanceDetailTable(OrdonnanceID, OrdonnanceDetailType, OrdonnanceDetailEncoding, DrugID,
TotalDrug, EachAgent, AS_DrugUseMannerID, AS_DDDSID, Remarks, WhetherEffective)
(@OrdonnanceID, @OrdonnanceDetailType, @OrdonnanceDetailEncoding, @DrugID,
@TotalDrug, @EachAgent, @AS_DrugUseMannerID, @AS_DDDSID, @Remarks, 1)
IF(@Type='btnSave_Click_InsertOrdonnanceDetail')--经改过
PW_OrdonnanceDetailTable(OrdonnanceID, OrdonnanceDetailType, OrdonnanceDetailEncoding, DrugID,
TotalDrug, EachAgent, AS_DrugUseMannerID, AS_DDDSID, Remarks, WhetherEffective,WhetherInject )
(@OrdonnanceID, @OrdonnanceDetailType, @OrdonnanceDetailEncoding, @DrugID,
@TotalDrug, @EachAgent, @AS_DrugUseMannerID, @AS_DDDSID, @Remarks, 1,@WhetherInject)
--处方单号最大单据数
IF(@Type ='btnSave_Click_InsertOrdonnanceMaximumNumber')
BEGIN TRAN
PW_TheLargestNumberStatisticalTable
OrdonnanceMaximumNumber=OrdonnanceMaximumNumber+1
OrdonnanceMaximumNumber
PW_TheLargestNumberStatisticalTable
COMMIT TRAN
(2)、逻辑层代码:
[OperationContract]
#region 新增处方信息
public DataSet
FRM_ChuFangLuRu_Insert_Load_InsertOrdonnance(string strOrdonnanceNumber, int intPatientID, DateTime dtmPrescriptionDate, int intClinicTechnicalOffices_TechnicalOfficesID,
int intTreatmentDoctor_StaffID)
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SqlParameter (&@OrdonnanceNumber&,SqlDbType.Char),
SqlParameter (&@PatientID&,SqlDbType.Int),
SqlParameter (&@PrescriptionDate&,SqlDbType.DateTime),
SqlParameter (&@ClinicTechnicalOffices_TechnicalOfficesID&,SqlDbType.Int),
SqlParameter (&@TreatmentDoctor_StaffID&,SqlDbType.Int),
SQLCMDpas[0].Value = &FRM_ChuFangLuRu_Insert_Load_InsertOrdonnance&;
SQLCMDpas[1].Value = strOrdonnanceN
SQLCMDpas[2].Value = intPatientID;
SQLCMDpas[3].Value = dtmPrescriptionD
SQLCMDpas[4].Value = intClinicTechnicalOffices_TechnicalOfficesID;
SQLCMDpas[5].Value = intTreatmentDoctor_StaffID;
DataTable myDataTable = myDALMethod.QueryDataTable(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataS
#endregion
[OperationContract]
#region 新增处方明细
public int FRM_ChuFangLuRu_Insert_Load_InsertOrdonnanceDetail(int intOrdonnanceID, string strOrdonnanceDetailType, string strOrdonnanceDetailEncoding, int intDrugID,
string strTotalDrug, string strEachAgent, int intAS_DrugUseMannerID, int intAS_DDDSID, string strRemarks)
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SqlParameter (&@OrdonnanceID&,SqlDbType.Int),
SqlParameter (&@OrdonnanceDetailType&,SqlDbType.Char),
SqlParameter (&@OrdonnanceDetailEncoding&,SqlDbType.Char),
SqlParameter (&@DrugID&,SqlDbType.Int),
SqlParameter (&@TotalDrug&,SqlDbType.Char),
SqlParameter (&@EachAgent&,SqlDbType.Char),
SqlParameter (&@AS_DrugUseMannerID&,SqlDbType.Int),
SqlParameter (&@AS_DDDSID&,SqlDbType.Int),
SqlParameter (&@Remarks&,SqlDbType.Char),
SQLCMDpas[0].Value = &FRM_ChuFangLuRu_Insert_Load_InsertOrdonnanceDetail&;
SQLCMDpas[1].Value = intOrdonnanceID;
SQLCMDpas[2].Value = strOrdonnanceDetailT
SQLCMDpas[3].Value = strOrdonnanceDetailE
SQLCMDpas[4].Value = intDrugID;
SQLCMDpas[5].Value = strTotalD
SQLCMDpas[6].Value = strEachA
SQLCMDpas[7].Value = intAS_DrugUseMannerID;
SQLCMDpas[8].Value = intAS_DDDSID;
SQLCMDpas[9].Value = strR
int count = myDALMethod.UpdateData(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
#endregion
[OperationContract]
#region 处方单号最大单据数
public DataSet
btnSave_Click_InsertOrdonnanceMaximumNumber()
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SQLCMDpas[0].Value = &btnSave_Click_InsertOrdonnanceMaximumNumber&;
DataTable myDataTable = myDALMethod.QueryDataTable(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
DataSet myDataSet = new DataSet();
myDataSet.Tables.Add(myDataTable);
return myDataS
#endregion
(3)、界面层代码:
主界面“新增”按钮代码:
#region 新增事件
private void btnInsert_Click(object sender, EventArgs e)
FRM_ChuFangLuRu_Insert myFRM_ChuFangLuRu_Insert = new FRM_ChuFangLuRu_Insert();
myFRM_ChuFangLuRu_Insert.ShowDialog();
dgvOrdonnance.DataSource = myFRM_ChuFangLuRuClient.FRM_ChuFang_Load_SelectOrdonnance().Tables[0];
#endregion
新增界面代码:
#region 声明全局变量
BLL医院管理系统.YiShengGongZuoZhan.FRM_ChuFangLuRu.FRM_ChuFangLuRuClient myFRM_ChuFangLuRuClient
= new BLL医院管理系统ª3.YiShengGongZuoZhan.FRM_ChuFangLuRu.FRM_ChuFangLuRuClient();
string strO//声明处方最大单据数
int intDrug = 0;//声明处方药品ID
bool Switch =//声明一个开关
bool SwitchOne =//在声明一个开关
int intP//病人ID
#endregion
#region 调用处方模板事件
private void btnInvokingTemplate_Click(object sender, EventArgs e)
FRM_ChuFangMuBan myFRM_ChuFangMuBan = new FRM_ChuFangMuBan(this);
myFRM_ChuFangMuBan.ShowDialog();
#endregion
#region 关闭事件
private void btnClose_Click(object sender, EventArgs e)
this.Close();
this.Dispose();
#endregion
#region FRM_ChuFangLuRu_Insert_Load事件
private void FRM_ChuFangLuRu_Insert_Load(object sender, EventArgs e)
用药方式.DataSource = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectDrugUseManner ().Tables[0];
用药方式.DisplayMember = &DrugUseMannerName&;
用药方式.ValueMember = &DrugUseMannerID&;
用药频率.DataSource = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectDDDS().Tables[0];
用药频率.DisplayMember = &DDDSName&;
用药频率.ValueMember = &DDDSID&;
DataTable dtSex = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectSex().Tables[0];
cboSex = PublicStaticMothd.SetZhiXiaLaKuang(cboSex, dtSex, &SexID&, &SexName&);//绑定病人性别下拉框信息
DataTable dtTreatmentDoctor = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectStaff().Tables[0];
cboTreatmentDoctor = PublicStaticMothd.SetZhiXiaLaKuang(cboTreatmentDoctor, dtTreatmentDoctor, &StaffID&, &StaffName&);//绑定就诊医生下拉框信息
DataTable dtClinicTechnicalOffices
= myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectTechnicalOffices().Tables[0];
cboClinicTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboClinicTechnicalOffices, dtClinicTechnicalOffices, &TechnicalOfficesID&, &TechnicalOfficesName&,true);//绑定就诊科室下拉框信息
#region 数据为空处理
txtOrdonnanceNumber.Text = &&;
txtAge.Text = &&;
txtPersonalTaboo.Text = &&;
txtTemplateName.Text = &&;
txtDisposeIdea.Text = &&;
cboSex.SelectedValue = &&;
cboClinicTechnicalOffices.SelectedValue = &&;
cboTreatmentDoctor.SelectedValue = &&;
#endregion
#endregion
#region 保存事件
private void btnSave_Click(object sender, EventArgs e)
txtOrdonnanceNumber.Text = GenerateReceipts();
string strOrdonnanceNumber = txtOrdonnanceNumber.T
int intPatientID = intP
DateTime dtmPrescriptionDate = dtpPrescriptionDate.V
int intClinicTechnicalOffices_TechnicalOfficesID = Convert.ToInt32(cboClinicTechnicalOffices.SelectedValue);
int intTreatmentDoctor_StaffID = Convert.ToInt32(cboTreatmentDoctor.SelectedValue);
#region 判断dgvOrdonnanceDetail是否完整
int CountMingXi = 0;
int SuccessMingXi = 0;
int CountMingXiWeiTian = 0;
foreach (DataGridViewRow dgvr in dgvOrdonnanceDetail.Rows)//判断dgvOrdonnanceDetail窗体的数据是否为空
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)
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)
CountMingXiWeiTian++;
if (CountMingXiWeiTian & 0)
MessageBox.Show(&还有药品信息还没有填写完整,请填写完整药品信息!&);
else if (dgvOrdonnanceDetail.Rows.Count & 1)
MessageBox.Show(&你还没有选择药品,请选择药品后再保存!&);
else if (dgvOrdonnanceDetail.Rows.Count == 0)
if (dgvOrdonnanceDetail.Rows[0].Cells[&药品名称&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&用药总量&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&用药方式&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&备注&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&处方编码&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&处方明细类型&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&每剂用量&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&用药频率&].Value == null )
MessageBox.Show(&你还没有选择药品,请选择药品后再保存!&);
#endregion
#region 不为空时新增处方数据
DataTable dtOrdonnance = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_InsertOrdonnance(strOrdonnanceNumber, intPatientID, dtmPrescriptionDate,
intClinicTechnicalOffices_TechnicalOfficesID, intTreatmentDoctor_StaffID).Tables[0];//新增处方单ID
int intOrdonnanceID = Convert.ToInt32(dtOrdonnance.Rows[0][0].ToString());
foreach (DataGridViewRow dgvr in dgvOrdonnanceDetail.Rows)
if (dgvr.Cells[&药品名称&].Value == null &&
dgvr.Cells[&药品编号&].Value == null &&
dgvr.Cells[&药品规格&].Value == null &&
dgvr.Cells[&每剂用量&].Value == null)
CountMingXi++;
string strOrdonnanceDetailType = dgvr.Cells[&处方明细类型&].Value.ToString();
string strOrdonnanceDetailEncoding = dgvr.Cells[&处方编码&].Value.ToString();
int intDrugID = Convert.ToInt32(dgvr.Cells[&处方药品ID&].Value);
string strTotalDrug = dgvr.Cells[&用药总量&].Value.ToString();
string strEachAgent = dgvr.Cells[&每剂用量&].Value.ToString();
int intAS_DrugUseMannerID = Convert.ToInt32(dgvr.Cells[&用药方式&].Value);
int intAS_DDDSID = Convert.ToInt32(dgvr.Cells[&用药频率&].Value);
string strRemarks = dgvr.Cells[&备注&].Value.ToString();
if (myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_InsertOrdonnanceDetail(intOrdonnanceID, strOrdonnanceDetailType,
strOrdonnanceDetailEncoding, intDrugID, strTotalDrug, strEachAgent, intAS_DrugUseMannerID, intAS_DDDSID, strRemarks) & 0)//新增处方明细
SuccessMingXi++;
if (SuccessMingXi == CountMingXi && CountMingXi & 0)
MessageBox.Show(&新增处方成功!&+&新增的处方号为:& + strOrdonnanceNumber);
txtOrdonnanceNumber.Text = &&;
txtAge.Text = &&;
txtPersonalTaboo.Text = &&;
txtTemplateName.Text = &&;
txtDisposeIdea.Text = &&;
cboSex.SelectedValue = &&;
cboClinicTechnicalOffices.SelectedValue = &&;
cboTreatmentDoctor.SelectedValue = &&;
dgvOrdonnanceDetail.Rows.Clear();
dgvOrdonnanceDetail.Rows.Add();
this.Close();
MessageBox.Show(&抱歉新增失败!&);
#endregion
#endregion
#region 根据单据数 日期生成处方单号
public string GenerateReceipts() //生成单据数
DataTable dt = myFRM_ChuFangLuRuClient .btnSave_Click_InsertOrdonnanceMaximumNumber ().Tables[0];
strOrdonnance = dt.Rows[0][&OrdonnanceMaximumNumber&].ToString();
switch (strOrdonnance.Length)
strOrdonnance = &000& + strO
strOrdonnance = &00& + strO
strOrdonnance = &0& + strO
strOrdonnance = && + strO
DateTime dtmNow = DateTime.N
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 &CF& + strYear + strMonth + strDay + strO
#endregion
3.2.2.3修改处方录入
作用:提供医生对错误的处方信息进行修改。可以对药品信息进行增加或移除。也可以手动就该用药总量、用药方式、用药频率和备注等。
1、修改处方录入截图:
3.2.2.2(图3)
2、功能代码实现:
修改处方单:
(1)、存储过程代码:
--修改处方单
IF(@Type ='FRM_ChuFangLuRu_Update_Load_UpdateOrdonnance')
PW_OrdonnanceTable
OrdonnanceNumber=@OrdonnanceNumber, PatientID=@PatientID, PrescriptionDate=@PrescriptionDate,
ClinicTechnicalOffices_TechnicalOfficesID=@ClinicTechnicalOffices_TechnicalOfficesID,
TreatmentDoctor_StaffID=@TreatmentDoctor_StaffID, AS_ChargeStatusID=159, AS_TakeMedicineStatusID=161
PW_OrdonnanceTable.OrdonnanceID =@OrdonnanceID
--修改处方明细
IF(@Type='FRM_ChuFangLuRu_Update_Load_UpdateOrdonnanceDetail')
PW_OrdonnanceDetailTable
OrdonnanceID=@OrdonnanceID, OrdonnanceDetailType=@OrdonnanceDetailType, OrdonnanceDetailEncoding=@OrdonnanceDetailEncoding,
DrugID=@DrugID, TotalDrug=@TotalDrug, EachAgent=@EachAgent, AS_DrugUseMannerID=@AS_DrugUseMannerID, AS_DDDSID=@AS_DDDSID,
Remarks=@Remarks, WhetherEffective=1
PW_OrdonnanceDetailTable.OrdonnanceDetailID =@OrdonnanceDetailID
IF(@Type='btnSave_Click_UpdateOrdonnanceDetail')
PW_OrdonnanceDetailTable
OrdonnanceID=@OrdonnanceID, OrdonnanceDetailType=@OrdonnanceDetailType, OrdonnanceDetailEncoding=@OrdonnanceDetailEncoding,
DrugID=@DrugID, TotalDrug=@TotalDrug, EachAgent=@EachAgent, AS_DrugUseMannerID=@AS_DrugUseMannerID, AS_DDDSID=@AS_DDDSID,
Remarks=@Remarks, WhetherEffective=1,WhetherInject =@WhetherInject
PW_OrdonnanceDetailTable.OrdonnanceDetailID =@OrdonnanceDetailID
(2)、逻辑层代码:
[OperationContract]
#region 修改处方单信息
public int FRM_ChuFangLuRu_Update_Load_UpdateOrdonnance(string strOrdonnanceNumber, int intPatientID, DateTime dtmPrescriptionDate, int intClinicTechnicalOffices_TechnicalOfficesID,
int intTreatmentDoctor_StaffID, int intOrdonnanceID)
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SqlParameter (&@OrdonnanceNumber&,SqlDbType.Char),
SqlParameter (&@PatientID&,SqlDbType.Int),
SqlParameter (&@PrescriptionDate&,SqlDbType.DateTime),
SqlParameter (&@ClinicTechnicalOffices_TechnicalOfficesID&,SqlDbType.Int),
SqlParameter (&@TreatmentDoctor_StaffID&,SqlDbType.Int),
SqlParameter (&@OrdonnanceID&,SqlDbType.Int),
SQLCMDpas[0].Value = &FRM_ChuFangLuRu_Update_Load_UpdateOrdonnance&;
SQLCMDpas[1].Value = strOrdonnanceN
SQLCMDpas[2].Value = intPatientID;
SQLCMDpas[3].Value = dtmPrescriptionD
SQLCMDpas[4].Value = intClinicTechnicalOffices_TechnicalOfficesID;
SQLCMDpas[5].Value = intTreatmentDoctor_StaffID;
SQLCMDpas[6].Value = intOrdonnanceID;
int count = myDALMethod.UpdateData(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
#endregion
[OperationContract]
#region 修改处|方明细
public int FRM_ChuFangLuRu_Update_Load_UpdateOrdonnanceDetail(int intOrdonnanceID, string strOrdonnanceDetailType, string strOrdonnanceDetailEncoding, int intDrugID,
string strTotalDrug, string strEachAgent, int intAS_DrugUseMannerID, int intAS_DDDSID, string strRemarks, int intOrdonnanceDetailID)
SqlParameter[] SQLCMDpas ={
SqlParameter (&@Type&,SqlDbType.Char),
SqlParameter (&@OrdonnanceID&,SqlDbType.Int),
SqlParameter (&@OrdonnanceDetailType&,SqlDbType.Char),
SqlParameter (&@OrdonnanceDetailEncoding&,SqlDbType.Char),
SqlParameter (&@DrugID&,SqlDbType.Int),
SqlParameter (&@TotalDrug&,SqlDbType.Char),
SqlParameter (&@EachAgent&,SqlDbType.Char),
SqlParameter (&@AS_DrugUseMannerID&,SqlDbType.Int),
SqlParameter (&@AS_DDDSID&,SqlDbType.Int),
SqlParameter (&@Remarks&,SqlDbType.Char),
SqlParameter (&@OrdonnanceDetailID&,SqlDbType.Int),
SQLCMDpas[0].Value = &FRM_ChuFangLuRu_Update_Load_UpdateOrdonnanceDetail&;
SQLCMDpas[1].Value = intOrdonnanceID;
SQLCMDpas[2].Value = strOrdonnanceDetailT
SQLCMDpas[3].Value = strOrdonnanceDetailE
SQLCMDpas[4].Value = intDrugID;
SQLCMDpas[5].Value = strTotalD
SQLCMDpas[6].Value = strEachA
SQLCMDpas[7].Value = intAS_DrugUseMannerID;
SQLCMDpas[8].Value = intAS_DDDSID;
SQLCMDpas[9].Value = strR
SQLCMDpas[10].Value = intOrdonnanceDetailID;
int count = myDALMethod.UpdateData(&YiShengGongZuoZhan_FRM_ChuFangLuRu&, SQLCMDpas);
#endregion
(3)、界面层代码:
主界面代码:
#region 修改事件事件
private void btnUpdate_Click(object sender, EventArgs e)
if (dgvOrdonnance.CurrentRow != null)
intOrdonnanceID = Convert.ToInt32(dgvOrdonnance.CurrentRow.Cells[&OrdonnanceID&].Value);
if (intOrdonnanceID != 0)
FRM_ChuFangLuRu_Update myFRM_ChuFangLuRu_Update = new FRM_ChuFangLuRu_Update(dgvOrdonnance.CurrentRow);
myFRM_ChuFangLuRu_Update.ShowDialog();
dgvOrdonnance.DataSource = myFRM_ChuFangLuRuClient.FRM_ChuFang_Load_SelectOrdonnance().Tables[0];
MessageBox.Show(&修改的处方信息失败!&);
MessageBox.Show(&抱ì歉!没有可供修改的处方单。&);
#endregion
修改界面代码:
public partial class FRM_ChuFangLuRu_Update : Form
DataGridViewRow DGVR;
public FRM_ChuFangLuRu_Update(DataGridViewRow dgvr)
InitializeComponent();
#region 声明全局变量
BLL医院管理系统.YiShengGongZuoZhan.FRM_ChuFangLuRu.FRM_ChuFangLuRuClient myFRM_ChuFangLuRuClient
= new BLL医院管理系统.YiShengGongZuoZhan.FRM_ChuFangLuRu.FRM_ChuFangLuRuClient();
string strO//声明处方最大单据数
int intDrug = 0;//声明处方药品ID
bool Switch =//声明一个开关
bool SwitchOne =//在声明一个开关
int intP//病人ID
#endregion
#region FRM_ChuFangLuRu_Update_Load事件
private void FRM_ChuFangLuRu_Update_Load(object sender, EventArgs e)
dgvOrdonnanceDetail.AutoGenerateColumns =
用药方式.DataSource = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectDrugUseManner().Tables[0];
用药方式.DisplayMember = &DrugUseMannerName&;
用药方式.ValueMember = &DrugUseMannerID&;
用药频率.DataSource = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectDDDS().Tables[0];
用药频率.DisplayMember = &DDDSName&;
用药频率.ValueMember = &DDDSID&;
DataTable dtSex = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectSex().Tables[0];
cboSex = PublicStaticMothd.SetZhiXiaLaKuang(cboSex, dtSex, &SexID&, &SexName&);//绑定病人性别下拉框信息
DataTable dtTreatmentDoctor = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectStaff().Tables[0];
cboTreatmentDoctor = PublicStaticMothd.SetZhiXiaLaKuang(cboTreatmentDoctor, dtTreatmentDoctor, &StaffID&, &StaffName&);//绑定就诊医生下拉框信息
DataTable dtClinicTechnicalOffices = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectTechnicalOffices().Tables[0];
cboClinicTechnicalOffices = PublicStaticMothd.SetZhiXiaLaKuang(cboClinicTechnicalOffices, dtClinicTechnicalOffices, &TechnicalOfficesID&, &TechnicalOfficesName&,true );//绑定就诊科室下拉框信息
#region 绑定处方单和处方明细信息
intPatient = Convert.ToInt32(DGVR.Cells[&PatientID&].Value);
txtOrdonnanceNumber.Text =DGVR.Cells[&OrdonnanceNumber&].Value.ToString().Trim();
txtPatientName.Text =DGVR.Cells[&PatientName&].Value.ToString().Trim();
cboSex.SelectedValue =DGVR.Cells[&AS_SexID&].V
txtPersonalTaboo.Text=DGVR.Cells[&PersonalTaboo&].Value.ToString().Trim();
txtAge.Text =DGVR.Cells[&Age&].Value.ToString().Trim();
cboTreatmentDoctor.SelectedValue =DGVR.Cells[&TreatmentDoctor_StaffID&].V
txtDrugAllergyHistory.Text =DGVR.Cells[&DrugAllergyHistory&].Value.ToString().Trim();
cboClinicTechnicalOffices.SelectedValue =DGVR.Cells[&ClinicTechnicalOffices_TechnicalOfficesID&].V
dtpPrescriptionDate.Value =Convert.ToDateTime( DGVR.Cells[&PrescriptionDate&].Value);
txtInitialDiagnosis.Text = DGVR.Cells[&RegisterCategoryID&].Value.ToString().Trim();
txtDisposeIdea.Text = DGVR.Cells[&PersonalTaboo&].Value.ToString().Trim();
txtDrugAllergyHistory.Text = DGVR.Cells[&DrugAllergyHistory&].Value.ToString().Trim();
DataTable dtOrdonnanceDetail
myFRM_ChuFangLuRuClient.dgvOrdonnance_SelectionChanged_SelectOrdonnanceDetail(Convert.ToInt32(DGVR.Cells[&OrdonnanceID&].Value)).Tables[0];
for(int i=0;i&dtOrdonnanceDetail.Rows.Ci++)
dgvOrdonnanceDetail .Rows .Add ();
dgvOrdonnanceDetail .Rows [i].Cells [&处方明细ID&].Value =dtOrdonnanceDetail.Rows [i][&OrdonnanceDetailID&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&处方ID&].Value =dtOrdonnanceDetail.Rows [i][&OrdonnanceID&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&处方明细类型&].Value =dtOrdonnanceDetail.Rows [i][&OrdonnanceDetailType&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&处方编码&].Value =dtOrdonnanceDetail.Rows [i][&OrdonnanceDetailEncoding&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&处方药品ID&].Value =dtOrdonnanceDetail.Rows [i][&DrugID&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&药品编号&].Value =dtOrdonnanceDetail.Rows [i][&DrugEncoding&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&药品名称&].Value =dtOrdonnanceDetail.Rows [i][&DrugName&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&药品规格&].Value =dtOrdonnanceDetail.Rows [i][&DrugSpecification&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&用药总量&].Value =dtOrdonnanceDetail.Rows [i][&TotalDrug&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&每剂用量&].Value =dtOrdonnanceDetail.Rows [i][&EachAgent&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&用药方式&].Value =dtOrdonnanceDetail.Rows [i][&AS_DrugUseMannerID&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&用药频率&].Value =dtOrdonnanceDetail.Rows [i][&AS_DDDSID&].ToString ();
dgvOrdonnanceDetail .Rows [i].Cells [&备注&].Value =dtOrdonnanceDetail.Rows [i][&Remarks&].ToString ();
#endregion
#endregion
#region 弹出药品事件
private void btnPopup_Click(object sender, EventArgs e)
dgvPatient.Visible =
dgvPatient.DataSource = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_SelectPatient().Tables[0];
SwitchOne =
#endregion
#region 关闭事件
private void btnClose_Click(object sender, EventArgs e)
this.Close();
this.Dispose();
#endregion
#region 保存事件
private void btnSave_Click(object sender, EventArgs e)
#region 修改处方信息
#endregion
#region 判断处方明细数据是否为空
string strOrdonnanceNumber = txtOrdonnanceNumber.Text.ToString();
int intPatientID = intP
DateTime dtmPrescriptionDate = dtpPrescriptionDate.V
int intClinicTechnicalOffices_TechnicalOfficesID = Convert.ToInt32(cboClinicTechnicalOffices.SelectedValue);
int intTreatmentDoctor_StaffID = Convert.ToInt32(cboTreatmentDoctor.SelectedValue);
int intOrdonnanceID = Convert.ToInt32(DGVR.Cells[&OrdonnanceID&].Value);
int CountMingXiWeiTian = 0;
int A = 0; int a = 0; int M = 0;
foreach (DataGridViewRow dgvr in dgvOrdonnanceDetail.Rows)//判断dgvOrdonnanceDetail窗体的数据是否为空
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)
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)
CountMingXiWeiTian++;
if (CountMingXiWeiTian & 0)
MessageBox.Show(&还有药品信息还没有填写完整,请完整药品信息!&);
else if (dgvOrdonnanceDetail.Rows.Count & 1)
MessageBox.Show(&你还没有选择药品,请选择药品后再保存!&);
else if (dgvOrdonnanceDetail.Rows.Count == 0)
if (dgvOrdonnanceDetail.Rows[0].Cells[&药品名称&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&用药总量&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&用药方式&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&备注&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&处方编码&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&处方明细类型&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&每剂用量&].Value == null &&
dgvOrdonnanceDetail.Rows[0].Cells[&用药频率&].Value == null
MessageBox.Show(&你还没有选择药品,请选择药品后再保存!&);
#endregion
#region 当所有数据齐全时新增处方单
M= myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Update_Load_UpdateOrdonnance(strOrdonnanceNumber, intPatientID, dtmPrescriptionDate,
intClinicTechnicalOffices_TechnicalOfficesID, intTreatmentDoctor_StaffID, intOrdonnanceID);
foreach (DataGridViewRow dgvr in dgvOrdonnanceDetail.Rows)
if (dgvr.Cells[&药品名称&].Value == null &&
dgvr.Cells[&药品编号&].Value == null &&
dgvr.Cells[&药品规格&].Value == null &&
dgvr.Cells[&每剂用量&].Value == null)
int intOrdonnanceDetailID;
intOrdonnanceDetailID = Convert.ToInt32(dgvr.Cells[&处方明细ID&].Value);
if (intOrdonnanceDetailID == 0)
string strOrdonnanceDetailType = dgvr.Cells[&处方明细类型&].Value.ToString();
string strOrdonnanceDetailEncoding = dgvr.Cells[&处方编码&].Value.ToString();
int intDrugID = Convert.ToInt32(dgvr.Cells[&处方药品ID&].Value);
string strTotalDrug = dgvr.Cells[&用药总量&].Value.ToString();
string strEachAgent = dgvr.Cells[&每剂用量&].Value.ToString();
int intAS_DrugUseMannerID = Convert.ToInt32(dgvr.Cells[&用药方式&].Value);
int intAS_DDDSID = Convert.ToInt32(dgvr.Cells[&用药频率&].Value);
string strRemarks = dgvr.Cells[&备注&].Value.ToString();
a = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Insert_Load_InsertOrdonnanceDetail(intOrdonnanceID, strOrdonnanceDetailType,
strOrdonnanceDetailEncoding, intDrugID, strTotalDrug, strEachAgent, intAS_DrugUseMannerID, intAS_DDDSID,
strRemarks);
string strOrdonnanceDetailType1 = dgvr.Cells[&处方明细类型&].Value.ToString();
string strOrdonnanceDetailEncoding1 = dgvr.Cells[&处方编码&].Value.ToString();
int intDrugID1 = Convert.ToInt32(dgvr.Cells[&处方药品ID&].Value);
string strTotalDrug1 = dgvr.Cells[&用药总量&].Value.ToString();
string strEachAgent1 = dgvr.Cells[&每剂用量&].Value.ToString();
int intAS_DrugUseMannerID1 = Convert.ToInt32(dgvr.Cells[&用药方式&].Value);
int intAS_DDDSID1 = Convert.ToInt32(dgvr.Cells[&用药频率&].Value);
string strRemarks1= dgvr.Cells[&备注&].Value.ToString();
A = myFRM_ChuFangLuRuClient.FRM_ChuFangLuRu_Update_Load_UpdateOrdonnanceDetail(intOrdonnanceID, strOrdonnanceDetailType1,
strOrdonnanceDetailEncoding1, intDrugID1, strTotalDrug1, strEachAgent1, intAS_DrugUseMannerID1, intAS_DDDSID1,
strRemarks1, intOrdonnanceDetailID);
if (a & 0 && A & 0 && M & 0 || A & 0 && M & 0 || a & 0 && A & 0)
MessageBox.Show(&成功修改处方!& + &修改的处方号为:& + strOrdonnanceNumber);
this.Close();
#endregion
#endregion
#region 调用处方模板事件
private void btnInvokingTemplate_Click(object sender, EventArgs e)
FRM_ChuFangMuBan myFRM_ChuFangMuBan = new FRM_ChuFangMuBan(this);
myFRM_ChuFangMuBan.ShowDialog();
#endregion
#region 新增药方事件
private void btnInsert_Click(object sender, EventArgs e)
dgvDrug.Visible =
dgvDrug.DataSource = myFRM_ChuFangLuRuClient.btnInsert_Click_SelectDrug().Tables[0];
#endregion
#region dgvDrug_CellMouseClick事件
bool Drug =
private void dgvDrug_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
if (dgvOrdonnanceDetail.Rows.Count & 0)//判断dgvChuFangMuBan是否有数据
for (int i = 0; i & dgvOrdonnanceDetail.Rows.C i++)//循环dgvChuFangMuBan行数
int DrugID = Convert.ToInt32(dgvOrdonnanceDetail.Rows[i].Cells[&处方药品ID&].Value);//获取处方药品ID
int intDrugID = Convert.ToInt32(dgvDrug.CurrentRow.Cells[&药品ID&].Value);
if (intDrugID == DrugID)//dgvChuFangMuBan中已存在相同的药品(判断新增的药品,dgvChuFangMuBan中是否存在相同的药品)
MessageBox.Show(&该药品已存在!&);
if (Drug == true)
if (Switch)
dgvOrdonnanceDetail.Rows.Add();
int rowsCount = dgvOrdonnanceDetail.Rows.Count - 1;
dgvOrdonnanceDetail.Rows[rowsCount].Cells[&处方药品ID&].Value = Convert.ToInt32(dgvDrug.CurrentRow.Cells[&药品ID&].Value);
dgvOrdonnanceDetail.Rows[rowsCount].Cells[&药品编号&].Value = dgvDrug.CurrentRow.Cells[&编号&].Value.ToString();
dgvOrdonnanceDetail.Rows[rowsCount].Cells[&药品名称&].Value = dgvDrug.CurrentRow.Cells[&名称&].Value.ToString();
dgvOrdonnanceDetail.Rows[rowsCount].Cells[&药品规格&].Value = dgvDrug.CurrentRow.Cells[&规格&].Value.ToString();
dgvOrdonnanceDetail.Rows[rowsCount].Cells[&每剂用量&].Value = dgvDrug.CurrentRow.Cells[&单位剂量&].Value.ToString();
dgvDrug.Visible =
#endregion
#region dgvPatient_CellClick事件
private void dgvPatient_CellClick(object sender, DataGridViewCellEventArgs e)
if (SwitchOne)
intPatient = Convert.ToInt32(dgvPatient.CurrentRow.Cells[&PatientID&].Value);
txtPatientName.Text = dgvPatient.CurrentRow.Cells[&PatientName&].Value.ToString();
cboSex.SelectedValue = Convert.ToInt32(dgvPatient.CurrentRow.Cells[&AS_SexID&].Value);
txtAge.Text = dgvPatient.CurrentRow.Cells[&Age&].Value.ToString();
txtPersonalTaboo.Text = dgvPatient.CurrentRow.Cells[&PersonalTaboo&].Value.ToString();
txtDrugAllergyHistory.Text = dgvPatient.CurrentRow.Cells[&DrugAllergyHistory&].Value.ToString();
SwitchOne =
dgvPatient.Visible =
#endregion
#region dgvOrdonnanceDetail_CellClick事件
ArrayList arr = new ArrayList();
private void dgvOrdonnanceDetail_CellClick(object sender, DataGridViewCellEventArgs e)
if (e.ColumnIndex == 0)
DialogResult dr = MessageBox.Show(&是否删除?&, &系统提示&, MessageBoxButtons.OKCancel, MessageBoxIcon.Question);//弹出确定对话框
if (dr == DialogResult.OK)//如果点了确定按钮
dgvOrdonnanceDetail.Rows.RemoveAt(dgvOrdonnanceDetail.CurrentRow.Index);
#endregion
#region 结束编辑事件
private void dgvOrdonnanceDetail_CellEndEdit(object sender, DataGridViewCellEventArgs e)
if (Convert.ToInt32(dgvOrdonnanceDetail.CurrentRow.Cells[&用药总量&].Value) & 0)
MessageBox.Show(&请输入大于0的数,这里默认为1.&);
dgvOrdonnanceDetail.CurrentRow.Cells[&用药总量&].Value = 1;
#endregion
仅供学习,禁止用于商业用途。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6806次
排名:千里之外
原创:22篇

我要回帖

更多关于 病例分析怎么写 的文章

 

随机推荐