[613] | 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 | ;
|
---|