[796] | 1 | TMGSDAM1 ;TMG/kst/APP For SDAPI AND MAKE APPOINTMENT RPC routines;1/9/09
|
---|
| 2 | ;;1.0;TMG-LIB;**1**;1/9/09
|
---|
| 3 | ;
|
---|
| 4 | ;"NOTE: Original header:
|
---|
| 5 | ;"SDVWAPP ; VWSD VOE APP FOR SDAPI AND MAKE APPOINTMENT RPC routines
|
---|
| 6 | ;" ; 1/1/07 SDVW*3*2;;;;;Build 8
|
---|
| 7 | ;"
|
---|
| 8 | ;"Moved to this namespace for customization
|
---|
| 9 | ;
|
---|
| 10 | ;"=======================================================================
|
---|
| 11 | ;" API -- Public Functions.
|
---|
| 12 | ;"=======================================================================
|
---|
| 13 | ;"SDAPI(RESULTS,SDARRAY)
|
---|
| 14 | ;
|
---|
| 15 | ;"=======================================================================
|
---|
| 16 | ;"Dependancies
|
---|
| 17 | ;"=======================================================================
|
---|
| 18 | ;
|
---|
| 19 | ;"=======================================================================
|
---|
| 20 | ;
|
---|
| 21 | SDAPI(RESULTS,SDARRAY) ;;
|
---|
| 22 | ;"Purpose: SDAPI APP TEST PROGRAM ( RETURN LIST OF APPOINTMENTS)
|
---|
| 23 | ;"VERSION 3.1
|
---|
| 24 | ;"Input: RESULTS -- PASS BY REFERENCE. An OUT PARAMETER.
|
---|
| 25 | ;" SDARRAY -- PASS BY REFERENCE. Example input:
|
---|
| 26 | ;" SDARRAY(1)="Nov 6,2006;Nov 9,2006"
|
---|
| 27 | ;" SDARRAY(2)="VWVOE RADIOLOGY CLINIC" (External Format)
|
---|
| 28 | ;" SDARRAY(3)="R;I"
|
---|
| 29 | ;" SDARRAY(4)="100001298" (EXTERNAL PATIENT ID AS SSN)
|
---|
| 30 | ;" SDARRAY("MAX")=3
|
---|
| 31 | ;" SDARRAY("FLDS")="1;2;3"
|
---|
| 32 | ;"Result: None (output placed in RESULTS var above)
|
---|
| 33 | ;
|
---|
| 34 | NEW FIRST,SSN,SDDATE,SDLOCATE,PATIENTN,SSNPATN,AJJ3VIS,SDARRAY2,COUNTER
|
---|
| 35 | NEW MSGCTRL,IER,RETURN,ORDRSORT,SSN,SDLOCATE,SDDATE,SDCOUNT,ACKCODE
|
---|
| 36 | ;
|
---|
| 37 | SET MSGCTRL=0
|
---|
| 38 | IF $GET(SDARRAY(1))="" SET RESULTS(0)="UNDEFINED DATE RANGE ELEMENT" QUIT
|
---|
| 39 | IF $GET(SDARRAY(3))="" SET RESULTS(0)="UNDEFINED ELEMENT 3 = "_"R;I" QUIT
|
---|
| 40 | IF ($GET(SDARRAY(2))="")&($GET(SDARRAY(4))="") SET RESULTS(0)="UNDEFINED ELEMENTS 2 AND 4 TOGETHER" QUIT
|
---|
| 41 | IF $GET(SDARRAY("MAX"))="" SET RESULTS(0)="UNDEFINED MAX RETURN ELEMENT" QUIT
|
---|
| 42 | IF $GET(SDARRAY("FLDS"))="" SET RESULTS(0)="UNDEFINED FLDS ELEMENT" QUIT
|
---|
| 43 | ;
|
---|
| 44 | SET IER=$$TRNSDAPI^SDVWHLE2(.SDARRAY,.MSGCTRL)
|
---|
| 45 | IF (IER="OK")&(MSGCTRL'=0) DO
|
---|
| 46 | . SET AJJ3CNT=0
|
---|
| 47 | CHKAGAIN ;
|
---|
| 48 | . IF AJJ3CNT>27 QUIT
|
---|
| 49 | . IF $D(^XTMP(MSGCTRL,"RETURN"))=0 HANG 3 SET AJJ3CNT=AJJ3CNT+1 G CHKAGAIN
|
---|
| 50 | . SET RETURN=^XTMP(MSGCTRL,"RETURN") ;" THIS INCLUDES ACK CODE AS AA OR AE
|
---|
| 51 | . SET ACKCODE=$P(RETURN,"^",1)
|
---|
| 52 | . IF ACKCODE="OK" DO
|
---|
| 53 | . . SET ORDRSORT=$P(RETURN,"^",2)
|
---|
| 54 | . . SET SDCOUNT=$P(RETURN,"^",3)
|
---|
| 55 | . . IF SDCOUNT>0 DO
|
---|
| 56 | . . . IF $E(ORDRSORT,1,1)="P" DO
|
---|
| 57 | . . . . SET AJJ3VIS=0
|
---|
| 58 | . . . . FOR SET AJJ3VIS=$O(^XTMP(MSGCTRL,"SDAMA301",AJJ3VIS)) QUIT:AJJ3VIS="" DO
|
---|
| 59 | . . . . . SET SDARRAY2=^XTMP(MSGCTRL,"SDAMA301",AJJ3VIS)
|
---|
| 60 | . . . . . SET SSNPATN=$P(SDARRAY2,"^",1)
|
---|
| 61 | . . . . . SET SDLOCATE=$P(SDARRAY2,"^",2)
|
---|
| 62 | . . . . . SET SDDATE=$P(SDARRAY2,"^",3)
|
---|
| 63 | . . . . . SET FIRST=SSNPATN_"^"_SDLOCATE_"^"_SDDATE_"^"
|
---|
| 64 | . . . . . SET SDARRAY2=$P(SDARRAY2,FIRST,2)
|
---|
| 65 | . . . . . SET PATIENTN=$P(SSNPATN,"#",2)
|
---|
| 66 | . . . . . SET SSN=$P(SSNPATN,"#",1)
|
---|
| 67 | . . . . . SET COUNTER=(AJJ3VIS-1)*2
|
---|
| 68 | . . . . . SET RESULTS(COUNTER+1)="APPT/UNSCHED VISIT, PATIENT="_PATIENTN_" SSN="_SSN_" HOSP LOCATION="_SDLOCATE_" DATE/TIME="_SDDATE
|
---|
| 69 | . . . . . SET RESULTS(COUNTER+2)=" DATA FIELDS="_SDARRAY2
|
---|
| 70 | . . . IF $E(ORDRSORT,1,1)="C" DO
|
---|
| 71 | . . . . SET AJJ3VIS=0
|
---|
| 72 | . . . . FOR SET AJJ3VIS=$O(^XTMP(MSGCTRL,"SDAMA301",AJJ3VIS)) QUIT:AJJ3VIS="" DO
|
---|
| 73 | . . . . . SET SDARRAY2=^XTMP(MSGCTRL,"SDAMA301",AJJ3VIS)
|
---|
| 74 | . . . . . SET SSNPATN=$P(SDARRAY2,"^",2)
|
---|
| 75 | . . . . . SET SDLOCATE=$P(SDARRAY2,"^",1)
|
---|
| 76 | . . . . . SET SDDATE=$P(SDARRAY2,"^",3)
|
---|
| 77 | . . . . . SET FIRST=SDLOCATE_"^"_SSNPATN_"^"_SDDATE_"^"
|
---|
| 78 | . . . . . SET SDARRAY2=$P(SDARRAY2,FIRST,2)
|
---|
| 79 | . . . . . SET PATIENTN=$P(SSNPATN,"#",2)
|
---|
| 80 | . . . . . SET SSN=$P(SSNPATN,"#",1)
|
---|
| 81 | . . . . . SET COUNTER=(AJJ3VIS-1)*2
|
---|
| 82 | . . . . . SET RESULTS(COUNTER+1)="APPT/UNSCHED VISIT, HOSP LOCATION="_SDLOCATE_" PATIENT="_PATIENTN_" SSN="_SSN_" DATE/TIME="_SDDATE
|
---|
| 83 | . . . . . SET RESULTS(COUNTER+2)=" DATA FIELDS="_SDARRAY2
|
---|
| 84 | . . ELSE DO
|
---|
| 85 | . . .SET RESULTS(1)="SDCOUNT="_SDCOUNT ;LOOK AT ERRORS IN API CALL, ETC
|
---|
| 86 | ELSE DO
|
---|
| 87 | . SET RESULTS(1)=RETURN ;" APP ACK CODE="AE". SOME OTHER ERRORS IN TRANSMISSION IN OTHER PIECES OF RETURN
|
---|
| 88 | SET RESULTS(0)="MSGCTRL="_MSGCTRL
|
---|
| 89 | IF (MSGCTRL'=0) KILL ^XTMP(MSGCTRL)
|
---|
| 90 | ;
|
---|
| 91 | QUIT
|
---|
| 92 | ;
|
---|
| 93 | MKPI(RESULTS,SDARRAY1) ;
|
---|
| 94 | ;"Purpose: MAKE Appointment APP TEST PROGRAM
|
---|
| 95 | ;"Input: RESULTS -- PASS BY REFERENCE. An OUT PARAMETER.
|
---|
| 96 | ;" SDARRAY1 -- PASS BY REFERENCE. Example input:
|
---|
| 97 | ;" SDARRAY1("PATIENTN")="ZZ PATIENT,TEST ONE"
|
---|
| 98 | ;" SDARRAY1("SSN")="100001298"
|
---|
| 99 | ;" SDARRAY1("SD1")="JAN 24,2007@11:30" vs. "3070123.1130" ??Which one??
|
---|
| 100 | ;" SDARRAY1("SC")="VWVOE RADIOLOGY CLINIC" vs "3" ??Which One??
|
---|
| 101 | ;" SDARRAY1("DUZ")="SCHLEHUBER,CAMERON"
|
---|
| 102 | ;
|
---|
| 103 | NEW MSGCTRL,IER,RETURN,DUZ1
|
---|
| 104 | NEW PATIENTN,SSN,SD1,SC,STYP,OUTIN,SDVWNVAI,X,Y,X2,ACKCODE,SDARRAY
|
---|
| 105 | NEW AJJ3CNT
|
---|
| 106 | NEW VXSDNVAI
|
---|
| 107 | SET MSGCTRL=0 ;
|
---|
| 108 | ;"NEW DFN(SSN AND PATIENT NAME INSTEAD),SD1,SC(HOSP LOCATION (CLINIC) EXT FORMAT NAME INSTEAD,STYP,
|
---|
| 109 | ;"NEW SDARRAY (DATE/TIMES IN EXTERNAL FORMAT),IER
|
---|
| 110 | IF $GET(SDARRAY1("PATIENTN"))="" SET RESULTS(0)="NO DEFINED PATIENTN ELEMENT" QUIT
|
---|
| 111 | SET PATIENTN=SDARRAY1("PATIENTN") ;" e.g. ZZ PATIENT,TEST ONE
|
---|
| 112 | SET SDVWNVAI="D" ;" NON-VA TESTING HERE WITH DISABLING THE NEED FOR ICN
|
---|
| 113 | IF $GET(SDARRAY1("SSN"))="" SET RESULTS(0)="NO DEFINED SSN ELEMENT" QUIT
|
---|
| 114 | SET SSN=SDARRAY1("SSN") ;" SET SSN=100001298 ; DFN=1 NON TEST PATRIENT FOR PFSS EVENT GENERATION
|
---|
| 115 | IF $GET(SDARRAY1("SD1"))="" SET RESULTS(0)="NO DEFINED SD1 APPT DATE ELEMENT"
|
---|
| 116 | SET SD1=SDARRAY1("SD1") ;" e.g. "JAN 24,2007@11:30" ; SD1=3070123.1130
|
---|
| 117 | ;SET X=SD1 DO ^%DT SET SD1=Y
|
---|
| 118 | IF $GET(SDARRAY1("SC"))="" SET RESULTS(0)="NO DEFINED APPOINTMENT CLINIC ELEMENT" QUIT
|
---|
| 119 | SET SC=SDARRAY1("SC") ; "VWVOE RADIOLOGY CLINIC ; SET SC=3
|
---|
| 120 | SET STYP=3 ;SCHEDULED APPT
|
---|
| 121 | SET OUTIN="O" ;for outpatient clinic
|
---|
| 122 | ;
|
---|
| 123 | DO NOW^%DTC SET X2=X\1 SET Y=X2 DO DD^%DT SET SDARRAY("DATE NOW")=Y
|
---|
| 124 | SET SDARRAY("APPT TYPE")=9
|
---|
| 125 | SET SDARRAY("SCHED_REQ_TYPE")="O" ;"OTHER THAN NEXT AVAIABLE
|
---|
| 126 | SET SDARRAY("NEXT APPT IND")=0 ;"0 FOR NO
|
---|
| 127 | SET SDARRAY("FOLLOWUP VISIT INDICATOR")=0 ;" 0 FOR NO
|
---|
| 128 | ;"CHECK FOR DUZ IN SDARRAY1("DUZ") FOR DATA ENTRY CLERK
|
---|
| 129 | IF $GET(SDARRAY1("DUZ"))="" SET RESULTS(0)="NO DUZ ELEMENT RETURNED" QUIT
|
---|
| 130 | SET DUZ1=SDARRAY1("DUZ")
|
---|
| 131 | ;"GET NAME FOR DUZ IN NEW PERSON FILE, e.g. "SCHLEHUBER,CAMERON" ; PERSON ON MACHINE MAKING APPT REMOTELY
|
---|
| 132 | SET SDARRAY("DATA ENTRY CLERK")=$P($GET(^VA(200,DUZ1,0)),"^",1)
|
---|
| 133 | ;"THEN PARAMETERS CONVERTED TO INTERNAL VALUE
|
---|
| 134 | ;
|
---|
| 135 | SET IER=$$TRNSMKPI^SDVWHLE1(PATIENTN,SSN,SD1,SC,STYP,.SDARRAY,OUTIN,.MSGCTRL,SDVWNVAI)
|
---|
| 136 | ;"SDVWNVAI AS LAST PARAMETER PASSED
|
---|
| 137 | IF (IER="OK")&(MSGCTRL'=0) DO
|
---|
| 138 | . SET AJJ3CNT=0
|
---|
| 139 | CHKGAIN . IF AJJ3CNT>8 QUIT
|
---|
| 140 | . IF $D(^XTMP(MSGCTRL,"RETURN"))=0 H 3 SET AJJ3CNT=AJJ3CNT+1 G CHKGAIN
|
---|
| 141 | . SET RETURN=^XTMP(MSGCTRL,"RETURN") ;" THIS INCLUDES ACK CODE AS AA OR AE
|
---|
| 142 | . SET ACKCODE=$P(RETURN,"^",1)
|
---|
| 143 | . IF ACKCODE="AA" DO
|
---|
| 144 | . . SET RESULTS(1)=ACKCODE_" MAKE APPT GOOD RETURN"
|
---|
| 145 | . ELSE DO
|
---|
| 146 | . . ;"ACKCODE="AE". LOOK AT SOME OTHER ERRORS IN TRNSMISSION IN OTHER PIECES OF RETURN
|
---|
| 147 | . . SET RESULTS(1)=ACKCODE_" RETURN="_RETURN
|
---|
| 148 | SET RESULTS(0)="MSGCTRL="_MSGCTRL
|
---|
| 149 | IF (MSGCTRL'=0) K ^XTMP(MSGCTRL,"RETURN")
|
---|
| 150 | MKDONE ;
|
---|
| 151 | QUIT
|
---|