Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ASDPCNA

ASDPCNA.m

Go to the documentation of this file.
  1. ASDPCNA ; IHS/ADC/PDW/ENM - # DAYS TIL NEXT APPT ; [ 03/25/1999 11:48 AM ]
  1. ;;5.0;IHS SCHEDULING;;MAR 25, 1999
  1. ;
  1. NEW SDAY,PC,X,J,SC,Y,Z,POP
  1. A ; -- driver
  1. D DEV Q:POP I $D(IO("Q")) D QUE,Q Q
  1. EN D HD,SC,Q Q
  1. ;
  1. SC ; -- loop principle clinic x-ref
  1. U IO S POP=0
  1. S PC=0 F S PC=$O(^SC("AIHSPC",PC)) Q:'PC D PC D Q:POP
  1. . S SC=0 F S SC=$O(^SC("AIHSPC",PC,SC)) Q:'SC D:$$CK DAY Q:POP
  1. Q:POP W !,"*No Principal Clinic"
  1. S SC=0 F S SC=$O(^SC(SC)) Q:'SC D Q:POP
  1. . Q:'$$NPC Q:'$$CK D DAY
  1. Q
  1. ;
  1. DAY ; -- loop visit days / clinic and print next appt
  1. S SDAY=$$SD F S SDAY=$O(^SC(SC,"ST",SDAY)) Q:'SDAY Q:$$NA
  1. I 'SDAY W ?26,$E($P(^SC(SC,0),U),1,30),?57,"none",! D Q
  1. . I $Y>(IOSL-6) D:IOST["C-" Q:POP D HD Q
  1. .. NEW DIR S DIR(0)="E" D ^DIR S:'Y POP=1
  1. S X=$O(^SC(SC,"ST",SDAY,0)) Q:'X
  1. S Y=$$FMTE^XLFDT(SDAY)
  1. W ?26,$E($P(^SC(SC,0),U),1,30),?57,Y,?71,$J($$D(SDAY),2)," days",!
  1. I $Y>(IOSL-6) D:IOST["C-" Q:POP D HD
  1. . NEW DIR S DIR(0)="E" D ^DIR S:'Y POP=1
  1. Q
  1. ;
  1. PC ; -- principle clinic
  1. W !,$E($P(^SC(PC,0),U),1,25) Q
  1. ;
  1. DEV ; -- device selection
  1. S %ZIS="PQ" D ^%ZIS K %ZIS Q
  1. ;
  1. HD ; -- heading
  1. W @IOF,!!,?2,"Next Available Appointment by Principle Clinic"
  1. N %,%H,%I,X D NOW^%DTC W ?60,%I(1),"/",%I(2),"/",$E(%I(3),2,3)
  1. W " ",$E($P(%,".",2),1,2),":",$E($P(%,".",2),3,4),!!
  1. I $G(PC),$O(^SC("AIHSPC",PC,SC)) W !,$E($P(^SC(PC,0),U),1,16)," ..cont."
  1. Q
  1. ;
  1. Q ; -- cleanup
  1. I IOST["C-",'$G(POP) D PRTOPT^ASDVAR
  1. D ^%ZISC,HOME^%ZIS Q
  1. ;
  1. QUE ; -- queued output
  1. S ZTRTN="EN^ASDPCNA",ZTDESC="Principle Clinic Next Appointment"
  1. D ^%ZTLOAD Q
  1. ;
  1. CK() ; -- active clinic? (yes=true)
  1. NEW X
  1. S X=$G(^SC(SC,"I")) Q:'$D(^SC(SC,"ST")) 0 Q:'$O(^("ST",DT)) 0
  1. Q $S($P(^SC(SC,0),U,3)'="C":0,'X:1,(DT>(X-1))&('$P(X,U,2)):0,1:1)
  1. ;
  1. NA() ; -- next appointment
  1. NEW X,Y,Z,J
  1. S Y=$O(^SC(SC,"ST",SDAY,0)) Q:'Y 0
  1. S X="#@!$* XXWVUTSRQPONMLKJIHGFEDCBA0123456789jklmnopqrstuvwxyz"
  1. S Z=$E(^SC(SC,"ST",SDAY,Y),6,$L(^SC(SC,"ST",SDAY,Y)))
  1. F J=1:1:$L(Z) I $E(X,$F(X,"0"),$L(X))[$E(Z,J) S J=999
  1. Q $S(J=999:1,1:0)
  1. ;
  1. NPC() ; -- principle clinic (none=false)
  1. Q $S($P($G(^SC(SC,"SL")),U,5):0,1:1)
  1. ;
  1. D(X1,X2,X) ; -- number of days
  1. S X2=DT D ^%DTC Q X
  1. ;
  1. SD(X1,X2,X) ; -- start day
  1. S X1=DT,X2=-1 D C^%DTC Q X