| 1 | DVBAB1B ;ALB/SPH - CAPRI UTILITIES ;01/01/00
 | 
|---|
| 2 |  ;;2.7;AMIE;**104**;Apr 10, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | DPA(LIST,DFN,CHOICE) ;Display Patient Appointments
 | 
|---|
| 5 |  N DVBABCNT,CKCHOICE
 | 
|---|
| 6 |  S LIST="",DVBABCNT=1,CKCHOICE="A,F,P",DFN=$G(DFN),CHOICE=$G(CHOICE) K ^TMP("DVBAAPPT",$J)
 | 
|---|
| 7 |  I DFN="" S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)="MISSING PATIENT NAME",LIST=$NA(^TMP("DVBAAPPT",$J,DUZ)) Q
 | 
|---|
| 8 |  I CHOICE="" S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)="MISSING ALL, PAST, OR FUTURE",LIST=$NA(^TMP("DVBAAPPT",$J,DUZ)) Q
 | 
|---|
| 9 |  I CKCHOICE'[CHOICE S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)="INVALID SELECTION",LIST=$NA(^TMP("DVBAAPPT",$J,DUZ)) Q
 | 
|---|
| 10 |  I CHOICE["A" D
 | 
|---|
| 11 |  .S SDT=0
 | 
|---|
| 12 |  .S X="T+730" D ^%DT
 | 
|---|
| 13 |  .I Y<0 S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)="ERROR IN CALCULATING ENDING DATE RANGE",LIST=$NA(^TMP("DVBAAPPT",$J,DUZ))
 | 
|---|
| 14 |  .S EDT=Y+.9
 | 
|---|
| 15 |  I CHOICE["F" D
 | 
|---|
| 16 |  .S X="T+1" D ^%DT
 | 
|---|
| 17 |  .I Y<0 S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)="ERROR IN CALCULATING START DATE RANGE",LIST=$NA(^TMP("DVBAAPPT",$J,DUZ))
 | 
|---|
| 18 |  .S SDT=Y
 | 
|---|
| 19 |  .K X,Y
 | 
|---|
| 20 |  .S X="T+730" D ^%DT
 | 
|---|
| 21 |  .I Y<0 S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)="ERROR IN CALCULATING ENDING DATE RANGE",LIST=$NA(^TMP("DVBAAPPT",$J,DUZ))
 | 
|---|
| 22 |  .S EDT=Y+.9
 | 
|---|
| 23 |  I CHOICE["P" D
 | 
|---|
| 24 |  .S X="T" D ^%DT
 | 
|---|
| 25 |  .I Y<0 S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)="ERROR IN CALCULATING ENDING DATE RANGE",LIST=$NA(^TMP("DVBAAPPT",$J,DUZ))
 | 
|---|
| 26 |  .S EDT=Y+.9
 | 
|---|
| 27 |  .K X,Y
 | 
|---|
| 28 |  .S SDT=0
 | 
|---|
| 29 |  Q:LIST["ERROR"
 | 
|---|
| 30 |  I $O(^DPT(DFN,"S",SDT))'>0 S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)="NO APPOINTMENTS FOUND FOR YOUR DATE RANGE",LIST=$NA(^TMP("DVBAAPPT",$J,DUZ)) Q
 | 
|---|
| 31 |  F  S SDT=$O(^DPT(DFN,"S",SDT)) Q:'SDT!(SDT>EDT)  D
 | 
|---|
| 32 |  .S CLN=$P(^DPT(DFN,"S",SDT,0),"^") Q:'CLN
 | 
|---|
| 33 |  .Q:'$D(^SC(CLN,0))
 | 
|---|
| 34 |  .S CLN=$P(^SC(CLN,0),"^")
 | 
|---|
| 35 |  .S ZZ=$L(CLN)
 | 
|---|
| 36 |  .I ZZ<31 D
 | 
|---|
| 37 |  ..F ZZZ=ZZ:1:30 S CLN=CLN_" "
 | 
|---|
| 38 |  .S Y=SDT X ^DD("DD")
 | 
|---|
| 39 |  .S ZZ2=$L(Y)
 | 
|---|
| 40 |  .I ZZ2<21 D
 | 
|---|
| 41 |  ..F ZZZ2=ZZ2:1:20 S Y=Y_" "
 | 
|---|
| 42 |  .S STATUS=$P(^DPT(DFN,"S",SDT,0),"^",2)
 | 
|---|
| 43 |  .I STATUS'="" D
 | 
|---|
| 44 |  ..I STATUS="N" S STATUS="NO-SHOW"
 | 
|---|
| 45 |  ..I STATUS="C" S STATUS="CANCELLED BY CLINIC"
 | 
|---|
| 46 |  ..I STATUS="CA" S STATUS="CANCELLED BY CLINIC & AUTO RE-BOOK"
 | 
|---|
| 47 |  ..I STATUS="NA" S STATUS="NO-SHOW & AUTO-REBOOK"
 | 
|---|
| 48 |  ..I STATUS="I" S STATUS="INPATIENT APPOINTMENT"
 | 
|---|
| 49 |  ..I STATUS="PC" S STATUS="CANCELLED BY PATIENT"
 | 
|---|
| 50 |  ..I STATUS="PCA" S STATUS="CANCELLED BY PATIENT & AUTO RE-BOOK"
 | 
|---|
| 51 |  ..I STATUS="NT" S STATUS="NO ACTION TAKEN"
 | 
|---|
| 52 |  . I $D(^DPT(DFN,"S",SDT,"R")) S REMARK=$P(^DPT(DFN,"S",SDT,"R"),"^",1) ;ADDED
 | 
|---|
| 53 |  .S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)=CLN_"  "_Y_" "_STATUS,DVBABCNT=DVBABCNT+1
 | 
|---|
| 54 |  . I $D(REMARK) S ^TMP("DVBAAPPT",$J,DUZ,DVBABCNT)="   Cancellation Remarks: "_REMARK,DVBABCNT=DVBABCNT+1
 | 
|---|
| 55 |  . I $D(REMARK) K REMARK
 | 
|---|
| 56 |  .S LIST=$NA(^TMP("DVBAAPPT",$J,DUZ))
 | 
|---|
| 57 |  K DFN,X,%DT,CLN,CHOICE,Y,SDT,EDT
 | 
|---|
| 58 |  Q
 | 
|---|