| 1 | SDCP ;BSN/GRR - CLINIC LIST ; 15 MAR 1999  4:10 PM ;
 | 
|---|
| 2 |  ;;5.3;Scheduling;**140,171,187,354**;Aug 13, 1993
 | 
|---|
| 3 |  D ASK2^SDDIV G:Y<0 END S VAUTNI=1 D CLINIC^VAUTOMA G:Y<0 END
 | 
|---|
| 4 | QUE N ZTSAVE F Y="VAUTD","VAUTD(","VAUTC","VAUTC(" S ZTSAVE(Y)=""
 | 
|---|
| 5 |  D EN^XUTMDEVQ("START^SDCP","Clinic Profile",.ZTSAVE) Q
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | START ;Print report
 | 
|---|
| 8 |  S END=0 D:'$D(DT) DT^SDUTL
 | 
|---|
| 9 |  S Y=DT D DTS^SDUTL S PDATE=Y,SCN=0 D TOF G:'VAUTC SOME
 | 
|---|
| 10 |  F  S SCN=$O(^SC("B",SCN)) Q:SCN=""!(END)  S SC=$O(^SC("B",SCN,0)) D:$$CHECK() SET0,SETSL,PRT
 | 
|---|
| 11 |  G END
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 | SOME F  S SCN=$O(VAUTC(SCN)) Q:SCN=""!(END)  S SC=+VAUTC(SCN) D:$$CHECK() SET0,SETSL,PRT
 | 
|---|
| 14 |  G END
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | END W ! I $E(IOST)="C",'$G(END,1) N DIR S DIR(0)="E" D ^DIR
 | 
|---|
| 17 |  K ABBR,ALV,C,DAYS,DIC,DIPH,DOW,END,HCDB,I,J,L,LOC,LOP,M,NAME,ODM,PC,PDATE,POP,SC,SCSC,SDSC,SDMX,SDNO,SDNO,SDC,SDCR,SCSC,SCN,SDIN,SDPR,SDRE,STCD,STDAT,X,Y,SD,SDCNT,VAUTC,VAUTD,VAUTNI,STRING Q
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | SET0 S STRING=^SC(SC,0)
 | 
|---|
| 20 |  S NAME=$P(STRING,U,1),ABBR=$P(STRING,U,2),LOC=$P(STRING,U,11),(STCD,SDSC)=$P(STRING,U,7),SDCR=$P(STRING,U,18),SDCNT=$P(STRING,U,17)
 | 
|---|
| 21 |  S:$D(^SC(SC,"SDP")) SDMX=$P(^SC(SC,"SDP"),U,2) Q
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 | SETSL S (LOP,HCDB,ALV,PC,ODM,DIPH,STDAT,STRING)="",STCD=$S(STCD="":" ",1:STCD),STCD=$S('$D(^DIC(40.7,+STCD,0)):"",1:$P(^(0),U,2)),SDSC=$S($D(^DIC(40.7,+SDSC,0)):'$P(^(0),U,3)!($P(^(0),U,3)>DT),1:0)
 | 
|---|
| 24 |  S SDPR=$S('$D(^SC(SC,"SDPROT")):"NO",'$L($P(^("SDPROT"),U)):"NO",1:"YES")
 | 
|---|
| 25 |  S SDCR=$S(SDCR="":" ",1:SDCR),SDCR=$S('$D(^DIC(40.7,+SDCR,0)):"",1:$P(^(0),U,2))
 | 
|---|
| 26 |  I $D(^SC(SC,"SL")) S STRING=^("SL"),LOP=$P(STRING,U,1),HCDB=$P(STRING,U,3),ALV=$S($P(STRING,U,2)["V":"YES",1:"NO")
 | 
|---|
| 27 |  I  S PC=$S($P(STRING,U,5)]"":$P(^SC($P(STRING,U,5),0),U,1),1:""),ODM=$P(STRING,U,7),DIPH=$S($P(STRING,U,6)=4:15,$P(STRING,U,6)=3:20,$P(STRING,U,6)=1:60,$P(STRING,U,6)=2:30,1:10)
 | 
|---|
| 28 |  S STDAT=$O(^SC(SC,"T",0)) S:STDAT<1 STDAT="UNKNOWN"
 | 
|---|
| 29 |  K DOW F L=0:1:6 F M=DT-.1:0 S M=$O(^SC(SC,"T"_L,M)) Q:M=""  I $D(^(M,1)) S:^(1)]"" DOW(L+1)="" Q:^(1)]""  K DOW(L+1)
 | 
|---|
| 30 |  F L=DT-.1:0 S L=$O(^SC(SC,"T",L)) Q:L=""  S X=L D DW^%DTC I '$D(DOW(Y+1)),$D(^SC(SC,"OST",L,1)),^(1)["[" S DOW(Y+1)=""
 | 
