存储过程:
CREATE OR REPLACE PROCEDURE "HIS_BZ_QC"."PROC_APP_REGIST" (
Hosnum In Varchar2,--医院编号
App_Hid In Varchar2,--号源ID
App_Id_No In Varchar2,--身份证号
App_Patient_Name In Varchar2,--就诊人姓名
App_Phone In Varchar2,
App_Patient_Id In Varchar2,--病人ID
App_Dept_Code In Varchar2,--科室编号
App_Dept_Name In Varchar2,--科室名称
App_Doctor_Code In Varchar2,--医生编号
App_Doctor_Name In Varchar2,--医生姓名
App_Reg_Date In Varchar2,--预约号源日期
App_Hb_Time In Varchar2,--号源时段
App_Clinic_Duration In Varchar2,--号源午别
App_Trade_Order_No In Varchar2,--趣医订单号
App_Diag_Fee In Varchar2,--诊疗费
App_Pharmacy_Fee In Varchar2,--药事费
His_Operator In Varchar2,--HIS操作员编号
His_Operator_Name In Varchar2,--HIS操作员姓名
Free_Treat_Flag In Varchar2,--挂号费别
Result_Code Out Varchar2,--预约返回结果
Error_Msg Out Varchar2,--错误信息
His_Order_No Out Varchar2,--HIS交易流水号
Verify_Code Out Varchar2,--取号验证码
Clinic_No Out Varchar2,--门诊号
Visit_No Out Varchar2,--就诊序号
Ser_No Out Varchar2--发票号
) As
T_Err_Item Exception;
T_Error_Msg Varchar2(1000);
T_Regid Varchar2(100);
T_Invoiceid Varchar2(100);
T_Patientid Bas_Patients.Patientid%Type;
T_Chgdetailid Chg_Details.Chgdetailid%Type;
T_Payid Chg_Paydetails.Payid%Type;
T_Patname Bas_Patients.Patname%Type;
T_Sex Bas_Patients.Sex%Type;
T_Dateofbirth Bas_Patients.Dateofbirth%Type;
T_Idnum Bas_Patients.Idnum%Type;
T_Phonenumber Bas_Patients.Phonecall%Type;
T_Clctimes Bas_Patients.Clctimes%Type:=1;
T_Currentnum Clc_Sch.M_Currentnum%Type;
T_Datereg Clc_Reg.Datereg%Type;
T_Invoicenum Bas_Invoice.Currentnum%Type;
T_Num Number;
T_Am Varchar2(2);
T_His_Operator Bas_Patients.Operator%Type;--HIS操作员编号
T_His_Operator_Name Bas_Patients.Operatorname%Type;--HIS操作员姓名
T_Hosnum Clc_Sch.Hosnum%Type;
T_Takeid Bas_Invoice.Takeid%Type;
T_Regage Clc_Reg.Regage%Type;
Begin
--判断排班和医院编号是否匹配
Select A.Hosnum Into T_Hosnum From Clc_Sch A Where Schid = App_Hid;
If T_Hosnum != Hosnum Then
T_Error_Msg :='排班和医院编号不匹配!';
Raise T_Err_Item;
End If;
--获取操作员编号
Select His_Operator Into T_His_Operator From Dual;
If Sql%Rowcount =0 Then
T_Error_Msg :='获取操作员编号错误!';
Raise T_Err_Item;
End If;
--获取操作员姓名
Select His_Operator_Name Into T_His_Operator_Name From Dual;
If Sql%Rowcount =0 Then
T_Error_Msg :='获取操作员姓名错误!';
Raise T_Err_Item;
End If;
--判断是否有患者信息,无,新建,有,返回。
--无患者信息
Select Count(*) Into T_Num From Bas_Patients A Where A.Patname = App_Patient_Name And A.Idnum