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

AMQQCMP6.m

Go to the documentation of this file.
  1. AMQQCMP6 ; IHS/CMI/THL - COMPILES SUBQUERIES ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. VAR N Q,AMQQSBSC,AMQQCSC
  1. RUN F AMQQUQQN=0:0 S AMQQUQQN=$O(^UTILITY("AMQQ",$J,"QQ",AMQQUQQN)) Q:'AMQQUQQN S Q=^(AMQQUQQN) D SET,TSET,SUBSET
  1. EXIT K Q,AMQQUQQN
  1. Q
  1. ;
  1. SET S AMQQSBSC=2
  1. I $P(Q,U,9)[";NULL",$D(^AMQQ(1,+Q,5)) S AMQQSBSC=5
  1. I $P(Q,U,9)[";ANY",$D(^AMQQ(1,+Q,7)) S AMQQSBSC=7
  1. I $P(Q,U,9)[";INVERSE",$D(^AMQQ(1,+Q,8)) S AMQQSBSC=8
  1. Q
  1. ;
  1. TSET S Y=$P(Q,U,15)
  1. S T=^AMQQ(1,+Q,AMQQSBSC)
  1. S %=$P(Q,U,9)
  1. S Z="|13|;|14|"
  1. I $P(%,";",5)="NULL",T[Z S T=$P(T,Z)_$P(Y,";",4)_"~~"_$P(Y,";",4)_";NULL"_$P(T,Z,2,99) G TSET1
  1. S %=$P(%,";",4)
  1. I %'="",";SAVE;NULL;EXISTS;ANY;"[(";"_%),T[Z S T=$P(T,Z)_$P(Y,";",4)_"~~"_$P(Y,";",5)_";"_%_$P(T,Z,2,99)
  1. I T'["~~",T[Z,$P($P(AMQQQ,U,9),";",6)="NULL" S T=$P(T,Z)_$P(Y,";",4)_"~~"_$P(Y,";",5)_";NULL"_$P(T,Z,2,99)
  1. TSET1 F I=1:1:10 S Z=$P(Y,";",I) Q:$P(Y,";",I,99)="" S %="|"_(I+9)_"|" F Q:T'[% S T=$P(T,%,1)_Z_$P(T,%,2,99)
  1. I Q["INVERSE" S %="|12|" I T[% S T=$P(T,%)_"INVERSE"_$P(T,%,2)
  1. S %="|12|"
  1. I T[% S T=$P(T,%)_$P(T,%,2)
  1. S %="|23|"
  1. S A=$P(Q,U,8)
  1. S B=(A'="'="&(A'="'><"))
  1. F Q:T'[% S T=$P(T,%)_$S(B:"*",1:"+")_$P(T,%,2,99)
  1. S T=$P(T,"|30|")_"I 'AMQT("_AMQQUQQN_")"
  1. S %="|7|"
  1. S Z=$P(Q,U,14)
  1. S:Z="" Z=1
  1. F Q:T'[% S T=$P(T,%)_Z_$P(T,%,2,99)
  1. S %="|20|"
  1. F Q:T'[% S T=$P(T,%)_AMQQUQQN_$P(T,%,2,99)
  1. S %=T
  1. S A="|6|"
  1. S B="|5|"
  1. F I=1:1 Q:%'[A D CKER
  1. S AMQV("QQ",AMQQUQQN,1)=%
  1. K A,B,C,D,E,%,T,Z,Y,F,I
  1. Q
  1. ;
  1. SUBSET N A,X,Y,Z,%
  1. S A=$O(^UTILITY("AMQQ",$J,"SQXX",AMQQUQQN,""))
  1. I 'A Q
  1. S %=AMQV("QQ",AMQQUQQN,1)
  1. S X=$P(%,"AMQQX=")
  1. S Y=$P(%,"AMQQX=",2)
  1. S Z=$P(Y,""" D ^AMQQ",2)
  1. S Y=$P(Y,""" D ^AMQQ")
  1. S $P(Y,";",19)=A
  1. S AMQV("QQ",AMQQUQQN,1)=X_"AMQQX="_Y_""" D ^AMQQ"_Z
  1. Q
  1. ;
  1. CKER S C=$P(%,A)
  1. S D=$P(%,A,2)
  1. S E=$E(%,4+$L(C)+$L(D),255)
  1. F Q:D'[B S D=$P(D,B)_(AMQQVAR+I)_$P(D,B,2,99)
  1. S %=C_(AMQQVAR+I)_D_E
  1. Q
  1. ;