[796] | 1 | TMGRPC6A ;TMG/kst/Support Functions for tmg-messenger ;09/17/09
|
---|
| 2 | ;;1.0;TMG-LIB;**1**;09/17/09
|
---|
| 3 | ;
|
---|
| 4 | ;"TMG RPC FUNCTIONS for TMG-Messenger program
|
---|
| 5 | ;
|
---|
| 6 | ;"Kevin Toppenberg MD
|
---|
| 7 | ;"GNU Lessor General Public License (LGPL) applies
|
---|
| 8 | ;"9/17/09
|
---|
| 9 | ;
|
---|
| 10 | ;"=======================================================================
|
---|
| 11 | ;" RPC -- Public Functions.
|
---|
| 12 | ;"=======================================================================
|
---|
| 13 | ;"GETEMULT(TMGOUT,TMGPARAMS) ;"GET USERS OF EMAIL ADDRESS
|
---|
| 14 | ;"GETUEMA(TMGOUT,TMGPARAMS) ;"GET MULT USERS EMAIL ADDRESSES
|
---|
| 15 | ;"SETUEMA(TMGOUT,TMGPARAMS) ;"SET ONE USER'S EMAIL ADDRESS
|
---|
| 16 | ;"KILLUEMA(TMGOUT,TMGPARAMS) ;"REMOVE ONE EMAIL ADDRESS FROM A USER
|
---|
| 17 | ;"SETUSEM(TMGOUT,TMGPARAMS) ;"SET MULTIPLE USERS EMAIL ADDRESSES
|
---|
| 18 | ;"GFLSUBST(TMGOUT,TMGPARAMS) ;"GET FILE SUBSET
|
---|
| 19 | ;"GETIEN8925(TMGOUT,TMGUID) ;"GET IEN 8925 FOR IMAP UID
|
---|
| 20 | ;"SETUID(TMGOUT,TMGPARAMS) ;"SET IMAP UID FOR IEN 8925
|
---|
| 21 | ;"GETEMDOC(TMGOUT,TMGPARAMS) ;"GET IEN OF 'EMAIL' DOC IN 8925.1
|
---|
| 22 | ;"
|
---|
| 23 | ;"=======================================================================
|
---|
| 24 | ;"PRIVATE API FUNCTIONS
|
---|
| 25 | ;"=======================================================================
|
---|
| 26 | ;
|
---|
| 27 | ;"=======================================================================
|
---|
| 28 | ;"=======================================================================
|
---|
| 29 | ;"Dependencies:
|
---|
| 30 | ;" TMGDEBUG
|
---|
| 31 | ;"=======================================================================
|
---|
| 32 | ;"=======================================================================
|
---|
| 33 | ;
|
---|
| 34 | ;"=======================================================================
|
---|
| 35 | ;
|
---|
| 36 | GETEMULT(TMGOUT,TMGPARAMS) ;"GET USERS OF EMAIL ADDRESS
|
---|
| 37 | ;"Purpose: to fill list with users with matching email address
|
---|
| 38 | ;"Input: TMGOUT -- an OUT PARAMETER, PASS BY REFERENCE.
|
---|
| 39 | ;" TMGPARAMS -- email address, e.g. 'Someuser@gmail.com'
|
---|
| 40 | ;"Output: TMGOUT is filled as follows:
|
---|
| 41 | ;" TMGOUT(0)="#Found^Success" or "-1^Message"
|
---|
| 42 | ;" e.g. 1^Success --> 1 match found
|
---|
| 43 | ;" 2^Success --> 2 matches found
|
---|
| 44 | ;" 0^Success --> no errors, but no matches found.
|
---|
| 45 | ;" TMGOUT(1)=Name^DOB^IEN2
|
---|
| 46 | ;" TMGOUT(2)=Name^DOB^IEN2
|
---|
| 47 | ;"
|
---|
| 48 | ;"Results: none
|
---|
| 49 | ;
|
---|
| 50 | MERGE ^TMG("TMP","RPC","GETEMULT","TMGPARAMS")=TMGPARAMS
|
---|
| 51 | NEW TMGINDEX SET TMGINDEX=1
|
---|
| 52 | NEW TMGEMAIL SET TMGEMAIL=$$LOW^XLFSTR($EXTRACT($GET(TMGPARAMS),1,128))
|
---|
| 53 | IF TMGEMAIL="" DO QUIT
|
---|
| 54 | . SET TMGOUT(0)="-1^No email address passed for lookup"
|
---|
| 55 | NEW TMGIEN SET TMGIEN=""
|
---|
| 56 | KILL TMGOUT
|
---|
| 57 | FOR SET TMGIEN=$ORDER(^DPT("ATMGEMAIL",TMGEMAIL,TMGIEN)) QUIT:(+TMGIEN'>0) DO
|
---|
| 58 | . NEW TMGNAME SET TMGNAME=$PIECE($GET(^DPT(TMGIEN,0)),"^",1)
|
---|
| 59 | . NEW TMGDOB SET TMGDOB=$PIECE($GET(^DPT(TMGIEN,0)),"^",3)
|
---|
| 60 | . SET TMGDOB=$$FMTE^XLFDT(TMGDOB,"5D") ;"MM/DD/YYY format
|
---|
| 61 | . SET TMGOUT(TMGINDEX)=TMGNAME_"^"_TMGDOB_"^"_TMGIEN
|
---|
| 62 | . SET TMGINDEX=TMGINDEX+1
|
---|
| 63 | FOR SET TMGIEN=$ORDER(^DPT("ATMGALTEMAIL",TMGEMAIL,TMGIEN)) QUIT:(+TMGIEN'>0) DO
|
---|
| 64 | . NEW TMGNAME SET TMGNAME=$PIECE($GET(^DPT(TMGIEN,0)),"^",1)
|
---|
| 65 | . NEW TMGDOB SET TMGDOB=$PIECE($GET(^DPT(TMGIEN,0)),"^",3)
|
---|
| 66 | . SET TMGDOB=$$FMTE^XLFDT(TMGDOB,"5D") ;"MM/DD/YYY format
|
---|
| 67 | . SET TMGOUT(TMGINDEX)=TMGNAME_"^"_TMGDOB_"^"_TMGIEN
|
---|
| 68 | . SET TMGINDEX=TMGINDEX+1
|
---|
| 69 | ;
|
---|
| 70 | SET TMGOUT(0)=(TMGINDEX-1)_"^Success"
|
---|
| 71 | ;
|
---|
| 72 | QUIT
|
---|
| 73 | ;
|
---|
| 74 | GETUEMA(TMGOUT,TMGPARAMS) ;"GET MULT USERS EMAIL ADDRESSES
|
---|
| 75 | ;"Purpose: to fill list of email address for requested users.
|
---|
| 76 | ;"Input: TMGOUT -- an OUT PARAMETER, PASS BY REFERENCE.
|
---|
| 77 | ;" TMGPARAMS -- list of DFN's e.g. 1234;2345;234
|
---|
| 78 | ;"Output: TMGOUT is filled as follows:
|
---|
| 79 | ;" TMGOUT(0)="#Found^Success" or "-1^Message"
|
---|
| 80 | ;" e.g. 1^Success --> 1 match found
|
---|
| 81 | ;" 2^Success --> 2 matches found
|
---|
| 82 | ;" 0^Success --> no errors, but no matches found.
|
---|
| 83 | ;" TMGOUT(1)=DFN1^EmailAddress
|
---|
| 84 | ;" TMGOUT(2)=DFN1^;ALT;AltEmail1
|
---|
| 85 | ;" TMGOUT(3)=DFN1^;ALT;AltEmail2
|
---|
| 86 | ;" TMGOUT(4)=DFN2^EmailAddress
|
---|
| 87 | ;" NOTE: So if a user has 1 primary and 2 secondary
|
---|
| 88 | ;" email addresses, then there will be 3 entries
|
---|
| 89 | ;" starting with the same DFN
|
---|
| 90 | ;"
|
---|
| 91 | ;"Results: none
|
---|
| 92 | ;
|
---|
| 93 | MERGE ^TMG("TMP","RPC","GETUEMA","TMGPARAMS")=TMGPARAMS
|
---|
| 94 | NEW TMGINDEX SET TMGINDEX=1
|
---|
| 95 | NEW TMGI
|
---|
| 96 | NEW TMGEMAIL
|
---|
| 97 | NEW TMGIEN SET TMGIEN=""
|
---|
| 98 | SET TMGPARAMS=$GET(TMGPARAMS)
|
---|
| 99 | KILL TMGOUT
|
---|
| 100 | FOR TMGI=1:1:$LENGTH(TMGPARAMS,";") DO
|
---|
| 101 | . SET TMGIEN=+$PIECE(TMGPARAMS,";",TMGI)
|
---|
| 102 | . QUIT:(TMGIEN'>0)
|
---|
| 103 | . SET TMGEMAIL=$PIECE($GET(^DPT(TMGIEN,.13)),"^",3)
|
---|
| 104 | . SET TMGOUT(TMGINDEX)=TMGIEN_"^"_TMGEMAIL
|
---|
| 105 | . SET TMGINDEX=TMGINDEX+1
|
---|
| 106 | . NEW TMGIEN2 SET TMGIEN2=0
|
---|
| 107 | . FOR SET TMGIEN2=$ORDER(^DPT(TMGIEN,"TMGALTEMAIL",TMGIEN2)) QUIT:(+TMGIEN2'>0) DO
|
---|
| 108 | . . NEW TMGALTEMAIL SET TMGALTEMAIL=""
|
---|
| 109 | . . SET TMGALTEMAIL=$PIECE($GET(^DPT(TMGIEN,"TMGALTEMAIL",TMGIEN2,0)),"^",1)
|
---|
| 110 | . . SET TMGOUT(TMGINDEX)=TMGIEN_"^;ALT;"_TMGALTEMAIL
|
---|
| 111 | . . SET TMGINDEX=TMGINDEX+1
|
---|
| 112 | ;
|
---|
| 113 | SET TMGOUT(0)=(TMGINDEX-1)_"^Success"
|
---|
| 114 | ;
|
---|
| 115 | QUIT
|
---|
| 116 | ;
|
---|
| 117 | SETUEMA(TMGOUT,TMGPARAMS) ;"SET ONE USER EMAIL ADDRESS
|
---|
| 118 | ;"Purpose: to store a new email address for 1 user.
|
---|
| 119 | ;"Input: TMGOUT -- an OUT PARAMETER, PASS BY REFERENCE.
|
---|
| 120 | ;" TMGPARAMS -- DFN^NewEMailAddress^AltEMail1^AltEMail2^...
|
---|
| 121 | ;" e.g. 1234^MyEMail@server.com
|
---|
| 122 | ;" NOTE: NewEMailAddress is optional
|
---|
| 123 | ;"Output: TMGOUT is filled as follows:
|
---|
| 124 | ;" TMGOUT(0)="1^Success" or "-1^Message"
|
---|
| 125 | ;"
|
---|
| 126 | ;"Results: none
|
---|
| 127 | ;
|
---|
| 128 | MERGE ^TMG("TMP","RPC","SETUEMA","TMGPARAMS")=TMGPARAMS
|
---|
| 129 | KILL TMGOUT
|
---|
| 130 | SET TMGOUT(0)="1^Success"
|
---|
| 131 | SET TMGPARAMS=$GET(TMGPARAMS)
|
---|
| 132 | NEW TMGDFN SET TMGDFN=$PIECE(TMGPARAMS,"^",1)
|
---|
| 133 | IF +TMGDFN'>0 SET TMGOUT(0)="-1^Patient IEN not provided (Got '"_TMGDFN_"')" QUIT
|
---|
| 134 | NEW TMGEMAIL SET TMGEMAIL=$PIECE(TMGPARAMS,"^",2)
|
---|
| 135 | NEW TMGFDA,TMGMSG
|
---|
| 136 | IF TMGEMAIL'="" do
|
---|
| 137 | . SET TMGFDA(2,TMGDFN_",",".133")=TMGEMAIL
|
---|
| 138 | . DO FILE^DIE("EK","TMGFDA","TMGMSG")
|
---|
| 139 | . IF $DATA(TMGMSG("DIERR")) DO
|
---|
| 140 | . . SET TMGOUT(0)="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG)
|
---|
| 141 | NEW TMGI,TMGALTEMAIL
|
---|
| 142 | FOR TMGI=3:1:$LENGTH(TMGPARAMS,"^") DO QUIT:(TMGALTEMAIL="")
|
---|
| 143 | . SET TMGALTEMAIL=$PIECE(TMGPARAMS,"^",TMGI)
|
---|
| 144 | . IF TMGALTEMAIL="" QUIT
|
---|
| 145 | . IF +$ORDER(^DPT(TMGDFN,"ATMGALTEMAIL",$$LOW^XLFSTR(TMGALTEMAIL),""))>0 QUIT
|
---|
| 146 | . KILL TMGFDA NEW TMGIEN
|
---|
| 147 | . SET TMGFDA(2.022703,"+1,"_TMGDFN_",",.01)=TMGALTEMAIL
|
---|
| 148 | . DO UPDATE^DIE("E","TMGFDA","TMGIEN","TMGMSG")
|
---|
| 149 | . IF $DATA(TMGMSG("DIERR")) DO
|
---|
| 150 | . . SET TMGOUT(0)="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG) ;"Only will store LAST error.
|
---|
| 151 | ;
|
---|
| 152 | QUIT
|
---|
| 153 | ;
|
---|
| 154 | KILLUEMA(TMGOUT,TMGPARAMS) ;"REMOVE ONE EMAIL ADDRESS FROM A USER
|
---|
| 155 | ;"Purpose: Remove an email address, either primary or alternative
|
---|
| 156 | ;"Input: TMGOUT -- an OUT PARAMETER, PASS BY REFERENCE.
|
---|
| 157 | ;" TMGPARAMS -- DFN^BAD-EMailAddress^Bademail2^bademail3^...
|
---|
| 158 | ;" e.g. 1234^MyBadEMail@server.com
|
---|
| 159 | ;"Output: TMGOUT is filled as follows:
|
---|
| 160 | ;" TMGOUT(0)="1^Success" or "-1^Message"
|
---|
| 161 | ;"
|
---|
| 162 | ;"Results: none
|
---|
| 163 | ;
|
---|
| 164 | MERGE ^TMG("TMP","RPC","KILLUEMA","TMGPARAMS")=TMGPARAMS
|
---|
| 165 | SET TMGOUT(0)="1^Success"
|
---|
| 166 | SET TMGPARAMS=$GET(TMGPARAMS)
|
---|
| 167 | NEW TMGDFN SET TMGDFN=$PIECE(TMGPARAMS,"^",1)
|
---|
| 168 | IF +TMGDFN'>0 SET TMGOUT(0)="-1^Patient IEN not provided (Got '"_TMGDFN_"')" QUIT
|
---|
| 169 | NEW TMGI,TMGEMAIL
|
---|
| 170 | FOR TMGI=2:1:$LENGTH(TMGPARAMS,"^") DO QUIT:(TMGEMAIL="")!(+TMGOUT(0)=-1)
|
---|
| 171 | . NEW TMGFOUND SET TMGFOUND=0
|
---|
| 172 | . SET TMGEMAIL=$$LOW^XLFSTR($PIECE(TMGPARAMS,"^",TMGI))
|
---|
| 173 | . IF TMGEMAIL="" QUIT
|
---|
| 174 | . NEW TMGIEN SET TMGIEN=""
|
---|
| 175 | . FOR SET TMGIEN=$ORDER(^DPT("ATMGEMAIL",TMGEMAIL,TMGIEN)) QUIT:(+TMGIEN'>0)!(+TMGOUT(0)=-1) DO
|
---|
| 176 | . . IF TMGIEN'=TMGDFN QUIT
|
---|
| 177 | . . SET TMGFOUND=1
|
---|
| 178 | . . NEW TMGFDA,TMGMSG
|
---|
| 179 | . . SET TMGFDA(2,TMGDFN_",",".133")="@"
|
---|
| 180 | . . DO FILE^DIE("EK","TMGFDA","TMGMSG")
|
---|
| 181 | . . IF $DATA(TMGMSG("DIERR")) DO
|
---|
| 182 | . . . SET TMGOUT(0)="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG)
|
---|
| 183 | . SET TMGIEN=""
|
---|
| 184 | . FOR SET TMGIEN=$ORDER(^DPT(TMGDFN,"TMGALTEMAIL","B",TMGEMAIL,TMGIEN)) QUIT:(+TMGIEN'>0)!(+TMGOUT(0)=-1) DO
|
---|
| 185 | . . SET TMGFOUND=1
|
---|
| 186 | . . NEW TMGFDA,TMGMSG
|
---|
| 187 | . . SET TMGFDA(2.022703,TMGIEN_","_TMGDFN_",",".01")="@"
|
---|
| 188 | . . DO FILE^DIE("EK","TMGFDA","TMGMSG")
|
---|
| 189 | . . IF $DATA(TMGMSG("DIERR")) DO
|
---|
| 190 | . . . SET TMGOUT(0)="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG)
|
---|
| 191 | . IF TMGFOUND=0 DO ;"only will retain LAST message...
|
---|
| 192 | . . SET TMGOUT(0)="-1^Couldn't locate email to delete: "+TMGEMAIL
|
---|
| 193 | ;
|
---|
| 194 | QUIT
|
---|
| 195 | ;
|
---|
| 196 | ALTEREMA(TMGOUT,TMGPARAMS) ;"ALTER USER EMAIL ADDRESS
|
---|
| 197 | ;"Purpose: Change the value for an email address
|
---|
| 198 | ;"Input: TMGOUT -- an OUT PARAMETER, PASS BY REFERENCE.
|
---|
| 199 | ;" TMGPARAMS -- DFN^OldEMailAddress^NewEmailAddress
|
---|
| 200 | ;" e.g. 1234^OldEMail@server.com^NewEmail@server2.com
|
---|
| 201 | ;" NOTE: If old value is the value for primary email address, then that will be changed
|
---|
| 202 | ;" Otherwise, alternative emails will be searched. Search is case insensitive
|
---|
| 203 | ;"Output: TMGOUT is filled as follows:
|
---|
| 204 | ;" TMGOUT(0)="1^Success" or "-1^Message"
|
---|
| 205 | ;"
|
---|
| 206 | ;"Results: none
|
---|
| 207 | ;
|
---|
| 208 | MERGE ^TMG("TMP","RPC","ALTEREMA","TMGPARAMS")=TMGPARAMS
|
---|
| 209 | SET TMGOUT(0)="1^Success"
|
---|
| 210 | NEW TMGFOUND SET TMGFOUND=0
|
---|
| 211 | SET TMGPARAMS=$GET(TMGPARAMS)
|
---|
| 212 | NEW TMGDFN SET TMGDFN=$PIECE(TMGPARAMS,"^",1)
|
---|
| 213 | IF +TMGDFN'>0 SET TMGOUT(0)="-1^Patient IEN not provided (Got '"_TMGDFN_"')" QUIT
|
---|
| 214 | NEW TMGI,TMGOLDEMAIL,TMGNEWEMAIL
|
---|
| 215 | SET TMGOLDEMAIL=$$LOW^XLFSTR($PIECE(TMGPARAMS,"^",2))
|
---|
| 216 | IF TMGOLDEMAIL="" DO QUIT
|
---|
| 217 | . SET TMGOUT(0)="-1^Old email value not provided."
|
---|
| 218 | SET TMGNEWEMAIL=$PIECE(TMGPARAMS,"^",3)
|
---|
| 219 | IF TMGNEWEMAIL="" DO QUIT
|
---|
| 220 | . SET TMGOUT(0)="-1^New email value not provided."
|
---|
| 221 | NEW TMGIEN SET TMGIEN=""
|
---|
| 222 | FOR SET TMGIEN=$ORDER(^DPT("ATMGEMAIL",TMGOLDEMAIL,TMGIEN)) QUIT:(+TMGIEN'>0) DO
|
---|
| 223 | . IF TMGIEN'=TMGDFN QUIT
|
---|
| 224 | . SET TMGFOUND=1
|
---|
| 225 | . NEW TMGFDA,TMGMSG
|
---|
| 226 | . SET TMGFDA(2,TMGDFN_",",".133")=TMGNEWEMAIL
|
---|
| 227 | . DO FILE^DIE("EK","TMGFDA","TMGMSG")
|
---|
| 228 | . IF $DATA(TMGMSG("DIERR")) DO
|
---|
| 229 | . . SET TMGOUT(0)="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG)
|
---|
| 230 | IF TMGFOUND=1 QUIT
|
---|
| 231 | SET TMGIEN=""
|
---|
| 232 | FOR SET TMGIEN=$ORDER(^DPT(TMGDFN,"TMGALTEMAIL","B",TMGOLDEMAIL,TMGIEN)) QUIT:(+TMGIEN'>0) DO
|
---|
| 233 | . NEW TMGFDA,TMGMSG
|
---|
| 234 | . SET TMGFDA(2.022703,TMGIEN_","_TMGDFN_",",".01")=TMGNEWEMAIL
|
---|
| 235 | . DO FILE^DIE("EK","TMGFDA","TMGMSG")
|
---|
| 236 | . IF $DATA(TMGMSG("DIERR")) DO
|
---|
| 237 | . . SET TMGOUT(0)="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG)
|
---|
| 238 | ;
|
---|
| 239 | QUIT
|
---|
| 240 | ;
|
---|
| 241 | SETUSEM(TMGOUT,TMGPARAMS) ;"SET MULTIPLE USERS EMAIL ADDRESSES
|
---|
| 242 | ;"Purpose: to store a new email address for more than 1 user.
|
---|
| 243 | ;"Input: TMGOUT -- an OUT PARAMETER, PASS BY REFERENCE.
|
---|
| 244 | ;" TMGPARAMS -- DFN=NewEMailAddress;DFN=NewEMailAddress;DFN=NewEMailAddress....
|
---|
| 245 | ;"Output: TMGOUT is filled as follows:
|
---|
| 246 | ;" TMGOUT(0)="1^Success" or "-1^Message"
|
---|
| 247 | ;"
|
---|
| 248 | ;"Results: none
|
---|
| 249 | ;"Note: If error encountered, then no further attempts to file others in list tried.
|
---|
| 250 | ;
|
---|
| 251 | MERGE ^TMG("TMP","RPC","SETUSEM","TMGPARAMS")=TMGPARAMS
|
---|
| 252 | KILL TMGOUT
|
---|
| 253 | SET TMGOUT(0)="1^Success"
|
---|
| 254 | SET TMGPARAMS=$GET(TMGPARAMS)
|
---|
| 255 | NEW TMGFDA,TMGMSG,TMGI,TMGERR
|
---|
| 256 | SET TMGERR=0
|
---|
| 257 | FOR TMGI=1:1:$LENGTH(TMGPARAMS,";") DO QUIT:TMGERR
|
---|
| 258 | . KILL TMGFDA,TMGMSG
|
---|
| 259 | . NEW TMG1PARAM SET TMG1PARAM=$PIECE(TMGPARAMS,";",TMGI)
|
---|
| 260 | . NEW TMGIEN SET TMGIEN=$PIECE(TMG1PARAM,"=",1)
|
---|
| 261 | . IF +TMGIEN'>0 SET TMGOUT(0)="-1^Patient IEN not provided (Got '"_TMGIEN_"')" SET TMGERR=1 QUIT
|
---|
| 262 | . NEW TMGEMAIL SET TMGEMAIL=$PIECE(TMG1PARAM,"=",2)
|
---|
| 263 | . IF TMGEMAIL="" SET TMGOUT(0)="-1^Email address not provided" SET TMGERR=1 QUIT
|
---|
| 264 | . SET TMGFDA(2,TMGIEN_",",".133")=TMGEMAIL
|
---|
| 265 | . DO FILE^DIE("EK","TMGFDA","TMGMSG")
|
---|
| 266 | . IF $DATA(TMGMSG("DIERR")) DO
|
---|
| 267 | . . SET TMGOUT(0)="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG)
|
---|
| 268 | . . SET TMGERR=1
|
---|
| 269 | ;
|
---|
| 270 | QUIT
|
---|
| 271 | ;
|
---|
| 272 | GFLSUBST(TMGOUT,TMGPARAMS) ;"GET FILE SUBSET
|
---|
| 273 | ;"Purpose: to return a subset of entries a file's .01 names
|
---|
| 274 | ;"Input: TMGOUT -- an OUT PARAMETER, PASS BY REFERENCE.
|
---|
| 275 | ;" TMGPARAMS -- FileNum^StartFrom^Direction^maxCount
|
---|
| 276 | ;" TMGFNUM - filename file to traverse
|
---|
| 277 | ;" StartFrom -- text to $ORDER() from -- OPTIONAL
|
---|
| 278 | ;" Direction -- $ORDER(xx,Direction) direction (should be 1 or -1) -- OPTIONAL
|
---|
| 279 | ;" maxCt -- OPTIONAL -- the max number of entries to return.
|
---|
| 280 | ;"Output: TMGOUT is filled as follows:
|
---|
| 281 | ;" TMGOUT(0)="1^Success" or "-1^Message"
|
---|
| 282 | ;" TMGOUT(1)=IEN^Value
|
---|
| 283 | ;" TMGOUT(2)=IEN^Value
|
---|
| 284 | ;" ...
|
---|
| 285 | ;"Results: none
|
---|
| 286 | ;"NOTE: does NOT work with sub files.
|
---|
| 287 | ;" Also, originally copied from TMGRPC3B to remove dependancies to that file
|
---|
| 288 | ;
|
---|
| 289 | NEW TMGFILE SET TMGFILE=+$PIECE(TMGPARAMS,"^",1)
|
---|
| 290 | IF TMGFILE'>0 DO GOTO GFSDONE
|
---|
| 291 | . SET TMGOUT(0)="-1^No file number supplied"
|
---|
| 292 | NEW TMGFROM SET TMGFROM=$PIECE(TMGPARAMS,"^",2)
|
---|
| 293 | NEW TMGDIR SET TMGDIR=$PIECE(TMGPARAMS,"^",3)
|
---|
| 294 | IF TMGDIR'=-1 SET TMGDIR=1
|
---|
| 295 | NEW TMGMAXCT SET TMGMAXCT=+$PIECE(TMGPARAMS,"^",4)
|
---|
| 296 | IF TMGMAXCT=0 SET TMGMAXCT=44
|
---|
| 297 | ;
|
---|
| 298 | NEW TMGI SET TMGI=0
|
---|
| 299 | ;"NEW TMGLAST SET TMGLAST=""
|
---|
| 300 | ;"NEW prev SET prev=""
|
---|
| 301 | NEW TMGREF SET TMGREF=$GET(^DIC(TMGFILE,0,"GL"))
|
---|
| 302 | SET TMGREF=$$CREF^DILF(TMGREF) ;"convert open --> closed reference
|
---|
| 303 | IF TMGREF="" DO GOTO GFSDONE
|
---|
| 304 | . SET TMGOUT(0)="-1^Unable to obtain global ref for file #"_TMGFILE
|
---|
| 305 | ;
|
---|
| 306 | FOR SET TMGFROM=$ORDER(@TMGREF@("B",TMGFROM),TMGDIR) QUIT:(TMGFROM="")!(TMGI=TMGMAXCT) DO
|
---|
| 307 | . NEW TMGIEN SET TMGIEN=""
|
---|
| 308 | . FOR SET TMGIEN=$ORDER(@TMGREF@("B",TMGFROM,TMGIEN),TMGDIR) QUIT:(+TMGIEN'>0) DO
|
---|
| 309 | . . SET TMGI=TMGI+1
|
---|
| 310 | . . SET TMGOUT(TMGI)=TMGIEN_"^"_$$GET1^DIQ(TMGFILE,TMGIEN_",",.01)
|
---|
| 311 | . . ;"SET TMGOUT(TMGI)=$$GET1^DIQ(TMGFILE,IEN_",",.01)
|
---|
| 312 | ;
|
---|
| 313 | SET TMGOUT(0)="1^Success"
|
---|
| 314 | GFSDONE ;
|
---|
| 315 | QUIT
|
---|
| 316 | ;
|
---|
| 317 | GETIEN8925(TMGOUT,TMGUID) ;"GET IEN 8925 FOR IMAP UID
|
---|
| 318 | ;"Purpose: To retrieve the IEN from file 8925 that is linked to UID (if any)
|
---|
| 319 | ;"Input: TMGOUT -- An OUT PARAMETER. PASS BY REFERENCE.
|
---|
| 320 | ;" TMGPARAMS -- UID
|
---|
| 321 | ;"Output: TMGOUT is filled as follows:
|
---|
| 322 | ;" TMGOUT(0)="-1^Message" or TMG(0)=IEN or TMG(0)=0 if not found.
|
---|
| 323 | ;"Results: none
|
---|
| 324 | NEW TMGIEN
|
---|
| 325 | IF $GET(TMGUID)="" DO QUIT
|
---|
| 326 | . SET TMGOUT(0)="-1^No UID passed"
|
---|
| 327 | SET TMGIEN=+$ORDER(^TIU(8925,"TMGUID",TMGUID,""))
|
---|
| 328 | SET TMGOUT(0)=TMGIEN
|
---|
| 329 | ;
|
---|
| 330 | QUIT
|
---|
| 331 | ;
|
---|
| 332 | SETUID(TMGOUT,TMGPARAMS) ;"SET IMAP UID FOR IEN 8925
|
---|
| 333 | ;"Purpose: To store an IMAP UID (identifier) for a given TIU Document
|
---|
| 334 | ;"Input: TMGOUT -- An OUT PARAMETER. PASS BY REFERENCE.
|
---|
| 335 | ;" TMGPARAMS -- IEN8925^UID
|
---|
| 336 | ;" IEN8925 -- The IEN in file 8925 to be altered.
|
---|
| 337 | ;" UID -- The UID to be stored in the above document.
|
---|
| 338 | ;"Output: TMGOUT(0) = 1^Success, or -1^Error Message
|
---|
| 339 | ;"Results: none
|
---|
| 340 | SET TMGOUT(0)="1^Success" ;"Default to success
|
---|
| 341 | NEW TMGIEN,TMGUID,TMGFDA,TMGMSG
|
---|
| 342 | SET TMGIEN=$PIECE(TMGPARAMS,"^",1)
|
---|
| 343 | IF +TMGIEN'>0 DO QUIT
|
---|
| 344 | . SET TMGOUT(0)="-1^Bad IEN passed: "_TMGIEN
|
---|
| 345 | SET TMGUID=$PIECE(TMGPARAMS,"^",2)
|
---|
| 346 | IF TMGUID="" DO QUIT
|
---|
| 347 | . SET TMGOUT(0)="-1^No UID passed."
|
---|
| 348 | SET TMGFDA(8925,TMGIEN_",",22710)=TMGUID
|
---|
| 349 | DO FILE^DIE("EK","TMGFDA","TMGMSG")
|
---|
| 350 | IF $DATA(TMGMSG("DIERR")) DO
|
---|
| 351 | . SET TMGOUT(0)="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG)
|
---|
| 352 | ;
|
---|
| 353 | QUIT
|
---|
| 354 | ;
|
---|
| 355 | GETEMDOC(TMGOUT,TMGPARAMS) ;"
|
---|
| 356 | ;"Purpose: GET IEN OF 'EMAIL' DOC IN 8925.1
|
---|
| 357 | ;"Input: TMGOUT -- An OUT PARAMETER. PASS BY REFERENCE.
|
---|
| 358 | ;" TMGPARAMS -- Not used, so data ignored.
|
---|
| 359 | ;"Output: TMGOUT is filled as follows:
|
---|
| 360 | ;" TMGOUT(0)="-1^Message" or TMG(0)=IEN^Name
|
---|
| 361 | ;"Results: none
|
---|
| 362 | ;"
|
---|
| 363 | NEW X,Y,DIC
|
---|
| 364 | SET DIC=8925.1
|
---|
| 365 | SET DIC(0)="M"
|
---|
| 366 | SET X="EMAIL"
|
---|
| 367 | DO ^DIC
|
---|
| 368 | IF +Y>0 DO
|
---|
| 369 | . SET TMGOUT(0)=Y
|
---|
| 370 | ELSE DO
|
---|
| 371 | . SET TMGOUT(0)="-1^Unique title EMAIL not found"
|
---|
| 372 | ;
|
---|
| 373 | QUIT
|
---|
| 374 | ;
|
---|
| 375 | GETCONSNT(TMGOUT,TMGPARAMS) ;
|
---|
| 376 | ;"Purpose: Get status of HIPPA consent documented in patient chart
|
---|
| 377 | ;"Input: TMGOUT -- An OUT PARAMETER. PASS BY REFERENCE.
|
---|
| 378 | ;" TMGPARAMS -- PatientIEN^
|
---|
| 379 | ;"Results: TMGOUT(0) = 1^Codes, or -1^Error Message
|
---|
| 380 | ;" Codes are E - Email consented;
|
---|
| 381 | ;" EC - email & cell msg consented;
|
---|
| 382 | ;" C - just cell msg consented.
|
---|
| 383 | ;" N - NOT CONSENTED, or no code found
|
---|
| 384 | ;"Results : none
|
---|
| 385 | ;"Note: This field is a multiple, and allows status to change over time
|
---|
| 386 | ;" This routine will return the status for NOW.
|
---|
| 387 | NEW TMGDFN SET TMGDFN=$PIECE(TMGPARAMS,"^",1)
|
---|
| 388 | IF +TMGDFN'>0 DO QUIT
|
---|
| 389 | . SET TMGOUT(0)="-1^Valid Patient IEN Not Found. Got: "_TMGDFN
|
---|
| 390 | SET TMGDFN=+TMGDFN
|
---|
| 391 | NEW TMGDT,%,X
|
---|
| 392 | DO NOW^%DTC SET TMGDT=% ;"Get NOW into TMGDT
|
---|
| 393 | NEW TMGLASTDT
|
---|
| 394 | SET TMGLASTDT=$ORDER(^DPT(TMGDFN,"TMGHIPPA","TMGDATE",TMGDT),-1)
|
---|
| 395 | IF TMGLASTDT="" DO QUIT
|
---|
| 396 | . SET TMGOUT(0)="-1^NO Current Status for Current Date-Time"
|
---|
| 397 | NEW TMGIEN
|
---|
| 398 | SET TMGIEN=$ORDER(^DPT(TMGDFN,"TMGHIPPA","TMGDATE",TMGLASTDT,""))
|
---|
| 399 | NEW TMGSTATUS
|
---|
| 400 | SET TMGSTATUS=$PIECE($GET(^DPT(TMGDFN,"TMGHIPPA",TMGIEN,0)),"^",1)
|
---|
| 401 | IF TMGSTATUS="" SET TMGSTATUS="N"
|
---|
| 402 | SET TMGOUT(0)="1^"_TMGSTATUS
|
---|
| 403 | QUIT
|
---|
| 404 | ;
|
---|
| 405 | SETCONSNT(TMGOUT,TMGPARAMS) ;
|
---|
| 406 | ;"PURPOSE: Set status of HIPPA consent documented in patient chart
|
---|
| 407 | ;"Input TMGOUT -- An OUT PARAMETER. PASS BY REFERENCE.
|
---|
| 408 | ;" TMGPARAMS -- PatientIEN^StatusCodes
|
---|
| 409 | ;" Codes should be E - Email consented;
|
---|
| 410 | ;" EC - email & cell msg consented;
|
---|
| 411 | ;" C - just cell msg consented.
|
---|
| 412 | ;" N - NOT CONSENTED
|
---|
| 413 | ;" (Note, codes ARE case sensitive)
|
---|
| 414 | ;"Results: TMGOUT(0) = 1^Success, or -1^Error Message
|
---|
| 415 | NEW TMGDFN SET TMGDFN=$PIECE(TMGPARAMS,"^",1)
|
---|
| 416 | IF +TMGDFN'>0 DO QUIT
|
---|
| 417 | . SET TMGOUT(0)="-1^Valid Patient IEN Not Found. Got: "_TMGDFN
|
---|
| 418 | SET TMGDFN=+TMGDFN
|
---|
| 419 | NEW TMGCODE SET TMGCODE=$PIECE(TMGPARAMS,"^",2)
|
---|
| 420 | NEW TMGVCODES SET TMGVCODES=$PIECE($GET(^DD(2.22704,.01,0)),"^",3)
|
---|
| 421 | NEW TMGOK,TMGI SET TMGOK=0
|
---|
| 422 | FOR TMGI=1:1:$LENGTH(TMGVCODES,";") DO QUIT:(TMGOK=1)
|
---|
| 423 | . NEW ONECODE SET ONECODE=$PIECE(TMGVCODES,";",TMGI)
|
---|
| 424 | . IF $PIECE(ONECODE,":",1)=TMGCODE SET TMGOK=1 QUIT
|
---|
| 425 | . ;"IF $PIECE(ONECODE,":",2)=TMGCODE SET TMGOK=1 QUIT
|
---|
| 426 | IF TMGOK'=1 DO QUIT
|
---|
| 427 | . SET TMGOUT(0)="-1^Invalid code. Got: "_TMGCODE
|
---|
| 428 | NEW TMGDT,%,X
|
---|
| 429 | DO NOW^%DTC SET TMGDT=% ;"Get NOW into TMGDT
|
---|
| 430 | NEW TMGFDA,TMGMSG,TMGIEN,TMGIENS
|
---|
| 431 | SET TMGIENS="+1,"_TMGDFN_","
|
---|
| 432 | SET TMGFDA(2.22704,TMGIENS,.01)=TMGCODE
|
---|
| 433 | SET TMGFDA(2.22704,TMGIENS,.02)=TMGDT
|
---|
| 434 | SET TMGFDA(2.22704,TMGIENS,.03)=DUZ
|
---|
| 435 | DO UPDATE^DIE("S","TMGFDA","TMGIEN","TMGMSG")
|
---|
| 436 | IF $DATA(TMGMSG("DIERR")) DO
|
---|
| 437 | . SET TMGOUT(0)="-1^"_$$GetErrStr^TMGDEBUG(.TMGMSG)
|
---|
| 438 | ELSE DO
|
---|
| 439 | . SET TMGOUT(0)="1^Success"
|
---|
| 440 | ;
|
---|
| 441 | QUIT
|
---|
| 442 | ;
|
---|