Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: APCDCAFJ

APCDCAFJ.m

Go to the documentation of this file.
  1. APCDCAFJ ; IHS/CMI/LAB - MENTAL HLTH ROUTINE 16-AUG-1994 ;
  1. ;;2.0;IHS PCC SUITE;**2,8,11**;MAY 14, 2009;Build 58
  1. ;; ;
  1. ;
  1. PROCESS ;EP
  1. S APCDJ=$J,APCDH=$H
  1. S ^XTMP("APCDCAFI",0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^"_"PCC CODING INCOMPLETE VISITS REPORT"
  1. S APCDODAT=$P(APCDBD,".")-1,APCDODAT=APCDODAT_".9999"
  1. S (APCDRCNT,APCDVIEN)=0 F S APCDODAT=$O(^AUPNVSIT("B",APCDODAT)) Q:APCDODAT=""!($P(APCDODAT,".")>$P(APCDED,".")) D
  1. .S APCDVIEN=0 F S APCDVIEN=$O(^AUPNVSIT("B",APCDODAT,APCDVIEN)) Q:APCDVIEN'=+APCDVIEN D
  1. ..S APCDV0=$G(^AUPNVSIT(APCDVIEN,0))
  1. ..Q:APCDV0=""
  1. N ..;
  1. ..Q:'$P(APCDV0,U,9) ;NO DEP ENTRIES
  1. ..Q:$P(APCDV0,U,11) ;DELETED
  1. ..Q:$P(APCDV0,U,3)="C" ;CONTRACT
  1. ..S APCDVCAS=$P($G(^AUPNVSIT(APCDVIEN,11)),U,11)
  1. ..I APCDVCAS'="I" Q ;ONLY INCOMPLETE VISITS
  1. ..S APCDVPP=$$PRIMPROV^APCLV(APCDVIEN,"I")
  1. ..S APCDVLOC=$P(APCDV0,U,6)
  1. ..Q:APCDVLOC="" ;no location of encounter
  1. ..I $D(APCDLOCS),'$D(APCDLOCS(APCDVLOC)) Q ;not a location we want
  1. ..S APCDVCLN=$P(APCDV0,U,8)
  1. ..I APCDVCLN="",$D(APCDCLNS) Q ;clinic blank and want certain clinics
  1. ..I $D(APCDCLNS),'$D(APCDCLNS(APCDVCLN)) Q ;not a CLINIC we want
  1. ..S APCDVHL=$P(APCDV0,U,22)
  1. ..I APCDVHL="",$D(APCDHLS) Q
  1. ..I $D(APCDHLS),'$D(APCDHLS(APCDVHL)) Q ;not a HOSP LOC we want
  1. ..I APCDVPP="",$D(APCDPRVS) Q
  1. ..I $D(APCDPRVS),'$D(APCDPRVS(APCDVPP)) Q ;not a PRIM PROV we want
  1. ..K APCDVCDR D GETVCDR^APCDCAFS(APCDVIEN,"APCDVCDR") ;GET ALL PENDING REASONS
  1. ..I '$D(APCDVCDR),$D(APCDCDRS) Q ;
  1. ..S G=0 I $D(APCDCDRS) D
  1. ...S X=0 F S X=$O(APCDVCDR(X)) Q:X'=+X I $D(APCDCDRS(X)) S G=1
  1. ..I $D(APCDCDRS),'G Q
  1. ..S ^XTMP("APCDCAFI",APCDJ,APCDH,"VISITS",$$SORT(APCDVIEN,APCDSORT),APCDVIEN)=""
  1. .Q
  1. Q
  1. ;
  1. DATE(D) ;
  1. NEW X,Y
  1. S X=$P(D,".")
  1. S X=$E(D,4,5)_"/"_$E(D,6,7)_"/"_$E(D,2,3)
  1. S Y=$$FMTE^XLFDT(D,"2S"),Y=$P(Y,"@",2),Y=$P(Y,":",1,2)
  1. Q X_"@"_Y
  1. ;
  1. ERRORCHK ;
  1. ;check for no pov, .9999 or multiple primary providers
  1. S APCDERR=""
  1. I '$D(^AUPNVPOV("AD",APCDV)) S APCDERR="NO POV"
  1. S X=0 F S X=$O(^AUPNVPOV("AD",APCDV,X)) Q:X'=+X D
  1. .I $$VAL^XBDIQ1(9000010.07,X,.01)=".9999" S APCDERR=".9999 POV " Q
  1. .I $$VAL^XBDIQ1(9000010.07,X,.01)="ZZZ.999" S APCDERR="ZZZ.999 POV "
  1. S X=0,C=0 F S X=$O(^AUPNVPRV("AD",APCDV,X)) Q:X'=+X D
  1. .I $P(^AUPNVPRV(X,0),U,4)="P" S C=C+1
  1. I C>1 S APCDERR=APCDERR_"MULT PRIM PROV"
  1. Q
  1. RBLK(V,L) ;left blank fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V=V_" "
  1. Q V
  1. LBLK(V,L) ;left blank fill
  1. NEW %,I
  1. S %=$L(V),Z=L-% F I=1:1:Z S V=" "_V
  1. Q V
  1. ;
  1. LASTCDR(V,F) ;EP - get last chart deficiency reason
  1. I $G(F)="" S F="I" ;default to ien
  1. I '$D(^AUPNVCA("AD",V)) Q ""
  1. NEW X,A,D,L
  1. S X=0 F S X=$O(^AUPNVCA("AD",V,X)) Q:X'=+X D
  1. .Q:'$D(^AUPNVCA(X,0))
  1. .S D=$P(^AUPNVCA(X,0),U)
  1. .S A((9999999-$P(D,".")))=X
  1. S L=$O(A(0)) I L="" Q ""
  1. S L=A(L)
  1. Q $S(F="I":$P(^AUPNVCA(L,0),U,6),1:$$VAL^XBDIQ1(9000010.45,L,.06))
  1. ;
  1. SORT(V,S) ;
  1. NEW R
  1. S R=""
  1. D @(S_"SORT")
  1. I R="" S R="--"
  1. Q R
  1. ;
  1. DSORT ;
  1. I 'V Q ""
  1. I '$D(^AUPNVSIT(V,0)) Q ""
  1. S R=$P(^AUPNVSIT(V,0),U)
  1. Q
  1. ;
  1. SSORT ;
  1. I 'V Q ""
  1. I '$D(^AUPNVSIT(V,0)) Q ""
  1. S R=$$VAL^XBDIQ1(9000010,V,.07)
  1. Q
  1. ;
  1. LSORT ;
  1. I 'V Q ""
  1. I '$D(^AUPNVSIT(V,0)) Q ""
  1. S R=$$VAL^XBDIQ1(9000010,V,.06)
  1. Q
  1. ;
  1. CSORT ;
  1. I 'V Q ""
  1. I '$D(^AUPNVSIT(V,0)) Q ""
  1. S R=$$VAL^XBDIQ1(9000010,V,.08)
  1. Q
  1. ;
  1. OSORT ;
  1. I 'V Q ""
  1. I '$D(^AUPNVSIT(V,0)) Q ""
  1. S R=$$VAL^XBDIQ1(9000010,V,.22)
  1. Q
  1. ;
  1. PSORT ;
  1. S R=$$PRIMPROV^APCLV(V,"N")
  1. Q
  1. ;
  1. ASORT ;
  1. I 'V Q ""
  1. I '$D(^AUPNVSIT(V,0)) Q ""
  1. S R=$$VAL^XBDIQ1(9000010,V,1111)
  1. I R="" S R="INCOMPLETE"
  1. Q
  1. ;
  1. RSORT ;
  1. S R=$$LASTCDR(V,"E")
  1. Q
  1. ;
  1. NSORT ;
  1. S R=$$VAL^XBDIQ1(9000010,V,.05)
  1. Q
  1. ;
  1. HSORT ;
  1. S R=$$HRN^AUPNPAT($P(^AUPNVSIT(V,0),U,5),DUZ(2))
  1. Q
  1. ;
  1. TSORT ;
  1. I V="" Q
  1. I '$D(^AUPNVSIT(V,0)) Q ""
  1. NEW D
  1. S D=$P(^AUPNVSIT(V,0),U,5)
  1. I D="" Q
  1. S R=$$HRN^AUPNPAT(D,DUZ(2))
  1. S R=R+10000000,R=$E(R,7,8)_$E(R,1,6)
  1. Q
  1. ;
  1. EOP ;EP - End of page.
  1. Q:$E(IOST)'="C"
  1. NEW DIR
  1. K DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
  1. S DIR("A")="Press Enter to Continue",DIR(0)="E" D ^DIR
  1. Q
  1. ;----------
  1. PRINT ;EP - called from xbdbque
  1. S APCD80S="-------------------------------------------------------------------------------"
  1. S Y=APCDBD D DD^%DT S APCDBDD=Y S Y=APCDED D DD^%DT S APCDEDD=Y
  1. S APCDPG=0
  1. K APCDQUIT
  1. D COVPAGE
  1. D PRINT1
  1. DONE ;
  1. I $D(APCDQUIT) G XIT
  1. I $D(APCDET) S APCDDVTS=(86400*($P(APCDET,",")-$P(APCDBT,",")))+($P(APCDET,",",2)-$P(APCDBT,",",2)),APCDDVH=$P(APCDDVTS/3600,".") S:APCDDVH="" APCDDVH=0
  1. S APCDDVTS=APCDDVTS-(APCDDVH*3600),APCDDVM=$P(APCDDVTS/60,".") S:APCDDVM="" APCDDVM=0 S APCDDVTS=APCDDVTS-(APCDDVM*60),APCDDVS=APCDDVTS W !!,"RUN TIME (H.M.S): ",APCDDVH,".",APCDDVM,".",APCDDVS
  1. I $E(IOST)="C",IO=IO(0) S DIR(0)="E" D ^DIR K DIR
  1. W:$D(IOF) @IOF
  1. XIT ; Clean up and exit
  1. K ^XTMP("APCDCAFI",APCDJ,APCDH,"VISITS")
  1. D EN^XBVK("APCD")
  1. Q
  1. PRINT1 ; Print report 2
  1. K APCDQUIT
  1. D HEAD
  1. I '$D(^XTMP("APCDCAFI",APCDJ,APCDH,"VISITS")) W !!,"There are no visits that are not already reviewed." Q
  1. S APCDS="" F S APCDS=$O(^XTMP("APCDCAFI",APCDJ,APCDH,"VISITS",APCDS)) Q:APCDS=""!($D(APCDQUIT)) D
  1. .S APCDV="" F S APCDV=$O(^XTMP("APCDCAFI",APCDJ,APCDH,"VISITS",APCDS,APCDV)) Q:APCDV=""!($D(APCDQUIT)) D
  1. ..D PRN1
  1. ..Q:$D(APCDQUIT)
  1. ..D DE
  1. ..Q:$D(APCDQUIT)
  1. ..D NOTES
  1. ..W !
  1. ..D ER
  1. Q
  1. ER ; CHECK FOR VARIOUS ERRORS
  1. ;no pov, no prov, .9999, multi prim prov,
  1. Q
  1. DE ;EP;FIND DEP ENTRIES
  1. S APCDP="This visit has: "
  1. S APCDVFLE=9000010 F S APCDVFLE=$O(^DIC(APCDVFLE)) Q:APCDVFLE>9000010.99!(APCDVFLE'=+APCDVFLE)!($D(APCDQUIT)) D DE2
  1. I $Y>(IOSL-3) D HEAD Q:$D(APCDQUIT)
  1. W !?1,APCDP
  1. Q
  1. ;
  1. DE2 ;
  1. Q:APCDVFLE=9000010.45 ;DON'T DISPLAY CHART AUDIT V FILE
  1. S APCDVDG=^DIC(APCDVFLE,0,"GL"),APCDVIGR=APCDVDG_"""AD"",APCDV,APCDVDFN)"
  1. S APCDVDFN="" I $O(@APCDVIGR)]"" D
  1. .S APCDP=APCDP_$P($P(^DIC(APCDVFLE,0),U),"V ",2)_"s "
  1. Q
  1. ;
  1. PRN1 ;EP
  1. S APCDVR=^AUPNVSIT(APCDV,0) S:'$P(APCDVR,U,6) $P(APCDVR,U,6)=0
  1. S DFN=$P(APCDVR,U,5)
  1. S APCDHRN="" S APCDHRN=$$HRN^AUPNPAT(DFN,$P(APCDVR,U,6),2)
  1. I APCDHRN="" S APCDHRN=$$HRN^AUPNPAT(DFN,DUZ(2))
  1. I $Y>(IOSL-5) D HEAD Q:$D(APCDQUIT)
  1. W !,$$FMTE^XLFDT($P(APCDVR,U)),?19,APCDHRN,?31,$E($P(^DPT(DFN,0),U),1,17),?50,$E($P(^DIC(4,$P(APCDVR,U,6),0),U),1,10),?61,$P(APCDVR,U,7)
  1. W ?64,$$CLINIC^APCLV(APCDV,"C"),?67,$E($$VAL^XBDIQ1(9000010,APCDV,.22),1,11),?78,$P(APCDVR,U,9)
  1. W:$$PRIMPROV^APCLV(APCDV,"N")]"" !," PRIMARY PROVIDER: ",$$PRIMPROV^APCLV(APCDV,"N")
  1. I $P($G(^AUPNVSIT(APCDV,12)),U,11)]"" W !," Ext Acct #: ",$P($G(^AUPNVSIT(APCDV,12)),U,11)
  1. Q
  1. NOTES ;
  1. W !?1," Pending Deficiencies:"
  1. S APCDG=0,APCDN1=0 F S APCDN1=$O(^AUPNCANT(APCDV,12,APCDN1)) Q:'APCDN1 D
  1. . S IENS=APCDN1_","_APCDV
  1. . I $$GET1^DIQ(9000095.12,IENS,.03)]"" Q
  1. . I $$GET1^DIQ(9000095.12,IENS,.08)]"" Q
  1. . ;
  1. . S PROV=$$GET1^DIQ(9000095.12,IENS,.01,"I") ;provider IEN
  1. . S PROVN=$$GET1^DIQ(9000095.12,IENS,.01) ;provider name
  1. . ;
  1. . S LINE=" "_$$PAD^APCDCAF6($E(PROVN,1,22),25)_$$GET1^DIQ(9000095.12,IENS,.02) ;provider & deficiency
  1. . S LINE=$$PAD^APCDCAF6(LINE,60)_$$GET1^DIQ(9000095.12,IENS,.11) ;resolution status
  1. . W !,LINE S APCDG=1
  1. . S LINE=" "_$$PAD^APCDCAF6("Entered by: "_$$GET1^DIQ(9000095.12,IENS,.05),50)_"Date Entered: "_$$GET1^DIQ(9000095.12,IENS,.04)
  1. . W !,LINE
  1. . ;
  1. I 'APCDG W " None Recorded"
  1. ;NOW OLD ONES
  1. S APCDX=0,APCDC=0 F S APCDX=$O(^AUPNVCA("AD",APCDV,APCDX)) Q:APCDX'=+APCDX!($D(APCDQUIT)) D
  1. .I $Y>(IOSL-4) D HEAD Q:$D(APCDQUIT)
  1. .S APCDC=APCDC+1 I APCDC=1 W !?1,"Status Update",?27,"User" ;,?45,"Chart Deficiency Reason(s)"
  1. .W !?1,$$FMTE^XLFDT($P($P(^AUPNVCA(APCDX,0),U,1),"."),5),?12,$E($$VAL^XBDIQ1(9000010.45,APCDX,.04),1,12),?27,$E($$VAL^XBDIQ1(9000010.45,APCDX,.05),1,15),?45,$E($$VAL^XBDIQ1(9000010.45,APCDX,.06),1,21)
  1. K ^UTILITY($J,"W")
  1. S APCDNDA=$O(^AUPNCANT("B",APCDV,0)) Q:'APCDNDA
  1. Q:'$O(^AUPNCANT(APCDNDA,11,0))
  1. WP ;
  1. K ^UTILITY($J,"W")
  1. S APCDX=0
  1. S DIWL=10,DIWR=80,DIWF="" F S APCDX=$O(^AUPNCANT(APCDNDA,11,APCDX)) Q:APCDX'=+APCDX D
  1. .S X=^AUPNCANT(APCDNDA,11,APCDX,0) D ^DIWP
  1. .Q
  1. ;D ^DIWW
  1. WPS ;
  1. S APCDX=0,APCDC=0 F S APCDX=$O(^UTILITY($J,"W",DIWL,APCDX)) Q:APCDX'=+APCDX!($D(APCDQUIT)) D
  1. .S APCDC=APCDC+1
  1. .I $Y>(IOSL-3) D HEAD Q:$D(APCDQUIT)
  1. .I APCDC=1 W !?1,"Notes: ",?8,^UTILITY($J,"W",DIWL,APCDX,0)
  1. .W:APCDC'=1 !?8,^UTILITY($J,"W",DIWL,APCDX,0)
  1. K DIWL,DIWR,DIWF,APCDX
  1. K ^UTILITY($J,"W"),APCDX,APCDNDA
  1. Q
  1. G:$D(APCDDEM)!($D(APCDDEMM)) HEAD2
  1. I 'APCDPG G HEAD1
  1. HEAD2 I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S APCDQUIT="" Q
  1. HEAD1 ;
  1. W:$D(IOF) @IOF S APCDPG=APCDPG+1
  1. W !,$$FMTE^XLFDT(DT),?70,"Page: ",APCDPG
  1. W !?29,"PCC Data Entry Module"
  1. W !,$$CTR("******************************************************************",80)
  1. W !,$$CTR("* LIST OF VISITS WITH CHART AUDIT STATUS OF INCOMPLETE *",80)
  1. W !,$$CTR("******************************************************************",80)
  1. S X="VISIT Date Range: "_APCDBDD_" through "_APCDEDD W !,$$CTR(X,80)
  1. W !!,"VISIT DATE",?19,"HRN",?31,"PATIENT NAME",?50,"LOCATION",?61,"SC",?64,"CL",?67,"HOSP LOC",?77,"DEC"
  1. W !,APCD80S
  1. Q
  1. CTR(X,Y) ;EP
  1. Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X
  1. ;----------
  1. COVPAGE ;
  1. W !,$$FMTE^XLFDT(DT),?70,"Page: ",APCDPG
  1. W !?29,"PCC Data Entry Module"
  1. W !,$$CTR("******************************************************************",80)
  1. W !,$$CTR("* LIST OF VISITS WITH CHART AUDIT STATUS OF INCOMPLETE *",80)
  1. W !,$$CTR("******************************************************************",80)
  1. W !!,$$CTR("VISIT LIST CRITERIA",80)
  1. W !!,"VISIT DATES: ",$$FMTE^XLFDT(APCDBD)," to ",$$FMTE^XLFDT(APCDED)
  1. W !,"VISIT TYPE: NOT Contract"
  1. W !!,"LOCATION OF ENCOUNTER: " D
  1. .I '$D(APCLLOCS) W "All" Q
  1. .S Y=0,C=0 F S Y=$O(APCDLOCS(Y)) Q:Y'=+Y S C=C+1 W:C>1 ";" W ?24,$E($P(^DIC(4,Y,0),U),1,15)
  1. W !!,"CLINICS: " D
  1. .I '$D(APCLCLNS) W "All" Q
  1. .S Y=0,C=0 F S Y=$O(APCDCLNS(Y)) Q:Y'=+Y S C=C+1 W:C>1 ";" W ?24,$E($P(^DIC(40.7,Y,0),U),1,15)
  1. W !!,"HOSPITAL LOCATIONS: " D
  1. .I '$D(APCLHLS) W "All" Q
  1. .S Y=0,C=0 F S Y=$O(APCDHLS(Y)) Q:Y'=+Y S C=C+1 W:C>1 ";" W ?24,$E($P(^SC(Y,0),U),1,15)
  1. W !!,"PRIMARY PROVIDER ON VISIT: " D
  1. .I '$D(APCLPRV) W "All" Q
  1. .S Y=0,C=0 F S Y=$O(APCDPRVS(Y)) Q:Y'=+Y S C=C+1 W:C>1 ";" W ?24,$E($P(^VA(200,Y,0),U),1,15)
  1. W !!,"CHART DEFICIENCY REASONS: " D
  1. .I '$D(APCLCDRS) W "All (includes visits with no chart deficiency reason entered" Q
  1. .S Y=0,C=0 F S Y=$O(APCDCDRS(Y)) Q:Y'=+Y S C=C+1 W:C>1 ";" W ?24,$E($P(^AUTTCDR(Y,0),U),1,15)
  1. Q