oracle

推荐列表 站点导航

当前位置:首页 > 数据库 > oracle >

Oracle 下医嘱执行函数

来源:网络整理  作者:网络  发布时间:2020-12-10 20:49
Oracle 下医嘱执行函数...
  lpData[2] = "$$~~~~~~" + ls_zyhm + "~~" + char(j - 10) + "~~" + Prescription2
 NEXT
          trim(Ls_xmje)+"%%"+trim(Ls_zfbl)+"%%"+trim(Ls_dffbz);
   where a.zyhm = :ls_zyhm and a.ybtj = '0' and a.xmlx = 1 and a.xmxh = b.ypxh and a.kzys = c.ysdm
   li_Rtn = f_UserBargaingApply(33,uniquelytradeid,lpData[k],lpMessage,ls_data2)
   end if
// 交易结果~错误信息+空~空~空 + 无法保存的住院号列表 + 无法保存的费用流水号列表(列表间%%分隔)
NEXT
     is_Error = "上传医保数据失败!至少有一个住院号由于不在住院中而校验失败~n~n" + lpData 
//------------------------------------------------------------------------------
 FOR K = 1 TO 3
    ls_xmyydw='无'
        trim(Ls_xmje)+"%%"+trim(Ls_zfbl)+"%%"+trim(Ls_dffbz);
  is_error = "申请交易号失败!"
    ls_xmyygg='无'
   END CHOOSE
     Prescription3 = Prescription + trim(Ls_lsxh)+"%%"+trim(Ls_jzlx)+"%%"+trim(Ls_tybz)+"%%"+trim(Ls_lbbz)+"%%"+&
 ls_zyhm = trim(string(astr_jyxx.inzyhm[i]))
        :Ls_yzrq,:Ls_ysxm,:Ls_xmdj,:Ls_xmsl,:Ls_xmts,:Ls_xmje,:Ls_zfbl
string Prescription = '',Prescription2 = '',Prescription3 = ''
   lpMessage = of_dataunwrap(lpMessage) //数据解包
     Prescription2 = Prescription + trim(Ls_lsxh)+"%%"+trim(Ls_jzlx)+"%%"+trim(Ls_tybz)+"%%"+trim(Ls_lbbz)+"%%"+&
 select count(*) into :li_detailsum from zy_sfmx where zyhm = :ls_zyhm and ybtj = '0' using sqlhis;
//作者:annicybc  时间:2006/03/22
    case -1
   using sqlhis;
//医生姓名(varchar(20))+项目单价(N(12,4))+项目数量(N(12,4),退药时为负数)+项目贴数(填1)+
 //药品
   order by lsxh
 //取到该住院号对应的医嘱执行后产生的明细数据
String  lpMessage = Space(3000),ls_data2=space(3000)
     return false
    into :ls_xmyymc,:ls_xmyygg,:ls_dffbz,:ls_xmyydw 
     return false
   if li_Rtn<0 then
   //"ls_xmyydw",ldt_yzrq,ls_ysxm,ln_xmdj,ln_xmsl,ln_xmts,ln_xmje,ln_zfbl,ls_dffbz
//==============================================================================
// 空~空~空~空 + 本次提交医嘱的住院号+ 该住院号的医嘱费用列表ZYMX(用%%分隔)
 end if
    end if
//函数参数:
// 出口参数(Message)
          trim(Ls_xmzxbh)+"%%"+trim(Ls_xmyybm)+"%%"+trim(Ls_xmyymc)+"%%"+trim(Ls_xmyygg)+"%%"+trim(Ls_xmyydw)+&

   select to_char(a.lsxh),to_char(21),to_char(0),to_char(a.xmlx),to_char(a.YBXH),to_char(a.xmxh),

  FETCH SFMX INTO :LS_LSXH;
    if Upperbound(ls_checkdata) = 6 then
    select nvl(fymc,'无') 
     next
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
 DO WHILE J <= li_detailsum
   lpData[i]=lpMessage
    elseif Upperbound(ls_checkdata) = 1 then
string  ls_zyhm='',ls_wfbc_zyhlb='',ls_wfbc_yzlslb='',ls_wfbc_fylslb='',ls_yzfylb=''
//------------------------------------------------------------------------------
     of_checkout2(ls_wfbc_fylslb,ref ls_checkdata2)//分解无法保存的费用流水号列表
    if trim(ls_wfbc_yzlslb) <> '' then
        trim(Ls_xmje)+"%%"+trim(Ls_zfbl)+"%%"+trim(Ls_dffbz);
