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

AMQQCMPK.m

Go to the documentation of this file.
  1. AMQQCMPK ; IHS/CMI/THL - COMPILES OR GROUPS AND CHECKS SEARCH EFFICIENCY ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. I '$D(AMQQXX) W !,"Checking OR groups..."
  1. F AMQQKGNO=0:0 S AMQQKGNO=$O(^UTILITY("AMQQ OR",$J,1,AMQQKGNO)) Q:'AMQQKGNO D ATNO,RUN,SET,LOC,RESET
  1. EXIT K %,AMQQSER,AMQQISER,AMQQUATN,AMQQKONG,AMQQKGNO,AMQQKGAS,AMQQKGLA,AMQQKGLS,AMQQKGN,AMQQKGSN,AMQQNVAR,AMQQSVVR,AMQQVAR,G,I,Q,X,Y,Z,AMQT,AMQP,AMQQLINK,AMQQLINO,AMQQQ
  1. K ^UTILITY("AMQQ OR",$J)
  1. Q
  1. ;
  1. ATNO S (AMQQKGAS,AMQQKGSN)=""
  1. F AMQQSER=-999:0 S AMQQSER=$O(^UTILITY("AMQQ",$J,"WEIGHT",AMQQSER)) Q:AMQQSER="" F AMQQUATN=0:0 S AMQQUATN=$O(^UTILITY("AMQQ",$J,"WEIGHT",AMQQSER,AMQQUATN)) Q:'AMQQUATN D INDEX
  1. Q
  1. ;
  1. INDEX I '$D(^UTILITY("AMQQ OR",$J,1,AMQQKGNO,AMQQUATN)) Q
  1. S ^UTILITY("AMQQ OR",$J,2,AMQQKGNO,999-AMQQSER,AMQQUATN)=""
  1. I AMQQKGAS'="" S AMQQKGAS=AMQQKGAS_U
  1. S AMQQKGAS=AMQQKGAS_AMQQUATN
  1. S Y=0
  1. S X=1.9999
  1. F S X=$O(^AMQQ(1,+^UTILITY("AMQQ",$J,"Q",AMQQUATN),X)) Q:'X Q:X>2.999 S Y=Y+1
  1. I AMQQKGSN'="" S AMQQKGSN=AMQQKGSN_U
  1. S AMQQKGSN=AMQQKGSN_Y
  1. S AMQQKGLA=AMQQUATN
  1. Q
  1. ;
  1. RUN S AMQQLINO=1
  1. S AMQQVAR=9
  1. F AMQQISER=0:0 S AMQQISER=$O(^UTILITY("AMQQ OR",$J,2,AMQQKGNO,AMQQISER)) Q:'AMQQISER F AMQQUATN=0:0 S AMQQUATN=$O(^UTILITY("AMQQ OR",$J,2,AMQQKGNO,AMQQISER,AMQQUATN)) Q:'AMQQUATN D CMP
  1. Q
  1. ;
  1. CMP S Q=^UTILITY("AMQQ",$J,"Q",AMQQUATN)
  1. D TEMPLATE^AMQQCMP2
  1. Q
  1. ;
  1. SET S %=""
  1. S Y=0
  1. F I=1:1 S X=$P(AMQQKGSN,U,I) S:'X AMQQKGLS=% Q:'X S Y=Y+X S:%'="" %=%_U S %=%_Y
  1. S X=0,G="^UTILITY(""AMQQ OR"",$J,3)"
  1. INCX S X=$O(AMQV(X))
  1. I 'X Q
  1. S %=+AMQQKGLS
  1. I X<% S @G@(X)=$S(+AMQQKGAS=AMQQKGLA:98,1:(%+1))_U_(X+1) G INCX
  1. S @G@(X)=$S(+AMQQKGAS=AMQQKGLA:98,1:X+1)_U_99
  1. S AMQQKGAS=$P(AMQQKGAS,U,2,99)
  1. S AMQQKGLS=$P(AMQQKGLS,U,2,99)
  1. G INCX
  1. ;
  1. LOC F AMQQKGN=0:0 S AMQQKGN=$O(AMQV(AMQQKGN)) Q:'AMQQKGN D TR
  1. S AMQV("OR",AMQQKGNO,98)="I 0"
  1. S AMQV("OR",AMQQKGNO,99)="I 1"
  1. S AMQV("OR",AMQQKGNO,0)="S %=AMQP(0) N AMQT,AMQP S AMQP(0)=% X AMQV(""OR"","_AMQQKGNO_",1)"
  1. Q
  1. ;
  1. TR S %=^UTILITY("AMQQ OR",$J,3,AMQQKGN)
  1. S X="X AMQV(""OR"","_AMQQKGNO_",$S(AMQT("_AMQQKGN_"):"_$P(%,U,2)_",1:"_+%_"))"
  1. S AMQV("OR",AMQQKGNO,AMQQKGN)=$P(AMQV(AMQQKGN),"|30|")_X
  1. K AMQV(AMQQKGN)
  1. Q
  1. ;
  1. RESET S AMQQKGFG=$O(^UTILITY("AMQQ OR",$J,1,AMQQKGNO,""))
  1. F X=-999:0 S X=$O(^UTILITY("AMQQ",$J,"WEIGHT",X)) Q:'X F Y=0:0 S Y=$O(^UTILITY("AMQQ",$J,"WEIGHT",X,Y)) Q:'Y I $D(^UTILITY("AMQQ OR",$J,1,AMQQKGNO,Y)) K ^UTILITY("AMQQ",$J,"WEIGHT",X,Y),^UTILITY("AMQQ",$J,"Q",Y)
  1. S AMQQEXCD="S AMQP(0)=% N % X AMQV(""OR"",AMQQKGNO,1)"
  1. D KONG^AMQQATR
  1. S AMQQSER=X
  1. S ^UTILITY("AMQQ",$J,"WEIGHT",1-AMQQSER,AMQQKGFG)=""
  1. S ^UTILITY("AMQQ",$J,"Q",AMQQKGFG)="179^KONGLOMERATOR^K^^^^^^^^^^^1^"_AMQQKGNO
  1. K AMQQKGFG,AMQQECNT,AMQQEDEN,AMQQEINC,AMQQENUM,AMQQEXCD,AMQP,AMQT
  1. Q
  1. ;