//***********************************************************************

//函数名称:of_zy_yzfy for n_medicare_minihis

//功能说明:医嘱录入后执行时提交医嘱

//函数参数:

//   1.S_yb_zy_yzfy astr_jyxx 医嘱费用信息

//函数返回: (BOOLEAN)

//作者:annicybc  时间:2006/03/22

//***********************************************************************

//==============================================================================

// 交易函数说明:

//------------------------------------------------------------------------------

// 入口参数(Data)

// 空~空~空~空 + 本次提交医嘱的住院号+ 该住院号的医嘱费用列表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))+医嘱日期(DATETIME)+

//医生姓名(varchar(20))+项目单价(N(12,4))+项目数量(N(12,4),退药时为负数)+项目贴数(填1)+

//项目金额(N(10,4))+自负比例(N(5,4))+单复方标志(C1)]

//------------------------------------------------------------------------------

// 出口参数(Message)

// 交易结果~错误信息+空~空~空 + 无法保存的住院号列表 + 无法保存的费用流水号列表(列表间%%分隔)

//==============================================================================

String  lpData[3]

String  lpMessage = Space(3000),ls_data2=space(3000)

String  ls_CheckData[],ls_CheckData2[]

Integer li_Rtn,i=1,j=1,k=1,h=1,li_detailsum

string  ls_zyhm='',ls_wfbc_zyhlb='',ls_wfbc_yzlslb='',ls_wfbc_fylslb='',ls_yzfylb=''

string Prescription = '',Prescription2 = '',Prescription3 = ''

string 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

for i = 1 to Upperbound(astr_jyxx.inzyhm)

ls_zyhm = trim(string(astr_jyxx.inzyhm[i]))

if of_get_tradeid(33) = -1 then

is_error = "申请交易号失败!"

return false

end if

//取到该住院号对应的医嘱执行后产生的明细数据

//药品

select count(*) into :li_detailsum from zy_sfmx where zyhm = :ls_zyhm and ybtj = '0' using sqlhis;

DECLARE SFMX CURSOR FOR

select LSXH from zy_sfmx where zyhm = :ls_zyhm and ybtj = '0' using sqlhis;

OPEN SFMX;

J = 1

DO WHILE J <= li_detailsum

FETCH SFMX INTO :LS_LSXH;

// Ln_lsxh,ls_jzlx,ls_tybz,ls_lbbz,ls_xmzxbh,ls_xmyybm,"ls_xmyymc","ls_xmyygg",

//"ls_xmyydw",ldt_yzrq,ls_ysxm,ln_xmdj,ln_xmsl,ln_xmts,ln_xmje,ln_zfbl,ls_dffbz

select 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.mm.dd'),to_char(c.ysxm),to_char(a.fydj,'99999990.0000'),to_char(a.fysl,'99999990.0000'),to_char(1),to_char(a.fydj*a.fysl,'999990.0000'),to_char(a.zfbl,'0.0000'),to_char(b.dffbz)

INTO :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

from zy_sfmx a,gy_ypml b,gy_ysml c

where a.zyhm = :ls_zyhm and a.ybtj = '0' and a.xmlx = 1 and a.xmxh = b.ypxh and a.kzys = c.ysdm

order by lsxh

using sqlhis;

if Ls_lbbz='1' then//药品

select nvl(ypmc,'无'),nvl(ypgg,'无'),to_char(dffbz,'0'),to_char(zydw)

into :ls_xmyymc,:ls_xmyygg,:ls_dffbz,:ls_xmyydw

from gy_ypml

where ybbh=:Ls_xmzxbh and ypxh = :Ls_xmyybm

using sqlhis;

elseif Ls_lbbz='2' then//费用

select nvl(fymc,'无')

into :ls_xmyymc

from gy_fyml

where ybbh=:Ls_xmzxbh and fyxh = :Ls_xmyybm using sqlhis;

ls_xmyygg='无'

ls_dffbz='0'

ls_xmyydw='无'

end if

CHOOSE CASE int(j/10)+1

CASE 1

Prescription = Prescription + trim(Ls_lsxh)+"%%"+trim(Ls_jzlx)+"%%"+trim(Ls_tybz)+"%%"+trim(Ls_lbbz)+"%%"+&

trim(Ls_xmzxbh)+"%%"+trim(Ls_xmyybm)+"%%"+trim(Ls_xmyymc)+"%%"+trim(Ls_xmyygg)+"%%"+trim(Ls_xmyydw)+&

"%%"+trim(Ls_yzrq)+"%%"+trim(Ls_ysxm)+"%%"+trim(Ls_xmdj)+"%%"+trim(Ls_xmsl)+"%%"+trim(Ls_xmts)+"%%"+&

