| [613] | 1 | ECPROV3 ;BIR/MAM,JPW-Event Capture Provider Summary (cont'd) ;7 May 96
 | 
|---|
 | 2 |  ;;2.0; EVENT CAPTURE ;**5,8,18,29,47,56,63,72**;8 May 96
 | 
|---|
 | 3 |  ; This routine is used when printing the report for
 | 
|---|
 | 4 |  ; all ACCESSIBLE DSS Units
 | 
|---|
 | 5 |  ;JAM/3/7/03, This routine now combines ECPROV3, ECPROV4 and ECPROV5
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 |  S %H=$H D YX^%DTC S ECRDT=Y
 | 
|---|
 | 8 |  I ECL D  D LOC,PRINT Q
 | 
|---|
 | 9 |  .I ECPRV=1 D UNIT Q
 | 
|---|
 | 10 |  .I 'ECPRV S ECC=+$P(^ECD(ECD,0),U,11) Q
 | 
|---|
 | 11 |  S ECL=0 D
 | 
|---|
 | 12 |  .F I=0:0 S ECL=$O(^ECH("ADT",ECL)) Q:'ECL  D
 | 
|---|
 | 13 |  ..S ECLN=$P(^DIC(4,ECL,0),"^") I ECPRV D UNIT
 | 
|---|
 | 14 |  ..I 'ECPRV S ECC=+$P(^ECD(ECD,0),U,11)
 | 
|---|
 | 15 |  ..D LOC
 | 
|---|
 | 16 | PRINT ;Changes below were made by VMP to correct NOIS ATG-1003-32545
 | 
|---|
 | 17 |  S (ECLN,ECPN)=0,ECCN=""
 | 
|---|
 | 18 |  F I=0:0 S ECLN=$O(^TMP($J,ECLN)) Q:ECLN=""!(ECOUT)!(ECLN["^")  D
 | 
|---|
 | 19 |  .I 'ECPRV D CATS Q
 | 
|---|
 | 20 |  . S ECDN="" D NOUNIT F I=0:0 S ECDN=$O(^TMP($J,ECLN,ECDN)) Q:ECDN=""!(ECOUT)  D CATS
 | 
|---|
 | 21 |  K ECPNAM
 | 
|---|
 | 22 |  Q
 | 
|---|
 | 23 | CATS ; continue looping
 | 
|---|
 | 24 |  I $O(^TMP($J,ECLN,ECDN,""))']"" D PAGE W !!!,?12,"NO PROCEDURES" S ECPG=1 Q
 | 
|---|
 | 25 |  D PAGE Q:ECOUT  S ECPG=1,ECUN=0 F I=0:0 S ECUN=$O(^TMP($J,ECLN,ECDN,ECUN)) Q:ECUN=""!(ECOUT)  S ECINZ="^"_$O(^(ECUN,0)) D:$Y+7>IOSL PAGE Q:ECOUT  D PRO
 | 
|---|
 | 26 |  Q
 | 
|---|
 | 27 | PRO I $Y+10>IOSL D PAGE I ECOUT Q
 | 
|---|
 | 28 |  W !!,ECUN S ECCN=0 F I=0:0 S ECCN=$O(^TMP($J,ECINZ,ECCN)) D:ECCN="" TOTP Q:ECCN=""!(ECOUT)  D MORE
 | 
|---|
 | 29 |  Q
 | 
|---|
 | 30 | MORE ;
 | 
|---|
 | 31 |  ;ALB/ESD - Loop through to get procedure reason and print
 | 
|---|
 | 32 |  W !,?3,ECCN S ECPN=0,(ECPRSN,ECPI)=""
 | 
|---|
 | 33 |  F  S ECPN=$O(^TMP($J,ECINZ,ECCN,ECPN)) Q:ECPN=""!(ECOUT)  S ECUSER=1 D:$Y+7>IOSL PAGE Q:ECOUT  K ECUSER F  S ECPRSN=$O(^TMP($J,ECINZ,ECCN,ECPN,ECPRSN)) Q:ECPRSN=""!(ECOUT)  DO
 | 
|---|
 | 34 |  .S ECCPT=$S($P(ECPN,"~",3)="I":$P(ECPN,"~",2),1:$P($G(^EC(725,$P(ECPN,"~",2),0)),"^",5))
 | 
|---|
 | 35 |  .I ECCPT'="" D
 | 
|---|
 | 36 |  ..;Changes made by VMP to correct NOIS ATG-1003-32545
 | 
|---|
 | 37 |  ..;use end date/date range to get CPT description; CTD project.
 | 
|---|
 | 38 |  ..S ECPI=$$CPT^ICPTCOD(ECCPT,$P(ECED,".")),ECCPT=$P(ECPI,"^",2)
 | 
|---|
 | 39 |  .S EC725="" I $P(ECPN,"~",3)="E" S EC725=$G(^EC(725,+$P(ECPN,"~",2),0))
 | 
|---|
 | 40 |  .S ECPNAM=$S($P(ECPN,"~",3)="E":$P(EC725,"^",2)_" "_$P(EC725,"^"),$P(ECPN,"~",3)="I":$P(ECPI,"^",3),1:"UNKNOWN")
 | 
|---|
 | 41 |  .S ECPSY=$P(ECPN,"~",4),ECPSYN=""
 | 
|---|
 | 42 |  .I ECPSY'="" S ECPSYN=$P($G(^ECJ(ECPSY,"PRO")),"^",2)
 | 
|---|
 | 43 |  .W !,?6,$J(ECCPT_" ",6),$E(ECPNAM,1,40)
 | 
|---|
 | 44 |  .W:ECPSYN'="" " [",$E(ECPSYN,1,25),"]"
 | 
|---|
 | 45 |  .W:$D(ECRY) ?70,ECPRSN
 | 
|---|
 | 46 |  .W ?105,$J(^TMP($J,ECINZ,ECCN,ECPN,ECPRSN),6)
 | 
|---|
 | 47 |  .;print CPT procedure modifiers
 | 
|---|
 | 48 |  .S IEN=""
 | 
|---|
 | 49 |  .F  S IEN=$O(^TMP($J,ECINZ,ECCN,ECPN,ECPRSN,"MOD",IEN)) Q:IEN=""  D  I ECOUT Q
 | 
|---|
 | 50 |  ..;used end date to get description,CTD project
 | 
|---|
 | 51 |  ..S MODI=$$MOD^ICPTMOD(IEN,"I",$P(ECED,"."))
 | 
|---|
 | 52 |  ..S MOD=$P(MODI,"^",2) I MOD="" K MODI Q
 | 
|---|
 | 53 |  ..S MODESC=$P(MODI,"^",3) I MODESC="" S MODESC="UNKNOWN"
 | 
|---|
 | 54 |  ..S MODAMT=^TMP($J,ECINZ,ECCN,ECPN,ECPRSN,"MOD",IEN)
 | 
|---|
 | 55 |  ..W !?10,"- ",MOD," ",MODESC," (",MODAMT,")"
 | 
|---|
 | 56 |  ..I ($Y+3)>IOSL D PAGE
 | 
|---|
 | 57 |  .K MODESC,MOD,IEN,MODAMT,MODI,EC725
 | 
|---|
 | 58 |  Q
 | 
|---|
 | 59 | LOC S (ECDFN,ECOUT,^TMP($J,ECLN))=0
 | 
|---|
 | 60 |  F I=0:0 S ECDFN=$O(^ECH("ADT",ECL,ECDFN)) Q:'ECDFN  D
 | 
|---|
 | 61 |  .I ECPRV D GECD Q
 | 
|---|
 | 62 |  .D GMM
 | 
|---|
 | 63 |  Q
 | 
|---|
 | 64 | GECD S ECD=0 F I=0:0 S ECD=$O(^ECH("ADT",ECL,ECDFN,ECD)) Q:'ECD  D GMM
 | 
|---|
 | 65 |  Q
 | 
|---|
 | 66 | GMM S MM=ECSD F I=0:0 S MM=$O(^ECH("ADT",ECL,ECDFN,ECD,MM)) Q:'MM!(MM>ECED)  D LOC1
 | 
|---|
 | 67 |  Q
 | 
|---|
 | 68 | LOC1 S ECFN=0 F I=0:0 S ECFN=$O(^ECH("ADT",ECL,ECDFN,ECD,MM,ECFN)) Q:'ECFN  D UTL
 | 
|---|
 | 69 |  Q
 | 
|---|
 | 70 | UTL ; set ^TMP($J,"ECPROV"
 | 
|---|
 | 71 |  Q:'$D(^ECH(+ECFN,0))!(+$G(ECD)'=$P($G(^ECH(+ECFN,0)),"^",7))
 | 
|---|
 | 72 |  S ECEC=^ECH(+ECFN,0),ECV=+$P(ECEC,"^",10),ECC=+$P(ECEC,"^",8)
 | 
|---|
 | 73 |  ;S ECP=$P(ECEC,"^",9),ECU=+$P(ECEC,"^",11)
 | 
|---|
 | 74 |  S ECP=$P(ECEC,"^",9),ECU=$$GETPPRV^ECPRVMUT(ECFN,.ECUN),ECUN=$S(ECU:"UNKNOWN",1:$P(ECUN,"^",2))
 | 
|---|
 | 75 |  S ECCN=$S($P($G(^EC(726,ECC,0)),"^")]"":$P(^(0),"^"),1:"None")
 | 
|---|
 | 76 |  Q:ECP']""
 | 
|---|
 | 77 |  S ECD=+$P(ECEC,"^",7)
 | 
|---|
 | 78 |  I ECPRV=1 Q:'$D(ECDU(ECD))  S ECDN=ECDU(ECD)
 | 
|---|
 | 79 |  I ECPRV=2 S ECDN=$S($P($G(^ECD(ECD,0)),"^")]"":$P(^(0),"^"),1:"UNKNOWN")
 | 
