[613] | 1 | PXRRMDR ;BP/WLC - PCE Missing Data Report ;11 Feb 04 10:10 AM
|
---|
| 2 | ;;1.0;PCE;**124,174**;FEB 11, 2004
|
---|
| 3 | ; 04/11/05 WLC changed to check for AO, IR and EC, only if SC'=YES
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | EN N PX,PXPAGE,PXLOC,PXPROV,SDDIV,ZTSAVE,%DT,DIR,DTOUT,DUOUT,X,Y,POP,PXDT,PXDS,RPTYP,EDT,PAT,SSN,DT,TY,CBU,VDT,LOC,PROV,SORT,SORTHDR,CNT,PRIO
|
---|
| 7 | S (POP,PXPAGE)=0
|
---|
| 8 | K PXDS
|
---|
| 9 | D HOME^%ZIS S:'$D(IOF) IOF=FF W @IOF,!!
|
---|
| 10 | S X=$$CTR("PCE Missing Data Report")
|
---|
| 11 | W !! D DATASRC^PXRRMDR1 G:POP EXIT ; sets PXDS() PX*1.0*174
|
---|
| 12 | W @IOF,!! S X=$$CTR("**** Date Range Selection ****")
|
---|
| 13 | W !!! S %DT="AEPX",%DT("A")="Beginning date: " D ^%DT G:Y<1 EXIT S PX("BDT")=Y
|
---|
| 14 | EDT S %DT("A")=" Ending date: " W ! D ^%DT G:Y<1 EXIT
|
---|
| 15 | I Y<PX("BDT") W !!,$C(7),"End date cannot be before begin date!",! G EDT
|
---|
| 16 | S PX("EDT")=Y_.999999
|
---|
| 17 | W @IOF,!! S X=$$CTR("*** Report Sort Selection ***")
|
---|
| 18 | W !!! K DIR S SORTHDR="DATA SOURCE^CPT^ICD9^PATIENT^ELIGIBILITY"
|
---|
| 19 | F LOOP=1:1:$L(SORTHDR,U) S DESC=$P(SORTHDR,U,LOOP) W !,"("_LOOP_") "_DESC
|
---|
| 20 | W ! S DIR(0)="N^^I X<1!(X>5) K X",DIR("A")="Enter number between 1 and 5" D ^DIR Q:$D(DIRUT) S PXSRT=+X
|
---|
| 21 | S DIR(0)="S^D:DETAILED REPORT;S:STATISTICS ONLY",DIR("A")="Select report type",DIR("B")="DETAILED REPORT" D ^DIR Q:$D(DIRUT)
|
---|
| 22 | S RPTYP=Y
|
---|
| 23 | W !!,"This report requires 132 column output.",!
|
---|
| 24 | S %ZIS="QM" D ^%ZIS Q:POP
|
---|
| 25 | I $D(IO("Q")) D G EXIT
|
---|
| 26 | . S ZTRTN="RUN^PXRRMDR",ZTDESC="PCE MISSING DATA REPORT"
|
---|
| 27 | . S ZTSAVE("PX*")=""
|
---|
| 28 | . S ZTSAVE("RPTYP")="",ZTSAVE("SORTHDR")=""
|
---|
| 29 | . D ^%ZTLOAD W !!,$S($D(ZTSK):"This job has been queued. The task number is "_ZTSK_".",1:"Unable to queue this job.")
|
---|
| 30 | .K ZTSK,IO("Q"),ZTSAVE D HOME^%ZIS
|
---|
| 31 | ;
|
---|
| 32 | RUN ;
|
---|
| 33 | U IO
|
---|
| 34 | K ^TMP("PXCRPW",$J),DIR S (PXOUT)=""
|
---|
| 35 | N LOOP,PXDT,I,VSN,VISITS,CLASSIF
|
---|
| 36 | S PXDT=(PX("BDT")-1)_.99999 K ^TMP("PXCRPW",$J)
|
---|
| 37 | F S PXDT=$O(^AUPNVSIT("ADEL",PXDT)) Q:PXDT>PX("EDT")!('PXDT) D
|
---|
| 38 | . S VSN=0 F S VSN=$O(^AUPNVSIT("ADEL",PXDT,VSN)) Q:'VSN D
|
---|
| 39 | . . S VISITS=$P($G(^AUPNVSIT(VSN,812)),U,3) S:VISITS="" VISITS="Unknown"
|
---|
| 40 | . . Q:'$D(PXDS(VISITS))
|
---|
| 41 | . . D ENCEVENT^PXKENC(VSN,0)
|
---|
| 42 | . . Q:$P($G(^TMP("PXKENC",$J,VSN,"VST",VSN,0)),U,7)="E" ;Historic encounter PX*1.0*174
|
---|
| 43 | . . Q:$$TESTPAT^VADPT($P($G(^TMP("PXKENC",$J,VSN,"VST",VSN,0)),U,5)) ;Test patient PX*1.0*174
|
---|
| 44 | . . N OE S OE=$O(^SCE("AVSIT",VSN,0)) Q:'OE Q:$P(^SCE(OE,0),U,6)]"" Q:$P(^SCE(OE,0),U,12)=12 ;Check if a child encounter, non-count PX*1.0*174
|
---|
| 45 | . . I '$D(^TMP("PXKENC",$J,VSN,"CPT")) D SET("Visit is missing a Procedure Code",1) Q
|
---|
| 46 | . . I $$EXOE^SDCOU2(OE) Q ;Determine if Encounter is Exempt from Outpatient Classifications and Diagnoses PX*1.0*174
|
---|
| 47 | . . N I,J S (I,CNT)=0 F S I=$O(^TMP("PXKENC",$J,VSN,"CPT",I)) Q:'I D
|
---|
| 48 | . . . S CNT=0 F J=5,9,10,11,12,13,14,15 I $P(^TMP("PXKENC",$J,VSN,"CPT",I,0),U,J) S CNT=CNT+1
|
---|
| 49 | . . . I CNT=0 D SET("Procedure: "_$$DISPLYP($P(^TMP("PXKENC",$J,VSN,"CPT",I,0),U))_" missing assoc. DXs",1)
|
---|
| 50 | . . S (I,J)=0 F S I=$O(^TMP("PXKENC",$J,VSN,"POV",I)) Q:'I D
|
---|
| 51 | . . . K CLASSIF S DFN=$$GET1^DIQ(9000010,VSN_",",.05,"I")
|
---|
| 52 | . . . I $$AO^SDCO22(DFN) S CLASSIF(1)=""
|
---|
| 53 | . . . I $$IR^SDCO22(DFN) S CLASSIF(2)=""
|
---|
| 54 | . . . I $$SC^SDCO22(DFN) S CLASSIF(3)=""
|
---|
| 55 | . . . I $$EC^SDCO22(DFN) S CLASSIF(4)=""
|
---|
| 56 | . . . I $$MST^SDCO22(DFN) S CLASSIF(5)=""
|
---|
| 57 | . . . I $$HNC^SDCO22(DFN) S CLASSIF(6)=""
|
---|
| 58 | . . . I +$P($$CVEDT^DGCV(DFN,PXDT),"^",3) S CLASSIF(7)=""
|
---|
| 59 | . . . I $D(CLASSIF),'$D(^TMP("PXKENC",$J,VSN,"POV",I,800)) D SET("Diagnosis: "_$$DISPLYDX($P(^TMP("PXKENC",$J,VSN,"POV",I,0),U))_" missing SC/EI",1) Q
|
---|
| 60 | . . . S J="" F S J=$O(CLASSIF(J)) Q:'J D
|
---|
| 61 | . . . . N SCEIREC S SCEIREC=$G(^TMP("PXKENC",$J,VSN,"POV",I,800))
|
---|
| 62 | . . . . I J=3&($P(SCEIREC,U,1)="") D SET("Diagnosis: "_$$DISPLYDX($P(^TMP("PXKENC",$J,VSN,"POV",I,0),U))_" missing Service Connect.",1)
|
---|
| 63 | . . . . I J=1&($P(SCEIREC,U,2)="")&($P(SCEIREC,U,1)'=1) D SET("Diagnosis: "_$$DISPLYDX($P(^TMP("PXKENC",$J,VSN,"POV",I,0),U))_" missing Agent Orange",3)
|
---|
| 64 | . . . . I J=2&($P(SCEIREC,U,3)="")&($P(SCEIREC,U,1)'=1) D SET("Diagnosis: "_$$DISPLYDX($P(^TMP("PXKENC",$J,VSN,"POV",I,0),U))_" missing Ion. Rad.",4)
|
---|
| 65 | . . . . I J=4&($P(SCEIREC,U,4)="")&($P(SCEIREC,U,1)'=1) D SET("Diagnosis: "_$$DISPLYDX($P(^TMP("PXKENC",$J,VSN,"POV",I,0),U))_" missing Env. Contam.",5)
|
---|
| 66 | . . . . I J=5&($P(SCEIREC,U,5)="") D SET("Diagnosis: "_$$DISPLYDX($P(^TMP("PXKENC",$J,VSN,"POV",I,0),U))_" missing MST",6)
|
---|
| 67 | . . . . I J=6&($P(SCEIREC,U,6)="") D SET("Diagnosis: "_$$DISPLYDX($P(^TMP("PXKENC",$J,VSN,"POV",I,0),U))_" missing Head/Neck Cancer",6)
|
---|
| 68 | . . . . I J=7&($P(SCEIREC,U,7)="") D SET("Diagnosis: "_$$DISPLYDX($P(^TMP("PXKENC",$J,VSN,"POV",I,0),U))_" missing Combat Vet",2)
|
---|
| 69 | U IO D PRINT,^%ZISC
|
---|
| 70 | K ^TMP("PXCRPW",$J)
|
---|
| 71 | EXIT Q
|
---|
| 72 | ;
|
---|
| 73 | STOP ;Check for stop task request
|
---|
| 74 | S:$G(ZTQUEUED) (PXOUT,ZTSTOP)=$S($$S^%ZTLOAD:1,1:0)
|
---|
| 75 | Q
|
---|
| 76 | ;
|
---|
| 77 | EVAL ;
|
---|
| 78 | S PXLOC=$$GET1^DIQ(9000010,VSN_",",.22)
|
---|
| 79 | S:$G(PXLOC)="" PXLOC="Unknown"
|
---|
| 80 | N PXPTR S PXPTR=$O(^AUPNVPRV("AD",VSN,""))
|
---|
| 81 | S PXPRV=$$GET1^DIQ(9000010.06,PXPTR_",",.01)
|
---|
| 82 | S:$G(PRPRV)="" PXPRV="Unknown"
|
---|
| 83 | Q
|
---|
| 84 | ;
|
---|
| 85 | DISPLYDX(PXCEPOV) ;
|
---|
| 86 | N ICDSTR
|
---|
| 87 | S ICDSTR=$$ICDDX^ICDCODE($P(PXCEPOV,"^"),$P(^AUPNVSIT(VSN,0),"^"))
|
---|
| 88 | Q $P(ICDSTR,"^",2) ;code
|
---|
| 89 | ;
|
---|
| 90 | DISPLYP(PXCECPT) ;
|
---|
| 91 | N CPTSTR
|
---|
| 92 | S CPTSTR=$$CPT^ICPTCOD($P(PXCECPT,U),$P(^AUPNVSIT(VSN,0),"^"))
|
---|
| 93 | Q $P(CPTSTR,U,2) ;code
|
---|
| 94 | ;
|
---|
| 95 | SET(SDX,PRIO) ;
|
---|
| 96 | N A1
|
---|
| 97 | S PRIO=$G(PRIO)
|
---|
| 98 | D EVAL
|
---|
| 99 | I PXSRT="" S A1="Unknown" D SET1(PRIO) Q
|
---|
| 100 | D @PXSRT
|
---|
| 101 | Q
|
---|
| 102 | ;
|
---|
| 103 | 1 ; Data Source
|
---|
| 104 | S A1=$$GET1^DIQ(9000010,VSN_",",81203)
|
---|
| 105 | S:A1="" A1=" "
|
---|
| 106 | D SET1(PRIO)
|
---|
| 107 | Q
|
---|
| 108 | ;
|
---|
| 109 | 2 ; CPT
|
---|
| 110 | N CPT,CPT1
|
---|
| 111 | S CPT=$O(^AUPNVCPT("AD",VSN,""))
|
---|
| 112 | S:CPT'="" CPT1=$$GET1^DIQ(9000010.18,CPT_",",.01)
|
---|
| 113 | S A1=$G(CPT1) D SET1(PRIO)
|
---|
| 114 | Q
|
---|
| 115 | ;
|
---|
| 116 | 3 ; ICD-9
|
---|
| 117 | N ICD,ICD9 S ICD="",ICD9="Unknown"
|
---|
| 118 | F S ICD=$O(^AUPNVPOV("AD",VSN,ICD)) Q:'ICD D
|
---|
| 119 | . S ICD9=$$GET1^DIQ(9000010.07,ICD,.01)
|
---|
| 120 | S A1=ICD9 D SET1(PRIO)
|
---|
| 121 | Q
|
---|
| 122 | ;
|
---|
| 123 | 4 S A1=$$GET1^DIQ(9000010,VSN_",",.05)
|
---|
| 124 | S:A1="" A1="Unknown"
|
---|
| 125 | D SET1(PRIO)
|
---|
| 126 | Q
|
---|
| 127 | ;
|
---|
| 128 | 5 ; Eligibility
|
---|
| 129 | S A1=$$GET1^DIQ(9000010,VSN_",",.21)
|
---|
| 130 | S:A1="" A1="Unknown"
|
---|
| 131 | D SET1(PRIO)
|
---|
| 132 | Q
|
---|
| 133 | ;
|
---|
| 134 | 6 ; Default Sort
|
---|
| 135 | S A1="Default" D SET1(PRIO)
|
---|
| 136 | Q
|
---|
| 137 | ;
|
---|
| 138 | SET1(PR) ; set temp global
|
---|
| 139 | I A1="" S A1="Unknown"
|
---|
| 140 | S Y=$$GET1^DIQ(9000010,VSN_",",.01) X ^DD("DD") S VDT=Y
|
---|
| 141 | S:VDT="" VDT="Unknown" S VDT=$P(VDT,"@",1)
|
---|
| 142 | S ^TMP("PXCRPW",$J,PXLOC,PXPRV,A1,VDT,VSN,PR,SDX)=VSN
|
---|
| 143 | Q
|
---|
| 144 | PRINT ; Print Report
|
---|
| 145 | N A,I,REC,TOT,TOTE,Y,SHDR
|
---|
| 146 | N PAT,SSN,SSND,TYP,VIN,DEFD,ENCD
|
---|
| 147 | K TOT,TOTE
|
---|
| 148 | S DEFD="TOTAL DEFECTS FOR ",ENCD="TOTAL ENCOUNTERS FOR "
|
---|
| 149 | S (TOT(1),TOTE(1))=0
|
---|
| 150 | S LOC="" F S LOC=$O(^TMP("PXCRPW",$J,LOC)),HDR=0 Q:LOC=""!(POP) D
|
---|
| 151 | . S (TOT(2),TOTE(2))=0
|
---|
| 152 | . S PROV="" F S PROV=$O(^TMP("PXCRPW",$J,LOC,PROV)) Q:PROV=""!(POP) D
|
---|
| 153 | . . S (TOT(3),TOTE(3))=0
|
---|
| 154 | . . S SORT="" F S SORT=$O(^TMP("PXCRPW",$J,LOC,PROV,SORT)) Q:SORT=""!(POP) D
|
---|
| 155 | . . . S (TOT(4),TOTE(4))=0
|
---|
| 156 | . . . S VDT="" F S VDT=$O(^TMP("PXCRPW",$J,LOC,PROV,SORT,VDT)) Q:VDT=""!(POP) D
|
---|
| 157 | . . . . S (TOT(5),TOTE(5))=0
|
---|
| 158 | . . . . S VIN="" F S VIN=$O(^TMP("PXCRPW",$J,LOC,PROV,SORT,VDT,VIN)),HDR1=0 Q:VIN=""!(POP) D
|
---|
| 159 | . . . . . S TOT(6)=0
|
---|
| 160 | . . . . . S TOTE(5)=TOTE(5)+1
|
---|
| 161 | . . . . . S PR="" F S PR=$O(^TMP("PXCRPW",$J,LOC,PROV,SORT,VDT,VIN,PR)) Q:PR="" D
|
---|
| 162 | . . . . . . S SHDR=0
|
---|
| 163 | . . . . . . S SDX="" F S SDX=$O(^TMP("PXCRPW",$J,LOC,PROV,SORT,VDT,VIN,PR,SDX)) Q:SDX=""!(POP) D
|
---|
| 164 | . . . . . . . S REC=^TMP("PXCRPW",$J,LOC,PROV,SORT,VDT,VIN,PR,SDX)
|
---|
| 165 | . . . . . . . S PAT=$$GET1^DIQ(9000010,REC_",",.05)
|
---|
| 166 | . . . . . . . S SSN=$$GET1^DIQ(2,$$GET1^DIQ(9000010,REC_",",.05,"I"),.09)
|
---|
| 167 | . . . . . . . S SSND=$E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,9)
|
---|
| 168 | . . . . . . . S EDT=$$GET1^DIQ(9000010,REC_",",.01)
|
---|
| 169 | . . . . . . . S TYP=$$GET1^DIQ(9000010,REC_",",15001)
|
---|
| 170 | . . . . . . . S USR=$$GET1^DIQ(9000010,REC_",",.23)
|
---|
| 171 | . . . . . . . D:HDR=0 HEADER Q:POP
|
---|
| 172 | . . . . . . . I RPTYP="D" D
|
---|
| 173 | . . . . . . . . I HDR1=0 D
|
---|
| 174 | . . . . . . . . . W ! S $P(HLINE,"-",132)="" W HLINE
|
---|
| 175 | . . . . . . . . . W !,$E(PAT,1,25),?26,SSND,?39,EDT,?59,$E(TYP,1,15),?75,$E(USR,1,15) S HDR1=1
|
---|
| 176 | . . . . . . . . W ?94,$E(SDX,1,37),!
|
---|
| 177 | . . . . . . . S TOT(6)=TOT(6)+1
|
---|
| 178 | . . . . . . . I $Y>(IOSL-4) S HDR=0
|
---|
| 179 | . . . . . . Q:POP
|
---|
| 180 | . . . . . Q:POP
|
---|
| 181 | . . . . . I $Y>(IOSL-4) D HEADER Q:POP
|
---|
| 182 | . . . . . S SHDR=1
|
---|
| 183 | . . . . . W:RPTYP="D" !?94,DEFD_TYP_": ",TOT(6),!
|
---|
| 184 | . . . . . S TOT(5)=TOT(5)+TOT(6)
|
---|
| 185 | . . . . Q:POP
|
---|
| 186 | . . . . W !?6,DEFD_VDT_": ",TOT(5)
|
---|
| 187 | . . . . W !?6,ENCD_VDT_": ",TOTE(5)
|
---|
| 188 | . . . . S TOT(4)=TOT(4)+TOT(5)
|
---|
| 189 | . . . . S TOTE(4)=TOTE(4)+TOTE(5)
|
---|
| 190 | . . . Q:POP
|
---|
| 191 | . . . W !?4,DEFD_"SORT VALUE - "_SORT_": ",TOT(4)
|
---|
| 192 | . . . W !?4,ENCD_"SORT VALUE - "_SORT_": ",TOTE(4)
|
---|
| 193 | . . . S TOT(3)=TOT(3)+TOT(4)
|
---|
| 194 | . . . S TOTE(3)=TOTE(3)+TOTE(4)
|
---|
| 195 | . . Q:POP
|
---|
| 196 | . . W !?2,DEFD_PROV_": ",TOT(3)
|
---|
| 197 | . . W !?2,ENCD_PROV_": ",TOTE(3)
|
---|
| 198 | . . S TOT(2)=TOT(2)+TOT(3)
|
---|
| 199 | . . S TOTE(2)=TOTE(2)+TOTE(3)
|
---|
| 200 | . Q:POP
|
---|
| 201 | . W !,DEFD_LOC_": ",TOT(2)
|
---|
| 202 | . W !,ENCD_LOC_": ",TOTE(2)
|
---|
| 203 | . S TOT(1)=TOT(1)+TOT(2)
|
---|
| 204 | . S TOTE(1)=TOTE(1)+TOTE(2)
|
---|
| 205 | Q:POP
|
---|
| 206 | I TOT(1)+TOTE(1)=0 W !!,"No Data to print",! Q
|
---|
| 207 | W !!,"GRAND TOTAL NUMBER OF DEFECTS: ",TOT(1)
|
---|
| 208 | W !,"GRAND TOTAL NUMBER OF ENCOUNTERS = ",TOTE(1)
|
---|
| 209 | Q
|
---|
| 210 | ;
|
---|
| 211 | HEADER ;print header
|
---|
| 212 | N %,X,Y,MSG,HLINE,DLINE
|
---|
| 213 | I (PXPAGE>0)&(($E(IOST)="C")&(IO=IO(0))) D
|
---|
| 214 | . S DIR(0)="E"
|
---|
| 215 | . W !
|
---|
| 216 | . D ^DIR K DIR
|
---|
| 217 | I $D(DUOUT)!($D(DTOUT)) D Q
|
---|
| 218 | . S POP=1
|
---|
| 219 | I PXPAGE>0 W:$D(IOF) @IOF
|
---|
| 220 | S PXPAGE=PXPAGE+1
|
---|
| 221 | W !
|
---|
| 222 | S X=$$CTR132("PCE MISSING DATA REPORT") W !
|
---|
| 223 | D NOW^%DTC S Y=% X ^DD("DD") S X=$$CTR(Y) W !
|
---|
| 224 | S X=$$CTR132("By Clinic, Provider, and Date") W !
|
---|
| 225 | S Y=PX("BDT") X ^DD("DD") S STDT=$P(Y,"@",1)
|
---|
| 226 | S Y=PX("EDT") X ^DD("DD") S ENDT=$P(Y,"@",1)
|
---|
| 227 | S MSG=STDT_" through "_ENDT
|
---|
| 228 | S X=$$CTR(MSG) W !
|
---|
| 229 | S X=$$CTR132("Page "_PXPAGE) W !
|
---|
| 230 | W !!,"Patient",?26,"SSN",?39,"Date/Time",?59,"Enc. ID",?75,"Created by User",?94,"Defect",!
|
---|
| 231 | S $P(HLINE,"=",132)="" W HLINE,!
|
---|
| 232 | Q:SHDR
|
---|
| 233 | W !,LOC
|
---|
| 234 | W !?2,PROV
|
---|
| 235 | N SORTD S SORTD=SORT
|
---|
| 236 | S:SORTD=" " SORTD="Unknown"
|
---|
| 237 | W !?4,"SORT VALUE: ",$P(SORTHDR,U,PXSRT),"= ",SORTD
|
---|
| 238 | S:VDT="" VDT="Unknown"
|
---|
| 239 | W !?6,$P(VDT,"@",1),":"
|
---|
| 240 | S HDR=1
|
---|
| 241 | Q
|
---|
| 242 | ;
|
---|
| 243 | CTR(X) ;
|
---|
| 244 | W ?(IOM-$L(X))\2,X
|
---|
| 245 | Q 1
|
---|
| 246 | ;
|
---|
| 247 | CTR132(X) ;
|
---|
| 248 | W ?(132-$L(X))\2,X
|
---|
| 249 | Q 1
|
---|
| 250 | ;
|
---|