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

AMQQSQL.m

Go to the documentation of this file.
  1. AMQQSQL ; IHS/CMI/THL - SUBQUERY DESCRIPTIVE LIST ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. I $D(AMQQXX) Q
  1. N AMQQSQLS
  1. LIST S AMQQSQLS="W ?"_$S($D(AMQQGVF):6,1:(3*AMQQUSQL+6))_","""
  1. EN1 ; ENTRY POINT FROM AMQQSQP
  1. I '$D(AMQQSQCT),$D(AMQQSBCT) S AMQQSQCT=AMQQSBCT ; &&&
  1. I $D(^UTILITY("AMQQ",$J,"SQ",AMQQSQNN,"NULL"))!($G(X)="NULL") S AMQQSQLS=AMQQSQLS_"'NULL' (None meet criteria)" G LS
  1. I AMQQSQCT="B","EV"[AMQQSQST,AMQQSQST'="" D BP G LS
  1. S %=AMQQSQCT
  1. D @$S($D(AMQQSQLF):"MULT",%="D":"DT^AMQQSQL1",%="B":"VAL",%="C":"COMP",%="O":"ORD",%="T":"LEAST",%="R":"REL",%="L":"LINK",%="V":"VIS",%="M":"MULT",%="S":"SET",1:"NOSQL")
  1. I $D(AMQQNOSQ)!($G(AMQQSQLS)[";*;") K AMQQNOSQ Q ; &&&
  1. LS I '$D(AMQQNOSQ) S ^UTILITY("AMQQ",$J,"SQL",AMQQSQNN,AMQQSQFN)=AMQQSQLS_""""
  1. EXIT K %,A,B,C,E,F,G,H,S,T,Z,AMQQNOSQ
  1. Q
  1. ;
  1. NOSQL S AMQQNOSQ=""
  1. Q
  1. ;
  1. VAL N X,Y,Z,A S X=AMQQSQCV
  1. I AMQQSQCV["~",AMQQSQTP="E" D BP Q
  1. I AMQQSQCV[";" S:$D(AMQQSQNT) AMQQSQLS=AMQQSQLS_"NOT " S AMQQSQLS=AMQQSQLS_"BETWEEN "_$P(AMQQSQCV,";")_" and "_$P(AMQQSQCV,";",2) Q
  1. S A=$S($E(AMQQSQBS)="'":$E(AMQQSQBS,2,99),1:AMQQSQBS)
  1. S Y=$F("[]=?$#><",A)-1
  1. S Z=$P("CONTAINS^FOLLOWS^EQUALS^PATTERN MATCH^STARTS WITH^ENDS WITH^GREATER THAN^LESS THAN",U,Y)
  1. I $D(AMQQSQNT) S Z=$S(Y<7:"DOES ",1:"")_"NOT "_$P("CONTAIN^FOLLOW^EQUAL^PATTERN MATCH^START WITH^END WITH^GREATER THAN^LESS THAN",U,Y)
  1. S AMQQSQLS=AMQQSQLS_Z_" "
  1. S:AMQQSQST="T" AMQQSQLS=AMQQSQLS_"1:"
  1. S AMQQSQLS=AMQQSQLS_AMQQSQCV
  1. Q
  1. ;
  1. ;
  1. BP N A,B,C,E,X,F,G,H,T,Z
  1. S Y=AMQQSQCV
  1. I Y=">:0~>:0~!" S AMQQSQLS=AMQQSQLS_"all values""" Q
  1. I AMQQSQSN=253 S F="S",G="D",T="" G BP1
  1. S F="R"
  1. S G="L"
  1. S T="20/"
  1. BP1 S Z=$P(Y,"~")
  1. S A=$P(Z,":")
  1. S B=$P(Z,":",2)
  1. S C=$P(Z,":",3)
  1. S E=$P(Z,":",4)
  1. S AMQQSQLS=AMQQSQLS_F
  1. S:C="" AMQQSQLS=AMQQSQLS_A_T_B
  1. S:C'="" AMQQSQLS=AMQQSQLS_" "_T_B_"-"_E
  1. S H=$S($P(Y,"~",3)="&":" and ",1:" or "),AMQQSQLS=AMQQSQLS_H_G
  1. S Z=$P(Y,"~",2),A=$P(Z,":")
  1. S B=$P(Z,":",2)
  1. S C=$P(Z,":",3)
  1. S E=$P(Z,":",4)
  1. S:C="" AMQQSQLS=AMQQSQLS_A_T_B
  1. S:C'="" AMQQSQLS=AMQQSQLS_" "_T_B_"-"_E
  1. Q
  1. ;
  1. LEAST I AMQQSQNM["_" S AMQQSQLS=AMQQSQLS_$P(AMQQSQNM,"_")_AMQQSQCV_$P(AMQQSQNM,"_",2) Q
  1. ORD S AMQQSQLS=AMQQSQLS_AMQQSQNM_" "_AMQQSQCV
  1. Q
  1. ;
  1. COMP S AMQQSQLS=AMQQSQLS_AMQQSQNM
  1. Q
  1. ;
  1. REL S AMQQSQLS=AMQQSQLS_"DURING THE SPECIFIED AGE WINDOW"
  1. Q
  1. ;
  1. S X=AMQQQ,Y=$P(X,U,3)
  1. I X[";;;NULL" S AMQQSQLS=AMQQSQLS_$P(X,U,2)_" IS 'NULL'" Q
  1. I X[";;;EXIST" S AMQQSQLS=AMQQSQLS_$P(X,U,2)_" IS NOT 'NULL'" Q
  1. D VIS1
  1. Q
  1. ;
  1. VIS N X,Y
  1. S X=AMQQQ,Y=$P(X,U,3)
  1. I AMQQQ["NULL" S AMQQSQLS=AMQQSQLS_$P(X,U,2)_" IS 'NULL'" Q
  1. VIS1 I "GL"[Y D ZSET^AMQQATL1 S AMQQSQLS=AMQQSQLS_$P(X,U,2)_$G(Z) Q
  1. I Y="D" D DATE^AMQQSQL1 Q
  1. I Y="S" D SET^AMQQSQL1 Q
  1. I Y="F" D FREE^AMQQSQL1 Q
  1. I $P(X,U,8)="><" S AMQQSQLS=AMQQSQLS_$P(X,U,2)_" BETWEEN "_+$P(X,U,9)_" AND "_$P($P(X,U,9),";",2) Q
  1. S AMQQSQLS=AMQQSQLS_$P(X,U,2)_" "_$P(X,U,8)_" "_$P(X,U,9)
  1. ; INSERT OTHER TYPES HERE
  1. Q
  1. ;
  1. MULT S AMQQZSQL=AMQQSQNN_U_AMQQSQFN_U_(AMQQUSQN+1)
  1. K AMQQSQLF
  1. S AMQQSQLS=AMQQSQLS_$P(AMQQSQSQ,U,6)_" ENTERED "
  1. I $P(AMQQSQSQ,U,7),$G(AMQQSQN),$G(AMQQSQSN),$D(^AMQQ(5,AMQQSQN,5)),$D(^AMQQ(5,AMQQSQSN,5)),$P(^(5),U,2),$P(^(5),U,2)=$P(^AMQQ(5,AMQQSQN,5),U,2) S AMQQSQLS=AMQQSQLS_"DURING THIS "_$P(AMQQSQSQ,U,5) Q
  1. I $P(AMQQSQSQ,U,7) S AMQQSQLS=AMQQSQLS_"ON THE SAME VISIT AS EA. "_$P(AMQQSQSQ,U,5) Q
  1. N X,Y
  1. S X=$P(AMQQSQSQ,U,3)
  1. S Y=$P(AMQQSQSQ,U,4)
  1. I X["0 DAY " S X="THE SAME DAY"
  1. I Y["0 DAY " S Y="THE SAME DAY AS"
  1. S AMQQSQLS=AMQQSQLS_"FROM "_X_" TO "_Y_" EA. "_$P(AMQQSQSQ,U,5)
  1. Q
  1. ;
  1. SET N %,S,A,B
  1. I AMQQLINK>1000!((AMQQLINK>689.9999)&(AMQQLINK<706)) S S=$G(^AMQQ(1,AMQQLINK,4,1,1)),S=$P(S,"S Y=""",2),S=$P(S,""",X=$F") G SET1
  1. S %=$P($G(^AMQQ(5,AMQQSQSN,0)),U,5)
  1. I % S:%=9 %=AMQQSQSN+($J/100000) S %=$P($G(^AMQQ(1,%,0)),U,6) I % S %="^DD("_%_",0)" I $D(@%) S S=";"_$P(^(0),U,3)
  1. SET1 S A=";"_AMQQSQCV_":"
  1. S A=$F(S,A)
  1. I A S B=$P($E(S,A,999),";")
  1. S AMQQSQLS=AMQQSQLS_"Result is "_$S($G(AMQQSQBS)="'=":"not ",1:"")_$G(B)
  1. Q
  1. ;