|---|
 | 80 |  ;S ECUN=$S($P($G(^VA(200,ECU,0)),"^")]"":$P(^(0),"^"),1:"UNKNOWN")
 | 
|---|
 | 81 |  S ECPSY=+$O(^ECJ("AP",ECL,ECD,ECC,ECP,"")),ECPN=""
 | 
|---|
 | 82 |  S ECFILE=$P(ECP,";",2),ECFILE=$S($E(ECFILE)="I":81,$E(ECFILE)="E":725,1:"UNKNOWN")
 | 
|---|
 | 83 |  I ECFILE=81 S ECPN=$P($$CPT^ICPTCOD(+ECP,$P(ECED,".")),"^",3)
 | 
|---|
 | 84 |  I ECFILE=725 S ECPN=$P($G(^EC(725,+ECP,0)),"^")
 | 
|---|
 | 85 |  I ECFILE="UNKNOWN"!(ECPN="") S ECPN="UNKNOWN"
 | 
|---|
 | 86 |  ;Changes made by VMP to correct NOIS SDC-1003-60397
 | 
|---|
 | 87 |  S ECPN=$E(ECPN,1,5)_"~"_$P(ECP,";")_"~"_$E($P(ECP,";",2))_"~"_ECPSY
 | 
|---|
 | 88 |  ;Get Procedure CPT modifiers
 | 
