| 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 | 
|---|