| 1 | TMGRPC5 ;TMG/kst/RPC Functions for Scheduling ;01/12/09
 | 
|---|
| 2 |          ;;1.0;TMG-LIB;**1**;01/12/09
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;"TMG RPC FUNCTIONS for working with Scheduling GUI application
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;"Kevin Toppenberg MD
 | 
|---|
| 7 |  ;"GNU General Public License (GPL) applies
 | 
|---|
| 8 |  ;"01/12/09
 | 
|---|
| 9 |  ;"=======================================================================
 | 
|---|
| 10 |  ;" RPC -- Public Functions.
 | 
|---|
| 11 |  ;"=======================================================================
 | 
|---|
| 12 |  ;"MAKEAPPT(RESULT,PATIENT,APPT,CLINIC,MODE,INFO) -- MAKE AN APPOINTMENT
 | 
|---|
| 13 |  ;"APPTLIST(RESULT,STRTDATE,ENDDATE,FILTER,TMGMSG) --return a listing of appts
 | 
|---|
| 14 |  ;"GETAVAIL(RESULT,CLINIC,STRTDATE,ENDDATE) -- Return array with appt slot info
 | 
|---|
| 15 |  ;"SETAVAIL(RESULT,CLINIC,PATTERN,FLAGS) -- API to set availability for clinic
 | 
|---|
| 16 |  ;"CANCAPPT(RESULT,PATIENT,APPT,CLINIC,MODE,INFO)--CANCEL AN APPOINTMENT
 | 
|---|
| 17 |  ;"=======================================================================
 | 
|---|
| 18 |  ;"Dependencies:
 | 
|---|
| 19 |  ;" TMGSDAM2,TMGSDAG,TMGSDAVG,TMGSDAVS,TMGSDAU2
 | 
|---|
| 20 |  ;"=======================================================================
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | MAKEAPPT(RESULT,PATIENT,APPT,CLINIC,MODE,INFO)     ;
 | 
|---|
| 23 |         ;"Purpose: MAKE AN APPOINTMENT
 | 
|---|
| 24 |         ;"INPUT: RESULTS -- PASS BY REFERENCE, an OUT PARAMETER (See values below)
 | 
|---|
| 25 |         ;"       PATIENT -- Patient Name (must be unique) or IEN
 | 
|---|
| 26 |         ;"       APPT -- Desired Appointment Date & Time -- External, or FM format
 | 
|---|
| 27 |         ;"       CLINIC -- Name, or IEN, of Clinic for appt (file 44)
 | 
|---|
| 28 |         ;"       MODE -- Mode.  See STYPE in EN^TMGSDAM2() below for reference
 | 
|---|
| 29 |         ;"       INFO -- PASS BY REFERENCE.  See SDARRAY in EN^TMGSDAM2() below for reference
 | 
|---|
| 30 |         ;"Result: None
 | 
|---|
| 31 |         ;"Output: RESULTS variable filled as follows
 | 
|---|
| 32 |         ;"      1 = OK,APPOINTMENT SUCCESSFULLY MADE
 | 
|---|
| 33 |         ;"      NEG NUMBER= ErrorNum^ErrorMessage.  See also EN^TMGSDAM2() for values
 | 
|---|
| 34 |         ;
 | 
|---|
| 35 |         new UseStored set UseStored=0 ;"default
 | 
|---|
| 36 |         ;"set UseStored=1
 | 
|---|
| 37 |         if UseStored=0 do
 | 
|---|
| 38 |         . kill ^TMG("TMP","RPC","MAKEAPPT")
 | 
|---|
| 39 |         . merge ^TMG("TMP","RPC","MAKEAPPT","PATIENT")=PATIENT
 | 
|---|
| 40 |         . merge ^TMG("TMP","RPC","MAKEAPPT","APPT")=APPT
 | 
|---|
| 41 |         . merge ^TMG("TMP","RPC","MAKEAPPT","CLINIC")=CLINIC
 | 
|---|
| 42 |         . merge ^TMG("TMP","RPC","MAKEAPPT","MODE")=MODE
 | 
|---|
| 43 |         . merge ^TMG("TMP","RPC","MAKEAPPT","INFO")=INFO
 | 
|---|
| 44 |         else  if UseStored=1 do
 | 
|---|
| 45 |         . merge PATIENT=^TMG("TMP","RPC","MAKEAPPT","PATIENT")
 | 
|---|
| 46 |         . merge APPT=^TMG("TMP","RPC","MAKEAPPT","APPT")
 | 
