| 1 | SDQ ;ALB/MJK - Query Object Methods ;8/12/96
 | 
|---|
| 2 |  ;;5.3;Scheduling;**131**;Aug 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | OPEN(SDQ,SDERR) ; -- SDQ OPEN                                     [API ID: 79]
 | 
|---|
| 5 |  D PREP^SDQUT
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ; -- get query object instance and set up query class info
 | 
|---|
| 8 |  IF '$$CREATE(.SDQ,"SD STANDARD ENCOUNTER QUERY",$G(SDERR)) G OPENQ
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ; -- do query object instance kills and sets
 | 
|---|
| 11 |  K @SDQUERY@(SDQ)
 | 
|---|
| 12 |  S @SDQUERY@(SDQ)=""
 | 
|---|
| 13 |  F X="SCAN" M @SDQUERY@(SDQ,X)=^TMP("SDQUERY CLASS",$J,SDQ,X)
 | 
|---|
| 14 |  D STOP^SDQPROP(.SDQ)
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  ; -- do open actions
 | 
|---|
| 17 |  N SDOPEN
 | 
|---|
| 18 |  S SDOPEN=$G(^TMP("SDQUERY CLASS",$J,SDQ,"OPEN"))
 | 
|---|
| 19 |  IF SDOPEN]"" X SDOPEN
 | 
|---|
| 20 | OPENQ Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | CLOSE(SDQ,SDERR) ; -- SDQ CLOSE                            [API ID: 80]
 | 
|---|
| 23 |  D PREP^SDQUT
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  ; -- do validation checks
 | 
|---|
| 26 |  IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G CLOSEQ
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ; -- do close actions
 | 
|---|
| 29 |  N SDCLOSE
 | 
|---|
| 30 |  S SDCLOSE=$G(^TMP("SDQUERY CLASS",$J,SDQ,"CLOSE"))
 | 
|---|
| 31 |  IF SDCLOSE]"" X SDCLOSE
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  ; -- do query object instance kills
 | 
|---|
| 34 |  K @SDQUERY@(SDQ)
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  ; -- do query class kills
 | 
|---|
| 37 |  IF '$$DESTROY(.SDQ) G CLOSEQ
 | 
|---|
| 38 |  S SDQ=""
 | 
|---|
| 39 | CLOSEQ Q
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 | CREATE(SDQ,SDQNAME,SDERR) ; -- query class level method for CREATE
 | 
|---|
| 42 |  N SDCLS,SDCLS0,SDOK,SDSTORE
 | 
|---|
| 43 |  S SDCLS=+$O(^SD(409.64,"B",SDQNAME,0))
 | 
|---|
| 44 |  IF SDCLS D
 | 
|---|
| 45 |  . S SDCLS0=$G(^SD(409.64,SDCLS,0))
 | 
|---|
| 46 |  . S SDSTORE=$S($P(SDCLS0,U,4):$P(SDCLS0,U,4),1:5000)
 | 
|---|
| 47 |  . IF $G(SDQUERY)="" S SDQUERY="SDQDATA"
 | 
|---|
| 48 |  . D STORE(.SDQUERY,SDSTORE)
 | 
|---|
| 49 |  . IF '$O(@SDQUERY@(0)) D KILL
 | 
|---|
| 50 |  . ;
 | 
|---|
| 51 |  . ; -- set query id
 | 
|---|
| 52 |  . S (SDQ,@SDQUERY)=$G(@SDQUERY)+1
 | 
|---|
| 53 |  . ; -- set up tmp class info
 | 
|---|
| 54 |  . K ^TMP("SDQUERY CLASS",$J,SDQ)
 | 
|---|
| 55 |  . M ^TMP("SDQUERY CLASS",$J,SDQ)=^SD(409.64,SDCLS)
 | 
|---|
| 56 |  . S ^TMP("SDQUERY CLASS",$J,SDQ)=SDCLS
 | 
|---|
| 57 |  . S ^TMP("SDQUERY CLASS",$J,SDQ,"GL")=$G(^DIC(+$P(SDCLS0,"^",2),0,"GL"))
 | 
