Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: AMQQMUL2

AMQQMUL2.m

Go to the documentation of this file.
  1. AMQQMUL2 ; IHS/CMI/THL - COLLECTS MULTIPLE VALUES FOR VISITS ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. VAR F I=1:1:19 D
  1. .S X=$P("GR;ID;ST;FIN;LAST;VAL1;VAL2;UATN;MLT;T;NVAR;FVAR;ITR;NNA;STRT;MSS;MPC;MULZ;USQN",";",I)
  1. .S @("AMQQ"_X)=$P(AMQQX,";",I)
  1. S AMQQ=U_AMQQGR_"(""AA"","_AMQP(0)_")"
  1. S AMQQSPEC=""
  1. I '$D(AMQQAG) S AMQQAG="AG"
  1. I '$D(@AMQQ) S AMQT(AMQQT)=0 G NULL
  1. S AMQQMSS=+AMQQMSS
  1. S AMQQMPC=AMQQMPC+'AMQQMPC
  1. S AMQQHOLD=0
  1. S AMQT(AMQQT)=0
  1. S AMQQLCNT=0
  1. S AMQQSPEC=""
  1. I AMQQVAL1["~~" S AMQQSPEC=AMQQVAL2,AMQQVAL2=$P(AMQQVAL1,"~~",2),AMQQVAL1=$P(AMQQVAL1,"~~")
  1. K ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN)
  1. I $E(AMQQST)?1P,'$D(AMQQSQVN) D REL^AMQQMULS
  1. I AMQQMULZ S AMQQMUNV=AMQQNVAR,AMQQMUFV=AMQQFVAR,AMQQMULL=AMQQMULZ
  1. RUN D INC
  1. SQ I $D(AMQV("SQ")) D ^AMQQMULS
  1. I $D(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN)),AMQQSPEC="NULL" K ^(AMQQUATN) G EXIT
  1. I $D(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,1)) S AMQP(AMQQFVAR)=$P(^(1),U)
  1. I $D(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN)) G TRUE
  1. NULL I AMQQSPEC="NULL"!(AMQQSPEC="ANY") S ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,1)="-",AMQP(AMQQFVAR)="-",AMQT(AMQQT)=1
  1. G EXIT
  1. TRUE I AMQQSPEC="EXISTS" K ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN) S ^(AMQQUATN,1)="+",AMQP(AMQQFVAR)="+"
  1. S AMQT(AMQQT)=1
  1. EXIT I AMQQAG="SAG" K ^UTILITY("AMQQ",$J,"SAG",AMQQUATN)
  1. D EXIT3^AMQQKILL
  1. Q
  1. ;
  1. INC I AMQQ["AUPNVSIT" S AMQQVDAT=9999999-$P(AMQQFIN,".")
  1. E S AMQQVDAT=9999999-AMQQFIN
  1. INCDATE S AMQQVDAT=$O(@AMQQ@(AMQQVDAT))
  1. I AMQQVDAT'=+AMQQVDAT Q
  1. I AMQQ["AUPNVSIT" Q:(9999999-$P(AMQQVDAT,"."))<$P(AMQQST,".") G:$P(AMQQVDAT,".",2)']$P(AMQQST,".",2)&((9999999-$P(AMQQVDAT,"."))=$P(AMQQST,".")) INCDATE
  1. E I (9999999-AMQQVDAT)'>AMQQST Q
  1. S AMQQVSIT=0
  1. INCITEM S (AMQQVNO,AMQQVSIT)=$O(@AMQQ@(AMQQVDAT,AMQQVSIT))
  1. I 'AMQQVSIT G INCDATE
  1. I $P($G(^AUPNVSIT(AMQQVSIT,0)),U,11) G INCITEM
  1. I 'AMQQMSS,AMQQMPC=1 S AMQQVALU=(9999999-$P(AMQQVDAT,".")) D S1 G CNT
  1. S %=U_AMQQGR_"("_AMQQVSIT_","_AMQQMSS_")"
  1. I $D(@%) S AMQQVALU=$P(^(AMQQMSS),U,AMQQMPC) D SET I 1
  1. E G INCITEM
  1. CNT I AMQQLCNT=AMQQLAST D LASTEVAL^AMQQMULT I $D(AMQQQUIT) K AMQQQUIT Q
  1. I AMQQSPEC="EXISTS"!(AMQQSPEC="NULL"),AMQQLCNT,'$D(AMQV("SQ")) S AMQQLCNT=-1 Q
  1. G INCITEM
  1. ;
  1. SET I AMQQVALU="",$L(AMQQVAL1)>1,AMQQNNA'=5 Q
  1. I AMQQITR'="" S X=AMQQVALU X AMQQITR S AMQQVALU=X
  1. I $D(AMQQNNA),AMQQNNA>1 X "I 0" D ^AMQQMULN D:$T S1 Q
  1. I AMQQVAL2'=+AMQQVAL2 D TEXT^AMQQFAN D:$T S1 Q
  1. S AMQQVALU=+AMQQVALU
  1. I AMQQVAL1>AMQQVAL2,AMQQVALU<AMQQVAL2!(AMQQVALU>AMQQVAL1) D S1 Q
  1. I AMQQVALU=AMQQVAL1,AMQQVALU=AMQQVAL2 D S1 Q
  1. I AMQQVALU>AMQQVAL1,AMQQVALU<AMQQVAL2 D S1
  1. Q
  1. ;
  1. S1 S AMQQLCNT=AMQQLCNT+1
  1. S AMQQHOLD=AMQQHOLD+1
  1. S ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,AMQQHOLD)=AMQQVALU_U_(9999999-$P(AMQQVDAT,"."))_U_AMQQVSIT_U_AMQQVNO
  1. Q
  1. ;
  1. LASTEVAL ;EVALUATE 'LAST' CONDITION
  1. K AMQQQUIT
  1. S AMQP(1)=AMQQVSIT
  1. X AMQV("QQ",1,1)
  1. I '$G(AMQT(1)) S AMQQLAST=AMQQLAST+1 Q
  1. S AMQQQUIT=""
  1. Q