trim(Ls_xmje)+"%%"+trim(Ls_zfbl)+"%%"+trim(Ls_dffbz);

CASE 2

Prescription2 = Prescription + trim(Ls_lsxh)+"%%"+trim(Ls_jzlx)+"%%"+trim(Ls_tybz)+"%%"+trim(Ls_lbbz)+"%%"+&

trim(Ls_xmzxbh)+"%%"+trim(Ls_xmyybm)+"%%"+trim(Ls_xmyymc)+"%%"+trim(Ls_xmyygg)+"%%"+trim(Ls_xmyydw)+&

"%%"+trim(Ls_yzrq)+"%%"+trim(Ls_ysxm)+"%%"+trim(Ls_xmdj)+"%%"+trim(Ls_xmsl)+"%%"+trim(Ls_xmts)+"%%"+&

trim(Ls_xmje)+"%%"+trim(Ls_zfbl)+"%%"+trim(Ls_dffbz);

CASE ELSE

Prescription3 = Prescription + trim(Ls_lsxh)+"%%"+trim(Ls_jzlx)+"%%"+trim(Ls_tybz)+"%%"+trim(Ls_lbbz)+"%%"+&

trim(Ls_xmzxbh)+"%%"+trim(Ls_xmyybm)+"%%"+trim(Ls_xmyymc)+"%%"+trim(Ls_xmyygg)+"%%"+trim(Ls_xmyydw)+&

"%%"+trim(Ls_yzrq)+"%%"+trim(Ls_ysxm)+"%%"+trim(Ls_xmdj)+"%%"+trim(Ls_xmsl)+"%%"+trim(Ls_xmts)+"%%"+&

trim(Ls_xmje)+"%%"+trim(Ls_zfbl)+"%%"+trim(Ls_dffbz);

END CHOOSE

J++

LOOP

CLOSE SFMX;

IF J

lpData[1] = "$$~~~~~~" + ls_zyhm + "~~" + char(j) + "~~" + Prescription

ELSEIF J

lpData[2] = "$$~~~~~~" + ls_zyhm + "~~" + char(j - 10) + "~~" + Prescription2

ELSE

lpData[3] = "$$~~~~~~" + ls_zyhm + "~~" + char(j - 20) + "~~" + Prescription3

END IF

FOR K = 1 TO 3

IF ISNULL( lpData[k] ) = FALSE THEN

li_Rtn = f_UserBargaingApply(33,uniquelytradeid,lpData[k],lpMessage,ls_data2)

///

lpMessage = of_dataunwrap(lpMessage) //数据解包

of_checkout(lpMessage,Ref ls_checkdata)

lpData[i]=lpMessage

if li_Rtn

if Upperbound(ls_checkdata) = 6 then

ls_wfbc_zyhlb  = ls_checkdata[4]

ls_wfbc_yzlslb = ls_checkdata[5]

ls_wfbc_fylslb = ls_checkdata[6]

elseif Upperbound(ls_checkdata) = 1 then

is_Error = "上传医保数据失败!~n~n" + lpData

return false

end if

if trim(ls_wfbc_zyhlb) <> '' then

of_checkout2(ls_wfbc_zyhlb,ref ls_checkdata2)//分解无法保存的住院号

for h = 1 to Upperbound(ls_checkdata2)

astr_jyxx.outzyhm[i+h-1] = long(ls_checkdata2[h])//将住院号连续封装,避免覆盖

next

end if

if trim(ls_wfbc_yzlslb) <> '' then

of_checkout2(ls_wfbc_yzlslb,ref ls_checkdata2)//分解无法保存的医嘱流水号列表

for h = 1 to Upperbound(ls_checkdata2)

astr_jyxx.outyzls[i+int(j/10)+1+h-1-1] = long(ls_checkdata2[h]) //将医嘱流水号连续封装,避免覆盖

next

end if

if trim(ls_wfbc_fylslb) <> '' then

of_checkout2(ls_wfbc_fylslb,ref ls_checkdata2)//分解无法保存的费用流水号列表

for i = 1 to Upperbound(ls_checkdata2)

astr_jyxx.outfyls[i+int(j/10)+1+h-1-1] = long(ls_checkdata2[i])//将费用流水号连续封装,避免覆盖

next

end if

end if

choose case li_Rtn

case -1

is_Error = "上传医保数据失败!~n~n" + lpData

return false

case -2

is_Error = "上传医保数据失败!至少有一个住院号由于不在住院中而校验失败~n~n" + lpData

return false

case -3

