oracle下医嘱的执行功能
函数名:of_zy_yzfy / / n_medicare_minihis
功能描述:在提交订单后执行订单条目
函数参数:
/ / 1.s_yb_zy_yzfy astr_jyxx订单成本信息
返回:(布尔)
/ /作者:annicybc时间:2006 / 03 / 22
/ / ***********************************************************************
/ / ==============================================================================
交易功能描述:
/ / ------------------------------------------------------------------------------
输入参数(数据)
~ ~ ~ / /空空空空+提交订单数量的住院费用+订单zymx(%分)
一系列的zymx / /订单的成本
(可以在两个记录之间重复,重复% =分离)
的数量/细节提交% {编号细节(N20)+治疗型(11门诊,住院患者21名,char(2 +))
签署/撤回(1个退出,0个正常,char(1))+(1个2级标记药物,诊断和治疗,char(1 +))
项目中心号码(VARCHAR / /(20))编码(VARCHAR +项目结束的医院(20))+项目名称医院端(varchar(40))
项目规格 / /医院端(varchar(30))医院(VARCHAR +项目端单元(8))+(时间)+订货日期
医生/名称(varchar(20)(n)+项目价格(12,4)+(N)项目编号(12,4),停药时负)+项目编号(补1)+粘贴
该项目的金额(n /(10,4)比(n)+自(5,4))+单复合符号(C1)}
/ / ------------------------------------------------------------------------------
输出参数(消息)
事务结果错误消息:空空空白不能保存医院编号列表,无法保存序号+列表(列表在%之间分离)的成本。
/ / ==============================================================================
字符串lpData { 3 }
字符串lpmessage =空间(3000),ls_data2 =空间(3000)
字符串ls_checkdata { },{ } ls_checkdata2
整数li_rtn,i = 1,J = 1,K = 1,H = 1,li_detailsum
字符串ls_zyhm = '',ls_wfbc_zyhlb = '',ls_wfbc_yzlslb = '',ls_wfbc_fylslb = '',ls_yzfylb =
字符串处方= '',方2 = '',prescription3 =
字符串ls_lsxh,ls_jzlx,ls_tybz,ls_lbbz,ls_xmzxbh,ls_xmyybm,ls_xmyymc,ls_xmyygg,ls_xmyydw,ls_yzrq,ls_yzrq,ls_lbbz,X,H,R,R,X,
我= 1(astr_jyxx上界。inzyhm)
ls_zyhm =装饰(字符串(astr_jyxx。inzyhm {我}))
如果of_get_tradeid(33)= - 1
is_error =失败交易数量的应用!
返回false
最后如果
获取与执行后的住院订单数对应的详细数据
/药物
select count(*)为:从zy_sfmx哪里zyhm = li_detailsum:ls_zyhm和ybtj = 0= '0';
声明sfmx光标
选择从哪里zy_sfmx zyhm = lsxh:ls_zyhm和ybtj = '0'using sqlhis;
打开sfmx;
J = 1
而li_detailsum做{J}.
取sfmx为:ls_lsxh;
ls_jzlx / / ln_lsxh,ls_tybz,ls_lbbz,ls_xmzxbh,ls_xmyybm,ls_xmyymc
/ / ls_xmyydw
选择to_char(a.lsxh),to_char(21),to_char(0),to_char(a.xmlx),to_char(a.ybxh),to_char(a.xmxh),
to_char(a.fyrq,'yyyy。毫米。DD的),to_char(c.ysxm),to_char(a.fydj,' 9999999 0 '),to_char(a.fysl,' 9999999 0 '),和to_char(1),和((H),),(
为ls_lsxh,:ls_jzlx,:ls_tybz,ls_lbbz ls_xmzxbh,:,:ls_xmyybm,
ls_yzrq,:::ls_ysxm,ls_xmdj,ls_xmsl,ls_xmts ls_xmje,:,:ls_zfbl
从zy_sfmx,gy_ypml B、C gy_ysml
在a.zyhm =:ls_zyhm和a.ybtj = '0'and a.xmlx = 1和a.xmxh = b.ypxh和
为了lsxh
使用sqlhis;
如果ls_lbbz = '1'then / /药物
选择NVL(检安公司,'不'),NVL(ypgg,'不'),to_char(dffbz,'0'),to_char(zydw)
为ls_xmyymc,:::ls_xmyygg,ls_dffbz,ls_xmyydw
从gy_ypml
在ybbh =:ls_xmzxbh和ypxh =:ls_xmyybm
使用sqlhis;
ls_lbbz = '2'then / /成本
选择NVL(fymc,'没有')
为ls_xmyymc
从gy_fyml
在ybbh =:ls_xmzxbh和fyxh =:ls_xmyybm使用sqlhis;
ls_xmyygg =不
ls_dffbz = '0'
ls_xmyydw =不
最后如果
选择int(j 10)+ 1
案例1
处方=处方+装饰(ls_lsxh)+ % +装饰(ls_jzlx)+ % +装饰(ls_tybz)+ % +装饰(ls_lbbz)+ % +
修剪(ls_xmzxbh)+ % +装饰(ls_xmyybm)+ % +装饰(ls_xmyymc)+ % +装饰(ls_xmyygg)+ % +装饰(ls_xmyydw +)
% +装饰(ls_yzrq)+ % +装饰(ls_ysxm)+ % +装饰(ls_xmdj)+ % +装饰(ls_xmsl)+ % +装饰(ls_xmts)+ % +
修剪(ls_xmje)+ % +装饰(ls_zfbl)+ % +装饰(ls_dffbz);
案例2
方2 =处方+装饰(ls_lsxh)+ % +装饰(ls_jzlx)+ % +装饰(ls_tybz)+ % +装饰(ls_lbbz)+ % +
修剪(ls_xmzxbh)+ % +装饰(ls_xmyybm)+ % +装饰(ls_xmyymc)+ % +装饰(ls_xmyygg)+ % +装饰(ls_xmyydw +)
% +装饰(ls_yzrq)+ % +装饰(ls_ysxm)+ % +装饰(ls_xmdj)+ % +装饰(ls_xmsl)+ % +装饰(ls_xmts)+ % +
修剪(ls_xmje)+ % +装饰(ls_zfbl)+ % +装饰(ls_dffbz);
其他案件
prescription3 =处方+装饰(ls_lsxh)+ % +装饰(ls_jzlx)+ % +装饰(ls_tybz)+ % +装饰(ls_lbbz)+ % +
修剪(ls_xmzxbh)+ % +装饰(ls_xmyybm)+ % +装饰(ls_xmyymc)+ % +装饰(ls_xmyygg)+ % +装饰(ls_xmyydw +)
% +装饰(ls_yzrq)+ % +装饰(ls_ysxm)+ % +装饰(ls_xmdj)+ % +装饰(ls_xmsl)+ % +装饰(ls_xmts)+ % +
修剪(ls_xmje)+ % +装饰(ls_zfbl)+ % +装饰(ls_dffbz);
最后选择
J++
环
近sfmx;
如果J<10
lpData { 1 } =$ ~~~~~~ + ls_zyhm +
J<20
lpData { 2 } =$ ~~~~~~ + ls_zyhm +
其他的
lpData { 3 } =$ ~~~~~~ + ls_zyhm +
最后如果
对于k = 1到3
如果空(lpData {K })= false
li_rtn = f_userbargaingapply(33,uniquelytradeid,lpData {K },lpmessage,ls_data2)
lpmessage = of_dataunwrap(lpmessage) / /数据解包
of_checkout(lpmessage,裁判ls_checkdata)
lpData {我} = lpmessage
如果li_rtn<0
如果Upperbound(ls_checkdata)= 6
ls_wfbc_zyhlb = ls_checkdata { 4 }
ls_wfbc_yzlslb = ls_checkdata { 5 }
ls_wfbc_fylslb = ls_checkdata { 6 }
Elseif Upperbound(ls_checkdata)= 1
is_error =上传失败的医疗保险数据!~ N ~ n + lpData
返回false
最后如果
如果修剪(ls_wfbc_zyhlb)然后<>
of_checkout2(ls_wfbc_zyhlb REF ls_checkdata2)无法挽救的分解 / /
H = 1的上限(ls_checkdata2)
astr_jyxx。outzyhm {我+ H-1 } =长(ls_checkdata2 {H}) / /住院号连续包装,避免覆盖
下一个
最后如果
如果修剪(ls_wfbc_yzlslb)然后<>
of_checkout2(ls_wfbc_yzlslb REF ls_checkdata2) / /分解不能保存订单编号列表
H = 1的上限(ls_checkdata2)
astr_jyxx。outyzls {我+ int(J / 10)+ 1 + h-1-1 } =长(ls_checkdata2 {H}) / /编号顺序连续包装,避免覆盖
下一个
最后如果
如果修剪(ls_wfbc_fylslb)然后<>
of_checkout2(ls_wfbc_fylslb REF ls_checkdata2)保存的分解/编号列表的成本
我= 1的上限(ls_checkdata2)
astr_jyxx。outfyls {我+ int(J / 10)+ 1 + h-1-1 } =长(ls_checkdata2 {我}) / /序号将成本连续包装,避免覆盖
下一个
最后如果
最后如果
选择的案例li_rtn
案例1
is_error =上传失败的医疗保险数据!~ N ~ n + lpData
返回false
案例2
is_error =失败上传医疗保险数据!至少一个住院天数未检查失败~ N ~ n + lpData因为不在医院。
返回false
案例3
is_error =上传失败的医疗保险数据!至少有一个电荷不能拯救~ N ~ n + lpData
返回false
最后选择
如果li_rtn<0
is_error =上传失败的医疗保险数据!~ N ~ n + lpData
返回false
最后如果
最后如果
下一个
下一个
返回true