|---|
| 58 |  . ; -- subscript level of files root ; ex:^SCE = 0 ; ex:^SD(404.42, = 1
 | 
|---|
| 59 |  . S ^TMP("SDQUERY CLASS",$J,SDQ,"GL SUBSCRIPTS")=+$P(SDCLS0,"^",3)
 | 
|---|
| 60 |  . ;
 | 
|---|
| 61 |  . S SDOK=1
 | 
|---|
| 62 |  ELSE  D
 | 
|---|
| 63 |  . ; -- build error msg
 | 
|---|
| 64 |  . N SDIN,SDOUT
 | 
|---|
| 65 |  . S SDIN("CLASS")=SDQNAME
 | 
|---|
| 66 |  . S SDOUT("CLASS")=SDQNAME
 | 
|---|
| 67 |  . D BLD^SDQVAL(4096400.001,.SDIN,.SDOUT,$G(SDERR))
 | 
|---|
| 68 |  . S SDOK=0
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  Q SDOK
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | STORE(SDQUERY,SDSTORE) ; -- decide whether to use a local or global
 | 
|---|
| 73 |  N SDOLD
 | 
|---|
| 74 |  IF $S<SDSTORE,SDQUERY'["^TMP" D
 | 
|---|
| 75 |  . S SDOLD=SDQUERY
 | 
|---|
| 76 |  . S SDQUERY=$NA(^TMP("SDQDATA",$J))
 | 
|---|
| 77 |  . K @SDQUERY
 | 
|---|
| 78 |  . M @SDQUERY=@SDOLD
 | 
|---|
| 79 |  . K @SDOLD
 | 
|---|
| 80 |  Q
 | 
|---|
| 81 |  ;
 | 
|---|
| 82 | DESTROY(SDQ) ; -- query class level method for DESTROY
 | 
|---|
| 83 |  K ^TMP("SDQUERY CLASS",$J,SDQ)
 | 
|---|
| 84 |  IF '$O(@SDQUERY@(0)) D KILL K SDQUERY
 | 
|---|
| 85 |  Q 1
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 | KILL ; -- kill class and ien list globals
 | 
|---|
| 88 |  K ^TMP("SDQUERY CLASS",$J)
 | 
|---|
| 89 |  K ^TMP("SDQUERY LIST",$J)
 | 
|---|
| 90 |  K @SDQUERY
 | 
|---|
| 91 |  Q
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 | PAT(SDQ,SDFN,SDACT,SDERR) ; -- SDQ PATIENT                  [API ID: 81]
 | 
|---|
| 95 |  D PREP^SDQUT
 | 
|---|
| 96 |  G PATG^SDOEQ
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 | GETPAT(SDQ,SDERR) ; -- get patient property             [API ID: 1xx]
 | 
|---|
| 99 |  ; -- not supported
 | 
|---|
| 100 |  D PREP^SDQUT
 | 
|---|
| 101 |  N SDFN
 | 
|---|
| 102 |  D PAT^SDOEQ(.SDQ,.SDFN,"GET",$G(SDERR))
 | 
|---|
| 103 |  Q $G(SDFN)
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 | DATE(SDQ,SDBEG,SDEND,SDACT,SDERR) ; -- SDQ DATE RANGE       [API ID: 82]
 | 
|---|
| 106 |  D PREP^SDQUT
 | 
|---|
| 107 |  G DATEG^SDQPROP
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 | GETDATE(SDQ,SDERR) ; -- get date range property          [API ID: 1xx]
 | 
|---|
| 110 |  ; -- not supported
 | 
|---|
| 111 |  D PREP^SDQUT
 | 
|---|
| 112 |  N SDBEG,SDEND
 | 
|---|
| 113 |  D DATE^SDQPROP(.SDQ,.SDBEG,.SDEND,"GET",$G(SDERR))
 | 
|---|
| 114 |  Q $G(SDBEG)_"^"_$G(SDEND)
 | 
|---|
| 115 |  ;
 | 
|---|
| 116 | FILTER(SDQ,SDFIL,SDACT,SDERR) ; -- SDQ FILTER                   [API ID: 83]
 | 
|---|
| 117 |  D PREP^SDQUT
 | 
|---|
| 118 |  G FILTERG^SDQPROP
 | 
|---|
| 119 |  ;
 | 
|---|
| 120 | GETFIL(SDQ,SDERR) ; -- get filter property              [API ID: 1xx]
 | 
|---|
| 121 |  ; -- not supported
 | 
|---|
| 122 |  D PREP^SDQUT
 | 
|---|
| 123 |  N SDFIL
 | 
|---|
| 124 |  D FILTER^SDQPROP(.SDQ,.SDFIL,"GET",$G(SDERR))
 | 
|---|
| 125 |  Q $G(SDFIL)
 | 
|---|
| 126 |  ;
 | 
|---|
| 127 | VISIT(SDQ,SDVST,SDACT,SDERR) ; -- SDQ VISIT                   [API ID: 84]
 | 
|---|
| 128 |  D PREP^SDQUT
 | 
|---|
| 129 |  G VISITG^SDOEQ
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 | GETVISIT(SDQ,SDERR) ; -- get visit property              [API ID: 1xx]
 | 
|---|
| 132 |  ; -- not supported
 | 
|---|
| 133 |  D PREP^SDQUT
 | 
|---|
| 134 |  N SDVST
 | 
|---|
| 135 |  D VISIT^SDOEQ(.SDQ,.SDVST,.SDACT,$G(SDERR))
 | 
|---|
| 136 |  Q $G(SDVST)
 | 
|---|
| 137 |  ;
 | 
|---|
| 138 | INDEX(SDQ,SDIDX,SDACT,SDERR) ; -- SDQ INDEX NAME              [API ID: 85]
 | 
|---|
| 139 |  D PREP^SDQUT
 | 
|---|
| 140 |  G INDEXG^SDQPROP
 | 
|---|
| 141 |  ;
 | 
|---|
| 142 | GETINDEX(SDQ,SDERR) ; -- get index property              [API ID: 1xx]
 | 
|---|
| 143 |  ; -- not supported
 | 
|---|
| 144 |  D PREP^SDQUT
 | 
|---|
| 145 |  N SDIDX
 | 
|---|
| 146 |  D INDEX^SDQPROP(.SDQ,.SDIDX,"GET",$G(SDERR))
 | 
|---|
| 147 |  Q $G(SDIDX)
 | 
|---|
| 148 |  ;
 | 
|---|
| 149 | ACTIVE(SDQ,SDSTAT,SDACT,SDERR) ; -- SDQ ACTIVE STATUS           [API ID: 88]
 | 
|---|
| 150 |  D PREP^SDQUT
 | 
|---|
| 151 |  G ACTIVEG^SDQPROP
 | 
|---|
| 152 |  ;
 | 
|---|
| 153 | GETACT(SDQ,SDERR) ; -- activate query                      [API ID: 1xx]
 | 
|---|
| 154 |  ; -- not supported
 | 
|---|
| 155 |  D PREP^SDQUT
 | 
|---|
| 156 |  N SDSTAT
 | 
|---|
| 157 |  D ACTIVE^SDQPROP(.SDQ,.SDSTAT,.SDACT,$G(SDERR))
 | 
|---|
| 158 |  Q $G(SDSTAT)
 | 
|---|
| 159 |  ;
 | 
|---|
| 160 | REFRESH(SDQ,SDERR) ; -- SDQ REFRESH                         [API ID: 94]
 | 
|---|
| 161 |  D PREP^SDQUT
 | 
|---|
| 162 |  G REFRESHG^SDQUT
 | 
|---|
| 163 |  ;
 | 
|---|
| 164 | SCAN(SDQ,SDIR,SDERR) ; -- SDQ SCAN                            [API ID: 99]
 | 
|---|
| 165 |  D PREP^SDQUT
 | 
|---|
| 166 |  G SCANG^SDQNAV
 | 
|---|
| 167 |  ;
 | 
|---|
| 168 | SCANCB(SDQ,SDCB,SDACT,SDERR) ; -- SDQ SCAN CALLBACK           [API ID: 100]
 | 
|---|
| 169 |  D PREP^SDQUT
 | 
|---|
| 170 |  G SCANCBG^SDQNAV
 | 
|---|
| 171 |  ;
 | 
|---|
| 172 | NEXT(SDQ,SDERR) ; -- SDQ NEXT                                    [API ID: 92]
 | 
|---|
| 173 |  D PREP^SDQUT
 | 
|---|
| 174 |  G NEXTG^SDQNAV
 | 
|---|
| 175 |  ;
 | 
|---|
| 176 | PRIOR(SDQ,SDERR) ; -- SDQ PRIOR                           [API ID: 93]
 | 
|---|
| 177 |  D PREP^SDQUT
 | 
|---|
| 178 |  G PRIORG^SDQNAV
 | 
|---|
| 179 |  ;
 | 
|---|
| 180 | FIRST(SDQ,SDERR) ; -- SDQ FIRST                           [API ID: 90]
 | 
|---|
| 181 |  D PREP^SDQUT
 | 
|---|
| 182 |  G FIRSTG^SDQNAV
 | 
|---|
| 183 |  ;
 | 
|---|
| 184 | LAST(SDQ,SDERR) ; -- SDQ LAST                                    [API ID: 91]
 | 
|---|
| 185 |  D PREP^SDQUT
 | 
|---|
| 186 |  G LASTG^SDQNAV
 | 
|---|
| 187 |  ;
 | 
|---|
| 188 | EOF(SDQ,SDERR) ; -- SDQ EOF                                     [API ID: 86]
 | 
|---|
| 189 |  D PREP^SDQUT
 | 
|---|
| 190 |  Q $$EOF^SDQNAV(.SDQ,$G(SDERR))
 | 
|---|
| 191 |  ;
 | 
|---|
| 192 | BOF(SDQ,SDERR) ; -- SDQ BOF                                     [API ID: 87]
 | 
|---|
| 193 |  D PREP^SDQUT
 | 
|---|
| 194 |  Q $$BOF^SDQNAV(.SDQ,$G(SDERR))
 | 
|---|
| 195 |  ;
 | 
|---|
| 196 | COUNT(SDQ,SDERR) ; -- SDQ COUNT                           [API ID: 89]
 | 
|---|
| 197 |  D PREP^SDQUT
 | 
|---|
| 198 |  Q $$COUNT^SDQNAV(.SDQ,$G(SDERR))
 | 
|---|
| 199 |  ;
 | 
|---|
| 200 | GETENTRY(SDQ,SDERR) ; -- SDQ GET CURRENT ENTRY ID            [API ID: 95]
 | 
|---|
| 201 |  D PREP^SDQUT
 | 
|---|
| 202 |  Q $$GETENTRY^SDQUT(.SDQ,$G(SDERR))
 | 
|---|
| 203 |  ;
 | 
|---|