//项目中心端编号(Varchar(20))+项目医院端编码(Varchar(20))+项目医院端名称(varchar(40))+
    from gy_ypml 

        "%%"+trim(Ls_yzrq)+"%%"+trim(Ls_ysxm)+"%%"+trim(Ls_xmdj)+"%%"+trim(Ls_xmsl)+"%%"+trim(Ls_xmts)+"%%"+&
 
     is_Error = "上传医保数据失败!~n~n" + lpData 
    using sqlhis;
for i = 1 to Upperbound(astr_jyxx.inzyhm)
     for h = 1 to Upperbound(ls_checkdata2)
//退药标志(1退药,0正常,char(1))+类别标志(1药品,2诊疗,char(1))+
    into :ls_xmyymc 
// 入口参数(Data)
     next

 CLOSE SFMX;
String  ls_CheckData[],ls_CheckData2[]
     next
     of_checkout2(ls_wfbc_zyhlb,ref ls_checkdata2)//分解无法保存的住院号
 J = 1


    select nvl(ypmc,'无'),nvl(ypgg,'无'),to_char(dffbz,'0'),to_char(zydw) 
      astr_jyxx.outzyhm[i+h-1] = long(ls_checkdata2[h])//将住院号连续封装,避免覆盖

    where ybbh=:Ls_xmzxbh and fyxh = :Ls_xmyybm using sqlhis;
  IF ISNULL( lpData[k] ) = FALSE THEN
   CHOOSE CASE int(j/10)+1
//==============================================================================
  lpData[3] = "$$~~~~~~" + ls_zyhm + "~~" + char(j - 20) + "~~" + Prescription3
//函数返回: (BOOLEAN) 

//   1.S_yb_zy_yzfy astr_jyxx 医嘱费用信息
  lpData[1] = "$$~~~~~~" + ls_zyhm + "~~" + char(j) + "~~" + Prescription
   if Ls_lbbz='1' then//药品

          "%%"+trim(Ls_yzrq)+"%%"+trim(Ls_ysxm)+"%%"+trim(Ls_xmdj)+"%%"+trim(Ls_xmsl)+"%%"+trim(Ls_xmts)+"%%"+&
Integer li_Rtn,i=1,j=1,k=1,h=1,li_detailsum
//函数名称:of_zy_yzfy for n_medicare_minihis
      astr_jyxx.outfyls[i+int(j/10)+1+h-1-1] = long(ls_checkdata2[i])//将费用流水号连续封装,避免覆盖
   if li_Rtn < 0 then 
//项目金额(N(10,4))+自负比例(N(5,4))+单复方标志(C1)]
   choose case li_Rtn
   // Ln_lsxh,ls_jzlx,ls_tybz,ls_lbbz,ls_xmzxbh,ls_xmyybm,"ls_xmyymc","ls_xmyygg",
   ///////
      astr_jyxx.outyzls[i+int(j/10)+1+h-1-1] = long(ls_checkdata2[h]) //将医嘱流水号连续封装,避免覆盖
//本次提交明细条数%%[明细序号(N20)+就诊类型(11门诊,21住院,char(2))+
    CASE 1
   end if
    case -3
        trim(Ls_xmzxbh)+"%%"+trim(Ls_xmyybm)+"%%"+trim(Ls_xmyymc)+"%%"+trim(Ls_xmyygg)+"%%"+trim(Ls_xmyydw)+&
        trim(Ls_xmzxbh)+"%%"+trim(Ls_xmyybm)+"%%"+trim(Ls_xmyymc)+"%%"+trim(Ls_xmyygg)+"%%"+trim(Ls_xmyydw)+&
     return false
     return false
   from zy_sfmx a,gy_ypml b,gy_ysml c
    where ybbh=:Ls_xmzxbh and ypxh = :Ls_xmyybm 
    case -2
     of_checkout2(ls_wfbc_yzlslb,ref ls_checkdata2)//分解无法保存的医嘱流水号列表
 ELSEIF J < 20 THEN
//([]表示可以重复,重复的两条纪录之间也以%%分隔)= 
    if trim(ls_wfbc_fylslb) <> '' then
    CASE ELSE