is_Error = "上传医保数据失败!至少有一条费用明细不能保存~n~n" + lpData

return false

end choose

if li_Rtn<0 then

is_Error = "上传医保数据失败!~n~n" + lpData

return false

end if

///

END IF

NEXT

NEXT

RETURN True

c 执行oracle 函数,Oracle 下医嘱执行函数相关推荐

  1. windows 下执行mysql脚本_Windows下批处理执行MySQL脚本文件

    一. @echo off Setlocal enabledelayedexpansion ::CODER BY Mark_Li POWERD BY iBAT 1.6 cd "C:\Progr ...

  2. linux设备负责执行计划任务,linux下定时执行计划任务

    查看/etc/crontab文件 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 0 ...

  3. python基础十 函数(下)匿名函数、高阶函数、闭包、装饰器

    目录 1. 匿名函数(lambda表达式) 2. 高阶函数 3. 函数的嵌套 4. nonlocal 关键字使用 5. 闭包 6. 装饰器 1. 匿名函数(lambda表达式) 简介 用一句话来表达只 ...

  4. linux下rename函数,linux下的rename函数说明

    rename(更改文件名称或位置) 相关函数 link,unlink,symlink 表头文件 #include 定义函数 int rename(const char * oldpath,const ...

  5. c语言win api函数,Win2K下的Api函数的拦截

    这么多高手在这里,哎,小弟愿意向各位高手学习. Api拦截并不是一个新的技术,很多商业软件都采用这种技术.对windows的Api函数的拦截,不外乎两种方法,第一种是Mr. Jeffrey Richt ...

  6. lateral函数oracle,ORACLE LATERAL-SQL-INJECTION 个人见解

    ORACLE LATERAL-SQL-INJECTION 个人见解 更新时间:2008年05月07日 18:54:31   作者: 最近忙啊忙啊的,今天终于有点点时间抽出来看看技术文章了,最近国外又出 ...

  7. linux内核的延时函数,linux中内核延时函数 (转)

    第一类延时函数原型是:(忙等) void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(unsi ...

  8. oracle中执行动态sql语句吗,oracle中有没有可动态执行sql语句的函数

    oracle中有没有可动态执行sql语句的函数 关注:233  答案:2  手机版 解决时间 2021-03-05 15:53 提问者祗剩寂寞 2021-03-04 22:38 oracle中有没有可 ...

  9. ORACLE 调试输出,字符串执行函数

    Oracle PL/SQL 过程调试的输出方法 1.最基本的DBMS_OUTPUT.PUT_LINE()方法. 随便在什么地方,只要是BEGIN和END之间,就可以使用DBMS_OUTPUT.PUT_ ...

最新文章

  1. 中国科技巨擘(BAT)竞逐人工智能
  2. vw实现移动端自适应页面
  3. 使用Ubuntu笔记
  4. java ee jsp_EE JSP:使用自定义标签库生成动态内容
  5. 如何判断一个点在任意四边形内
  6. 野生前端的数据结构基础练习(2)——队列
  7. 向前欧拉公式例题_小学语文阅读理解答题万能公式,简单实用!
  8. 网抑云了是什么意思,网抑云语录有哪些,网抑云网抑云梗表情包
  9. 使用一个插件将Zend Framework应用程序的内容转换为xml
  10. 计算机应用基础项目化教程ppt,计算机应用基础项目化教程_课件
  11. 电动牙刷无线充电解决方案
  12. Alkyne-PEG2000-Maleimide,含有炔基和马来西安亚楠的PEG,Alk-PEG2000-MAL
  13. Linux虚拟主机管理系统---wdcp
  14. c语言多个自我介绍编码,代码自我介绍.doc
  15. bs前端设计--多页签界面
  16. 【WPS表格】数据透视表刷新后,保持格式不变
  17. 华为交换机S5735S如何堆叠iStack
  18. 2023华为机考刷题指南:八周机考速通车
  19. 讲讲一条MySQL更新语句是怎么执行的?
  20. web网站总是出现404 bug?照着以下几个原因排查,不怕修复不了啦

热门文章

  1. pandas数据处理:常用却不甚了解的函数,pd.read_excel()
  2. 前端怎么画三角形_css如何画三角形?
  3. 临床数据的区组实验数据分析 - 倾向性评分匹配 (PSM)
  4. Nginx 根据链接参数动态代理配置
  5. 大二暑期第四周学习总结
  6. Web3:我们创造更好互联网的机会
  7. python就业前景不好_Python就业发展前景分析
  8. 主谓宾定状补......
  9. Tapestry介绍
  10. Service com.android.exchange.ExchangeService has leaked ServiceConnection