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

ABSPOS35.m

Go to the documentation of this file.
  1. ABSPOS35 ; IHS/FCS/DRS - survey pharmacy volume ;
  1. ;;1.0;PHARMACY POINT OF SALE;;JUN 21, 2001
  1. Q
  1. MAIN ;EP - option: ABSP VOLUME SURVEY
  1. W !,"Survey of pharmacy volume",!
  1. N RANGE S RANGE=$$DTR^ABSPOSU1 Q:RANGE<1
  1. D ^%ZIS
  1. D VOLUME($P(RANGE,U),$P(RANGE,U,2))
  1. D ^%ZISC
  1. Q
  1. VOLTEST N X1,X2,X,%H S X1=DT,X2=-90 D C^%DTC D VOLUME(X,DT) Q
  1. VOLUME(STARTDT,THRUDT) ;EP - survey daily volume (via AL and AJ indexes)
  1. ; Build ^TMP($J,index,date)=how many
  1. ; ^TMP($J,index)=total
  1. K ^TMP($J)
  1. N INDEX,RXI,RXR,WEEKDAY,I,X,DATE,NDAYS,COUNT,WKTOTAL
  1. N RPTDATE S RPTDATE=$$NOWEXT^ABSPOSU1
  1. I '$D(THRUDT) S THRUDT=DT
  1. N YEAR S YEAR=$$YEAR(STARTDT) D HEADING
  1. S DATE=STARTDT,WKTOTAL=0,NDAYS=0
  1. F D Q:DATE>THRUDT
  1. . F INDEX="AL","AJ" D
  1. . . S COUNT=$$COUNT(DATE,INDEX)
  1. . . S ^TMP($J,INDEX,DATE)=COUNT
  1. . . S ^TMP($J,INDEX)=$G(^TMP($J,INDEX))+COUNT
  1. . . S WKTOTAL=WKTOTAL+COUNT
  1. . . I INDEX="AL" D
  1. . . . I $$WKDAY(DATE)=0 W $$MMMDD(DATE)
  1. . . . W ?$$WKDAY(DATE)+1*8,$J(COUNT,5)
  1. . . . I $$WKDAY(DATE)=6 W ?70,$J(WKTOTAL,6),! S WKTOTAL=0
  1. . . . I $$EOPQ^ABSPOSU8(2,,"D HEADING^"_$T(+0)) S DATE=9999999
  1. . S NDAYS=NDAYS+1
  1. . S DATE=$$NEXTDAY(DATE) Q:DATE>THRUDT
  1. . I $$YEAR(DATE)'=YEAR D
  1. . . S YEAR=$$YEAR(DATE)
  1. . . D HEADING
  1. W:$X>0 !
  1. D EOPQ^ABSPOSU8(4,,"D HEADING^"_$T(+0))
  1. W "INDEX",?10,"Total",?20,"Average",!
  1. F INDEX="AL","AJ" D
  1. . W INDEX,?10,^TMP($J,INDEX)
  1. . W ?20,$J(^TMP($J,INDEX)/NDAYS,6,1),!
  1. D ENDRPT^ABSPOSU5()
  1. Q
  1. HEADING ;
  1. W @IOF
  1. W "Survey of Pharmacy Volume (",$T(+0),")",?60,RPTDATE,!
  1. W "For " D W !
  1. . N Y S Y=$P(RANGE,U) X ^DD("DD") W Y
  1. . W " through "
  1. . S Y=$P(RANGE,U,2) X ^DD("DD") W Y
  1. . W !
  1. W !,YEAR
  1. F I=0:1:6 W ?I+1*8," ",$P("MON,TUE,WED,THU,FRI,SAT,SUN",",",I+1)
  1. W ?70,"WK. TOTAL",!
  1. Q
  1. COUNT(DATE,INDEX) ;
  1. N C,D,RXI,RXR S C=0
  1. S D=DATE F D S D=$O(^PSRX(INDEX,D)) Q:D="" Q:D\1'=DATE
  1. . S RXI="" F S RXI=$O(^PSRX(INDEX,D,RXI)) Q:RXI="" D
  1. . . S RXR="" F S RXR=$O(^PSRX(INDEX,D,RXI,RXR)) Q:RXR="" D
  1. . . . S C=C+1
  1. Q C
  1. WKDAY(X) ; given X = Fileman date return 0 = Monday, 1 = Tuesday, etc.
  1. Q $$DOLLARH(X)+3#7
  1. DOLLARH(X) ; given X = Fileman date, return $H date
  1. N %H,%T,%Y D H^%DTC Q %H
  1. NEXTDAY(X1) ; given X = Fileman date, return next day's Fileman date
  1. N X2 S X2=1 N X,%H D C^%DTC Q X
  1. YEAR(Y) X ^DD("DD") Q $P($P(Y,"@"),",",2)
  1. MMMDD(Y) X ^DD("DD") Q $P(Y,",")