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

PSOEOPNW.m

Go to the documentation of this file.
  1. PSOEOPNW ;EPIP/RTW - End of Prescription Numbering Warning ; 7/11/17 8:53AM
  1. ;;7.0;OUTPATIENT PHARMACY;**452**;DEC 1997;Build 56
  1. ;---------------------------------------------------------------------
  1. ; ICR# TYPE DESCRIPTION
  1. ;----- ------- ------------------------------------------
  1. ;10063 Support %ZTLOAD
  1. ;10086 Support %ZIS
  1. ;10089 Support %ZISC
  1. ;10003 Support ^%DT
  1. ;10103 Support ^XLFDT: $$FMTE, $$NOW
  1. ;---------------------------------------------------------------------
  1. S %ZIS="Q" D ^%ZIS G:POP EXIT
  1. I $D(IO("Q")) S ZTRTN="CHECK2^PSOEOPNW" D ^%ZTLOAD,HOME^%ZIS G EXIT
  1. CHECK2 ;
  1. U IO
  1. CHECK ;
  1. N PSORXLMT,PSOSORT
  1. I $D(^PS(59.7,1,48)),$G(^PS(59.7,1,48)) S PSORXLMT=$P(^PS(59.7,1,48),U),^TMP("PSOEOPNW",0)="9999999^"_$$FMTE^XLFDT($$NOW^XLFDT,"1M")_"^End of Prescription Numbering Warning^"_PSORXLMT
  1. I '$D(^TMP("PSOEOPNW")) S ^TMP("PSOEOPNW",0)="9999999^"_$$FMTE^XLFDT($$NOW^XLFDT,"1M")_"^End of Prescription Numbering Warning^1000"
  1. K ^TMP($J)
  1. S PSOLINE=1
  1. S PSOLIMIT=$P(^TMP("PSOEOPNW",0),U,4)
  1. S ^TMP($J,PSOLINE)="LIMIT: "_PSOLIMIT,PSOLINE=PSOLINE+1
  1. F PSOIEN=0:0 S PSOIEN=$O(^PS(59,PSOIEN)) Q:'PSOIEN DO
  1. . Q:$E($P(^PS(59,PSOIEN,0),U),1,2)="ZZ"
  1. . I $G(^PS(59,PSOIEN,"I")) Q:$P(^PS(59,PSOIEN,"I"),U)'>DT
  1. . S PSOLOW=$P($G(^PS(59,PSOIEN,3)),U,1),PSOMAX=$P($G(^PS(59,PSOIEN,3)),U,2),PSOLAST=$P($G(^PS(59,PSOIEN,3)),U,3)
  1. . S PSODIFF=PSOMAX-PSOLAST
  1. . S PSOSORT=$P($G(^PS(59,PSOIEN,2)),U,1) ;RTW added to check to see if a site sorts Narcotics separately.
  1. . I PSODIFF<PSOLIMIT,($G(PSOSORT)) DO WARN("NARCOTIC") ;RTW
  1. . S PSOLOW=$P($G(^PS(59,PSOIEN,8)),U,1),PSOMAX=$P($G(^PS(59,PSOIEN,8)),U,2),PSOLAST=$P($G(^PS(59,PSOIEN,8)),U,3)
  1. . S PSODIFF=PSOMAX-PSOLAST
  1. . I PSODIFF<PSOLIMIT DO WARN("PRESCRIPTION #")
  1. ;
  1. D:PSOLINE>2
  1. . S $P(^TMP("PSOEOPNW",0),U,2)=$$FMTE^XLFDT($$NOW^XLFDT,"1M")
  1. . S $P(^TMP("PSOEOPNW",0),U,4)=PSOLIMIT
  1. . S XMSUB="End of Prescribing Numbering WARNING"
  1. . S (XMDUZ,DUZ)=.5
  1. . S XMTEXT="^TMP($J)"
  1. . S XMY("G.PHARMACY SUPERVISORS")=""
  1. . S XMINSTR("FLAGS")="P"
  1. . DO SENDMSG^XMXAPI(XMDUZ,XMSUB,XMTEXT,.XMY,.XMINSTR)
  1. G EXIT
  1. WARN(PSOFOO) ;
  1. S ^TMP($J,PSOLINE)="",PSOLINE=PSOLINE+1
  1. S ^TMP($J,PSOLINE)="SITE: "_$P(^PS(59,PSOIEN,0),U),PSOLINE=PSOLINE+1
  1. S ^TMP($J,PSOLINE)=PSOFOO_" LOWER BOUND : "_PSOLOW,PSOLINE=PSOLINE+1
  1. S ^TMP($J,PSOLINE)=PSOFOO_" UPPER BOUND : "_PSOMAX,PSOLINE=PSOLINE+1
  1. S ^TMP($J,PSOLINE)="LAST "_PSOFOO_" ISSUED : "_PSOLAST,PSOLINE=PSOLINE+1
  1. S ^TMP($J,PSOLINE)="There are "_PSODIFF_" Numbers left, a new series needs to be defined.",PSOLINE=PSOLINE+1
  1. I PSODIFF<250 S ^TMP($J,PSOLINE)="*** EXTREMELY LOW ***",PSOLINE=PSOLINE+1
  1. QUIT
  1. EXIT ;
  1. K %ZIS,PSODIFF,PSOFOO,PSOIEN,PSOLAST,PSOLIMIT,PSOLINE,PSOLOW,PSOMAX,POP,XMDUZ,XMINSTR,XMSUB
  1. K XMTEXT,XMY,ZTRTN,^TMP($J),^TMP("PSOEOPNW")
  1. D:$D(ZTQUEUED) KILL^%ZTLOAD
  1. D ^%ZISC QUIT