[613] | 1 | PSULR5 ;BIR/PDW - LAB extract summary message generator ;10 JUL 1999
|
---|
| 2 | ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
|
---|
| 3 | ;DBIA(s)
|
---|
| 4 | ; Reference to file 40.8 supported by DBIA 2438
|
---|
| 5 | ;
|
---|
| 6 | EN ;EP generate Total & Cost summary
|
---|
| 7 | EN1 N PSUITT,PSUREC
|
---|
| 8 | S:'$D(PSULRJOB) PSULRJOB=PSUJOB
|
---|
| 9 | S:'$D(PSULRSUB) PSULRSUB="PSULR_"_PSULRJOB
|
---|
| 10 | ;
|
---|
| 11 | ;S PSUSDT=2970101
|
---|
| 12 | ;S PSUEDT=2980501
|
---|
| 13 | I '$D(^XTMP(PSULRSUB,"RECORDS")) G NODATA
|
---|
| 14 | DIV ;EP Loop by Division
|
---|
| 15 | S PSUDIV="" F S PSUDIV=$O(^XTMP(PSULRSUB,"SUMMARY",PSUDIV)) Q:PSUDIV="" D MESSAGE
|
---|
| 16 | Q
|
---|
| 17 | ;
|
---|
| 18 | MESSAGE ;EP Generate Summary Messages for a Division
|
---|
| 19 | ;
|
---|
| 20 | ;S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC ;**1
|
---|
| 21 | ;S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
|
---|
| 22 | MSG1 ; Generate 1st summary message
|
---|
| 23 | ;
|
---|
| 24 | S PSUT=0,PSUP=0 ; test & patient counters
|
---|
| 25 | ; loop to get totals from records stored
|
---|
| 26 | S DFN=0
|
---|
| 27 | F S DFN=$O(^XTMP(PSULRSUB,"SUMMARY",PSUDIV,DFN)) Q:DFN'>0 S PSUP=PSUP+1 D
|
---|
| 28 | . S PSUDC="" F S PSUDC=$O(^XTMP(PSULRSUB,"SUMMARY",PSUDIV,DFN,PSUDC)) Q:PSUDC="" D
|
---|
| 29 | .. S PSUND=0
|
---|
| 30 | .. F S PSUND=$O(^XTMP(PSULRSUB,"SUMMARY",PSUDIV,DFN,PSUDC,PSUND)) Q:PSUND'>0 S PSUT=PSUT+1
|
---|
| 31 | ;
|
---|
| 32 | S XMDUZ=DUZ
|
---|
| 33 | M XMY=PSUXMYS1
|
---|
| 34 | ;
|
---|
| 35 | S Y=PSUSDT X ^DD("DD") S PSUDTS=Y ; start date
|
---|
| 36 | S Y=PSUEDT X ^DD("DD") S PSUDTE=Y ; end date
|
---|
| 37 | N PSUMSG
|
---|
| 38 | S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC ;**1
|
---|
| 39 | S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
|
---|
| 40 | ;
|
---|
| 41 | I $D(^XTMP("PSU_"_PSUJOB,"DIV",PSUDIV)) D
|
---|
| 42 | .;VMP OIFO BAY PINES;ELR;PSU*3.0*31
|
---|
| 43 | .I '$L($P($G(^XTMP("PSU_"_PSUJOB,"DIV",PSUDIV)),U,1)) Q
|
---|
| 44 | .S PSUDIVNM=$P(^XTMP("PSU_"_PSUJOB,"DIV",PSUDIV),U,1)
|
---|
| 45 | ;
|
---|
| 46 | S PSUMSG(1)=" Laboratory Statistical Summary"
|
---|
| 47 | S PSUMSG(2)=" "_PSUDTS_" through "_PSUDTE_" for "_PSUDIVNM
|
---|
| 48 | S PSUMSG(3)=" "
|
---|
| 49 | S PSUMSG(4)="Total Patients "_PSUP
|
---|
| 50 | S PSUMSG(5)="Total Laboratory Tests "_PSUT
|
---|
| 51 | S PSUMSG(6)=" "
|
---|
| 52 | S XMSUB="V. 4.0 PBMLR "_$G(PSUMON)_" "_PSUDIV_" "_PSUDIVNM
|
---|
| 53 | S XMTEXT="PSUMSG("
|
---|
| 54 | S XMCHAN=1
|
---|
| 55 | D ^XMD
|
---|
| 56 | M ^XTMP(PSULRSUB,"REPORT1",PSUDIV)=PSUMSG
|
---|
| 57 | K PSUMSG
|
---|
| 58 | ;
|
---|
| 59 | MSG2 ; SUMMARY BY PATIENT
|
---|
| 60 | ;
|
---|
| 61 | ;
|
---|
| 62 | S PSUG="^XTMP(PSULRSUB,""REPORT2"",PSUDIV)"
|
---|
| 63 | K @PSUG
|
---|
| 64 | S @PSUG@(1)=" Laboratory Data Summary"
|
---|
| 65 | S @PSUG@(2)=" "_PSUDTS_" through "_PSUDTE_" for "_PSUDIVNM
|
---|
| 66 | S @PSUG@(3)=" "
|
---|
| 67 | S X="Patient SSN"
|
---|
| 68 | S X=$$SETSTR^VALM1("VA CODE",X,15,7)
|
---|
| 69 | S X=$$SETSTR^VALM1("Laboratory",X,24,10)
|
---|
| 70 | S X=$$SETSTR^VALM1("Results",X,42,7)
|
---|
| 71 | S X=$$SETSTR^VALM1("Flag",X,57,4)
|
---|
| 72 | S X=$$SETSTR^VALM1("Date/Time Taken",X,63,15)
|
---|
| 73 | S @PSUG@(4)=X
|
---|
| 74 | S X="",$P(X,"-",79)=""
|
---|
| 75 | S @PSUG@(5)=X
|
---|
| 76 | S PSULC=5
|
---|
| 77 | ; loop records stored
|
---|
| 78 | S DFN=0,DFN1="",PSUCD1=""
|
---|
| 79 | F S DFN=$O(^XTMP(PSULRSUB,"SUMMARY",PSUDIV,DFN)) Q:DFN'>0 D S DFN1=DFN
|
---|
| 80 | . ; loop drug codes
|
---|
| 81 | . S PSUCD=""
|
---|
| 82 | . F S PSUCD=$O(^XTMP(PSULRSUB,"SUMMARY",PSUDIV,DFN,PSUCD)) Q:PSUCD="" D S PSUCD1=PSUCD
|
---|
| 83 | .. ; loop tests
|
---|
| 84 | .. S PSUND=0
|
---|
| 85 | .. F S PSUND=$O(^XTMP(PSULRSUB,"SUMMARY",PSUDIV,DFN,PSUCD,PSUND)) Q:PSUND'>0 D SET
|
---|
| 86 | ;
|
---|
| 87 | S @PSUG@(PSULC+1)=" "
|
---|
| 88 | S XMSUB="V. 4.0 PBMLR "_$G(PSUMON)_" "_PSUDIV_" "_PSUDIVNM
|
---|
| 89 | S XMTEXT="^XTMP(PSULRSUB,""REPORT2"",PSUDIV,"
|
---|
| 90 | S XMCHAN=1
|
---|
| 91 | M XMY=PSUXMYS2
|
---|
| 92 | I '$G(PSUSMRY) D ^XMD
|
---|
| 93 | Q
|
---|
| 94 | ;
|
---|
| 95 | SET ;EP Set data into message
|
---|
| 96 | ;
|
---|
| 97 | S X=^XTMP(PSULRSUB,"SUMMARY",PSUDIV,DFN,PSUCD,PSUND)
|
---|
| 98 | S PSULRT=$P(X,U),PSULRR=$P(X,U,2)
|
---|
| 99 | S PSULD=$P(X,U,3),PSULRF=$P(X,U,4)
|
---|
| 100 | S PSULD0=$E(PSULD,4,5)_"/"_$E(PSULD,6,7)_"/"_$E(PSULD,2,3)
|
---|
| 101 | S X=$P(PSULD,".",2),X=$E(X,1,4) F Q:$L(X)=4 S X=X_0 ; fill time
|
---|
| 102 | S PSULD=PSULD0_" "_X
|
---|
| 103 | S X=""
|
---|
| 104 | I DFN=DFN1
|
---|
| 105 | E D PID^VADPT S X=$TR(VA("PID"),"-",""),DFN1=DFN,PSUCD1="" K VA
|
---|
| 106 | I PSUCD1=PSUCD
|
---|
| 107 | E S X=$$SETSTR^VALM1(PSUCD,X,15,5) S PSUCD1=PSUCD
|
---|
| 108 | S X=$$SETSTR^VALM1(PSULRT,X,24,$L(PSULRT))
|
---|
| 109 | S X=$$SETSTR^VALM1(PSULRR,X,42,$L(PSULRR))
|
---|
| 110 | S X=$$SETSTR^VALM1(PSULRF,X,57,$L(PSULRF))
|
---|
| 111 | S X=$$SETSTR^VALM1(PSULD,X,63,$L(PSULD))
|
---|
| 112 | S PSULC=PSULC+1
|
---|
| 113 | S @PSUG@(PSULC)=X
|
---|
| 114 | ;
|
---|
| 115 | Q
|
---|
| 116 | NODATA ;EP SEND NO DATA MESSAGE
|
---|
| 117 | S XMDUZ=DUZ
|
---|
| 118 | M XMY=PSUXMYS1
|
---|
| 119 | ;
|
---|
| 120 | S Y=PSUSDT X ^DD("DD") S PSUDTS=Y ; start date
|
---|
| 121 | S Y=PSUEDT X ^DD("DD") S PSUDTE=Y ; end date
|
---|
| 122 | S PSUDIV=PSUSNDR
|
---|
| 123 | S X=PSUDIV,DIC=40.8,DIC(0)="X",D="C" D IX^DIC ;**1
|
---|
| 124 | S X=+Y S PSUDIVNM=$$VAL^PSUTL(40.8,X,.01)
|
---|
| 125 | S XMSUB="V. 4.0 PBMLR "_$G(PSUMON)_" "_PSUDIV_" "_PSUDIVNM
|
---|
| 126 | S XMTEXT="^XTMP(PSULRSUB,""REPORT2"",PSUDIV,"
|
---|
| 127 | S XMCHAN=1
|
---|
| 128 | K X
|
---|
| 129 | S X(1)=" Laboratory Statistical Summary"
|
---|
| 130 | S X(2)=" "_PSUDTS_" through "_PSUDTE_" for "_PSUDIVNM
|
---|
| 131 | S X(3)=" "
|
---|
| 132 | S X(4)="No data to report"
|
---|
| 133 | S X(5)=" "
|
---|
| 134 | S XMTEXT="X("
|
---|
| 135 | S:$G(PSUDUZ) XMY(PSUDUZ)=""
|
---|
| 136 | D ^XMD
|
---|
| 137 | M ^XTMP(PSULRSUB,"REPORT1",PSUDIV)=X
|
---|
| 138 | S XMSUB="V. 4.0 PBMPR "_$G(PSUMON)_" "_PSUDIV_" "_PSUDIVNM
|
---|
| 139 | S X(1)=" Laboratory Data Summary"
|
---|
| 140 | M ^XTMP(PSULRSUB,"REPORT2",PSUDIV)=X ;store for print cycle
|
---|
| 141 | Q
|
---|