[613] | 1 | ECXSARXS ;BIR/DMA-SAS Report from Prescription Extract; 22 Sep 95 / 10:27 AM
|
---|
| 2 | ;;3.0;DSS EXTRACTS;**8**;Dec 22, 1997
|
---|
| 3 | ;
|
---|
| 4 | EN ;entry point from menu option
|
---|
| 5 | W @IOF,!!,"Prescription Extract SAS Report",!!
|
---|
| 6 | ;ecxaud=1 for 'sas' audit
|
---|
| 7 | S ECXHEAD="PRE",ECXAUD=1
|
---|
| 8 | ;select extract
|
---|
| 9 | D AUDIT^ECXUTLA(ECXHEAD,.ECXERR,.ECXARRAY,ECXAUD)
|
---|
| 10 | I ECXERR D AUDIT^ECXKILL Q
|
---|
| 11 | ;select all pharmacy sites/divisions
|
---|
| 12 | S ECXALL=1 D PRE^ECXDVSN1(.ECXDIV,ECXALL,.ECXERR)
|
---|
| 13 | I ECXERR D AUDIT^ECXKILL Q
|
---|
| 14 | W !!
|
---|
| 15 | S ECXPGM="PROCESS^ECXSARXS",ECXDESC="Prescription Extract SAS Report"
|
---|
| 16 | S ECXSAVE("ECXHEAD")="",ECXSAVE("ECXDIV(")="",ECXSAVE("ECXARRAY(")=""
|
---|
| 17 | W !
|
---|
| 18 | D DEVICE^ECXUTLA(ECXPGM,ECXDESC,.ECXSAVE)
|
---|
| 19 | I ECXSAVE("POP")=1 D Q
|
---|
| 20 | .W !!,?5,"Try agian later... exiting.",!
|
---|
| 21 | .D AUDIT^ECXKILL
|
---|
| 22 | I ECXSAVE("ZTSK")=0 D
|
---|
| 23 | .K ECXSAVE,ECXPGM,ECXDESC
|
---|
| 24 | .D PROCESS
|
---|
| 25 | I IO'=IO(0) D ^%ZISC
|
---|
| 26 | D HOME^%ZIS
|
---|
| 27 | D AUDIT^ECXKILL
|
---|
| 28 | Q
|
---|
| 29 | ;
|
---|
| 30 | PROCESS ;queued entry
|
---|
| 31 | N J,X,Y,JJ,SS,LN,PG,DIV,EC,ECFK,ECFL,ECQ,MAIL,NEWRX,COPAY,DEA,TOT,QFLG,DIQ,DR,DA,DIR,DIRUT,DTOUT,DUOUT
|
---|
| 32 | K ^TMP($J,"ECXAUD")
|
---|
| 33 | S ECXEXT=ECXARRAY("EXTRACT"),ECXDEF=ECXARRAY("DEF")
|
---|
| 34 | S (QFLG,PG)=0,$P(LN,"-",80)=""
|
---|
| 35 | ;get run date in external format
|
---|
| 36 | D NOW^%DTC S Y=$E(%,1,12) D DD^%DT S ECXRUN=Y
|
---|
| 37 | ;process the extract records
|
---|
| 38 | S J="" F S J=$O(^ECX(727.81,"AC",ECXEXT,J)) Q:'J I $D(^ECX(727.81,J,0)) S EC=^(0) D
|
---|
| 39 | .S DIV=$P(EC,U,10),MAIL=+$P(EC,U,13),NEWRX=+$P(EC,U,15),COPAY=+$P(EC,U,27),DEA=$P(EC,U,29)
|
---|
| 40 | .;non-cmop rxs only
|
---|
| 41 | .;feeder location is always "pre"_div
|
---|
| 42 | .I MAIL'=2 D
|
---|
| 43 | ..S ECFL="PRE"_DIV,ECFK=$P(EC,U,28),ECQ=+$P(EC,U,17)
|
---|
| 44 | ..S ^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 45 | ..;additional feeder key records for non-cmop rx
|
---|
| 46 | ..S ECFK="BASIC",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 47 | ..I MAIL=1 D
|
---|
| 48 | ...S ECFK="VAMAIL",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 49 | ...I NEWRX=1 D
|
---|
| 50 | ....S ECFK="NEWVMOP",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 51 | ..I MAIL=0&(NEWRX=1) D
|
---|
| 52 | ...S ECFK="NEWWIN",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 53 | ..I COPAY=1 D
|
---|
| 54 | ...S ECFK="COPAY",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 55 | ..I DEA="I" D
|
---|
| 56 | ...S ECFK="PREDEASP",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 57 | .;cmop rxs only
|
---|
| 58 | .;feeder location is "cmopdsu"_div, "cmopdis"_div, and also "pre"_div
|
---|
| 59 | .I MAIL=2 D
|
---|
| 60 | ..S ECFL="CMOPDSU"_DIV,ECFK=$P(EC,U,28),ECQ=+$P(EC,U,17),^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 61 | ..S ECFL="CMOPDIS"_DIV,ECFK="CMOPDISP",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 62 | ..S ECFL="PRE"_DIV D
|
---|
| 63 | ...;possibly three additional feeder key recods for cmop rx
|
---|
| 64 | ...I NEWRX=1 D
|
---|
| 65 | ....S ECFK="NEWCMOP",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 66 | ...I COPAY=1 D
|
---|
| 67 | ....S ECFK="COPAY",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 68 | ...I DEA="I" D
|
---|
| 69 | ....S ECFK="PREDEASP",ECQ=1,^(ECFK)=$G(^TMP($J,"ECXAUD",DIV,ECFL,ECFK))+ECQ
|
---|
| 70 | ;print the report
|
---|
| 71 | U IO
|
---|
| 72 | S DIV="" F S DIV=$O(^TMP($J,"ECXAUD",DIV)) Q:DIV="" D Q:QFLG
|
---|
| 73 | .D HEADER
|
---|
| 74 | .S ECFL="" F S ECFL=$O(^TMP($J,"ECXAUD",DIV,ECFL)) Q:ECFL="" D Q:QFLG
|
---|
| 75 | ..D:($Y+3>IOSL) HEADER Q:QFLG W !,?3,ECFL
|
---|
| 76 | ..S ECFK="" F S ECFK=$O(^TMP($J,"ECXAUD",DIV,ECFL,ECFK)) Q:ECFK="" S TOT=^(ECFK) D Q:QFLG
|
---|
| 77 | ...D:($Y+3>IOSL) HEADER Q:QFLG W ?40,ECFK,?68,$$RJ^XLFSTR(TOT,5," "),!
|
---|
| 78 | ;close
|
---|
| 79 | I $E(IOST)'="C" W @IOF
|
---|
| 80 | I $E(IOST)="C",'QFLG D
|
---|
| 81 | .S SS=22-$Y F JJ=1:1:SS W !
|
---|
| 82 | .S DIR(0)="E" W ! D ^DIR K DIR
|
---|
| 83 | D AUDIT^ECXKILL
|
---|
| 84 | Q
|
---|
| 85 | ;
|
---|
| 86 | HEADER ;print the header
|
---|
| 87 | D SASHEAD^ECXUTLA(DIV,ECXHEAD,.ECXDIV,.ECXARRAY,.PG)
|
---|
| 88 | Q
|
---|