|---|
| 47 |         . merge CLINIC=^TMG("TMP","RPC","MAKEAPPT","CLINIC")
 | 
|---|
| 48 |         . merge MODE=^TMG("TMP","RPC","MAKEAPPT","MODE")
 | 
|---|
| 49 |         . merge INFO=^TMG("TMP","RPC","MAKEAPPT","INFO")
 | 
|---|
| 50 |         ;
 | 
|---|
| 51 |         KILL RESULT
 | 
|---|
| 52 |         NEW DFN,SC,APPTDATE
 | 
|---|
| 53 |         SET RESULT(0)=1 ;"Default to success.
 | 
|---|
| 54 |         SET DFN=$$GETDFN^TMGSDAU2(.PATIENT)
 | 
|---|
| 55 |         IF DFN<1 DO  GOTO ENRDONE
 | 
|---|
| 56 |         . SET RESULT(0)="-1^Invalid Patient: "_$GET(PATIENT)
 | 
|---|
| 57 |         SET SC=$$GETCLIEN^TMGSDAU2(.CLINIC)
 | 
|---|
| 58 |         IF SC<1 DO  GOTO ENRDONE
 | 
|---|
| 59 |         . SET RESULT(0)="-1^Can't find clinic: "_$GET(CLINIC)
 | 
|---|
| 60 |         SET APPTDATE=$$GETDATE^TMGSDAU2(.APPT)
 | 
|---|
| 61 |         IF APPTDATE<1 DO  GOTO ENRDONE
 | 
|---|
| 62 |         . SET RESULT(0)="-1^Invalid appt Date: "_$GET(APPT)
 | 
|---|
| 63 |         ;
 | 
|---|
| 64 |         SET RESULT(0)=$$EN^TMGSDAM2(DFN,APPTDATE,SC,MODE,.INFO)
 | 
|---|
| 65 |         ;
 | 
|---|
| 66 | ENRDONE ;
 | 
|---|
| 67 |         QUIT
 | 
|---|
| 68 |         ;
 | 
|---|
| 69 |         ;
 | 
|---|
| 70 | APPTLIST(RESULT,STRTDATE,ENDDATE,FILTER)
 | 
|---|
| 71 |         ;"Purpose: To return a listing of appts, based on dates and filters).  Provide a wrapper to $$SDAPI^SDAMA301
 | 
|---|
| 72 |         ;"                that accepts data in external formats, and returns custom results in array.
 | 
|---|
| 73 |         ;"Input:RESULTS: PASS BY REFERENCE.  An OUT PARAMATER. (See format below)
 | 
|---|
| 74 |         ;"      STRTDATE -- Starting Date (in FMDate format, OR External format, e.g. Jan 1, 2005) (Time ignored)
 | 
|---|
| 75 |         ;"                        If value="I" or "" (i.e. 'indefinite'), then all dates up to End Date on returned
 | 
|---|
| 76 |         ;"      ENDDATE -- OPTIONAL. Ending date (in FMDate, OR External format) (Time ignored)
 | 
|---|
| 77 |         ;"                        If not provided, then only dates for Starting date returned
 | 
|---|
| 78 |         ;"                        If value="I" (i.e. 'indefinite'), then all dates from Start Date on returned
 | 
|---|
| 79 |         ;"      FILTER -- PASS BY REFERENCE. OPTIONAL.  Format below.  Any or all of the filters can be applied at once.
 | 
|---|
| 80 |         ;"                     See APPTLIST^TMGSDAG for reference
 | 
|---|
| 81 |         ;"Results: None
 | 
|---|
| 82 |         ;"Output: RESULT is filled with results.  Format below:
 | 
|---|
| 83 |         ;"                RESULT(0)=# of found matching appts, or 0 if none, or -1 if error.
 | 
|---|
| 84 |         ;"                RESULT(Count)=-1^ErrCode^Message <-- (if any)
 | 
|---|
| 85 |         ;"                RESULT(Count)=-1^ErrCode^Message
 | 
|---|
| 86 |         ;"                RESULT(Count)=-1^ErrCode^Message
 | 
|---|
| 87 |         ;"                RESULT(Count)=PatientIEN;PatientName^DOB^FMFormatApptDateTime;ExtFormatApptDateTime^ClinicIEN;ClinicName^StatusCode;StatusName
 | 