//***********************************************************************
   end choose
     for i = 1 to Upperbound(ls_checkdata2)

  END IF

 ELSE
 if of_get_tradeid(33) = -1 then 
//功能说明:医嘱录入后执行时提交医嘱
    from gy_fyml 
   J++
 OPEN SFMX;
     ls_wfbc_yzlslb = ls_checkdata[5]
 IF J < 10 THEN
     is_Error = "上传医保数据失败!~n~n" + lpData 
    end if 
     for h = 1 to Upperbound(ls_checkdata2)
    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)
    if trim(ls_wfbc_zyhlb) <> '' then
String  lpData[3]
 DECLARE SFMX CURSOR FOR
  select LSXH from zy_sfmx where zyhm = :ls_zyhm and ybtj = '0' using sqlhis;
   elseif Ls_lbbz='2' then//费用
 LOOP


   end if
//项目医院端规格(varchar(30))+项目医院端单位(varchar(8))+医嘱日期(DATETIME)+
// 交易函数说明:
     Prescription = Prescription + trim(Ls_lsxh)+"%%"+trim(Ls_jzlx)+"%%"+trim(Ls_tybz)+"%%"+trim(Ls_lbbz)+"%%"+&
   INTO :Ls_lsxh,:Ls_jzlx,:Ls_tybz,:Ls_lbbz,:Ls_xmzxbh,:Ls_xmyybm,
     is_Error = "上传医保数据失败!至少有一条费用明细不能保存~n~n" + lpData 
    end if
  ///////

RETURN True
     ls_wfbc_zyhlb  = ls_checkdata[4]
  return false
        "%%"+trim(Ls_yzrq)+"%%"+trim(Ls_ysxm)+"%%"+trim(Ls_xmdj)+"%%"+trim(Ls_xmsl)+"%%"+trim(Ls_xmts)+"%%"+&
    is_Error = "上传医保数据失败!~n~n" + lpData 
 END IF

    ls_dffbz='0'
    return false
    end if
    CASE 2

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

//医嘱费用列表ZYMX 

     ls_wfbc_fylslb = ls_checkdata[6]
   of_checkout(lpMessage,Ref ls_checkdata)

相关热词: oracle

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/sql/oracle/2298.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

Oracle 下医嘱执行函数

2020-12-10 编辑:网络

  lpData[2] = "$$~~~~~~" + ls_zyhm + "~~" + char(j - 10) + "~~" + Prescription2
 NEXT
          trim(Ls_xmje)+"%%"+trim(Ls_zfbl)+"%%"+trim(Ls_dffbz);
   where a.zyhm = :ls_zyhm and a.ybtj = '0' and a.xmlx = 1 and a.xmxh = b.ypxh and a.kzys = c.ysdm
   li_Rtn = f_UserBargaingApply(33,uniquelytradeid,lpData[k],lpMessage,ls_data2)
   end if
// 交易结果~错误信息+空~空~空 + 无法保存的住院号列表 + 无法保存的费用流水号列表(列表间%%分隔)
NEXT
     is_Error = "上传医保数据失败!至少有一个住院号由于不在住院中而校验失败~n~n" + lpData 
//------------------------------------------------------------------------------
 FOR K = 1 TO 3
    ls_xmyydw='无'
        trim(Ls_xmje)+"%%"+trim(Ls_zfbl)+"%%"+trim(Ls_dffbz);
  is_error = "申请交易号失败!"
    ls_xmyygg='无'
   END CHOOSE
     Prescription3 = Prescription + trim(Ls_lsxh)+"%%"+trim(Ls_jzlx)+"%%"+trim(Ls_tybz)+"%%"+trim(Ls_lbbz)+"%%"+&
 ls_zyhm = trim(string(astr_jyxx.inzyhm[i]))
        :Ls_yzrq,:Ls_ysxm,:Ls_xmdj,:Ls_xmsl,:Ls_xmts,:Ls_xmje,:Ls_zfbl
string Prescription = '',Prescription2 = '',Prescription3 = ''
   lpMessage = of_dataunwrap(lpMessage) //数据解包
     Prescription2 = Prescription + trim(Ls_lsxh)+"%%"+trim(Ls_jzlx)+"%%"+trim(Ls_tybz)+"%%"+trim(Ls_lbbz)+"%%"+&
 select count(*) into :li_detailsum from zy_sfmx where zyhm = :ls_zyhm and ybtj = '0' using sqlhis;
