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

AMQQAT.m

Go to the documentation of this file.
  1. AMQQAT ; IHS/CMI/THL - GETS ATTRIBUTE ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. VAR D EXIT
  1. S AMQQQ=""
  1. K AMQQMULT
  1. I '$D(AMQQNOET),$$VERSION^%ZOSV(1)["Cache" S AMQQETRP=$ZT,X="*ATERR^AMQQAT",@^%ZOSF("TRAP")
  1. I '$D(AMQQNOET),$$VERSION^%ZOSV(1)'["Cache" S AMQQETRP=$ZT,X="ATERR^AMQQAT",@^%ZOSF("TRAP")
  1. RUN D GET
  1. EXIT ; ENTRY POINT FROM MULTIPLE ROUTINES
  1. I $G(AMQQETRP)]"" S $ZT=AMQQETRP K AMQQETRP
  1. K AMQQLINK,AMQQATNM,AMQQFTYP,AMQQCOMP,AMQQCOND,AMQQCONM,AMQQCTXS,AMQQNOCO,AMQQSYMB,AMQQVCL,I,X,Y,Z,%,Q,AMQQSQRC,AMQQNATF,AMQQLCOF
  1. K AMQQATN,AMQQNAR,AMQQSBCT,AMQQSQFR,AMQQCCHK,AMQQNOT,AMQQDNOT,AMQQTAX,AMQQSNOT,AMQQDICB,AMQQPRST,AMQQNVAR,AMQQFRED
  1. Q
  1. ;
  1. GET D ^AMQQATA
  1. I $D(AMQQQUIT) Q
  1. I $D(AMQQVPF) K AMQQVPF D SET Q
  1. I $G(AMQQLINK)=758 D CND S AMQQATN=758
  1. I $G(AMQQCTXS) D CTXS Q
  1. I $D(AMQQSCPF) W !! Q
  1. I $D(AMQQRNDF) K AMQQRNDF W !! G GET
  1. I $D(AMQQTAX) D SETTAX Q
  1. I X="",$D(AMQQKONG) D KONGCK G GET
  1. I X="" Q
  1. I AMQQATNM="KONGLOMERATOR" S AMQQCOND=265,AMQQSYMB="=" S:'$D(AMQQKGNO) AMQQKGNO=0 S AMQQKGNO=AMQQKGNO+1,AMQQKONG="" W !!,"OK, I'll collect queries for OR GROUP #",AMQQKGNO,! G GET
  1. CND K AMQQCOND
  1. D ^AMQQAC
  1. I $D(AMQQQUIT) Q
  1. I ($D(AMQQNULL)+$D(AMQQANYF)+$D(AMQQEXST)+$D(AMQQSVFL)) K AMQQEXST Q
  1. I $D(AMQQONE),'$D(AMQQMULT) Q
  1. I '$D(AMQQCOND) G CND
  1. K AMQQCOMP
  1. D ^AMQQAV
  1. I $D(AMQQQUIT) Q
  1. I '$D(AMQQCOMP) G CND
  1. D SET
  1. Q
  1. ;
  1. CTXS ; ENTRY POINT FROM AMQQATG
  1. S AMQQSQAA=AMQQUATN,AMQQSQAN=AMQQATNM,AMQQSQSN=AMQQATN,AMQQSQST=AMQQFTYP
  1. D:$G(AMQQLINK)'=763 ^AMQQSQ
  1. I '$D(AMQQQUIT),'$D(AMQQXSQF) D SET
  1. Q
  1. ;
  1. SET ; ENTRY POINT FROM AMQQSQA1 AND OTHERS
  1. ; SET "Q" VARIABLE FOR ^UTILITY("AMQQ",$J,"Q"...
  1. I AMQQCTXS S:'$D(AMQQMULX) AMQQMULX="" S AMQQMULX=AMQQMULX_AMQQUATN_U
  1. S Y=0
  1. F Z=0:0 S Z=$O(^AMQQ(1,AMQQLINK,4,Z)) Q:Z'=+Z S Y=Y+1
  1. S AMQQNVAR=Y
  1. I $D(AMQQTAX) S %=$P($G(AMQQNATF),";",2) S:% AMQQCOMP=";;;"_% S %=$P(AMQQCOMP,";",5) I %="NULL"!(%="EXISTS") S AMQQNVAR=1
  1. E I $G(AMQQSQFR)>4 S AMQQNVAR=1
  1. I AMQQCOMP[";NULL" S AMQQNVAR=1
  1. I $D(AMQQNOT),'$G(AMQQCTXS) S AMQQSYMB="'"_AMQQSYMB,AMQQCONM=$S(AMQQCONM="IS":"IS NOT",1:("NOT "_AMQQCONM))
  1. S AMQQSNOT=$D(AMQQNOT)+(2*$D(AMQQDNOT))
  1. S %="",X="LINK^ATNM^FTYP^CTXS^COND^NOCO^CONM^SYMB^COMP^VCL^SER^ORTX^FRED^NVAR^FILT^SNOT^TAX"
  1. F I=1:1:17 S Y="AMQQ"_$P(X,U,I) I $D(@Y) S $P(%,U,I)=@Y
  1. DEBUG S AMQQQ=%
  1. I $D(AMQQKONG) S ^UTILITY("AMQQ OR",$J,1,AMQQKGNO,AMQQUATN)=""
  1. Q
  1. ;
  1. SETTAX S (AMQQSYMB,AMQQCONM)=""
  1. D SET
  1. I $D(AMQQONE),'AMQQCTXS D ^AMQQAC
  1. I AMQQCTXS S:'$D(AMQQMULX) AMQQMULX="" S AMQQMULX=AMQQMULX_AMQQUATN_U
  1. I $D(AMQQONE),'$D(AMQQPRST) S AMQQTXMT=""
  1. Q
  1. ;
  1. ATERR I '$D(AMQQNOET) X "I $P($ZE,"">"")=""<INTERRUPT""!($ZE[""-CTRAP"")" I W !!,"Attribute Session terminated...",!! H 2 S AMQQQUIT="" G EXIT ;TASSC/MFD added line for Cache, added attribute to see level you're at
  1. W !!,"WHOOPS!!!!!!!!!!!!!"
  1. W !,"Something just happened which caused me to come to a grinding halt."
  1. W !,"Try to enter the ATTRIBUTE again, but if this problem persists you must"
  1. W !,"take a different approach."
  1. W !!!,*7
  1. D EXIT
  1. G VAR
  1. ;
  1. KONGCK S I=0
  1. F X=0:0 S X=$O(^UTILITY("AMQQ OR",$J,1,AMQQKGNO,X)) Q:'X I X S I=I+1 Q:I=2
  1. K AMQQKONG I I>1 Q
  1. K ^UTILITY("AMQQ OR",$J,1,AMQQKGNO)
  1. S AMQQKGNO=AMQQKGNO-1
  1. I 'I W !,"OR GROUP #",(AMQQKGNO+1)," Cancelled",*7,! Q
  1. W !,"Since the OR GROUP has only 1 member, I will treat it as an ordinary attribute.",*7,!
  1. S %=^UTILITY("AMQQ",$J,"LIST",AMQQILIN)
  1. S X="[OR #"_(AMQQKGNO+1)_"] "
  1. S %=$P(%,X)_$P(%,X,2)
  1. S ^UTILITY("AMQQ",$J,"LIST",AMQQILIN)=%
  1. Q
  1. ;
  1. VIEW ; DEBUGGING UTILITY
  1. N X,Y,Z,I,%
  1. S X="LINK^ATNM^FTYP^CTXS^COND^NOCO^CONM^SYMB^COMP^VCL^SER^ORTX^FRED^NVAR^FILT^SNOT^TAX"
  1. S Y="LINK IEN^ATTRIBUTE NAME^DATA TYPE^SUBQUERY^CONDITION (TERM) IEN^NO. OF CONDITIONS^CONDITION NAME^BOOLEAN SYMBOL^COMPARISON VALUE^VALIDITY CODE LOCATION^SEARCH EFFICIENCY^XXX^SINGULARITY^NO. OF VARIABLES^YYY^INVERTED SUBQUERY FLAG^TAXONOMY"
  1. F I=1:1 S %=$P(X,U,I) Q:%="" S Z="AMQQ"_% I $G(@Z)]"" W !,I,?4,$P(Y,U,I),": ",$S(((I=4)!(I=16)):$S(@Z:"YES",1:"NO"),1:@Z)
  1. Q