|---|
| 88 |         ;"                RESULT(Count)=PatientIEN;PatientName^DOB^FMFormatApptDateTime;ExtFormatApptDateTime^ClinicIEN;ClinicName^StatusCode;StatusName
 | 
|---|
| 89 |         ;"                RESULT(Count)=PatientIEN;PatientName^DOB^FMFormatApptDateTime;ExtFormatApptDateTime^ClinicIEN;ClinicName^StatusCode;StatusName
 | 
|---|
| 90 |         ;"              NOTE: If there are no appts for time period, then one entry will be
 | 
|---|
| 91 |         ;"                      returned as follows.  This value can be used as a place holder
 | 
|---|
| 92 |         ;"                      to show that a search has taken place
 | 
|---|
| 93 |         ;"                RESULT(Count)="0;<NONE>^FMFormatApptDateTime"
 | 
|---|
| 94 |         ;
 | 
|---|
| 95 |         if 1=0 do
 | 
|---|
| 96 |         . kill ^TMG("TMP","RPC","APPTLIST")
 | 
|---|
| 97 |         . merge ^TMG("TMP","RPC","APPTLIST","FILTER")=FILTER
 | 
|---|
| 98 |         . merge ^TMG("TMP","RPC","APPTLIST","STRTDATE")=STRTDATE
 | 
|---|
| 99 |         . merge ^TMG("TMP","RPC","APPTLIST","ENDDATE")=ENDDATE
 | 
|---|
| 100 |         else  if 0=1 do
 | 
|---|
| 101 |         . merge FILTER=^TMG("TMP","RPC","APPTLIST","FILTER")
 | 
|---|
| 102 |         . merge STRTDATE=^TMG("TMP","RPC","APPTLIST","STRTDATE")
 | 
|---|
| 103 |         . merge ENDDATE=^TMG("TMP","RPC","APPTLIST","ENDDATE")
 | 
|---|
| 104 |         ;
 | 
|---|
| 105 |         NEW TMGMSG,TMGRESULT
 | 
|---|
| 106 |         NEW COUNT SET COUNT=0
 | 
|---|
| 107 |         SET RESULT(COUNT)=$$APPTLIST^TMGSDAG(.STRTDATE,.ENDDATE,.FILTER,.TMGRESULT,.TMGMSG)
 | 
|---|
| 108 |         NEW IDX SET IDX=""
 | 
|---|
| 109 |         FOR  SET IDX=$ORDER(TMGMSG(IDX)) QUIT:(IDX="")  DO
 | 
|---|
| 110 |         . SET COUNT=COUNT+1
 | 
|---|
| 111 |         . SET RESULT(COUNT)=TMGMSG(IDX)
 | 
|---|
| 112 |         SET IDX=""
 | 
|---|
| 113 |         IF $DATA(TMGRESULT)=0 DO
 | 
|---|
| 114 |         . NEW TMGSTRTDT SET TMGSTRTDT=$$GETDATE^TMGSDAU2(.STRTDATE)
 | 
|---|
| 115 |         . SET COUNT=COUNT+1
 | 
|---|
| 116 |         . SET RESULT(COUNT)="0;<NONE>^"_TMGSTRTDT
 | 
|---|
| 117 |         ELSE  FOR  SET IDX=$ORDER(TMGRESULT(IDX)) QUIT:(IDX="")  DO
 | 
|---|
| 118 |         . SET COUNT=COUNT+1
 | 
|---|
| 119 |         . SET RESULT(COUNT)=TMGRESULT(IDX)
 | 
|---|
| 120 |         QUIT
 | 
|---|
| 121 |         ;
 | 
|---|
| 122 |         ;
 | 
|---|
| 123 | GETAVAIL(RESULT,CLINIC,STRTDATE,ENDDATE)
 | 
|---|
| 124 |         ;"Purpose: Return an array with appt slot information: time, availibility
 | 
|---|
| 125 |         ;"Input:RESULTS: PASS BY REFERENCE.  An OUT PARAMATER. (See format below)
 | 
|---|
| 126 |         ;"      CLINIC-- Name, or IEN, of Clinic for appt (file 44)
 | 
|---|
| 127 |         ;"      STRTDATE -- The beginning of the date range requested
 | 
|---|
| 128 |         ;"      ENDDATE -- The end of the date range requested
 | 
|---|
| 129 |         ;"Results: None
 | 
|---|
| 130 |         ;"Output: RESULT is filled with results.  Format below:
 | 