|---|
 | 89 |  S ECMODF=0 K ECMOD
 | 
|---|
 | 90 |  I $O(^ECH(+ECFN,"MOD",0))'="" S ECMODF=$$MOD^ECUTL(+ECFN,"I",.ECMOD)
 | 
|---|
 | 91 |  ;
 | 
|---|
 | 92 |  ;ALB/ESD - Get procedure reason from EC Patient file (#721) record
 | 
|---|
 | 93 |  N ECLNK
 | 
|---|
 | 94 |  S ECPRSN=""
 | 
|---|
 | 95 |  S ECLNK=+$P(ECEC,"^",23)
 | 
|---|
 | 96 |  I +ECLNK>0 DO
 | 
|---|
 | 97 |  .S ECPRSN=$P($G(^ECL(ECLNK,0)),"^",1)
 | 
|---|
 | 98 |  .S:+ECPRSN'>0 ECPRSN="REASON NOT DEFINED"
 | 
|---|
 | 99 |  .S:+ECPRSN>0 ECPRSN=$P(^ECR(ECPRSN,0),"^",1)
 | 
|---|
 | 100 |  S:+ECLNK'>0 ECPRSN="REASON NOT DEFINED"
 | 
|---|
 | 101 |  I '$D(ECRY) S ECPRSN="REASON NOT DEFINED" ;group proc reason-not print
 | 
|---|
 | 102 |  I '$D(^TMP($J,ECLN,ECDN,ECUN)) S ECINC=ECINC+1,ECINZ="^"_ECINC,^(ECUN)=0,^(ECUN,ECINC)=0
 | 
|---|
 | 103 |  S ECINZ="^"_$O(^TMP($J,ECLN,ECDN,ECUN,0))
 | 
|---|
 | 104 |  I '$D(^TMP($J,ECINZ,ECCN)) S ^TMP($J,ECINZ,ECCN)=0
 | 
|---|
 | 105 |  ;
 | 
|---|
 | 106 |  ;ALB/ESD - Add procedure reason to ^TMP array
 | 
|---|
 | 107 |  I '$D(^TMP($J,ECINZ,ECCN,ECPN,ECPRSN)) S ^TMP($J,ECINZ,ECCN,ECPN,ECPRSN)=0
 | 
|---|
 | 108 |  S ^TMP($J,ECLN)=^TMP($J,ECLN)+ECV
 | 
|---|
 | 109 |  S ^TMP($J,ECLN,ECDN,ECUN)=^TMP($J,ECLN,ECDN,ECUN)+ECV
 | 
|---|
 | 110 |  S ^TMP($J,ECINZ,ECCN)=^TMP($J,ECINZ,ECCN)+ECV
 | 
|---|
 | 111 |  ;
 | 
|---|
 | 112 |  ;ALB/ESD - Add procedure reason to ^TMP array
 | 
|---|
 | 113 |  S ^TMP($J,ECINZ,ECCN,ECPN,ECPRSN)=^TMP($J,ECINZ,ECCN,ECPN,ECPRSN)+ECV
 | 
|---|
 | 114 |  ;ALB/JAM - Add Procedure CPT modifier to ^TMP array
 | 
|---|
 | 115 |  S MOD="" F  S MOD=$O(ECMOD(MOD)) Q:MOD=""  D
 | 
|---|
 | 116 |  . S ^TMP($J,ECINZ,ECCN,ECPN,ECPRSN,"MOD",MOD)=$G(^TMP($J,ECINZ,ECCN,ECPN,ECPRSN,"MOD",MOD))+ECV
 | 
|---|
 | 117 |  Q
 | 
|---|
 | 118 | PAGE ; end of page
 | 
|---|
 | 119 |  I $D(ECPG),$E(IOST,1,2)="C-" W !!,"Press <RET> to continue, or ^ to quit  " R X:DTIME I '$T!(X="^") S ECOUT=1 Q
 | 
|---|
 | 120 | HDR ; print heading
 | 
|---|
 | 121 |  W:$Y @IOF W !!,?49,"EVENT CAPTURE PROVIDER SUMMARY",!,?49,"FROM "_$P(ECDATE,"^")_"  TO "_$P(ECDATE,"^",2),!,?49,"Run Date : ",ECRDT
 | 
|---|
 | 122 |  W !!?3,"Category",!,?6,"CPT Code",?20,"Description"
 | 
|---|
 | 123 |  W:$D(ECRY) ?70,"Procedure Reason"
 | 
|---|
 | 124 |  W ?105,"Volume",!,?10,"CPT Modifier (volume)",!
 | 
|---|
 | 125 |  F LINE=1:1:132 W "-"
 | 
|---|
 | 126 |  W !!,"Location: "_ECLN,! W:ECDN]"" "DSS Unit: "_ECDN
 | 
|---|
 | 127 |  I ECPRV,$D(ECUSER) W !!,ECUN,!,ECCN
 | 
|---|
 | 128 |  Q
 | 
|---|
 | 129 | TOTP Q:ECOUT  W !,?105,"------",!,"Total Procedures for "_ECUN,?105,$J(^TMP($J,ECLN,ECDN,ECUN),6)
 | 
|---|
 | 130 |  Q
 | 
|---|
 | 131 | UNIT ; set units
 | 
|---|
 | 132 |  S CNT=0 F I=0:0 S CNT=$O(UNIT(CNT)) Q:'CNT  S ECDU(+UNIT(CNT))=$P(UNIT(CNT),"^",2)
 | 
|---|
 | 133 |  Q
 | 
|---|
 | 134 |  ;
 | 
|---|
 | 135 | NOUNIT ;Nothing there
 | 
|---|
 | 136 |  I $O(^TMP($J,ECLN,ECDN))']"" D PAGE W !!!,?12,"NO PROCEDURES",! S ECPG=1
 | 
|---|
 | 137 |  Q
 | 
|---|