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

AMQQQ0.m

Go to the documentation of this file.
  1. AMQQQ0 ; IHS/CMI/THL - AMQQQ SUBROUTINE PARSES SCRIPTS ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. S AMQQXXII=0
  1. RUN F AMQQXXGN=0:0 S AMQQXXGN=$O(@AMQQXXGG) Q:'AMQQXXGN S AMQQXXXX=@AMQQXXGI D ANAL,CHECK I Q
  1. EXIT K AMQQXXGN,^UTILITY("AMQQ",$J,"XXTAX"),%,A,I
  1. Q
  1. ;
  1. ANAL S AMQQXXXX=$P(AMQQXXXX,"**")
  1. I "*+"[$E(AMQQXXXX) Q
  1. K AMQQXXAA,AMQQXXCC,AMQQXXVV
  1. I $E(AMQQXXXX)="-" S AMQQXXNN="",AMQQXXXX=$E(AMQQXXXX,2,999),A=AMQQXXXX D STRIP^AMQQQ S AMQQXXXX=A
  1. I AMQQXXXX["!" D KONG Q
  1. D ATT
  1. D CHECK
  1. I Q
  1. I $D(AMQQXXNF) K AMQQXXNF G A1
  1. I AMQQCTXS D MULT Q
  1. I AMQQFTYP="G"!(AMQQFTYP="L") D TAX,CHECK Q:$T S AMQQXXCC="TAX" G A1
  1. I $D(AMQQONE) S (AMQQXXVV,AMQQXXCC)="" D SET Q
  1. D COND
  1. D CHECK
  1. I Q
  1. D VAL
  1. D CHECK
  1. I Q
  1. A1 D SET
  1. Q
  1. ;
  1. ATT S X=$P(AMQQXXXX,";")
  1. D AUTO^AMQQATA
  1. I Y=-1,AMQQXXXX'[";" D NATL Q
  1. I Y'=-1 D ^AMQQSEC
  1. I Y=-1 K AMQQXXNN S AMQQFAIL=6 Q
  1. SETATT S AMQQXXAA=Y
  1. S %=^AMQQ(5,+Y,0)
  1. S AMQQLINK=$P(%,U,5)
  1. S AMQQATN=+Y
  1. I AMQQLINK=9 S AMQQATNM=$P(Y,U,2) D ^AMQQATAL
  1. S %=^AMQQ(1,AMQQLINK,0)
  1. S AMQQCTXS=$P(%,U,7)
  1. S AMQQFTYP=$P(^AMQQ(4,$P(%,U,5),0),U)
  1. Q
  1. ;
  1. COND S X=$P(AMQQXXXX,";",2)
  1. K AMQQCOND
  1. I X="" S (AMQQCOND,AMQQXXCC)="" Q
  1. I "^NULL^ALL^ANY^EXISTS^"[(U_X_U) S:X="ALL" X="EXISTS" S AMQQXXCC=X,AMQQCOND=";;;"_X Q
  1. D AUTO^AMQQAC
  1. I Y=-1 S AMQQFAIL=7 Q
  1. SETCOND S AMQQCOND=+Y
  1. S AMQQNOCO=$P(^AMQQ(5,+Y,0),U,8)
  1. S AMQQCONM=$P(Y,U,2)
  1. S AMQQSYMB=$P(^AMQQ(5,+Y,0),U,6)
  1. S AMQQXXCC=Y
  1. Q
  1. ;
  1. VAL S (AMQQXXVV,X)=$P(AMQQXXXX,";",3)
  1. K AMQQCOMP
  1. I X="",$G(AMQQCOND) S AMQQFAIL=8 Q
  1. D ^AMQQAV
  1. I '$D(AMQQCOMP) S AMQQFAIL=8 Q
  1. S AMQQXXVV=AMQQCOMP
  1. Q
  1. ;
  1. SET S AMQQXXII=$G(AMQQXXII)+1
  1. S AMQQXX(AMQQXXII,1)=AMQQXXAA_";"_$G(AMQQXXCC)_";"_AMQQXXVV
  1. Q
  1. ;
  1. TAX ; ENTRY POINT FROM AMQQ1
  1. I $P(AMQQXXXX,";",2)="=" G T1
  1. I $P(AMQQXXXX,";",2)="'=" S AMQQXXNT="INVERSE" G T1
  1. I $D(AMQQONE) G T2
  1. S AMQQFAIL=9 Q
  1. T1 I $P(AMQQXXXX,";",3)="" S AMQQFAIL=8 Q
  1. D TGRP
  1. I $D(AMQQFAIL) Q
  1. T2 K AMQQTAX
  1. S %=^AMQQ(5,AMQQATN,0)
  1. S AMQQTNAR=$P(%,U,15)
  1. S AMQQTDIC=U_$P(%,U,16)
  1. S AMQQTLOK=U_$P(%,U,18)
  1. S AMQQTTX=$G(^AMQQ(5,AMQQATN,3))
  1. S AMQQXXN=0
  1. D ^AMQQTX
  1. K AMQQXXTT,AMQQXXTN
  1. I '$D(AMQQTAX) S AMQQFAIL=8 Q
  1. I $D(AMQQXXNT) S AMQQSCMP=AMQQXXNT K AMQQXXNT D SCMP^AMQQTX S AMQQXXVV=AMQQCOMP I 1
  1. E S AMQQXXVV=AMQQTAX
  1. K AMQQTAX
  1. Q
  1. ;
  1. TGRP S %=$P(AMQQXXXX,";",3)
  1. I $E(%)="[" S X=$E(%,2,999),X=$P(X,"]") I $D(^UTILITY("AMQQ",$J,"XXTAX",X)) S AMQQXXTT=X Q
  1. S AMQQXXI=AMQQXXGN
  1. S AMQQXXX1=%
  1. D TG1
  1. K AMQQXXX1
  1. Q
  1. ;
  1. TG1 N AMQQXXGN
  1. S AMQQXXGN=AMQQXXI
  1. S AMQQXXTT="XXTEMP"
  1. S AMQQXXTN=0
  1. K ^UTILITY("AMQQ",$J,"XXTAX",AMQQXXTT)
  1. TG11 F I=1:1 S %=$P(AMQQXXX1,",",I) Q:%="" S AMQQXXTN=AMQQXXTN+1,^UTILITY("AMQQ",$J,"XXTAX",AMQQXXTT,AMQQXXTN)=%
  1. S AMQQXXGN=$O(@AMQQXXGG)
  1. I 'AMQQXXGN Q
  1. S %=@AMQQXXGI
  1. I $E(%)="+" S AMQQXXX1=$E(%,2,999) G TG11
  1. Q
  1. ;
  1. CHECK I $D(AMQQQUIT)!($D(AMQQFAIL))
  1. Q
  1. ;
  1. KONG F AMQQXXXI=1:1 S AMQQXXX1=$P(AMQQXXXX,"!",AMQQXXXI) Q:AMQQXXX1="" D OR,CHECK I Q
  1. K AMQQXXX1,AMQQXXXI
  1. Q
  1. ;
  1. OR N AMQQXXXX
  1. S AMQQXXXX=AMQQXXX1
  1. D ATT,CHECK
  1. I Q
  1. I AMQQCTXS S AMQQFAIL=9 Q
  1. I AMQQFTYP="G"!(AMQQFTYP="L") D TAX G OR1
  1. D COND
  1. D CHECK
  1. I Q
  1. D VAL
  1. D CHECK
  1. I Q
  1. OR1 I AMQQXXXI=1 S AMQQXXII=$G(AMQQXXII)+1
  1. S AMQQXX(AMQQXXII,AMQQXXXI)=AMQQXXAA_";"_$G(AMQQXXCC)_";"_AMQQXXVV
  1. Q
  1. ;
  1. MULT S AMQQXXII=$G(AMQQXXII)+1
  1. S AMQQXX(AMQQXXII,1)=Y_";MULT"
  1. S AMQQXXLV=1
  1. S AMQQXXND="AMQQXX("_AMQQXXII_",1)"
  1. D ^AMQQQ1
  1. Q
  1. ;
  1. NATL K AMQQTAX D ^AMQQN2
  1. I $D(AMQQFAIL) S Y=-1 K AMQQXXNN G NEXIT
  1. I $D(AMQQTAX) S AMQQXXAA=AMQQNATT,AMQQXXCC=AMQQNCND,AMQQXXVV=AMQQTAX,AMQQXXNF="" S:$D(^UTILITY("AMQQ TAX",$J,AMQQTAX,"--")) AMQQXXVV=AMQQXXVV_";INVERSE" G NEXIT
  1. S Y=AMQQNATT
  1. D SETATT
  1. S Y=AMQQNCND
  1. D SETCOND
  1. S AMQQXXVV=AMQQNVAL,AMQQXXNF=""
  1. NEXIT K AMQQNATT,AMQQNCND,AMQQNVAL,AMQQNTYP,AMQQTNAR,AMQQTDIC,AMQQTAX,AMQQTLOK,AMQQTTX,AMQQXXN,AMQQXXNT
  1. Q
  1. ;