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