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

PSURT1.m

Go to the documentation of this file.
  1. PSURT1 ;BIR/RDC - PATIENT DEMOGRAPHIC RETRANSMITION; APR 2, 2007 ; 4/2/07 11:01am
  1. ;;4.0;PHARMACY BENEFITS MANAGEMENT;**12**;MARCH, 2005;Build 19
  1. ;
  1. ; THIS PROGRAM WILL ALLOW THE RETRANSMITION OF THE PATIENT
  1. ; DEMOGRAPHIC DATA FOR THE PBM EXTRACT USING THE DATA
  1. ; FROM ^PSUDEM (59.9) FOR RUN TIME OPTIMIZATION
  1. ;
  1. EN ; ENTRY POINT
  1. NEW P,SDT,EDT,WHEN,NOGOOD,TMON,RMONTH,PMON,SMON,EMON,RTYPE,SRANGE,ERANGE
  1. S P=""
  1. ; move call to CLEANUP^PSUHL to routine PSUCP (PSU*4*12)
  1. S SDT=$O(^PSUDEM("B",P))
  1. I 'SDT W !,"NO DATA AVAILABLE - NOTIFY YOUR SUPERVISOR" Q
  1. S EDT=$O(^PSUDEM("B",P),-1)
  1. S Y=SDT X ^DD("DD") S START=Y
  1. S Y=EDT-1 X ^DD("DD") S STOP=Y
  1. W !,"This option will allow the retransmission of Patient Demographic and Outpatient Visit data stored in the PBM PATIENT DEMOGRAPHICS FILE. Statistical data starting from "
  1. W START
  1. W " through "
  1. W STOP
  1. W " is available for retransmission."
  1. W !
  1. ;
  1. ; let fileman get response
  1. S DIR("A")="Is this a monthly report",DIR(0)="YO"
  1. D ^DIR K DIR
  1. ;
  1. S NOGOOD=1
  1. I Y=1 S NOGOOD=0 D MONTH
  1. I Y=0 S NOGOOD=0 D RANGE
  1. Q:NOGOOD
  1. D PROCESS ; *** process the extract ***
  1. Q
  1. ;
  1. MONTH ; *** allow only whole months to be processed ***
  1. W !
  1. S TMON=$E(DT,4,5)
  1. S DIR("A")="Select Month/Year",DIR(0)="F" D ^DIR
  1. K DIR,DIR("A")
  1. I $D(DIRUT) S NOGOOD=1 Q
  1. S %DT="MP" D ^%DT K %DT
  1. I Y=-1 W !!,"Invalid Month/Year. Please Reenter a month and year." G MONTH
  1. S RMONTH=$$FMTE^XLFDT(Y) W " ("_RMONTH_")"
  1. ; S %DT(0)=SDT,%DT="MP"
  1. ; S X=Y
  1. ; D ^%DT K %DT
  1. I $E(Y,4,5)=TMON S Y=-1
  1. I Y=-1 W !!,"Data for the entire month of "_RMONTH_" is not available. Please reenter a month/year." G MONTH
  1. I Y>DT W !!,"You may not select a date from the future. Please reenter a month/year within the valid parameters." G MONTH
  1. ;
  1. S PSURMON=Y
  1. S SMON=$E(PSURMON,1,5)_"00"
  1. S EMON=$E(PSURMON,1,5)_"99"
  1. S RTYPE="M"
  1. Q
  1. ;
  1. RANGE ; *** process a range of dates from within file #59.9 ***
  1. S %DT(0)=SDT
  1. ;
  1. BGNRNG ;
  1. W !
  1. S %DT="PAE",%DT("A")="Select start date: " D ^%DT K %DT,%DT("A")
  1. I X="^"!($G(DTOUT)) S NOGOOD=1 Q
  1. I Y=-1 W !!,"Invalid date. Please reenter a start date." G BGNRNG
  1. I Y=DT W !!,"Today is not a valid start date. Please reenter a start date." G BGNRNG
  1. ;
  1. I Y>DT W !!,"You may not select a date in the future. Please reenter a start date." G BGNRNG
  1. ;
  1. S SRANGE=Y ; * start with this date ***
  1. ;
  1. ENDRNG ;
  1. W !
  1. S %DT="PAE",%DT("A")="Select stop date: " D ^%DT K %DT,%DT("A")
  1. I X="^"!($G(DTOUT)) S NOGOOD=1 Q
  1. I Y=-1 W !!,"Invalid date. Please reenter a stop date." G ENDRNG
  1. I Y=DT W !!,"Statistical data has not been compiled for current date. Please reenter a stop date." G ENDRNG
  1. ;
  1. I Y<SRANGE W !!,"You need to select a stop date greater than your start date. Please reenter your start/stop dates." G BGNRNG
  1. ;
  1. I Y>DT W !!,"You may not select a date in the future. Please reenter a stop date." G ENDRNG
  1. ;
  1. S ERANGE=Y ; * end at this date ***
  1. ;
  1. S RTYPE="R"
  1. K %DT(0)
  1. ;
  1. Q
  1. PROCESS ;
  1. I RTYPE="R" S (START,PSUSRNG)=SRANGE,(LAST,PSUERNG)=ERANGE
  1. I RTYPE="M" S START=SMON,LAST=EMON
  1. ;
  1. S PSUSMRY=0
  1. W !!
  1. S DIR("A")="Do you want a copy of this report sent to you in a MailMan message?"
  1. S DIR(0)="YO"
  1. S DIR("B")="NO"
  1. D ^DIR K DIR,DIR(0)
  1. I Y="^" Q
  1. I Y=1 S PSUMME=1,PSUDUZ=DUZ
  1. ;
  1. I RTYPE="M" D
  1. . W !!
  1. . S DIR("A")="Send this to the PBM section for addition to the master file?"
  1. . S DIR(0)="YO"
  1. . S DIR("B")="NO"
  1. . D ^DIR K DIR,DIR(0)
  1. . I Y=1 S PSUMSTR=1
  1. ;
  1. I Y="^" Q
  1. S PSUSTART=START,PSULAST=LAST
  1. K %DT,PSUWHEN
  1. D NOW^%DTC S %DT="REAX",%DT(0)="A",%DT("B")="NOW",%DT("A")="Queue to run at what time: " D ^%DT
  1. S PSUWHEN=Y
  1. S ZTRTN="EN^PSURT2",ZTIO="",ZTDESC="RETRASMISSION OF PT DEMOGRAPHICS",ZTDTH=PSUWHEN
  1. S ZTSAVE("PSUSTART")=""
  1. S ZTSAVE("PSULAST")=""
  1. S ZTSAVE("PSUMME")=""
  1. S ZTSAVE("PSUMSTR")=""
  1. S ZTSAVE("PSURMON")=""
  1. S ZTSAVE("PSUSRNG")=""
  1. S ZTSAVE("PSUERNG")=""
  1. S ZTSAVE("PSUDUZ")=""
  1. S ZTSAVE("PSUSMRY")=""
  1. ;
  1. ; D ^PSURT2
  1. ; Q
  1. ;
  1. D ^%ZTLOAD
  1. Q
  1. ;