|---|
| 31 |  S DAYS="" F M=1:1:7 I $D(DOW(M)) S DAYS=DAYS_$S(DAYS'="":",",1:"")_$P("SU^MO^TU^WE^TH^FR^SA",U,M)
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | L(SDT,SDCOL,SDVAL) ;Print field label
 | 
|---|
| 35 |  ;Input: SDT=field label
 | 
|---|
| 36 |  ;Input: SDCOL=column to line up to
 | 
|---|
| 37 |  ;Input: SDVAL=field value
 | 
|---|
| 38 |  W ?(SDCOL-$L(SDT)-2),SDT,": ",SDVAL Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | PRT I $Y+12>IOSL D:IOSL<25 SEEND:$E(IOST,1,2)="C-" Q:END  D TOF
 | 
|---|
| 41 |  S SDNO="" W ! D L("Clinic",19,NAME),L("Abbr.",62,ABBR)
 | 
|---|
| 42 |  W ! D L("Location",19,$E(LOC,1,30)),L("Telephone",62,$S($D(^SC(SC,99)):^SC(SC,99),1:""))
 | 
|---|
| 43 |  W ! D L("Days clinic meets",19,DAYS) I 'SDNO S Y=STDAT D:STDAT'="UNKNOWN" DTS^SDUTL
 | 
|---|
| 44 |  D L("Start date",62,$S(STDAT="UNKNOWN":"UNKNOWN",1:Y))
 | 
|---|
| 45 |  W ! D L("Increments",19,DIPH_" Minutes"),L("Hour display begins",62,$S(HCDB="":"8 AM",HCDB<13:HCDB_" AM",1:HCDB-12_" PM"))
 | 
|---|
| 46 |  W ! D L("Appt. length",19,LOP_" Minutes"),L("Variable length appts.",62,ALV)
 | 
|---|
| 47 |  W ! D L("Stop Code",19,STCD),L("Maximum overbooks per day",62,ODM)
 | 
|---|
| 48 |  W ! D L("Credit Stop Code",19,SDCR),L("Non-count clinic",62,$S(SDCNT="Y":"YES",1:"NO"))
 | 
|---|
| 49 |  W ! D L("Prohibit access",19,SDPR),L("Maximum days for future booking",62,$G(SDMX))
 | 
|---|
| 50 |  I PC]"" W ! D L("Principal clinic",19,PC)
 | 
|---|
| 51 |  I $D(^SC(SC,"I")) S SDRE=+$P(^("I"),U,2),SDIN=+^("I") I SDRE'=SDIN D:SDIN'>DT&(SDRE=0!(SDRE>DT)) INACT
 | 
|---|
| 52 |  I 'SDNO,$D(SDIN),SDIN>DT,SDRE'=SDIN W !!,?4,"**** Clinic will be inactive ",$S(SDRE:"from ",1:"as of ") S Y=SDIN D DTS^SDUTL W Y S Y=SDRE D:Y DTS^SDUTL W $S(SDRE:" to "_Y,1:"")," ****" K SDIN,SDRE
 | 
|---|
| 53 |  I 'SDSC W !!,?4,"*** INVALID OR INACTIVE STOP CODE ASSIGNED TO THIS CLINIC ***"
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | INACT S Y=SDIN D DTS^SDUTL W !!,?4,"**** Clinic is inactive ",$S(SDRE:"from ",1:"as of "),Y S Y=SDRE D:Y DTS^SDUTL W $S(SDRE:" to "_Y,1:"")," ****" K SDIN,SDRE S SDNO=1
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | SEEND W ! N DIR S DIR(0)="E" D ^DIR S END=Y'=1 Q:END
 | 
|---|
| 60 | TOF W @IOF,?22,"CLINIC PROFILES AS OF: ",PDATE,! Q
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | CHECK() ;Check location for inclusion
 | 
|---|
| 63 |  I $D(^SC(SC,0)),($P(^(0),U,3)="C"),$S(VAUTD:1,$D(VAUTD(+$P(^(0),U,15))):1,'$P(^(0),U,15)&($D(VAUTD($O(^DG(40.8,0))))):1,1:0) Q 1
 | 
|---|
| 64 |  Q 0
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 | PAUSE(LINE) ;
 | 
|---|
| 68 |  N Y S Y=1
 | 
|---|
| 69 |  I $E(IOST,1,2)="C-",(LINE+5)>IOSL D PAUSE^VALM1 S LINE=0
 | 
|---|
| 70 |  S LINE=LINE+1
 | 
|---|
| 71 |  Q Y
 | 
|---|