|---|
| 131 |         ;"                RESULT(0)=1 for Success, 0 for Intermed success, -1^Msg for error
 | 
|---|
| 132 |         ;"                RESULT(Count)=-1^Message <-- (if any)
 | 
|---|
| 133 |         ;"                RESULT(Count)=-1^Message
 | 
|---|
| 134 |         ;"                RESULT(Count)="INFO^APPTLEN"^LengthOfApptSlot
 | 
|---|
| 135 |         ;"                RESULT(Count)=Date^SlotStartTime^NumOpenings^NumScheduled^NumTotalSlotsAtTime
 | 
|---|
| 136 |         ;"                RESULT(Count)=Date^SlotStartTime^NumOpenings^NumScheduled^NumTotalSlotsAtTime
 | 
|---|
| 137 |         ;"Note: If a clinic is not set up for a given day in date range, no results will be
 | 
|---|
| 138 |         ;"      returned for that invalid day.
 | 
|---|
| 139 |         ;
 | 
|---|
| 140 |         if 1=0 do
 | 
|---|
| 141 |         . kill ^TMG("TMP","RPC","GETAVAIL")
 | 
|---|
| 142 |         . merge ^TMG("TMP","RPC","GETAVAIL","CLINIC")=CLINIC
 | 
|---|
| 143 |         . merge ^TMG("TMP","RPC","GETAVAIL","STRTDATE")=STRTDATE
 | 
|---|
| 144 |         . merge ^TMG("TMP","RPC","GETAVAIL","ENDDATE")=ENDDATE
 | 
|---|
| 145 |         else  if 1=0 do
 | 
|---|
| 146 |         . merge CLINIC=^TMG("TMP","RPC","GETAVAIL","CLINIC")
 | 
|---|
| 147 |         . merge STRTDATE=^TMG("TMP","RPC","GETAVAIL","STRTDATE")
 | 
|---|
| 148 |         . merge ENDDATE=^TMG("TMP","RPC","GETAVAIL","ENDDATE")
 | 
|---|
| 149 |         ;
 | 
|---|
| 150 |         NEW SC SET SC=$$GETCLIEN^TMGSDAU2(.CLINIC)
 | 
|---|
| 151 |         IF SC<1 DO  GOTO GADONE
 | 
|---|
| 152 |         . SET RESULT(0)="-1^Bad clinic name: '"_$GET(CLINIC)_"'"
 | 
|---|
| 153 |         NEW TMGSTRTDT SET TMGSTRTDT=$$GETDATE^TMGSDAU2(.STRTDATE)
 | 
|---|
| 154 |         IF TMGSTRTDT<1 DO  GOTO GADONE
 | 
|---|
| 155 |         . SET RESULT(0)="-1^Bad starting date: '"_$GET(TMGSTRTDT)_"'"
 | 
|---|
| 156 |         NEW TMGENDDT SET TMGENDDT=$$GETDATE^TMGSDAU2(.ENDDATE)
 | 
|---|
| 157 |         IF TMGENDDT<1 DO  GOTO GADONE
 | 
|---|
| 158 |         . SET RESULT(0)="-1^Bad ending date: '"_$GET(TMGENDDT)_"'"
 | 
|---|
| 159 |         ;
 | 
|---|
| 160 |         NEW TMGAVAIL,TMGMSG
 | 
|---|
| 161 |         NEW COUNT SET COUNT=0
 | 
|---|
| 162 |         SET RESULT(COUNT)=$$GETAVAIL^TMGSDAVG(SC,TMGSTRTDT,TMGENDDT,.TMGAVAIL,.TMGMSG)
 | 
|---|
| 163 |         ;
 | 
|---|
| 164 |         NEW IDX SET IDX=""
 | 
|---|
| 165 |         FOR  SET IDX=$ORDER(TMGMSG(IDX)) QUIT:(IDX="")  DO
 | 
|---|
| 166 |         . SET COUNT=COUNT+1
 | 
|---|
| 167 |         . SET RESULT(COUNT)=TMGMSG(IDX)
 | 
|---|
| 168 |         NEW DATE SET DATE=""
 | 
|---|
| 169 |         FOR  SET DATE=$ORDER(TMGAVAIL(DATE)) QUIT:(DATE="")  DO
 | 
|---|
| 170 |         . NEW TIME SET TIME=""
 | 
|---|
| 171 |         . FOR  SET TIME=$ORDER(TMGAVAIL(DATE,TIME)) QUIT:(TIME="")  DO
 | 
