| 1 | SDAM ;MJK/ALB - Appt Mgt ; 8/30/99 9:09am | 
|---|
| 2 | ;;5.3;Scheduling;**149,177,76,242,380**;Aug 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | D HDLKILL^SDAMEVT | 
|---|
| 5 | EN ; -- main entry point | 
|---|
| 6 | N XQORS,VALMEVL D EN^VALM("SDAM APPT MGT") | 
|---|
| 7 | Q | 
|---|
| 8 | ; | 
|---|
| 9 | INIT ; -- set up appt man vars | 
|---|
| 10 | K I,X,SDBEG,SDEND,SDB,XQORNOD,SDFN,SDCLN,DA,DR,DIE,DNM,DQ,%B,SDRES | 
|---|
| 11 | S DIR(0)="43,213",DIR("A")="Select Patient name or Clinic name" | 
|---|
| 12 | D ^DIR K DIR I $D(DIRUT) S VALMQUIT="" G INITQ | 
|---|
| 13 | S SDY=Y | 
|---|
| 14 | I SDY["DPT(" S DFN=+SDY D 2^VADPT I +VADM(6) D  G:SDUP="^" INIT | 
|---|
| 15 | . W !!,"WARNING ",VADM(7),!! | 
|---|
| 16 | . R "Press Return to Continue or ^ to Quit: ",SDUP:DTIME | 
|---|
| 17 | I SDY["DPT(" S SDAMTYP="P",SDFN=+SDY D INIT^SDAM1 | 
|---|
| 18 | I SDY["SC(" S SDRES=$$CLNCK^SDUTL2(+SDY,1) I 'SDRES D  G INIT | 
|---|
| 19 | . W !,?5,"Clinic MUST be corrected before continuing." | 
|---|
| 20 | I SDY["SC(" S SDAMTYP="C",SDCLN=+SDY D INIT^SDAM3 | 
|---|
| 21 | INITQ Q | 
|---|
| 22 | ; | 
|---|
| 23 | HDR ; -- screen head | 
|---|
| 24 | N X,SDX,SDLNX S SDLNX=2 | 
|---|
| 25 | ;I SDAMTYP="P" D HDR^SDAM10 S VALM("TM")=5 D | 
|---|
| 26 | I SDAMTYP="P" D HDR^SDAM10 D | 
|---|
| 27 | .S SDX=$$PCLINE^SDPPTEM(SDFN,DT) Q:'$L(SDX) | 
|---|
| 28 | .S VALMHDR(SDLNX)=SDX,SDLNX=3 | 
|---|
| 29 | .;S VALMHDR(SDLNX)=SDX,SDLNX=3,VALM("TM")=6 | 
|---|
| 30 | .;Increment Top & Bottom margins to allow for additional line | 
|---|
| 31 | .;S VALM("TM")=VALM("TM")+1 | 
|---|
| 32 | .;S VALM("BM")=VALM("BM")+1 | 
|---|
| 33 | .Q | 
|---|
| 34 | I SDAMTYP="C" D HDR^SDAM3 | 
|---|
| 35 | S X=$P(SDAMLIST,"^",2) | 
|---|
| 36 | S VALMHDR(SDLNX)=X | 
|---|
| 37 | S X="* - New GAF Required",VALMHDR(SDLNX)=$$SETSTR^VALM1(X,VALMHDR(SDLNX),34,30) | 
|---|
| 38 | S VALMHDR(SDLNX)=$$SETSTR^VALM1($$FDATE^VALM1(SDBEG)_" thru "_$$FDATE^VALM1(SDEND),VALMHDR(SDLNX),59,22) | 
|---|
| 39 | Q | 
|---|
| 40 | ; | 
|---|
| 41 | FNL ; -- what to do after action | 
|---|
| 42 | K ^TMP("SDAM",$J),^TMP("SDAMIDX",$J),^TMP("VALMIDX",$J) | 
|---|
| 43 | K SDAMCNT,SDFLDD,SDACNT,VALMHCNT,SDPRD,SDFN,SDCLN,SDAMLIST,SDT,SDATA,SDBEG,SDEND,DFN,Y,SDAMTYP,SDY,X,SDCL,Y,SDDA,VALMY | 
|---|
| 44 | Q | 
|---|
| 45 | ; | 
|---|
| 46 | BLD ; -- entry point to bld list | 
|---|
| 47 | ; input:  SDAMLIST := list to build | 
|---|
| 48 | D:'$D(SDAMLIST) GROUP("ALL",.SDAMLIST) | 
|---|
| 49 | I SDAMTYP="P" D BLD^SDAM1 | 
|---|
| 50 | I SDAMTYP="C" D BLD^SDAM3 | 
|---|
| 51 | BLDQ Q | 
|---|
| 52 | ; | 
|---|
| 53 | LIST ; -- find and build | 
|---|
| 54 | ;  input:        X := status group | 
|---|
| 55 | ; output: SDAMLIST := array of status' | 
|---|
| 56 | ; | 
|---|
| 57 | I X["CANCELLED",$G(SDAMTYP)="C" S VALMBCK="" W !!,*7,"You must be viewing a patient to list cancelled appointments." D PAUSE^VALM1 G LISTQ | 
|---|
| 58 | D GROUP(X,.SDAMLIST),BLD | 
|---|
| 59 | S VALMBCK="R" | 
|---|
| 60 | LISTQ Q | 
|---|
| 61 | ; | 
|---|
| 62 | GROUP(GROUP,SDAMLIST) ; -- find list | 
|---|
| 63 | S (I,SDAMLIST)="" F  S I=$O(SDAMLIST(I)) Q:I=""  K SDAMLIST(I) | 
|---|
| 64 | S GROUP=+$O(^SD(409.62,"B",GROUP,0)) | 
|---|
| 65 | G GROUPQ:'$D(^SD(409.62,GROUP,0)) S SDAMLIST=^(0) | 
|---|
| 66 | S I=$G(^SD(409.62,GROUP,1)) S:I]"" SDAMLIST("SCR")=I | 
|---|
| 67 | S I=0 F  S I=$O(^SD(409.63,"C",GROUP,I)) Q:'I  S SDAMLIST(I)="" | 
|---|
| 68 | GROUPQ Q | 
|---|
| 69 | ; | 
|---|
| 70 | FUT ; -- change date range | 
|---|
| 71 | S X1=DT,X2=999 D C^%DTC | 
|---|
| 72 | S SDEBG=DT,SDEND=X,X="FUTURE" K VALMHDR | 
|---|
| 73 | D LIST | 
|---|
| 74 | FUTQ Q | 
|---|
| 75 | ; | 
|---|
| 76 | EXIT ; -- exit action for protocol | 
|---|
| 77 | I $D(VALMBCK),VALMBCK="R" D REFRESH^VALM S VALMBCK=$P(VALMBCK,"R")_$P(VALMBCK,"R",2) | 
|---|
| 78 | Q | 
|---|
| 79 | ; | 
|---|