//作者:annicybc  时间:2006/03/22
    case -1
   using sqlhis;
//医生姓名(varchar(20))+项目单价(N(12,4))+项目数量(N(12,4),退药时为负数)+项目贴数(填1)+
 //药品
   order by lsxh
 //取到该住院号对应的医嘱执行后产生的明细数据
String  lpMessage = Space(3000),ls_data2=space(3000)
     return false
    into :ls_xmyymc,:ls_xmyygg,:ls_dffbz,:ls_xmyydw 
     return false
   if li_Rtn<0 then
   //"ls_xmyydw",ldt_yzrq,ls_ysxm,ln_xmdj,ln_xmsl,ln_xmts,ln_xmje,ln_zfbl,ls_dffbz
//==============================================================================
// 空~空~空~空 + 本次提交医嘱的住院号+ 该住院号的医嘱费用列表ZYMX(用%%分隔)
 end if
    end if
//函数参数:
// 出口参数(Message)
          trim(Ls_xmzxbh)+"%%"+trim(Ls_xmyybm)+"%%"+trim(Ls_xmyymc)+"%%"+trim(Ls_xmyygg)+"%%"+trim(Ls_xmyydw)+&

   select to_char(a.lsxh),to_char(21),to_char(0),to_char(a.xmlx),to_char(a.YBXH),to_char(a.xmxh),

  FETCH SFMX INTO :LS_LSXH;
    if Upperbound(ls_checkdata) = 6 then
    select nvl(fymc,'无') 
     next
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
 DO WHILE J <= li_detailsum
   lpData[i]=lpMessage
    elseif Upperbound(ls_checkdata) = 1 then
string  ls_zyhm='',ls_wfbc_zyhlb='',ls_wfbc_yzlslb='',ls_wfbc_fylslb='',ls_yzfylb=''
//------------------------------------------------------------------------------
     of_checkout2(ls_wfbc_fylslb,ref ls_checkdata2)//分解无法保存的费用流水号列表
    if trim(ls_wfbc_yzlslb) <> '' then
        trim(Ls_xmje)+"%%"+trim(Ls_zfbl)+"%%"+trim(Ls_dffbz);
//项目中心端编号(Varchar(20))+项目医院端编码(Varchar(20))+项目医院端名称(varchar(40))+
    from gy_ypml 

        "%%"+trim(Ls_yzrq)+"%%"+trim(Ls_ysxm)+"%%"+trim(Ls_xmdj)+"%%"+trim(Ls_xmsl)+"%%"+trim(Ls_xmts)+"%%"+&
 
     is_Error = "上传医保数据失败!~n~n" + lpData 
    using sqlhis;
for i = 1 to Upperbound(astr_jyxx.inzyhm)
     for h = 1 to Upperbound(ls_checkdata2)
//退药标志(1退药,0正常,char(1))+类别标志(1药品,2诊疗,char(1))+
    into :ls_xmyymc 
// 入口参数(Data)
     next

 CLOSE SFMX;
String  ls_CheckData[],ls_CheckData2[]
     next
     of_checkout2(ls_wfbc_zyhlb,ref ls_checkdata2)//分解无法保存的住院号
 J = 1


    select nvl(ypmc,'无'),nvl(ypgg,'无'),to_char(dffbz,'0'),to_char(zydw) 
      astr_jyxx.outzyhm[i+h-1] = long(ls_checkdata2[h])//将住院号连续封装,避免覆盖

    where ybbh=:Ls_xmzxbh and fyxh = :Ls_xmyybm using sqlhis;
  IF ISNULL( lpData[k] ) = FALSE THEN
   CHOOSE CASE int(j/10)+1
//==============================================================================
  lpData[3] = "$$~~~~~~" + ls_zyhm + "~~" + char(j - 20) + "~~" + Prescription3
//函数返回: (BOOLEAN) 

//   1.S_yb_zy_yzfy astr_jyxx 医嘱费用信息
  lpData[1] = "$$~~~~~~" + ls_zyhm + "~~" + char(j) + "~~" + Prescription
   if Ls_lbbz='1' then//药品

          "%%"+trim(Ls_yzrq)+"%%"+trim(Ls_ysxm)+"%%"+trim(Ls_xmdj)+"%%"+trim(Ls_xmsl)+"%%"+trim(Ls_xmts)+"%%"+&
