• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > Oracle 下医嘱执行函数

Oracle 下医嘱执行函数

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了oracle 执行函数,oracle怎么执行函数,医嘱执行制度,口头医嘱执行制度,临时医嘱执行时间等相关知识,希望本文的分享对您有所帮助

//***********************************************************************
//函数名称: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 < 10 THEN
  lpData[1] = "$$~~~~~~" + ls_zyhm + "~~" + char(j) + "~~" + Prescription
 ELSEIF J < 20 THEN
  lpData[2] = "$$~~~~~~" + ls_zyhm + "~~" + char(j - 10) + "~~" + Prescription2
 ELSE
  lpData[3] = "$$~~~~~~" + ls_zyhm + "~~" + char(j - 20) + "~~" + Prescription3
 END IF

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Oracle 下医嘱执行函数

相关文章

  • 2017-05-11Oracle数据库的十种重新启动步骤
  • 2017-05-11如何使用log miner分析oracle日志
  • 2017-05-11Oracle数据库表名支持的最大长度是多少
  • 2017-05-11win7 64位操作系统中Oracle 11g + plsql安装教程详解(图解)
  • 2017-05-11Oracle 11g控制文件全部丢失从零开始重建控制文件
  • 2017-05-11DB2数据库切换为oracle数据库经验教训总结(必看篇)
  • 2017-05-11Oracle不同数据库间对比分析脚本
  • 2017-05-11Oracle中转义字符的详细介绍
  • 2017-05-11Oracle创建Database Link的两种方式详解
  • 2017-09-17Oracle12c通过SQL Developer工具调试procedure报错: ORA-24247解决方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle中的Connect/session和process的区别及关系介绍
    • Oracle的substr和instr函数简单用法
    • 解析Oracle查询和删除JOB的SQL
    • oracle查看字符集和修改字符集使用详解
    • Oracle数据库如何创建第一张表
    • 使用JDBC4.0操作Oracle中BLOB类型的数据方法
    • 浅谈Oracle数据库的建模与设计
    • Oracle知识整理笔记
    • Oracle中如何把表和索引放在不同的表空间里
    • oracle修改scott密码与解锁的方法详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有