- AMQQF1 ; IHS/CMI/THL - MORE ANALYTIC FUNCTIONS ;
- ;;2.0;IHS PCC SUITE;;MAY 14, 2009
- ;-----
- TEST N T
- S T=$T
- I '$D(AMQQNOT)=T K ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,I)
- EXIT Q
- ;
- COMP S X1=Z
- S X2=$P(AMQQCOMP,";")
- D C^%DTC
- S A=X
- S X1=Z
- S X2=$P(AMQQCOMP,";",2)
- D C^%DTC
- S B=X
- Q
- ;
- CDOB N X,Y,Z,%,I,A,B
- S Z=$P(^DPT(AMQP(0),0),U,3)
- I Z D COMP
- F I=0:0 S I=$O(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,I)) Q:'I S Y=$P(^(I),U,2) D CDOB1,TEST
- K AMQQNOT
- Q
- ;
- CDOB1 I Z="" Q
- I Y<A!(Y>B)
- Q
- ;
- CDOD N X,Y,Z,%,I,A,B
- S Z=""
- I $D(^DPT(AMQP(0),.35)) S Z=+^(.35) I Z D COMP
- F I=0:0 S I=$O(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,I)) Q:'I S Y=$P(^(I),U,2) D CDOD1,TEST
- K AMQQNOT
- Q
- ;
- CDOD1 I Z="" Q
- I Y<B!(Y>A)
- Q
- ;
- CAGE N X,Y,Z,%,I,A,B
- S X1=$P(^DPT(AMQP(0),0),U,3)
- I X1="" K X1 S Z="" G CAGET
- S X2=$P(AMQQCOMP,";",4)
- D C^%DTC
- S Z=X
- D COMP
- CAGET F I=0:0 S I=$O(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,I)) Q:'I S Y=$P(^(I),U,2) D CAGE1,TEST
- K AMQQNOT
- Q
- ;
- CAGE1 I Z="" Q
- I Y<A!(Y>B)
- Q
- ;
- SUB N AMQQSQFS,AMQQSQFN,AMQQSQFP,I
- S AMQQSQFS=$P(AMQQCOMP,";")
- S AMQQSQFN=$P(AMQQCOMP,";",2)
- S AMQQSQFP=$P(AMQQCOMP,";",3)
- N AMQQCOMP
- F I=0:0 S I=$O(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,I)) Q:'I S AMQQHIT=^(I) D SUB1,TEST
- K AMQQNOT
- Q
- ;
- SUB1 N I
- I AMQQSQFN N AMQP,AMQT S AMQP(AMQQSQFN)=$P(AMQQHIT,U,AMQQSQFP) G SUBX
- S AMQQDPT=AMQP(0)
- N AMQQ,AMQQGR,AMQQID,AMQQST,AMQQFIN,AMQQLAST,AMQQVAL,AMQQMLT,AMQQT,AMQQIDX,AMQQIDN,AMQQIDT,AMQQX,AMQQITR,AMQQAFNO,AMQQVDAT,AMQQVNO,AMQQLCNT,AMQQVAL1,AMQQVAL2,AMQQMULZ,AMQQLCOF
- N AMQQTAX,AMQQNNA,AMQQCPG1,AMQQVAL3,AMQQVAL4,AMQQBOOL,AMQQB,AMQQMSS,AMQQMPC,AMQQSTRT,AMQQFVAR,AMQQAG,AMQQSQVS,AMQQUATN,AMQQNVAR,AMQQT,AMQQUSQN,AMQT,AMQP,AMQQSQVN,AMQQSPEC
- S AMQQAG="SAG"
- S AMQP(0)=AMQQDPT
- S AMQQSQVS=$P(AMQQHIT,U,3)
- I AMQV("QQ",AMQQSQFS,1)[";+0;+0;" S AMQQSQVN=AMQQSQVS
- SUBX K AMQQDPT,AMQQHIT
- X AMQV("QQ",AMQQSQFS,1)
- Q
- ;
- BP N %,I,Z,A,B,C,D,E
- F I=0:0 S I=$O(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,I)) Q:'I S %=$P(^(I),U) D BP1,TEST
- Q
- ;
- BP1 S A=+$P(%,"/")
- S B=+$P(%,"/",2)
- S %=AMQQCOMP
- S C=$P(%,"~")
- S D=$P(%,"~",2)
- S E=$P(%,"~",3)
- S Z="I "_A_$P(C,":")_$P(C,":",2)_E_"("_B_$P(D,":")_$P(D,":",2)_")"
- X Z
- I '$T
- Q
- ;
- AMQQF1 ; IHS/CMI/THL - MORE ANALYTIC FUNCTIONS ;
- +1 ;;2.0;IHS PCC SUITE;;MAY 14, 2009
- +2 ;-----
- TEST NEW T
- +1 SET T=$TEST
- +2 IF '$DATA(AMQQNOT)=T
- KILL ^UTILITY("AMQQ",$JOB,AMQQAG,AMQQUATN,I)
- EXIT QUIT
- +1 ;
- COMP SET X1=Z
- +1 SET X2=$PIECE(AMQQCOMP,";")
- +2 DO C^%DTC
- +3 SET A=X
- +4 SET X1=Z
- +5 SET X2=$PIECE(AMQQCOMP,";",2)
- +6 DO C^%DTC
- +7 SET B=X
- +8 QUIT
- +9 ;
- CDOB NEW X,Y,Z,%,I,A,B
- +1 SET Z=$PIECE(^DPT(AMQP(0),0),U,3)
- +2 IF Z
- DO COMP
- +3 FOR I=0:0
- SET I=$ORDER(^UTILITY("AMQQ",$JOB,AMQQAG,AMQQUATN,I))
- IF 'I
- QUIT
- SET Y=$PIECE(^(I),U,2)
- DO CDOB1
- DO TEST
- +4 KILL AMQQNOT
- +5 QUIT
- +6 ;
- CDOB1 IF Z=""
- QUIT
- +1 IF Y<A!(Y>B)
- +2 QUIT
- +3 ;
- CDOD NEW X,Y,Z,%,I,A,B
- +1 SET Z=""
- +2 IF $DATA(^DPT(AMQP(0),.35))
- SET Z=+^(.35)
- IF Z
- DO COMP
- +3 FOR I=0:0
- SET I=$ORDER(^UTILITY("AMQQ",$JOB,AMQQAG,AMQQUATN,I))
- IF 'I
- QUIT
- SET Y=$PIECE(^(I),U,2)
- DO CDOD1
- DO TEST
- +4 KILL AMQQNOT
- +5 QUIT
- +6 ;
- CDOD1 IF Z=""
- QUIT
- +1 IF Y<B!(Y>A)
- +2 QUIT
- +3 ;
- CAGE NEW X,Y,Z,%,I,A,B
- +1 SET X1=$PIECE(^DPT(AMQP(0),0),U,3)
- +2 IF X1=""
- KILL X1
- SET Z=""
- GOTO CAGET
- +3 SET X2=$PIECE(AMQQCOMP,";",4)
- +4 DO C^%DTC
- +5 SET Z=X
- +6 DO COMP
- CAGET FOR I=0:0
- SET I=$ORDER(^UTILITY("AMQQ",$JOB,AMQQAG,AMQQUATN,I))
- IF 'I
- QUIT
- SET Y=$PIECE(^(I),U,2)
- DO CAGE1
- DO TEST
- +1 KILL AMQQNOT
- +2 QUIT
- +3 ;
- CAGE1 IF Z=""
- QUIT
- +1 IF Y<A!(Y>B)
- +2 QUIT
- +3 ;
- SUB NEW AMQQSQFS,AMQQSQFN,AMQQSQFP,I
- +1 SET AMQQSQFS=$PIECE(AMQQCOMP,";")
- +2 SET AMQQSQFN=$PIECE(AMQQCOMP,";",2)
- +3 SET AMQQSQFP=$PIECE(AMQQCOMP,";",3)
- +4 NEW AMQQCOMP
- +5 FOR I=0:0
- SET I=$ORDER(^UTILITY("AMQQ",$JOB,AMQQAG,AMQQUATN,I))
- IF 'I
- QUIT
- SET AMQQHIT=^(I)
- DO SUB1
- DO TEST
- +6 KILL AMQQNOT
- +7 QUIT
- +8 ;
- SUB1 NEW I
- +1 IF AMQQSQFN
- NEW AMQP,AMQT
- SET AMQP(AMQQSQFN)=$PIECE(AMQQHIT,U,AMQQSQFP)
- GOTO SUBX
- +2 SET AMQQDPT=AMQP(0)
- +3 NEW AMQQ,AMQQGR,AMQQID,AMQQST,AMQQFIN,AMQQLAST,AMQQVAL,AMQQMLT,AMQQT,AMQQIDX,AMQQIDN,AMQQIDT,AMQQX,AMQQITR,AMQQAFNO,AMQQVDAT,AMQQVNO,AMQQLCNT,AMQQVAL1,AMQQVAL2,AMQQMULZ,AMQQLCOF
- +4 NEW AMQQTAX,AMQQNNA,AMQQCPG1,AMQQVAL3,AMQQVAL4,AMQQBOOL,AMQQB,AMQQMSS,AMQQMPC,AMQQSTRT,AMQQFVAR,AMQQAG,AMQQSQVS,AMQQUATN,AMQQNVAR,AMQQT,AMQQUSQN,AMQT,AMQP,AMQQSQVN,AMQQSPEC
- +5 SET AMQQAG="SAG"
- +6 SET AMQP(0)=AMQQDPT
- +7 SET AMQQSQVS=$PIECE(AMQQHIT,U,3)
- +8 IF AMQV("QQ",AMQQSQFS,1)[";+0;+0;"
- SET AMQQSQVN=AMQQSQVS
- SUBX KILL AMQQDPT,AMQQHIT
- +1 XECUTE AMQV("QQ",AMQQSQFS,1)
- +2 QUIT
- +3 ;
- BP NEW %,I,Z,A,B,C,D,E
- +1 FOR I=0:0
- SET I=$ORDER(^UTILITY("AMQQ",$JOB,AMQQAG,AMQQUATN,I))
- IF 'I
- QUIT
- SET %=$PIECE(^(I),U)
- DO BP1
- DO TEST
- +2 QUIT
- +3 ;
- BP1 SET A=+$PIECE(%,"/")
- +1 SET B=+$PIECE(%,"/",2)
- +2 SET %=AMQQCOMP
- +3 SET C=$PIECE(%,"~")
- +4 SET D=$PIECE(%,"~",2)
- +5 SET E=$PIECE(%,"~",3)
- +6 SET Z="I "_A_$PIECE(C,":")_$PIECE(C,":",2)_E_"("_B_$PIECE(D,":")_$PIECE(D,":",2)_")"
- +7 XECUTE Z
- +8 IF '$TEST
- +9 QUIT
- +10 ;