| 1 | SDQPROP ;ALB/MJK - Query Object Property Methods ;8/12/96 | 
|---|
| 2 | ;;5.3;Scheduling;**131**;Aug 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | DATE(SDQ,SDBEG,SDEND,SDACT,SDERR) ; -- set/get date range property | 
|---|
| 5 | ;   API ID: 82 | 
|---|
| 6 | ; API NAME: SDQ DATE RANGE | 
|---|
| 7 | ; | 
|---|
| 8 | DATEG ; -- goto entry point | 
|---|
| 9 | ; -- do validation checks | 
|---|
| 10 | IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G DATEQ | 
|---|
| 11 | IF '$$ACTION^SDQVAL(.SDACT,$G(SDERR)) G DATEQ | 
|---|
| 12 | IF SDACT="SET",'$$QRYINACT^SDQVAL(.SDQ,$G(SDERR)) G DATEQ | 
|---|
| 13 | IF SDACT="SET",SDBEG=0 S SDBEG=2900101 | 
|---|
| 14 | IF SDACT="SET",'$$RANGE^SDQVAL(.SDBEG,.SDEND,$G(SDERR)) G DATEQ | 
|---|
| 15 | ; | 
|---|
| 16 | IF SDACT="SET" D | 
|---|
| 17 | . S @SDQUERY@(SDQ,"BEGIN DATE")=SDBEG | 
|---|
| 18 | . S @SDQUERY@(SDQ,"END DATE")=SDEND | 
|---|
| 19 | IF SDACT="GET" D | 
|---|
| 20 | . S SDBEG=$G(@SDQUERY@(SDQ,"BEGIN DATE")) | 
|---|
| 21 | . S SDEND=$G(@SDQUERY@(SDQ,"END DATE")) | 
|---|
| 22 | ; | 
|---|
| 23 | DATEQ Q | 
|---|
| 24 | ; | 
|---|
| 25 | ; | 
|---|
| 26 | FILTER(SDQ,SDFIL,SDACT,SDERR) ; -- set/get filter property | 
|---|
| 27 | ;   API ID: 83 | 
|---|
| 28 | ; API NAME: SDQ FILTER | 
|---|
| 29 | ; | 
|---|
| 30 | FILTERG ; -- goto entry point | 
|---|
| 31 | ; -- do validation checks | 
|---|
| 32 | IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G FILTERQ | 
|---|
| 33 | IF '$$ACTION^SDQVAL(.SDACT,$G(SDERR)) G FILTERQ | 
|---|
| 34 | IF SDACT="SET",'$$QRYINACT^SDQVAL(.SDQ,$G(SDERR)) G FILTERQ | 
|---|
| 35 | IF SDACT="SET",'$$FILTER^SDQVAL(.SDFIL,$G(SDERR)) G FILTERQ | 
|---|
| 36 | ; | 
|---|
| 37 | IF SDACT="SET" S @SDQUERY@(SDQ,"FILTER")=SDFIL | 
|---|
| 38 | IF SDACT="GET" S SDFIL=$G(@SDQUERY@(SDQ,"FILTER"),"IF 1") | 
|---|
| 39 | ; | 
|---|
| 40 | FILTERQ Q | 
|---|
| 41 | ; | 
|---|
| 42 | ; | 
|---|
| 43 | INDEX(SDQ,SDIDX,SDACT,SDERR) ; -- set/get index property | 
|---|
| 44 | ;   API ID: 85 | 
|---|
| 45 | ; API NAME: SDQ INDEX NAME | 
|---|
| 46 | ; | 
|---|
| 47 | INDEXG ; -- goto entry point | 
|---|
| 48 | ; -- do validation checks | 
|---|
| 49 | IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G INDEXQ | 
|---|
| 50 | IF '$$ACTION^SDQVAL(.SDACT,$G(SDERR)) G INDEXQ | 
|---|
| 51 | IF SDACT="SET",'$$QRYINACT^SDQVAL(.SDQ,$G(SDERR)) G INDEXQ | 
|---|
| 52 | IF SDACT="SET",'$$INDEX^SDQVAL(.SDQ,.SDIDX,$G(SDERR)) G INDEXQ | 
|---|
| 53 | ; | 
|---|
| 54 | IF SDACT="SET" D SETIDX(.SDQ,.SDIDX) | 
|---|
| 55 | IF SDACT="GET" S SDIDX=$G(@SDQUERY@(SDQ,"INDEX EXTERNAL")) | 
|---|
| 56 | ; | 
|---|
| 57 | INDEXQ Q | 
|---|
| 58 | ; | 
|---|
| 59 | ; | 
|---|
| 60 | SETIDX(SDQ,SDIDX) ; -- set index related info | 
|---|
| 61 | N SDIDXI,SDTYPE,SDVAL | 
|---|
| 62 | S SDIDXI=$O(^TMP("SDQUERY CLASS",$J,SDQ,"INDEX","B",SDIDX,0)) | 
|---|
| 63 | S X=$G(^TMP("SDQUERY CLASS",$J,SDQ,"INDEX",SDIDXI,0)) | 
|---|
| 64 | S @SDQUERY@(SDQ,"INDEX EXTERNAL")=$P(X,"^",1) | 
|---|
| 65 | S @SDQUERY@(SDQ,"INDEX INTERNAL")=$P(X,"^",2) | 
|---|
| 66 | S (SDTYPE,@SDQUERY@(SDQ,"INDEX TYPE"))=$P(X,"^",3) | 
|---|
| 67 | ; | 
|---|
| 68 | ; -- at which subscript is ien located + subscripts in global root | 
|---|
| 69 | S @SDQUERY@(SDQ,"IEN SUBSCRIPT")=$S(SDTYPE=1:3,SDTYPE=2:3,SDTYPE=4:4,1:999)+$P($G(^TMP("SDQUERY CLASS",$J,SDQ,"GL SUBSCRIPTS")),"^",3) | 
|---|
| 70 | ; | 
|---|
| 71 | ; -- get override entry validator if defined, otherwise use default | 
|---|
| 72 | S SDVAL=$G(^TMP("SDQUERY CLASS",$J,SDQ,"INDEX",SDIDXI,"VALIDATOR")) | 
|---|
| 73 | IF SDVAL="" D | 
|---|
| 74 | . IF SDTYPE=1 S SDVAL="D REG^SDQUT(.SDQ,.SDGREF)"     ; regular | 
|---|
| 75 | . IF SDTYPE=2 S SDVAL="D REGDT^SDQUT(.SDQ,.SDGREF)"   ; regular date range | 
|---|
| 76 | . ; IF SDTYPE=3 S SDVAL="D COM^SDQUT(.SDQ,.SDGREF)"     ; composite | 
|---|
| 77 | . IF SDTYPE=4 S SDVAL="D COMDT^SDQUT(.SDQ,.SDGREF)"   ; composite date range | 
|---|
| 78 | ; | 
|---|
| 79 | S @SDQUERY@(SDQ,"VALIDATOR")=SDVAL | 
|---|
| 80 | Q | 
|---|
| 81 | ; | 
|---|
| 82 | ; | 
|---|
| 83 | ACTIVE(SDQ,SDSTAT,SDACT,SDERR) ; -- activate query | 
|---|
| 84 | ;  API ID: 88 | 
|---|
| 85 | ; API NAME: SDQ ACTIVE STATUS | 
|---|
| 86 | ; | 
|---|
| 87 | ACTIVEG ; -- goto entry point | 
|---|
| 88 | ; -- do validation checks | 
|---|
| 89 | IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G ACTIVEQ | 
|---|
| 90 | IF '$$ACTION^SDQVAL(.SDACT,$G(SDERR)) G ACTIVEQ | 
|---|
| 91 | ; | 
|---|
| 92 | ; -- did above produce errors? | 
|---|
| 93 | ; -- if so, it's important to stop processing to prevent other errors | 
|---|
| 94 | IF $G(SDERR)="",$O(^TMP("DIERR",$J,0)) G ACTIVEQ | 
|---|
| 95 | IF $G(SDERR)]"",$O(@SDERR@("DIERR",0)) G ACTIVEQ | 
|---|
| 96 | ; | 
|---|
| 97 | IF SDACT="SET" D  G ACTIVEQ | 
|---|
| 98 | . IF '$$STATUS^SDQVAL(.SDSTAT,$G(SDERR)) Q | 
|---|
| 99 | . IF SDSTAT="TRUE",'$$PROP^SDQVAL(.SDQ,$G(SDERR)) Q | 
|---|
| 100 | . IF SDSTAT="TRUE",'$G(@SDQUERY@(SDQ,"ACTIVE")) D START(.SDQ) | 
|---|
| 101 | . IF SDSTAT="FALSE",$G(@SDQUERY@(SDQ,"ACTIVE")) D STOP(.SDQ) | 
|---|
| 102 | ; | 
|---|
| 103 | IF SDACT="GET" D  G ACTIVEQ | 
|---|
| 104 | . S SDSTAT=$S(@SDQUERY@(SDQ,"ACTIVE"):"TRUE",1:"FALSE") | 
|---|
| 105 | ; | 
|---|
| 106 | ACTIVEQ Q | 
|---|
| 107 | ; | 
|---|
| 108 | ; | 
|---|
| 109 | START(SDQ) ; -- set up active query | 
|---|
| 110 | N Y,SDTYPE,SDIDX,SDGL,SDMST,SDBEG | 
|---|
| 111 | S SDTYPE=$G(@SDQUERY@(SDQ,"INDEX TYPE")) | 
|---|
| 112 | S SDIDX=$G(@SDQUERY@(SDQ,"INDEX INTERNAL")) | 
|---|
| 113 | S SDMST=$G(@SDQUERY@(SDQ,"MASTER VALUE")) | 
|---|
| 114 | S SDBEG=$G(@SDQUERY@(SDQ,"BEGIN DATE")) | 
|---|
| 115 | S SDGL=$G(^TMP("SDQUERY CLASS",$J,SDQ,"GL")) | 
|---|
| 116 | S Y="" | 
|---|
| 117 | ; | 
|---|
| 118 | IF SDTYPE=1 S Y=SDGL_""""_SDIDX_""","""_SDMST_""")"     ; regular | 
|---|
| 119 | IF SDTYPE=2 S Y=SDGL_""""_SDIDX_""","_(SDBEG-.000001)_")" ; regular d/t | 
|---|
| 120 | IF SDTYPE=3 S Y=SDGL_""""_SDIDX_""","""_SDMST_""")"     ; composite | 
|---|
| 121 | IF SDTYPE=4 S Y=SDGL_""""_SDIDX_""","""_SDMST_""","_(SDBEG-.000001)_")"  ; composite d/t | 
|---|
| 122 | ; | 
|---|
| 123 | S @SDQUERY@(SDQ,"GLOBAL REF")=Y | 
|---|
| 124 | S @SDQUERY@(SDQ,"CURSOR")=0 | 
|---|
| 125 | S @SDQUERY@(SDQ,"ACTIVE")=1 | 
|---|
| 126 | S @SDQUERY@(SDQ,"MORE")=1 | 
|---|
| 127 | S @SDQUERY@(SDQ,"BOF")=1 | 
|---|
| 128 | S @SDQUERY@(SDQ,"EOF")=0 | 
|---|
| 129 | S @SDQUERY@(SDQ,"COUNT")=0 | 
|---|
| 130 | K ^TMP("SDQUERY LIST",$J,SDQ) | 
|---|
| 131 | D NEXT^SDQNAV(.SDQ,$G(SDERR)) | 
|---|
| 132 | STARTQ Q | 
|---|
| 133 | ; | 
|---|
| 134 | ; | 
|---|
| 135 | STOP(SDQRY) ; -- stop query / also called from CREATE^SDQ to set up query | 
|---|
| 136 | ; | 
|---|
| 137 | S @SDQUERY@(SDQ,"GLOBAL REF")="" | 
|---|
| 138 | S @SDQUERY@(SDQ,"CURSOR")=0 | 
|---|
| 139 | S @SDQUERY@(SDQ,"ACTIVE")=0 | 
|---|
| 140 | S @SDQUERY@(SDQ,"MORE")=0 | 
|---|
| 141 | S @SDQUERY@(SDQ,"BOF")=0 | 
|---|
| 142 | S @SDQUERY@(SDQ,"COUNT")=0 | 
|---|
| 143 | K ^TMP("SDQUERY LIST",$J,SDQ) | 
|---|
| 144 | Q | 
|---|
| 145 | ; | 
|---|