|---|
| 172 |         . . SET COUNT=COUNT+1
 | 
|---|
| 173 |         . . SET RESULT(COUNT)=DATE_"^"_TIME_"^"_$GET(TMGAVAIL(DATE,TIME))
 | 
|---|
| 174 | GADONE  ;
 | 
|---|
| 175 |         QUIT
 | 
|---|
| 176 |         ;
 | 
|---|
| 177 |         ;
 | 
|---|
| 178 | SETAVAIL(RESULT,CLINIC,FLAGS,PATTERN) ;
 | 
|---|
| 179 |         ;"Purpose: API to set availability for a given clinic
 | 
|---|
| 180 |         ;"NOTE: **See expanded notes in SETAVAIL^TMGSDAVS**
 | 
|---|
| 181 |         ;"Input: CLINIC -- IEN in HOSPITAL LOCATION file.
 | 
|---|
| 182 |         ;"       FLAGS -- "D" = Delete appts (if not present then appts are SET)
 | 
|---|
| 183 |         ;"                "I" = Ignore existing appts when changing slots (TO BE IMPLEMENTED)
 | 
|---|
| 184 |         ;"       PATTERN -- PASS BY REFERENCE.  Array Format:
 | 
|---|
| 185 |         ;"         PATTERN(COUNT)=ADate^EndDate^ExtTime^ApptsPerSlot
 | 
|---|
| 186 |         ;"         PATTERN(COUNT)=ADate^EndDate^ExtTime^ApptsPerSlot
 | 
|---|
| 187 |         ;"         PATTERN(COUNT)=ADate^EndDate^ExtTime^ApptsPerSlot
 | 
|---|
| 188 |         ;"Results: None
 | 
|---|
| 189 |         ;"Output: RESULT is filled with results.  Format below:
 | 
|---|
| 190 |         ;"                RESULT(Count)=-1^ErrCode^Message <-- (if any)
 | 
|---|
| 191 |         ;"                RESULT(Count)=-1^ErrCode^Message
 | 
|---|
| 192 |         ;"         or     RESULT(1)="1^Success"
 | 
|---|
| 193 |         ;
 | 
|---|
| 194 |         NEW SC SET SC=$$GETCLIEN^TMGSDAU2(.CLINIC)
 | 
|---|
| 195 |         IF SC<1 DO  GOTO SDADONE
 | 
|---|
| 196 |         . SET RESULT(0)="-1^Bad clinic name: '"_$GET(CLINIC)_"'"
 | 
|---|
| 197 |         NEW TMGPATRN,ADATE,ENDDATE,EXTTIME,APS
 | 
|---|
| 198 |         NEW COUNT SET COUNT=""
 | 
|---|
| 199 |         FOR  SET COUNT=$ORDER(PATTERN(COUNT)) DO
 | 
|---|
| 200 |         . NEW PAT SET PAT=$GET(PATTERN(COUNT)) ;"ADate^EndDate^ExtTime^ApptsPerSlot
 | 
|---|
| 201 |         . QUIT:PAT=""
 | 
|---|
| 202 |         . SET ADATE=$P(PAT,"^",1)
 | 
|---|
| 203 |         . SET ENDDATE=$P(PAT,"^",2)
 | 
|---|
| 204 |         . SET EXTTIME=$P(PAT,"^",3)
 | 
|---|
| 205 |         . SET APS=$P(PAT,"^",4)
 | 
|---|
| 206 |         . SET TMGPATRN(ADATE_"^"_ENDDATE,EXTTIME)=APS
 | 
|---|
| 207 |         ;
 | 
|---|
| 208 |         NEW TMGMSG,TEMP
 | 
|---|
| 209 |         NEW COUNT SET COUNT=0
 | 
|---|
| 210 |         SET RESULT(COUNT)=$$SETAVAIL^TMGSDAVS(SC,.TMGPATRN,FLAGS,.TMGMSG)
 | 
|---|
| 211 |         ;
 | 
|---|
| 212 |         NEW IDX SET IDX=""
 | 
|---|
| 213 |         FOR  SET IDX=$ORDER(TMGMSG(IDX)) QUIT:(IDX="")  DO
 | 
|---|
| 214 |         . SET COUNT=COUNT+1
 | 
|---|
| 215 |         . SET RESULT(COUNT)=TMGMSG(IDX)
 | 
|---|
| 216 |         IF COUNT=0 SET RESULT(1)="1^Success"
 | 
|---|
| 217 | SDADONE ;
 | 
