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

APCDDVL2.m

Go to the documentation of this file.
  1. APCDDVL2 ; IHS/CMI/LAB - report on checked in visits with no pov ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;IHS/CMI/LAB - Y2K
  1. ;
  1. ;
  1. START ;
  1. D EOJ
  1. D INFORM
  1. GETDATES ;
  1. BD ;get beginning date
  1. W ! S DIR(0)="D^:DT:EP",DIR("A")="Enter beginning Visit Date" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G EOJ
  1. S APCDBD=Y
  1. ED ;get ending date
  1. W ! S DIR(0)="DA^"_APCDBD_":DT:EP",DIR("A")="Enter ending Visit Date: " S Y=APCDBD D DD^%DT S Y="" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G BD
  1. S APCDED=Y
  1. ;
  1. SORT ;
  1. S APCDCSRT=""
  1. S DIR(0)="S^T:Terminal Digit Order;H:Health Record Number Order;D:Visit Date Order;C:Clinic Code Order",DIR("A")="Sort the report by",DIR("B")="T" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G ED
  1. S APCDCSRT=Y
  1. DEMO ;
  1. D DEMOCHK^APCLUTL(.APCDDEMO)
  1. I APCDDEMO=-1 G BD
  1. ZIS ;call to XBDBQUE
  1. S XBRP="PRINT^APCDDVL2",XBRC="PROCESS^APCDDVL2",XBRX="EOJ^APCDDVL2",XBNS="APCD"
  1. D ^XBDBQUE
  1. D EOJ
  1. Q
  1. ;
  1. EOJ ;
  1. D EN^XBVK("APCD")
  1. Q
  1. PROCESS ;EP - called from XBDBQUE
  1. S ^XTMP("APCDDVL2",0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^"_"APCD - DTC VISITS W NO BILL LINK"
  1. S APCDJ=$J,APCDBT=$H
  1. S APCDT=APCDBD-.0001,APCDEND=APCDED+.2400
  1. F S APCDT=$O(^AUPNVSIT("B",APCDT)) Q:'APCDT!(APCDT>APCDEND) D
  1. . S APCDV=0
  1. . F S APCDV=$O(^AUPNVSIT("B",APCDT,APCDV)) Q:'APCDV D
  1. .. I '$$DTC(APCDV) Q ;no DTC's
  1. .. Q:$$DEMO^APCLUTL($P(^AUPNVSIT(APCDV,0),U,5),APCDDEMO)
  1. .. I $P(^AUPNVSIT(APCDV,0),U,28)]"" Q ;has billing link
  1. .. I $P(^AUPNVSIT(APCDV,0),U,6)'=DUZ(2) Q ;another facilities visit
  1. .. S APCDSORT="" D GETSORT I APCDSORT="" S APCDSORT="??"
  1. .. S ^XTMP("APCDDVL2",APCDJ,APCDBT,"VISITS",APCDSORT,APCDV)=""
  1. .. Q
  1. . Q
  1. Q
  1. GETSORT ;get sort value
  1. I APCDCSRT="D" S APCDSORT=$P(^AUPNVSIT(APCDV,0),U) Q
  1. I APCDCSRT="C" S APCDSORT=$$CLINIC^APCLV(APCDV,"C") Q ;clinic code
  1. ;hrn sort values
  1. S APCDSORT=$$HRN^AUPNPAT($P(^AUPNVSIT(APCDV,0),U,5),DUZ(2))
  1. Q:APCDCSRT'="T"
  1. S APCDSORT=APCDSORT+10000000,APCDSORT=$E(APCDSORT,7,8)_"-"_+$E(APCDSORT,2,8)
  1. Q
  1. PRINT ;EP - called from XBDBQUE
  1. S APCDQUIT="",APCDPG=0 D HDR
  1. I '$D(^XTMP("APCDDVL2",APCDJ,APCDBT)) D HDR W !!,"NO DATA TO REPORT",! G DONE
  1. S APCDSORT="" F S APCDSORT=$O(^XTMP("APCDDVL2",APCDJ,APCDBT,"VISITS",APCDSORT)) Q:APCDSORT=""!(APCDQUIT) D
  1. . S APCDV=0 F S APCDV=$O(^XTMP("APCDDVL2",APCDJ,APCDBT,"VISITS",APCDSORT,APCDV)) Q:APCDV'=+APCDV!(APCDQUIT) D
  1. .. I $Y>(IOSL-4) D HDR Q:APCDQUIT
  1. .. S APCDVR=^AUPNVSIT(APCDV,0)
  1. .. ;beginning Y2K
  1. .. ;W !,$E($P(^DPT($P(APCDVR,U,5),0),U),1,15),?16,$$HRN^AUPNPAT($P(APCDVR,U,5),DUZ(2)),?23,$$FMTE^XLFDT($P(APCDVR,U),"2"),?38,$P(APCDVR,U,7),?40,$$CLINIC^APCLV(APCDV,"C") ;Y2000
  1. .. W !,$E($P(^DPT($P(APCDVR,U,5),0),U),1,15),?16,$$HRN^AUPNPAT($P(APCDVR,U,5),DUZ(2)),?23,$$FMTE^XLFDT($P(APCDVR,U),"5"),?40,$P(APCDVR,U,7),?42,$$CLINIC^APCLV(APCDV,"C") ;Y2000
  1. .. ;W ?43,$E($$PRIMPROV^APCLV(APCDV,"N"),1,20),?65,$$PRIMPOV^APCLV(APCDV,"C") ;Y2000
  1. .. W ?45,$E($$PRIMPROV^APCLV(APCDV,"N"),1,20),?67,$$PRIMPOV^APCLV(APCDV,"C") ;Y2000
  1. .. ;end Y2K
  1. .. S (C,APCDX)=0 F S APCDX=$O(^AUPNVTC("AD",APCDV,APCDX)) Q:APCDX'=+APCDX!(APCDQUIT) I $P($G(^AUPNVTC(APCDX,12)),U,2) D
  1. ... I $Y>(IOSL-4) D HDR Q:APCDQUIT
  1. ... W ! W:'C ?3,"DTC's: "
  1. ... ;beginning Y2K
  1. ... ;W ?10,$$VAL^XBDIQ1(9000010.33,APCDX,.01)," ",$E($$VAL^XBDIQ1(90092.02,$P(^AUPNVTC(APCDX,0),U),.019),1,30),?55,$$FMTE^XLFDT($P(^AUPNVTC(APCDX,12),U,11),"2"),?65,$E($$VAL^XBDIQ1(9000010.33,APCDX,1202),1,15) ;Y2000
  1. ... W ?10,$$VAL^XBDIQ1(9000010.33,APCDX,.01)," ",$E($$VAL^XBDIQ1(90092.02,$P(^AUPNVTC(APCDX,0),U),.019),1,30),?54,$$FMTE^XLFDT($P(^AUPNVTC(APCDX,12),U,11),"5"),?65,$E($$VAL^XBDIQ1(9000010.33,APCDX,1202),1,15) ;Y2000
  1. ... ;end Y2K
  1. .. S D=$$ORDT(APCDV),P=$P(^AUPNVSIT(APCDV,0),U,5)
  1. .. S DATE=(9999999-D)-.0001,END=(9999999-D)+.9999999
  1. .. F S DATE=$O(^AUPNVSIT("AA",P,DATE)) Q:'DATE!(DATE>END)!(APCDQUIT) D
  1. ... S APCDX=0 F S APCDX=$O(^AUPNVSIT("AA",P,DATE,APCDX)) Q:APCDX'=+APCDX!(APCDQUIT) I APCDX'=APCDV,'$P(^AUPNVSIT(APCDX,0),U,11) S C=C+1 D
  1. .... I $Y>(IOSL-3) D HDR Q:(APCDQUIT)
  1. .... W ! W:C=1 ?3,"Order date vsts: "
  1. .... ;beginning Y2K
  1. .... ;W ?21,$$FMTE^XLFDT($P(^AUPNVSIT(APCDX,0),U),"2"),?38,$P(^AUPNVSIT(APCDX,0),U,7),?39,$$CLINIC^APCLV(APCDX,"C"),?42,$E($$VAL^XBDIQ1(9000010,APCDX,.22),1,15),?59,$E($$PRIMPROV^APCLV(APCDX,"N"),1,15),?74,$$PRIMPOV^APCLV(APCDX,"C") ;Y2000
  1. .... W ?21,$$FMTE^XLFDT($P(^AUPNVSIT(APCDX,0),U),"5"),?40,$P(^AUPNVSIT(APCDX,0),U,7),?44,$$CLINIC^APCLV(APCDX,"C"),?42,$E($$VAL^XBDIQ1(9000010,APCDX,.22),1,15),?60,$E($$PRIMPROV^APCLV(APCDX,"N"),1,15),?76,$$PRIMPOV^APCLV(APCDX,"C") ;Y2000
  1. .... ;end Y2K
  1. .... Q
  1. ... Q
  1. .. Q
  1. .Q
  1. DONE ;
  1. K ^XTMP("APCDDVL2",APCDJ,APCDBT),APCDJ,APCDBT
  1. I $E(IOST)="C",IO=IO(0) S DIR(0)="EO",DIR("A")="End of report. PRESS ENTER" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. W:$D(IOF) @IOF
  1. Q
  1. DTC(V) ;any v tran code with an ordering provider? 1 or 0
  1. I '$G(V) Q 0
  1. I '$D(^AUPNVSIT(V,0)) Q 0
  1. I '$D(^AUPNVTC("AD",V)) Q 0
  1. NEW C
  1. S (X,C)=0 F S X=$O(^AUPNVTC("AD",V,X)) Q:X'=+X I $P($G(^AUPNVTC(X,12)),U,11) S C=C+1
  1. Q C
  1. ;
  1. ORDT(V) ;
  1. I '$G(V) Q 0
  1. I '$D(^AUPNVSIT(V,0)) Q 0
  1. I '$D(^AUPNVTC("AD",V)) Q 0
  1. NEW C
  1. S (X,C)=0 F S X=$O(^AUPNVTC("AD",V,X)) Q:X'=+X!(C) I $P($G(^AUPNVTC(X,12)),U,11) S C=$P(^AUPNVTC(X,12),U,11)
  1. Q C
  1. ;
  1. VCNT(V) ;return number of other visits on this date
  1. I '$G(V) Q 0
  1. I '$D(^AUPNVSIT(V)) Q 0
  1. NEW D,X,Y,C,DATE,END,P
  1. S P=$P(^AUPNVSIT(V,0),U,5)
  1. S D=$P($P(^AUPNVSIT(V,0),U),".")
  1. S (C,C1)=0,DATE=(9999999-D)-.0001,END=(9999999-D)+.9999999
  1. F S DATE=$O(^AUPNVSIT("AA",P,DATE)) Q:'DATE!(DATE>END) D
  1. . S X=0 F S X=$O(^AUPNVSIT("AA",P,DATE,X)) Q:X'=+X I X'=V,'$P(^AUPNVSIT(X,0),U,11) S C=C+1 I $D(^AUPNVPOV("AD",X)),$D(^AUPNVPRV("AD",X)) S C1=C1+1
  1. Q C_U_C1
  1. ;
  1. HDR ;header for report
  1. I 'APCDPG G HDR1
  1. I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S APCDQUIT=1 Q
  1. HDR1 ;
  1. W:$D(IOF) @IOF S APCDPG=APCDPG+1
  1. W $P(^VA(200,DUZ,0),U,2),$$CTR($$FMTE^XLFDT(DT)),?71,"Page ",APCDPG,!
  1. W $$CTR($$LOC),!
  1. W $$CTR("DTC Visits with No Billing Link"),!
  1. ;beginning Y2K
  1. ;W !?3,"PATIENT NAME",?17,"HRN",?22,"VISIT DATE",?37,"SC",?40,"CL",?43,"PRIM PROVIDER",?65,"PRIM POV",! ;Y2000
  1. W !?3,"PATIENT NAME",?17,"HRN",?22,"VISIT DATE",?39,"SC",?42,"CL",?45,"PRIM PROVIDER",?67,"PRIM POV",! ;Y2000
  1. ;end Y2K
  1. W $TR($J(" ",80)," ","-"),!
  1. Q
  1. CTR(X,Y) ;EP - Center X in a field Y wide.
  1. Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X
  1. ;----------
  1. USR() ;EP - Return name of current user from ^VA(200.
  1. Q $S($G(DUZ):$S($D(^VA(200,DUZ,0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
  1. ;----------
  1. LOC() ;EP - Return location name from file 4 based on DUZ(2).
  1. Q $S($G(DUZ(2)):$S($D(^DIC(4,DUZ(2),0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
  1. ;----------
  1. INFORM ;let user know what is gong on
  1. W:$D(IOF) @IOF
  1. W !!,$$CTR($$LOC,80)
  1. W !,$$CTR($$USR,80),!!
  1. F I=1:1 S X=$P($T(INTRO+I),";;",2) Q:X="END" W !,X
  1. K I,X
  1. Q
  1. INTRO ;;
  1. ;;This report will list all visit in a time frame you indicate that have
  1. ;;a DTC tran code but NO Billing Link.
  1. ;;These visits could not be linked back to the original ordering visit.
  1. ;;END