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

ASDNAA.m

Go to the documentation of this file.
  1. ASDNAA ; IHS/ADC/PDW/ENM - NEXT AVAIL APPT REPORT ; [ 03/25/1999 11:48 AM ]
  1. ;;5.0;IHS SCHEDULING;;MAR 25, 1999
  1. ;
  1. S %ZIS="PQ" D ^%ZIS G END:POP
  1. I $D(IO("Q")) D Q
  1. . S ZTRTN="START^ASDNAA",ZTDESC="NEXT AVAIL APPT"
  1. . D ^%ZTLOAD K ZTSK,IO("Q") D HOME^%ZIS,END
  1. ;
  1. START ;EP; called by ztload
  1. U IO D LOOP,PRINT,END Q
  1. ;
  1. ;
  1. LOOP ; -- loop thru clinics for appts
  1. NEW ASDC,ASDT,ASDS,I,J,ASDCT,X
  1. K ^TMP("ASDNAA",$J) S ASDC=0
  1. F S ASDC=$O(^SC(ASDC)) Q:'ASDC D
  1. . Q:'$$ACTV^ASDUT(ASDC) ;inactive
  1. . S ASDT=DT-.0001,ASDEND=$$FMADD^XLFDT(DT,13)
  1. . F S ASDT=$O(^SC(ASDC,"ST",ASDT)) Q:'ASDT!(ASDT>ASDEND) D
  1. .. S ASDS=$G(^SC(ASDC,"ST",ASDT,1)) Q:ASDS=""
  1. .. Q:ASDS["CANCELLED"
  1. .. S ASDS=$P(ASDS,"|",2,999)
  1. .. F I="|","[","]","*"," ","0" S ASDS=$$STRIP^XLFSTR(ASDS,I)
  1. .. ;
  1. .. ; -- count up appts left
  1. .. S ASDCT=0
  1. .. F I=1:1:9 Q:ASDS="" D
  1. ... S X=ASDS F J=1:1 Q:X="" S:$E(X)=I ASDCT=ASDCT+I S X=$E(X,2,99)
  1. ... S ASDS=$$STRIP^XLFSTR(ASDS,I)
  1. .. ;
  1. .. ; -- sort by prin clinic and date
  1. .. S ^TMP("ASDNAA",$J,$$PC(ASDC),$$CLA(ASDC),ASDT)=ASDCT
  1. Q
  1. ;
  1. PRINT ; -- loop thru ^tmp and print
  1. NEW ASDPC,ASDC,ASDT
  1. S ASDPG=0,ASDQ="" D DAYS,HED
  1. S ASDPC=0
  1. F S ASDPC=$O(^TMP("ASDNAA",$J,ASDPC)) Q:ASDPC=""!(ASDQ=U) D
  1. . S ASDC=0
  1. . F S ASDC=$O(^TMP("ASDNAA",$J,ASDPC,ASDC)) Q:ASDC=""!(ASDQ=U) D
  1. .. I $Y>(IOSL-4) D NEWPG Q:ASDQ=U
  1. .. I ASDPC'=ASDC,$$FIRST W !!,"Principal Clinic: ",ASDPC
  1. .. I ASDPC=ASDC W !
  1. .. W !,ASDC,?8,"|"
  1. .. S ASDT=0 F S ASDT=$O(ASDAYS(ASDT)) Q:ASDT=""!(ASDQ=U) D
  1. ... W $J($G(^TMP("ASDNAA",$J,ASDPC,ASDC,ASDT)),3)," |"
  1. Q
  1. ;
  1. END ; -- eoj
  1. I IOST["C-",$G(ASDQ)'=U D PRTOPT^ASDVAR
  1. K ASDEND,ASDQ,ASDPG,DIR,ASDAYS K ^TMP("ASDNAA",$J) D ^%ZISC Q
  1. ;
  1. NEWPG ; -- end of page control
  1. I IOST'["C-" D HED Q
  1. K DIR S DIR(0)="E" D ^DIR S ASDQ=X
  1. I ASDQ'=U D HED
  1. Q
  1. ;
  1. HED ; -- heading
  1. NEW X
  1. I ASDPG>0!(IOST["C-") W @IOF
  1. W !!?20,"NUMBER OF APPTS AVAILABLE BY CLINIC AND DATE"
  1. S ASDPG=ASDPG+1 W ?70,"Page ",ASDPG
  1. S X=$$FMTE^XLFDT(DT)_" to "_$$FMTE^XLFDT(ASDEND)
  1. W !?(80-$L(X)/2),X,!
  1. W !?8,"| " S X=0 F S X=$O(ASDAYS(X)) Q:X="" W $E(X,6,7)," | "
  1. W !,$$REPEAT^XLFSTR("=",80)
  1. Q
  1. ;
  1. DAYS ; -- creates array of date range
  1. NEW X
  1. K ASDAYS S ASDAYS(DT)="",X=DT
  1. F S X=$$FMADD^XLFDT(X,1) Q:X>ASDEND S ASDAYS(X)=""
  1. Q
  1. ;
  1. CLA(C) ; -- returns clinic abbrev
  1. Q $S($P(^SC(C,0),U,2)]"":$P(^(0),U,2),1:$E($$CLN(C),1,8))
  1. ;
  1. CLN(C) ; -- returns clinic's name
  1. Q $P(^SC(C,0),U)
  1. ;
  1. PC(C) ; -- returns clinic's prin clinic
  1. NEW X S X=$P($G(^SC(C,"SL")),U,5)
  1. Q $S(X="":"none",1:$$CLN(X))
  1. ;
  1. FIRST() ; -- returns 1 if first under prin clinic
  1. I ASDC=$O(^TMP("ASDNAA",$J,ASDPC,0)) Q 1
  1. Q 0