Integer li_Rtn,i=1,j=1,k=1,h=1,li_detailsum
//函数名称:of_zy_yzfy for n_medicare_minihis
      astr_jyxx.outfyls[i+int(j/10)+1+h-1-1] = long(ls_checkdata2[i])//将费用流水号连续封装,避免覆盖
   if li_Rtn < 0 then 
//项目金额(N(10,4))+自负比例(N(5,4))+单复方标志(C1)]
   choose case li_Rtn
   // Ln_lsxh,ls_jzlx,ls_tybz,ls_lbbz,ls_xmzxbh,ls_xmyybm,"ls_xmyymc","ls_xmyygg",
   ///////
      astr_jyxx.outyzls[i+int(j/10)+1+h-1-1] = long(ls_checkdata2[h]) //将医嘱流水号连续封装,避免覆盖
//本次提交明细条数%%[明细序号(N20)+就诊类型(11门诊,21住院,char(2))+
    CASE 1
   end if
    case -3
        trim(Ls_xmzxbh)+"%%"+trim(Ls_xmyybm)+"%%"+trim(Ls_xmyymc)+"%%"+trim(Ls_xmyygg)+"%%"+trim(Ls_xmyydw)+&
        trim(Ls_xmzxbh)+"%%"+trim(Ls_xmyybm)+"%%"+trim(Ls_xmyymc)+"%%"+trim(Ls_xmyygg)+"%%"+trim(Ls_xmyydw)+&
     return false
     return false
   from zy_sfmx a,gy_ypml b,gy_ysml c
    where ybbh=:Ls_xmzxbh and ypxh = :Ls_xmyybm 
    case -2
     of_checkout2(ls_wfbc_yzlslb,ref ls_checkdata2)//分解无法保存的医嘱流水号列表
 ELSEIF J < 20 THEN
//([]表示可以重复,重复的两条纪录之间也以%%分隔)= 
    if trim(ls_wfbc_fylslb) <> '' then
    CASE ELSE
//***********************************************************************
   end choose
     for i = 1 to Upperbound(ls_checkdata2)

  END IF

 ELSE
 if of_get_tradeid(33) = -1 then 
//功能说明:医嘱录入后执行时提交医嘱
    from gy_fyml 
   J++
 OPEN SFMX;
     ls_wfbc_yzlslb = ls_checkdata[5]
 IF J < 10 THEN
     is_Error = "上传医保数据失败!~n~n" + lpData 
    end if 
     for h = 1 to Upperbound(ls_checkdata2)
    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)
    if trim(ls_wfbc_zyhlb) <> '' then
String  lpData[3]
 DECLARE SFMX CURSOR FOR
  select LSXH from zy_sfmx where zyhm = :ls_zyhm and ybtj = '0' using sqlhis;
   elseif Ls_lbbz='2' then//费用
 LOOP


   end if
//项目医院端规格(varchar(30))+项目医院端单位(varchar(8))+医嘱日期(DATETIME)+
// 交易函数说明:
     Prescription = Prescription + trim(Ls_lsxh)+"%%"+trim(Ls_jzlx)+"%%"+trim(Ls_tybz)+"%%"+trim(Ls_lbbz)+"%%"+&
   INTO :Ls_lsxh,:Ls_jzlx,:Ls_tybz,:Ls_lbbz,:Ls_xmzxbh,:Ls_xmyybm,
     is_Error = "上传医保数据失败!至少有一条费用明细不能保存~n~n" + lpData 
    end if
  ///////

RETURN True
     ls_wfbc_zyhlb  = ls_checkdata[4]
  return false
        "%%"+trim(Ls_yzrq)+"%%"+trim(Ls_ysxm)+"%%"+trim(Ls_xmdj)+"%%"+trim(Ls_xmsl)+"%%"+trim(Ls_xmts)+"%%"+&
    is_Error = "上传医保数据失败!~n~n" + lpData 
 END IF

    ls_dffbz='0'
    return false
    end if
    CASE 2

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

//医嘱费用列表ZYMX 

     ls_wfbc_fylslb = ls_checkdata[6]
   of_checkout(lpMessage,Ref ls_checkdata)

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/sql/oracle/2298.shtml

相关文章

风云图片

推荐阅读

返回oracle频道首页