[613] | 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
|
---|