[613] | 1 | SDVWTES1 ; VWSD VOE SDAPI AND MAKE APPOINTMENT (CONTINUED) Test Exercises
|
---|
| 2 | ;;5.3;Scheduling;**502**;Aug 13, 1993 ;Build 14
|
---|
| 3 | ; Copyright (C) 2007 WorldVistA
|
---|
| 4 | ;
|
---|
| 5 | ; This program is free software; you can redistribute it and/or modify
|
---|
| 6 | ; it under the terms of the GNU General Public License as published by
|
---|
| 7 | ; the Free Software Foundation; either version 2 of the License, or
|
---|
| 8 | ; (at your option) any later version.
|
---|
| 9 | ;
|
---|
| 10 | ; This program is distributed in the hope that it will be useful,
|
---|
| 11 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 12 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
| 13 | ; GNU General Public License for more details.
|
---|
| 14 | ;
|
---|
| 15 | ; You should have received a copy of the GNU General Public License
|
---|
| 16 | ; along with this program; if not, write to the Free Software
|
---|
| 17 | ; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
---|
| 18 | ;
|
---|
| 19 | HL7SDAPI ;;
|
---|
| 20 | ; HL7 SDAPI TEST PROGRAM ( RETURN LIST OF APPOINTMENTS)
|
---|
| 21 | ;
|
---|
| 22 | N FIRST,SSN,SDDATE,SDLOCATE,SDARRAY,PATIENTN,SSNPATN,AJJ3VIS,SDARRAY2
|
---|
| 23 | N MSGCTRL,IER,RETURN,ORDRSORT,SSN,SDLOCATE,SDDATE,SDCOUNT,ACKCODE
|
---|
| 24 | S MSGCTRL=0
|
---|
| 25 | S SDARRAY(1)="Nov 6,2006;Nov 10,2006" ;"FEB 5,2007;FEB 6,2007" ;"Nov 6,2006;JAN 29,2007" ;"Nov 6,2006;Nov 10,2006"
|
---|
| 26 | S SDARRAY(3)="R;I"
|
---|
| 27 | S SDARRAY(2)="VWVOE RADIOLOGY CLINIC" ;"VWVOE DRPHYSICIAN CLINIC" ;"VWVOE RADIOLOGY CLINIC" ;"VWVOE DRPHYSICIAN CLINIC"
|
---|
| 28 | ;"VWVOE RADIOLOGY CLINIC"
|
---|
| 29 | ;"VWVOE DR. PHYSICIAN CLINIC"
|
---|
| 30 | ;"VWVOE RADIOLOGY CLINIC"
|
---|
| 31 | ;"VWVOE DR. PHYSICIAN CLINIC" ;"VWVOE RADIOLOGY CLINIC" ;"VWVOE DR. PHYSICIAN CLINIC" ;"VWVOE RADIOLOGY CLINIC" ;EXTERNAL NAME
|
---|
| 32 | ;S SDARRAY(4)="100001298" ;EXTERNAL PATIENT ID AS SSN
|
---|
| 33 | S SDARRAY("MAX")=2
|
---|
| 34 | S SDARRAY("FLDS")="1;2;3"
|
---|
| 35 | S IER=$$TRNSDAPI^SDVWHLE2(.SDARRAY,.MSGCTRL)
|
---|
| 36 | I (IER="OK")&(MSGCTRL'=0) D
|
---|
| 37 | .S AJJ3CNT=0
|
---|
| 38 | CHKAGAIN .I AJJ3CNT>27 Q
|
---|
| 39 | .I $D(^XTMP(MSGCTRL,"RETURN"))=0 H 3 S AJJ3CNT=AJJ3CNT+1 G CHKAGAIN
|
---|
| 40 | .;W !,"HERE"
|
---|
| 41 | .S RETURN=^XTMP(MSGCTRL,"RETURN") ; THIS INCLUDES ACK CODE AS AA OR AE
|
---|
| 42 | .S ACKCODE=$P(RETURN,"^",1)
|
---|
| 43 | .I ACKCODE="OK" D
|
---|
| 44 | ..;
|
---|
| 45 | ..S ORDRSORT=$P(RETURN,"^",2)
|
---|
| 46 | ..S SDCOUNT=$P(RETURN,"^",3)
|
---|
| 47 | ..I SDCOUNT>0 D
|
---|
| 48 | ...D
|
---|
| 49 | ....I $E(ORDRSORT,1,1)="P" D
|
---|
| 50 | .....S AJJ3VIS=0
|
---|
| 51 | .....F S AJJ3VIS=$O(^XTMP(MSGCTRL,"SDAMA301",AJJ3VIS)) Q:AJJ3VIS="" D
|
---|
| 52 | ......S SDARRAY2=^XTMP(MSGCTRL,"SDAMA301",AJJ3VIS)
|
---|
| 53 | ......S SSNPATN=$P(SDARRAY2,"^",1)
|
---|
| 54 | ......S SDLOCATE=$P(SDARRAY2,"^",2)
|
---|
| 55 | ......S SDDATE=$P(SDARRAY2,"^",3)
|
---|
| 56 | ......S FIRST=SSNPATN_"^"_SDLOCATE_"^"_SDDATE_"^"
|
---|
| 57 | ......S SDARRAY2=$P(SDARRAY2,FIRST,2)
|
---|
| 58 | ......S PATIENTN=$P(SSNPATN,"#",2)
|
---|
| 59 | ......S SSN=$P(SSNPATN,"#",1)
|
---|
| 60 | ......W !,"APPT/UNSCHED VISIT, PATIENT=",PATIENTN," SSN=",SSN," HOSP LOCATION=",SDLOCATE," DATE/TIME=",SDDATE
|
---|
| 61 | ......W !," DATA FIELDS=",SDARRAY2
|
---|
| 62 | ....I $E(ORDRSORT,1,1)="C" D
|
---|
| 63 | .....S AJJ3VIS=0
|
---|
| 64 | .....F S AJJ3VIS=$O(^XTMP(MSGCTRL,"SDAMA301",AJJ3VIS)) Q:AJJ3VIS="" D
|
---|
| 65 | ......S SDARRAY2=^XTMP(MSGCTRL,"SDAMA301",AJJ3VIS)
|
---|
| 66 | ......S SSNPATN=$P(SDARRAY2,"^",2)
|
---|
| 67 | ......S SDLOCATE=$P(SDARRAY2,"^",1)
|
---|
| 68 | ......S SDDATE=$P(SDARRAY2,"^",3)
|
---|
| 69 | ......S FIRST=SDLOCATE_"^"_SSNPATN_"^"_SDDATE_"^"
|
---|
| 70 | ......S SDARRAY2=$P(SDARRAY2,FIRST,2)
|
---|
| 71 | ......S PATIENTN=$P(SSNPATN,"#",2)
|
---|
| 72 | ......S SSN=$P(SSNPATN,"#",1)
|
---|
| 73 | ......W !,"APPT/UNSCHED VISIT, HOSP LOCATION=",SDLOCATE," PATIENT=",PATIENTN," SSN=",SSN," DATE/TIME=",SDDATE
|
---|
| 74 | ......W !," DATA FIELDS=",SDARRAY2
|
---|
| 75 | ...;I $E(ORDRSORT,1,1)="C" D
|
---|
| 76 | ...;.W !,"APPT/UNSCHED VISIT=",^XTMP(MSGCTRL,"SDAMA301",SDLOCATE,SSN,SDDATE)=SDARRAY
|
---|
| 77 | ...;ANSWERS IN ORDERED ARRAYS ^XTMP(MSGCTRL,"SDAM301").
|
---|
| 78 | ...;BELOW ORDRSORT IS 1ST PIECE RETURNED IN RETURN
|
---|
| 79 | ...;I ($E(ORDRSORT,1,1)="P")&(SDCOUNT>0)
|
---|
| 80 | ...;.S ^XTMP(MSGCTRL,"SDAMA301",SSN,SDLOCATE,SDDATE)=SDARRAY OR
|
---|
| 81 | ...;.S ^XTMP(MSGCTRL,"SDAMA301",SDLOCATE,SDDATE)=SDARRAY IF S SDARRAY("SORT")="C" WITH SDARRAY(4) SPECIFIED (PATIENT)
|
---|
| 82 | ...;I ($E(ORDRSORT,1,1)="C")&(SDCOUNT>0)
|
---|
| 83 | ...;.S ^XTMP(MSGCTRL,"SDAMA301",SDLOCATE,SSN,SDDATE)=SDARRAY OR
|
---|
| 84 | ...;.S ^XTMP(MSGCTRL,"SDAMA301",SSN,SDDATE)=SDARRAY IF S SDARRAY("SORT")="P" WITH SDARRAY(2) SPECIFIED (CLINIC)
|
---|
| 85 | ..E D
|
---|
| 86 | ...;LOOK AT ERRORS IN API CALL, ETC
|
---|
| 87 | E D
|
---|
| 88 | . ; APP ACK CODE="AE". SOME OTHER ERRORS IN TRANSMISSION IN OTHER PIECES OF RETURN
|
---|
| 89 | W !,"MSGCTRL=",MSGCTRL
|
---|
| 90 | Q
|
---|
| 91 | HL7MKPI ;
|
---|
| 92 | ;MAke Appointment HL7 TEST PROGRAM
|
---|
| 93 | ;
|
---|
| 94 | N MSGCTRL,IER,RETURN
|
---|
| 95 | N PATIENTN,SSN,SD1,SC,STYP,SDARRAY,OUTIN,SDVWNVAI,X,Y,X2,ACKCODE
|
---|
| 96 | N AJJ3CNT
|
---|
| 97 | ;N VXSDNVAI
|
---|
| 98 | S MSGCTRL=0 ;
|
---|
| 99 | ;N DFN(SSN AND PATIENT NAME INSTEAD),SD1,SC(HOSP LOCATION (CLINIC) EXT FORMAT NAME INSTEAD,STYP,
|
---|
| 100 | ;N SDARRAY (DATE/TIMES IN EXTERNAL FORMAT),IER
|
---|
| 101 | S PATIENTN="ZZ PATIENT,TEST TWO"
|
---|
| 102 | S SDVWNVAI="D" ; NON-VA TESTING HERE WITH DISABLING THE NEED FOR ICN
|
---|
| 103 | S SSN=100001298 ; DFN=1 NON TEST PATRIENT FOR PFSS EVENT GENERATION
|
---|
| 104 | S SD1="JUN 4,2007@09:00" ;"JAN 29,2007@09:00" ; SD1=3070123.1130
|
---|
| 105 | S SC="VWVOE RADIOLOGY CLINIC" ; S SC=3
|
---|
| 106 | S STYP=3 ;SCHEDULED APPT
|
---|
| 107 | S OUTIN="O" ;for outpatient clinic
|
---|
| 108 | ;
|
---|
| 109 | D NOW^%DTC S X2=X\1 S Y=X2 D DD^%DT S SDARRAY("DATE NOW")=Y
|
---|
| 110 | S SDARRAY("APPT TYPE")=9
|
---|
| 111 | S SDARRAY("SCHED_REQ_TYPE")="O" ;'OTHER THAN NEXT AVAIABLE
|
---|
| 112 | S SDARRAY("NEXT APPT IND")=0 ;0 FOR NO
|
---|
| 113 | S SDARRAY("FOLLOWUP VISIT INDICATOR")=0 ; 0 FOR NO
|
---|
| 114 | S SDARRAY("DATA ENTRY CLERK")="SCHLEHUBER,CAMERON" ; PERSON ON MACHINE MAKING APPT REMOTELY
|
---|
| 115 | ;THEN PARAMETERS CONVERTED TO INTERNAL VALUE
|
---|
| 116 | ;
|
---|
| 117 | S IER=$$TRNSMKPI^SDVWHLE1(PATIENTN,SSN,SD1,SC,STYP,.SDARRAY,OUTIN,.MSGCTRL,SDVWNVAI)
|
---|
| 118 | ;VWSDNVAI AS OPTIONAL LAST PARAMETER PASSED
|
---|
| 119 | I (IER="OK")&(MSGCTRL'=0) D
|
---|
| 120 | .S AJJ3CNT=0
|
---|
| 121 | CHKGAIN .I AJJ3CNT>8 Q
|
---|
| 122 | .I $D(^XTMP(MSGCTRL,"RETURN"))=0 H 3 S AJJ3CNT=AJJ3CNT+1 G CHKGAIN
|
---|
| 123 | .S RETURN=^XTMP(MSGCTRL,"RETURN") ; THIS INCLUDES ACK CODE AS AA OR AE
|
---|
| 124 | .S ACKCODE=$P(RETURN,"^",1)
|
---|
| 125 | .I ACKCODE="AA" D
|
---|
| 126 | ..W !,"MAKE APPT GOOD RETURN"
|
---|
| 127 | .E D
|
---|
| 128 | ..;ACKCODE="AE". LOOK AT SOME OTHER ERRORS IN TRNSMISSION IN OTHER PIECES OF RETURN
|
---|
| 129 | ..W !,"RETURN=",RETURN
|
---|
| 130 | W !,"MSGCTRL=",MSGCTRL
|
---|
| 131 | Q
|
---|
| 132 | QUICK ;
|
---|
| 133 | D
|
---|
| 134 | . D
|
---|
| 135 | . . ;S TEMP="S SDARRAY(1)="_""""_"Nov 6,2006;Nov 9,2006"_""""_""
|
---|
| 136 | . . S TEMP="S SDARRAY(1)="_3 ;
|
---|
| 137 | . . ;ZW TEMP
|
---|
| 138 | . . ;X TEMP
|
---|
| 139 | . . S AJJ3CNT1=0
|
---|
| 140 | . . S IFLAG2=0
|
---|
| 141 | . . S TEMP1=""
|
---|
| 142 | . . F S AJJ3CNT1=AJJ3CNT1+1 S AJJ3PIEC=$P(TEMP,"""",AJJ3CNT1) Q:(IFLAG2=1) D
|
---|
| 143 | . . .I AJJ3PIEC'="" S AJJ3CNT2=AJJ3CNT1+1 S AJJ3PIE2=$P(TEMP,"""",AJJ3CNT2) I AJJ3PIE2="" D
|
---|
| 144 | . . . .S ILENX=$L(TEMP) I $E(TEMP,ILENX,ILENX)="""" D
|
---|
| 145 | . . . . .S TEMP1=TEMP1_AJJ3PIEC_""""
|
---|
| 146 | . . . .E D
|
---|
| 147 | . . . . .S TEMP1=TEMP1_AJJ3PIEC
|
---|
| 148 | . . .I AJJ3PIEC="" S ILENX=$L(TEMP) I $E(TEMP,ILENX,ILENX)="""" D
|
---|
| 149 | . . . . S TEMP1=TEMP1_"" S IFLAG2=1
|
---|
| 150 | . . .E D
|
---|
| 151 | . . . . S IFLAG2=1
|
---|
| 152 | . . X TEMP1
|
---|
| 153 | Q
|
---|