| 1 | ECPRSUM1 ;BIR/DMA,RHK,JPW-Provider Summary (1 to 7) ;21 SEP 96 | 
|---|
| 2 | ;;2.0; EVENT CAPTURE ;**5,18,33,47,62,63,61,72,88**;8 May 96;Build 2 | 
|---|
| 3 | S DIC=200,DIC(0)="AQEMZ",DIC("A")="Select Provider: " | 
|---|
| 4 | D ^DIC K DIC G END:Y<0 S ECU=+Y,ECUN=$P(Y,"^",2) | 
|---|
| 5 | D REASON^ECRUTL ;* Prompt to include Procedure Reasons | 
|---|
| 6 | I ($D(DIRUT))!($D(DUOUT)) G END | 
|---|
| 7 | BDATE K %DT S %DT="AEX",%DT("A")="Starting with Date: " | 
|---|
| 8 | D ^%DT G:Y<0 END S ECSD=Y | 
|---|
| 9 | EDATE K %DT S %DT="AEX",%DT("A")="Ending with Date: " D ^%DT G:Y<0 END | 
|---|
| 10 | I Y<ECSD D  G EDATE | 
|---|
| 11 | .W !!,"The ending date cannot be earlier than the starting date.  " | 
|---|
| 12 | .W "Please re-enter",!,"the ending date.",! | 
|---|
| 13 | S ECED=Y,ECDATE=ECSD_"^"_ECED | 
|---|
| 14 | DEV ;dev call | 
|---|
| 15 | W !!,"This report is formatted for 132 column output.",!! | 
|---|
| 16 | S %ZIS="Q",%ZIS("A")="Select Device: " D ^%ZIS G END:POP | 
|---|
| 17 | I $D(IO("Q")) K ZTSAVE S (ZTSAVE("ECRY"),ZTSAVE("ECSD"),ZTSAVE("ECDATE"),ZTSAVE("ECED"),ZTSAVE("ECU"),ZTSAVE("ECUN"))="",ZTDESC="Event Capture Provider Summary",ZTRTN="EN^ECPRSUM1" D ^%ZTLOAD,HOME^%ZIS K ZTSK G END | 
|---|
| 18 | ; | 
|---|
| 19 | EN ;QUEUED ENTRY POINT | 
|---|
| 20 | N ECPG,ECGT,EC,ECCAT,ECPXD,MODI,ECI,ECPRV,RK,A,ECX,EC725 | 
|---|
| 21 | U IO | 
|---|
| 22 | S (ECOUT,ECPG)=0 F ECI=1:1:7 S ECGT(ECI)=0,A(ECI)=0 | 
|---|
| 23 | K ^TMP($J) S ECOUT=0,ECSD=ECSD-.1,ECED=ECED+.3 | 
|---|
| 24 | F ECD=ECSD:0 S ECD=$O(^ECH("AC",ECD)) Q:'ECD  Q:ECD>ECED  F DA=0:0 S DA=$O(^ECH("AC",ECD,DA)) Q:'DA  S EC=$G(^ECH(DA,0)) D | 
|---|
| 25 | .K ECPRV S ECPRV=$$GETPRV^ECPRVMUT(DA,.ECPRV),ECX=0 I ECPRV Q | 
|---|
| 26 | .F ECI=1:1:7 S A(ECI)=0 | 
|---|
| 27 | .F ECI=1:1:7 S ECX=$O(ECPRV(ECX)) Q:'ECX  D | 
|---|
| 28 | ..S A(ECI)=$P(ECPRV(ECX),U)=ECU | 
|---|
| 29 | .S ECX=A(1)=A(2)=A(3)=A(4)=A(5)=A(6)=A(7) I 'ECX Q | 
|---|
| 30 | .S ECPAT=+$P(EC,"^",2),PA=$G(^DPT(ECPAT,0)),SS=$P(PA,"^",9) | 
|---|
| 31 | .S PA=$S($P(PA,"^")]"":$P(PA,"^"),1:"UNKNOWN"),ECP=$P(EC,"^",9) | 
|---|
| 32 | .Q:ECP']"" | 
|---|
| 33 | .S ECLOC=+$P(EC,U,4),ECUNIT=+$P(EC,U,7),ECCAT=+$P(EC,U,8) | 
|---|
| 34 | .S ECPSY=+$O(^ECJ("AP",ECLOC,ECUNIT,ECCAT,ECP,"")) | 
|---|
| 35 | .S ECPSYN=$P($G(^ECJ(ECPSY,"PRO")),"^",2) | 
|---|
| 36 | .S ECFILE=$P(ECP,";",2),ECFILE=$S($E(ECFILE)="I":81,$E(ECFILE)="E":725,1:"UNKNOWN") | 
|---|
| 37 | .I ECFILE="UNKNOWN" S ECPN="UNKNOWN" | 
|---|
| 38 | .S ECCPT=$S(ECFILE=81:+ECP,1:$P($G(^EC(725,+ECP,0)),"^",5)),ECPXD="" | 
|---|
| 39 | .I ECCPT'="" D | 
|---|
| 40 | ..S ECPXD=$$CPT^ICPTCOD(ECCPT,$P(ECED,".")),ECCPT=$P(ECPXD,"^",2)_" " | 
|---|
| 41 | .I ECFILE=81 S ECPN=$S($P(ECPXD,"^",3)]"":$P(ECPXD,"^",3),1:"UNKNOWN") | 
|---|
| 42 | .I ECFILE=725 S EC725=$G(^EC(725,+ECP,0)),ECPN=$P(EC725,"^",2)_" "_$P(EC725,"^") | 
|---|
| 43 | .S ECPTDS=ECCPT_ECPN_$S(ECPSYN]"":" ["_ECPSYN_"] ",1:"") | 
|---|
| 44 | .;Get Procedure CPT modifiers | 
|---|
| 45 | . K ECMOD S ECMODF=0 I $O(^ECH(DA,"MOD",0))'="" D | 
|---|
| 46 | ..S ECMODF=$$MOD^ECUTL(DA,"I",.ECMOD) | 
|---|
| 47 | ..;K ECMOD S ECMODF=$$MOD^ECUTL(DA,"I",.ECMOD) | 
|---|
| 48 | .; | 
|---|
| 49 | .;ALB/ESD - Get procedure reason from EC Patient file (#721) record | 
|---|
| 50 | .S ECPRSN="",ECLNK=+$P(EC,"^",23) | 
|---|
| 51 | .I +ECLNK>0 DO | 
|---|
| 52 | ..S ECPRSN=$P($G(^ECL(ECLNK,0)),"^",1) | 
|---|
| 53 | ..S:+ECPRSN'>0 ECPRSN="REASON NOT DEFINED" | 
|---|
| 54 | ..S:+ECPRSN>0 ECPRSN=$P(^ECR(ECPRSN,0),"^",1) | 
|---|
| 55 | .S:+ECLNK'>0 ECPRSN="REASON NOT DEFINED" | 
|---|
| 56 | .I '$D(ECRY) S ECPRSN="REASON NOT DEFINED" | 
|---|
| 57 | .; | 
|---|
| 58 | .;ALB/ESD - Add procedure reason to ^TMP array | 
|---|
| 59 | .S PRO=ECCPT_ECPN I PRO]"" S V=+$P(EC,"^",10) D | 
|---|
| 60 | ..F J=1:1:7 I A(J) S ^(J)=$G(^TMP($J,PRO,ECPRSN,PA_"^"_SS,J))+V D | 
|---|
| 61 | ...I $G(^TMP($J,PRO))="" S ^TMP($J,PRO)=ECPTDS | 
|---|
| 62 | ..;ALB/JAM - Add Procedure CPT modifier to ^TMP array | 
|---|
| 63 | ..S MOD="" F  S MOD=$O(ECMOD(MOD)) Q:MOD=""  D | 
|---|
| 64 | ...S ^TMP($J,PRO,ECPRSN,PA_"^"_SS,"MOD",MOD)=$G(^TMP($J,PRO,ECPRSN,PA_"^"_SS,"MOD",MOD))+V | 
|---|
| 65 | K ECLNK,MOD,ECPTDS | 
|---|
| 66 | ; | 
|---|
| 67 | PRINT ;print report | 
|---|
| 68 | S ECSD=$P(ECDATE,"^"),ECED=$P(ECDATE,"^",2) | 
|---|
| 69 | D HDR I '$D(^TMP($J)) W !!,?12,"No Event Capture Provider Summary for "_ECUN_" to report for the date range selected.",!! D PAGE G END | 
|---|
| 70 | F ECI=1:1:7 S A(ECI)=0 | 
|---|
| 71 | S (ECREAS,PA,PR)="" | 
|---|
| 72 | F  S PR=$O(^TMP($J,PR)),PA="" Q:PR=""  D  Q:ECOUT | 
|---|
| 73 | .W !,^TMP($J,PR) | 
|---|
| 74 | .F  S ECREAS=$O(^TMP($J,PR,ECREAS)) Q:ECREAS=""  D  Q:ECOUT | 
|---|
| 75 | ..F  S PA=$O(^TMP($J,PR,ECREAS,PA)) D:PA="" TOT Q:PA=""  D  Q:ECOUT | 
|---|
| 76 | ...S A=$G(^TMP($J,PR,ECREAS,PA,0)) | 
|---|
| 77 | ...W ! W:$D(ECRY) $E(ECREAS,1,23) | 
|---|
| 78 | ...W ?25,$E($P(PA,"^"),1,24),?50,$P(PA,"^",2) | 
|---|
| 79 | ...F J=1:1:7 S A=$G(^TMP($J,PR,ECREAS,PA,J)),A(J)=A(J)+A W ?10*J+50,$J(A,5,0) I J=7 I $Y+5>IOSL D PAGE Q:ECOUT  D HDR | 
|---|
| 80 | ...;print CPT procedure modifiers | 
|---|
| 81 | ...Q:ECOUT  S IEN="" | 
|---|
| 82 | ...F  S IEN=$O(^TMP($J,PR,ECREAS,PA,"MOD",IEN)) Q:IEN=""  D  I ECOUT Q | 
|---|
| 83 | ....S MODI=$$MOD^ICPTMOD(IEN,"I",$P(ECED,".")) | 
|---|
| 84 | ....S MOD=$P(MODI,U,2) I MOD="" Q | 
|---|
| 85 | ....S MODESC=$P(MODI,U,3)  I MODESC="" S MODESC="UNKNOWN" | 
|---|
| 86 | ....S MODAMT=^TMP($J,PR,ECREAS,PA,"MOD",IEN) | 
|---|
| 87 | ....W !?5,"- ",MOD," ",MODESC," (",MODAMT,")" | 
|---|
| 88 | ....I ($Y+4)>IOSL D PAGE Q:ECOUT  D HDR | 
|---|
| 89 | ...K MODESC,MOD,MODAMT | 
|---|
| 90 | W !!,?60 F RK=61:1:IOM W "*" | 
|---|
| 91 | W !,?35,"GRAND TOTAL - PROCEDURES" | 
|---|
| 92 | F J=1:1:7 W ?10*J+50,$J(ECGT(J),5,0) | 
|---|
| 93 | D:'ECOUT PAGE G END | 
|---|
| 94 | ; | 
|---|
| 95 | PAGE ; end of page | 
|---|
| 96 | I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR K DIR I 'Y S ECOUT=1 | 
|---|
| 97 | Q | 
|---|
| 98 | HDR ; | 
|---|
| 99 | W:$Y @IOF S ECPG=ECPG+1 | 
|---|
| 100 | W !!?33,"EVENT CAPTURE PROVIDER SUMMARY FOR ",ECUN,?118,"Page: ",ECPG,!,?33,"FOR THE DATE RANGE ",$$FMTE^XLFDT(ECSD)," TO ",$$FMTE^XLFDT(ECED),!!,"PROCEDURE",?85,"TOTALS AS PROVIDER #",! | 
|---|
| 101 | W:$D(ECRY) "PROCEDURE REASON" W ?25,"PATIENT",?52,"SSN",?64,1,?74,2,?84,3,?94,4,?104,5,?114,6,?124,7 | 
|---|
| 102 | W !,?5,"CPT MODIFIER (Volume of modifiers use)",! | 
|---|
| 103 | F RK=1:1:IOM W "-" | 
|---|
| 104 | W ! | 
|---|
| 105 | Q | 
|---|
| 106 | ; | 
|---|
| 107 | TOT W !,?60 F RK=61:1:IOM W "-" | 
|---|
| 108 | W !?35,"TOTAL PROCEDURES" | 
|---|
| 109 | F J=1:1:7 W ?10*J+50,$J(A(J),5,0) S ECGT(J)=ECGT(J)+A(J) | 
|---|
| 110 | W ! F ECI=1:1:7 S A(ECI)=0 | 
|---|
| 111 | Q | 
|---|
| 112 | ; | 
|---|
| 113 | END D ^ECKILL K ^TMP($J),ZTSK W @IOF | 
|---|
| 114 | K ^TMP($J) Q:$D(ECGUI) | 
|---|
| 115 | I $D(ZTQUEUED) S ZTREQ="@" | 
|---|
| 116 | D ^%ZISC | 
|---|
| 117 | Q | 
|---|