|---|
| 218 |         QUIT
 | 
|---|
| 219 |         ;
 | 
|---|
| 220 |         ;
 | 
|---|
| 221 | CANCAPPT(RESULT,PATIENT,APPT,CLINIC,INFO)     ;
 | 
|---|
| 222 |         ;"Purpose: CANCEL AN APPOINTMENT
 | 
|---|
| 223 |         ;"INPUT: RESULTS -- PASS BY REFERENCE, an OUT PARAMETER (See values below)
 | 
|---|
| 224 |         ;"       PATIENT -- Patient Name (must be unique) or IEN
 | 
|---|
| 225 |         ;"       APPT -- Appointment Date & Time to be cancelled -- External, or FM format
 | 
|---|
| 226 |         ;"       CLINIC -- Name, or IEN, of Clinic for appt (file 44)
 | 
|---|
| 227 |         ;"       INFO -- PASS BY REFERENCE.
 | 
|---|
| 228 |         ;"         INFO("REASON IEN")= IEN of cancellation reason, from 409.2
 | 
|---|
| 229 |         ;"         INFO("COMMENT") = Comment (3-160 chars length)     (OPTIONAL)
 | 
|---|
| 230 |         ;"Result: None
 | 
|---|
| 231 |         ;"Output: RESULTS variable filled as follows
 | 
|---|
| 232 |         ;"      RESULT(1) = 1 --> OK,APPOINTMENT SUCCESSFULLY CANCELLED
 | 
|---|
| 233 |         ;"      RESULT(1) = -1^ErrorMessage.
 | 
|---|
| 234 |         ;
 | 
|---|
| 235 |         if 1=1 do
 | 
|---|
| 236 |         . kill ^TMG("TMP","RPC","CANCAPPT")
 | 
|---|
| 237 |         . merge ^TMG("TMP","RPC","CANCAPPT","PATIENT")=PATIENT
 | 
|---|
| 238 |         . merge ^TMG("TMP","RPC","CANCAPPT","APPT")=APPT
 | 
|---|
| 239 |         . merge ^TMG("TMP","RPC","CANCAPPT","CLINIC")=CLINIC
 | 
|---|
| 240 |         . merge ^TMG("TMP","RPC","CANCAPPT","INFO")=INFO
 | 
|---|
| 241 |         else  if 1=0 do
 | 
|---|
| 242 |         . merge PATIENT=^TMG("TMP","RPC","CANCAPPT","PATIENT")
 | 
|---|
| 243 |         . merge APPT=^TMG("TMP","RPC","CANCAPPT","APPT")
 | 
|---|
| 244 |         . merge CLINIC=^TMG("TMP","RPC","CANCAPPT","CLINIC")
 | 
|---|
| 245 |         . merge INFO=^TMG("TMP","RPC","CANCAPPT","INFO")
 | 
|---|
| 246 |         ;
 | 
|---|
| 247 |         KILL RESULT
 | 
|---|
| 248 |         NEW DFN,SC,APPTDATE
 | 
|---|
| 249 |         SET RESULT(0)=1 ;"Default to success.
 | 
|---|
| 250 |         SET DFN=$$GETDFN^TMGSDAU2(.PATIENT)
 | 
|---|
| 251 |         IF DFN<1 DO  GOTO CANCDONE
 | 
|---|
| 252 |         . SET RESULT(0)="-1^Invalid Patient: "_$GET(PATIENT)
 | 
|---|
| 253 |         SET SC=$$GETCLIEN^TMGSDAU2(.CLINIC)
 | 
|---|
| 254 |         IF SC<1 DO  GOTO CANCDONE
 | 
|---|
| 255 |         . SET RESULT(0)="-1^Can't find clinic: "_$GET(CLINIC)
 | 
|---|
| 256 |         SET APPTDATE=$$GETDATE^TMGSDAU2(.APPT)
 | 
|---|
| 257 |         IF APPTDATE<1 DO  GOTO CANCDONE
 | 
|---|
| 258 |         . SET RESULT(0)="-1^Invalid appt Date: "_$GET(APPT)
 | 
|---|
| 259 |         ;
 | 
|---|
| 260 |         SET RESULT(0)=$$CANCAPPT^TMGSDAC(DFN,APPTDATE,SC,.INFO)
 | 
|---|
| 261 |         ;
 | 
|---|
| 262 | CANCDONE ;
 | 
|---|
| 263 |         QUIT | 
|---|