| 1 | SDAMA204 ;BPOIFO/NDH-Scheduling Replacement APIs ; 12/13/04 3:16pm
 | 
|---|
| 2 |  ;;5.3;Scheduling;**310,347**;13 Aug 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;PATAPPT - Determines if an appointment exists for a patient.
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;**   BEFORE USING THE API IN THIS ROUTINE, PLEASE SUBSCRIBE    **
 | 
|---|
| 7 |  ;**   TO DBIA #4216                                             **
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ;*****************************************************************
 | 
|---|
| 10 |  ;              CHANGE LOG
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;  DATE      PATCH       DESCRIPTION
 | 
|---|
| 13 |  ;--------  ----------    -----------------------------------------
 | 
|---|
| 14 |  ;08/11/03  SD*5.3*310    API PATIENT APPOINTMENT EXISTS
 | 
|---|
| 15 |  ;07/26/04  SD*5.3*347    API Patient Appointment supports distributed
 | 
|---|
| 16 |  ;                        appointment files (whether actual files are
 | 
|---|
| 17 |  ;                        located in VistA DB or Oracle DB).
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  ;*****************************************************************
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 | PATAPPT(SDDFN) ; Check for existence of any appointment for a patient
 | 
|---|
| 22 |  ; 
 | 
|---|
| 23 |  ;       This API is an extrinsic function that returns 1 of 3 values.
 | 
|---|
| 24 |  ;       The API checks for the existence of appointment records.
 | 
|---|
| 25 |  ; 
 | 
|---|
| 26 |  ;       INPUT    SDDFN : Patient's DFN number (required)
 | 
|---|
| 27 |  ; 
 | 
|---|
| 28 |  ;       OUTPUT       1 : Appointment(s) on file
 | 
|---|
| 29 |  ;                    0 : No appointment(s) on file
 | 
|---|
| 30 |  ;                   -1 : Error
 | 
|---|
| 31 |  ;                   
 | 
|---|
| 32 |  ; ERROR CODES - 101 : Database is Unavailable
 | 
|---|
| 33 |  ;               102 : Patient ID is required
 | 
|---|
| 34 |  ;               110 : Patient ID must be numeric
 | 
|---|
| 35 |  ;               114 : Invalid Patient ID
 | 
|---|
| 36 |  ;               117 : SDAPI Error
 | 
|---|
| 37 |  ; 
 | 
|---|
| 38 |  ; ERROR LOCATION : ^TMP($J,"SDAMA204","PATAPPT","ERROR")
 | 
|---|
| 39 |  ; 
 | 
|---|
| 40 |  ; Check for proper parameter and return -1 if bad DFN
 | 
|---|
| 41 |  ; 
 | 
|---|
| 42 |  ; Initialize node for error reporting
 | 
|---|
| 43 |  K ^TMP($J,"SDAMA204","PATAPPT")
 | 
|---|
| 44 |  N SDARRAY,SDCOUNT,SDX,SDY,DFN,VAERR
 | 
|---|
| 45 |  ; 
 | 
|---|
| 46 |  ; Check for no input parameter
 | 
|---|
| 47 |  I '$D(SDDFN) D  Q -1
 | 
|---|
| 48 |  .D ERROR^SDAMA200(102,"PATAPPT",0,"SDAMA204")
 | 
|---|
| 49 |  ; Check if SDDFN is numeric
 | 
|---|
| 50 |  I SDDFN'?1.N D  Q -1
 | 
|---|
| 51 |  .D ERROR^SDAMA200(110,"PATAPPT",0,"SDAMA204")
 | 
|---|
| 52 |  ; Check if DFN exists or is 0
 | 
|---|
| 53 |  S DFN=SDDFN
 | 
|---|
| 54 |  D DEM^VADPT
 | 
|---|
| 55 |  I SDDFN=0!VAERR=1 D  Q -1
 | 
|---|
| 56 |  .D ERROR^SDAMA200(114,"PATAPPT",0,"SDAMA204")
 | 
|---|
| 57 |  D KVAR^VADPT
 | 
|---|
| 58 |  ; Check for patient appointments and return 1 if appointment found
 | 
|---|
| 59 |  ; and 0 if no appointments found.
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  S SDARRAY(4)=DFN,SDARRAY("FLDS")=1,SDARRAY("MAX")=1
 | 
|---|
| 62 |  S SDCOUNT=$$SDAPI^SDAMA301(.SDARRAY)
 | 
|---|
| 63 |  I SDCOUNT=0 Q 0 ; No Appt found.
 | 
|---|
| 64 |  I SDCOUNT=1 K ^TMP($J,"SDAMA301") Q 1  ; Appt(s). found.
 | 
|---|
| 65 |  ; Error Encountered.
 | 
|---|
| 66 |  I SDCOUNT=-1 D
 | 
|---|
| 67 |  .S SDX=$O(^TMP($J,"SDAMA301",""))
 | 
|---|
| 68 |  .S SDX=$S(SDX=101:101,SDX=115:114,SDX=116:114,1:117)
 | 
|---|
| 69 |  .D ERROR^SDAMA200(SDX,"PATAPPT",0,"SDAMA204")
 | 
|---|
| 70 |  .K ^TMP($J,"SDAMA301")
 | 
|---|
| 71 |  Q -1
 | 
|---|