| 1 | PSUPR0 ;BIR/PDW -  PROCUREMENT EXTRACT ENTRY ROUTINE ;25 AUG 1998 | 
|---|
| 2 | ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005 | 
|---|
| 3 | ; | 
|---|
| 4 | ;DBIA's | 
|---|
| 5 | ; Reference to file 4.3 supported by DBIA 10091 | 
|---|
| 6 | ; Reference to file 4   supported by DBIA 10090 | 
|---|
| 7 | ; | 
|---|
| 8 | EN ;EP from PSUCP | 
|---|
| 9 | ; | 
|---|
| 10 | ; pull variables from ^XTMP | 
|---|
| 11 | ; PSUJOB must exist and must be the job number used to store the data desired for this session. | 
|---|
| 12 | I '$D(PSUJOB) S PSUJOB=$J | 
|---|
| 13 | S PSUVARS="PSUSDT,PSUEDT,PSUMON,PSUDUZ,PSUMASF,PSUPBMG,PSUSMRY,ZTIO,PSUSNDR,PSUOPTS" | 
|---|
| 14 | F I=1:1:$L(PSUVARS,",") S @$P(PSUVARS,",",I)=$P(^XTMP("PSU_"_PSUJOB,1),U,I) | 
|---|
| 15 | PULLQ ;Q | 
|---|
| 16 | S PSUPRJOB=PSUJOB | 
|---|
| 17 | S PSUPRSUB="PSUPR_"_PSUPRJOB | 
|---|
| 18 | ;     Setup ^XTMP | 
|---|
| 19 | S X1=DT,X2=6 D C^%DTC | 
|---|
| 20 | K ^XTMP(PSUPRSUB) | 
|---|
| 21 | S ^XTMP(PSUPRSUB,0)=X_U_DT_"^  PBM Extract - Procurement Module " | 
|---|
| 22 | ; | 
|---|
| 23 | ;     Store Important variables | 
|---|
| 24 | K X | 
|---|
| 25 | S X="PSUSDT,PSUEDT,PSUMON,PSUDUZ,PSUMASF,PSUPBMG,PSUSMRY,PSUSNDR,PSUPRSUB,PSUJOB,PSURTN,PSUOPTN" | 
|---|
| 26 | F I=1:1 S Y=$P(X,",",I) Q:Y=""  I $D(@Y) S X(Y)=@Y | 
|---|
| 27 | M ^XTMP(PSUPRSUB,"SAVE")=X | 
|---|
| 28 | K X | 
|---|
| 29 | ;    Process the Procurement Files | 
|---|
| 30 | ; Code for CoreFLS  *  NOTE: This will be commented out as of 7/1/04 | 
|---|
| 31 | ;until such time as CoreFLS code is released. | 
|---|
| 32 | ;S X="PSAFLS" X ^%ZOSF("TEST") | 
|---|
| 33 | ;I $T D | 
|---|
| 34 | ;.S PSUPRSUB="PSUPR_"_$J | 
|---|
| 35 | ;.S PSUFLSFG=""    ;FLAG TO SIGNAL COREFLS IN EFFECT | 
|---|
| 36 | ;.D EN^PSUPR2 | 
|---|
| 37 | ;.D EN^PSUPR3 | 
|---|
| 38 | ;.K PSUFLSFG | 
|---|
| 39 | ;I '$T D          ;CoreFLS code. Commented out. When CoreFLS code is | 
|---|
| 40 | ;released put the next 3 lines inside a dot structure. | 
|---|
| 41 | D EN^PSUPR1 ; file 442 | 
|---|
| 42 | D EN^PSUPR2 ; file 58.811 | 
|---|
| 43 | D EN^PSUPR3 ; file 58.81 | 
|---|
| 44 | K PSUMSG | 
|---|
| 45 | D EN^PSUPR4(.PSUMSG) ; detailed mail message to Hines | 
|---|
| 46 | D EN^PSUPR5    ;Summary Mail Routines | 
|---|
| 47 | ; | 
|---|
| 48 | ;   return counters to master routine | 
|---|
| 49 | S PSUSUB="PSU_"_PSUJOB | 
|---|
| 50 | I $D(^XTMP(PSUSUB)),PSUDUZ,PSUPBMG M ^XTMP(PSUSUB,"CONFIRM")=PSUMSG | 
|---|
| 51 | ;D EN^PSUPR5 ;  Summary Mail Routines | 
|---|
| 52 | Q | 
|---|
| 53 | PRINT ;EP Tasking Entry Point for PRINT REPORT | 
|---|
| 54 | D EN^PSUPR6 | 
|---|
| 55 | Q | 
|---|
| 56 | EXIT ;EP Tasking Entry Point for Cleaning out XTMP  and Variables | 
|---|
| 57 | ;    Restore Important Variables | 
|---|
| 58 | K X | 
|---|
| 59 | M X=^XTMP(PSUPRSUB,"SAVE") | 
|---|
| 60 | K ^XTMP(PSUPRSUB) | 
|---|
| 61 | D VARKILL^PSUTL | 
|---|
| 62 | ;     Restore Important Variables CONTINUED | 
|---|
| 63 | S Y="" F  S Y=$O(X(Y)) Q:Y=""  S @Y=X(Y) | 
|---|
| 64 | K X | 
|---|
| 65 | Q | 
|---|
| 66 | ; | 
|---|
| 67 | CLEAR ;EP clear ^XTMP of PSUPR nodes | 
|---|
| 68 | S X="PSUPR" | 
|---|
| 69 | F  S X=$O(^XTMP(X)) Q:X=""  Q:$E(X,1,5)'="PSUPR"  W !,X K ^XTMP(X) | 
|---|
| 70 | Q | 
|---|
| 71 | MANUAL ;EP   Manual entry point for Running Procurement Module to | 
|---|
| 72 | ; exercise detailed message, summary messages, & Reports | 
|---|
| 73 | ; Some startup code borrowed from PSUCP for dates | 
|---|
| 74 | W !,"Mail messages are sent to the user only at this time",! | 
|---|
| 75 | S PSUMON=$E(DT,1,5),(PSUSMRY,PSUMASF,PSUPBMG)=1,PSUDUZ=DUZ | 
|---|
| 76 | S X=$P($G(^XMB(1,1,"XUS")),U,17),PSUSNDR=+$P(^DIC(4,X,99),U) | 
|---|
| 77 | K %DT | 
|---|
| 78 | S %DT="AEX",%DT(0)="-NOW",%DT("A")="STARTING Procurement Extract Date or ""^"" to quit : " D ^%DT | 
|---|
| 79 | I X["^" Q | 
|---|
| 80 | I 'Y Q | 
|---|
| 81 | S PSUSDT=+Y | 
|---|
| 82 | K %DT W ! | 
|---|
| 83 | S %DT="AEX",%DT(0)=PSUSDT,%DT("A")="ENDING Procurement Extract Date or ""^"" to restart: " D ^%DT | 
|---|
| 84 | I X["^" G MANUAL | 
|---|
| 85 | I 'Y G MANUAL | 
|---|
| 86 | S PSUEDT=+Y | 
|---|
| 87 | W ! | 
|---|
| 88 | S Y=PSUSDT D DD^%DT W !,"Starting Procurement Date",?30,Y | 
|---|
| 89 | S Y=PSUEDT D DD^%DT W !,"Ending Procurement Date:",?30,Y | 
|---|
| 90 | K DIR W ! | 
|---|
| 91 | S DIR(0)="Y",DIR("A")="Correct ? ",DIR("B")="YES" D ^DIR | 
|---|
| 92 | I 'Y G MANUAL | 
|---|
| 93 | K DIR W ! | 
|---|
| 94 | W !,"You can not queue to your terminal",! | 
|---|
| 95 | W !,"You can queue to a host file",! | 
|---|
| 96 | S DIR(0)="Y",DIR("A")="Do yo want reports printed ? ",DIR("B")="YES" D ^DIR | 
|---|
| 97 | K DIR W ! | 
|---|
| 98 | S PSURP=+Y | 
|---|
| 99 | S PSURC="COMPUTE^PSUPR0" | 
|---|
| 100 | I PSURP S PSURP="PRINT^PSUPR0" K PSUIOP | 
|---|
| 101 | E  K PSURP S PSUIOP="" ; MAIL MESSAGES ONLY | 
|---|
| 102 | S PSURX="EXIT^PSUPR0" | 
|---|
| 103 | S PSUNS="PSUPR*,PSUSDT,PSUEDT,PSU*" | 
|---|
| 104 | D EN^PSUDBQUE | 
|---|
| 105 | Q | 
|---|