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

APCDFPPV.m

Go to the documentation of this file.
  1. APCDFPPV ; IHS/CMI/LAB - PRINT UNCODED DX ;
  1. ;;2.0;IHS PCC SUITE;**7,11**;MAY 14, 2009;Build 58
  1. ;
  1. LOC ;
  1. K APCDLOCT S APCDLOCT=""
  1. S DIR(0)="S^A:ALL Locations/Facilities;S:One SERVICE UNIT'S Locations/Facilities;O:ONE Location/Facility",DIR("A")="Include Visits to Which Location/Facilities",DIR("B")="A"
  1. S DIR("A")="Enter a code indicating what LOCATIONS/FACILITIES are of interest",DIR("B")="O" K DA D ^DIR K DIR,DA
  1. G:$D(DIRUT) XIT
  1. S APCDLOCT=Y
  1. I APCDLOCT="A" G DATE
  1. D @APCDLOCT
  1. G:$D(APCDQUIT) LOC
  1. DATE ;
  1. S APCDFILE=9000010.07
  1. W !!,"The search for Uncoded "_$P(^DIC(APCDFILE,0),U),"'s can begin at any date",!,"that you specify. To get all of the uncoded entries enter a really early "
  1. W !,"date like 01/01/1930. If you want to only review data for visits ",!,"in the past week, enter T-7.",!
  1. S APCDFUDT=""
  1. S DIR(0)="D^::EP",DIR("A")="Enter the Beginning Date to Search for Uncoded entries" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G LOC
  1. S APCDFUDT=Y
  1. S DIR(0)="D^::EP",DIR("A")="Enter the Ending Date to Search for Uncoded entries" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G LOC
  1. S APCDFUET=Y
  1. I APCDFUET<APCDFUDT W !,"Ending date cannot be before beginning date." G DATE
  1. PROV ;
  1. K APCDPRVT S APCDPRVT=""
  1. S DIR(0)="S^A:ALL Providers (PRIMARY);O:ONE Provider (PRIMARY)",DIR("A")="Include Visits to Which Provider",DIR("B")="A"
  1. S DIR("A")="Enter a code indicating what LOCATIONS/FACILITIES are of interest",DIR("B")="O" K DA D ^DIR K DIR,DA
  1. G:$D(DIRUT) XIT
  1. S APCDPRVT=Y
  1. I APCDPRVT="A" G FILE
  1. K DIC S DIC("A")="Which Provider: ",DIC="^VA(200,",DIC(0)="AEMQ" D ^DIC K DIC,DA G:X="^" PROV K DIC,DA
  1. G:Y=-1 PROV
  1. S APCDPRVT("ONE")=+Y
  1. FILE ;WHICH FILE?
  1. S APCDWFIL=""
  1. S DIR(0)="S^POV:V POV;PRB:PROBLEM LIST;PRC:V PROCEDURE;FH:FAMILY HISTORY;PHX:PERSONAL HISTORY;A:ALL OF THE ABOVE"
  1. S DIR("A")="Which File would like to print from",DIR("B")="A" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G PROV
  1. S APCDWFIL=Y
  1. ZIS ;
  1. S APCDCODE=$P($$ICDDX^ICDEX(".9999"),U,1)
  1. I APCDCODE="" W !!,"ERROR -- .9999 NOT IN ICD DIAGNOSIS FILE, NOTIFY YOUR SUPERVISOR" H 3 G XIT
  1. S APCDCODO=$P($$ICDDX^ICDEX("ZZZ.999"),U,1)
  1. I APCDCODO="" W !!,"ERROR -- ZZZ.999 NOT IN ICD DIAGNOSIS FILE, NOTIFY YOUR SUPERVISOR" H 3 G XIT
  1. S APCDCODE=$P($$ICDOP^ICDEX(".9999",,,"E"),U,1)
  1. S APCDCODO=$P($$ICDOP^ICDEX("ZZZ999",,,"E"),U,1)
  1. I APCDCODE="" W !!,"ERROR -- .9999 NOT IN ICD OPERATION FILE, NOTIFY YOUR SUPERVISOR" H 3 G XIT
  1. I APCDCODO="" W !!,"ERROR -- ZZZ999 NOT IN ICD OPERATON FILE, NOTIFY YOUR SUPERVISOR" H 3 G XIT
  1. K IO("Q")
  1. W !!,"Enter the Device for printing"
  1. S %ZIS="PQ" D ^%ZIS
  1. I POP K IO("Q") G XIT
  1. I $D(IO("Q")) G TSKMN
  1. ;
  1. EN ; Entry point if for taskman.
  1. S %DT="",X="T" D ^%DT X ^DD("DD") S APCDDT=Y
  1. U IO
  1. S APCDFILE="",APCDPG=0
  1. K ^TMP($J,"APCDFPPV")
  1. ;D HEAD
  1. GETCODE ;
  1. ;
  1. S APCDCODE=$P($$ICDDX^ICDEX(".9999"),U,1)
  1. S APCDCODO=$P($$ICDDX^ICDEX("ZZZ.999"),U,1)
  1. I APCDWFIL="A" F APCDFILE=9000010.07,9000011,9000014,9000013 D PROC
  1. I APCDWFIL="POV" F APCDFILE=9000010.07 D PROC Q:$D(APCDQUIT)
  1. I APCDWFIL="PRB" F APCDFILE=9000011 D PROC Q:$D(APCDQUIT)
  1. I APCDWFIL="PHX" F APCDFILE=9000013 D PROC Q:$D(APCDQUIT)
  1. I APCDWFIL="FH" F APCDFILE=9000014 D PROC Q:$D(APCDQUIT)
  1. S APCDCODE=$P($$ICDOP^ICDEX(".9999",,,"E"),U,1)
  1. S APCDCODO=$P($$ICDOP^ICDEX("ZZZ999",,,"E"),U,1)
  1. I APCDWFIL="PRC"!(APCDWFIL="A") F APCDFILE=9000010.08 D PROC Q:$D(APCDQUIT)
  1. D PRINT
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. ;
  1. XIT K APCDDOB,APCDDFN,APCDFILE,IO("Q"),APCDVDG,APCDCODE,APCDG,APCDVIGR,APCDHRN,APCDF,APCDDT,APCDL,APCDPG,APCDQUIT,ZTSK,APCDVCTR
  1. K AUPNSEX,AUPNPAT,AUPNDOB,AUPNDOD,AUPNDAYS,APCDVSIT,APCDLOCT,APCDOK,APCDFUET,APCDFPPV,APCDFUDT,APCDPRVT
  1. K A,DX,Y,X,S,DA,D0,DIC,DIE,DIQ,DK,DL,DR,POP,D1,D2
  1. K ^TMP($J,"APCDFPPV")
  1. D ^%ZISC
  1. Q
  1. CHKLOC ;
  1. S APCDVSIT=""
  1. I $L(APCDFILE)=7,APCDFILE'=9000011 S APCDOK=1 Q
  1. I APCDFILE=9000011 S Y=$P(^AUPNPROB(APCDDFN,0),U,6) D Q
  1. .I APCDLOCT="O",Y'=APCDLOCT("ONE") S APCDOK=0 Q
  1. .I APCDLOCT="S",$$VALI^XBDIQ1(9999999.06,$P(^AUPNPROB(APCDDFN,0),U,6),.05)'=APCDLOCT("SU") S APCDOK=0 Q
  1. .S APCDOK=1
  1. S APCDOK=0
  1. S APCDG=APCDVDG_"APCDDFN,0)" S Y=$P(@APCDG,U,2),APCDVSIT=$P(@APCDG,U,3) I Y=""!(APCDVSIT="") W !,"ERROR IN GLOBAL -- NOTIFY PROGRAMMER - PATIENT OR VISIT DFN MISSING" Q
  1. I APCDLOCT="O",$P(^AUPNVSIT(APCDVSIT,0),U,6)'=APCDLOCT("ONE") Q
  1. I APCDLOCT="S",$$VALI^XBDIQ1(9999999.06,$P(^AUPNVSIT(APCDVSIT,0),U,6),.05)'=APCDLOCT("SU") Q
  1. S APCDOK=1
  1. Q
  1. CHKPRV ;
  1. S APCDVSIT="" I $L(APCDFILE)=7 S APCDOK=1 Q
  1. S APCDOK=0
  1. S APCDG=APCDVDG_"APCDDFN,0)" S Y=$P(@APCDG,U,2),APCDVSIT=$P(@APCDG,U,3) I Y=""!(APCDVSIT="") W !,"ERROR IN GLOBAL -- NOTIFY PROGRAMMER - PATIENT OR VISIT DFN MISSING" Q
  1. I APCDPRVT="O",$$PRIMPROV^APCLV(APCDVSIT,"I")'=APCDPRVT("ONE") Q
  1. S APCDOK=1
  1. Q
  1. O ;one community
  1. S DIC="^AUTTLOC(",DIC(0)="AEMQ",DIC("A")="Which LOCATION: " D ^DIC K DIC
  1. I Y=-1 S APCDQUIT="" Q
  1. S APCDLOCT("ONE")=+Y
  1. Q
  1. S ;all communities within APCDSU su
  1. S DIC="^AUTTSU(",DIC("B")=$$VAL^XBDIQ1(9999999.06,DUZ(2),.05),DIC(0)="AEMQ",DIC("A")="Which SERVICE UNIT: " D ^DIC K DIC
  1. I Y=-1 S APCDQUIT="" Q
  1. S APCDLOCT("SU")=+Y
  1. Q
  1. ;
  1. PROC ;
  1. K APCDQUIT
  1. S APCDDFN=""
  1. S APCDVDG=^DIC(APCDFILE,0,"GL")
  1. S APCDG=APCDVDG_"""B"",APCDCODE)"
  1. S APCDVIGR=APCDVDG_"""B"",APCDCODE,APCDDFN)"
  1. S APCDDFN=0 F S APCDDFN=$O(@APCDVIGR) Q:APCDDFN'=+APCDDFN!($D(APCDQUIT)) S APCDOK=0 D CHKLOC I APCDOK D CHKPRV I APCDOK D PRT
  1. S APCDG=APCDVDG_"""B"",APCDCODO)"
  1. S APCDVIGR=APCDVDG_"""B"",APCDCODO,APCDDFN)"
  1. S APCDDFN=0 F S APCDDFN=$O(@APCDVIGR) Q:APCDDFN'=+APCDDFN!($D(APCDQUIT)) S APCDOK=0 D CHKLOC I APCDOK D CHKPRV I APCDOK D PRT
  1. Q
  1. PRT ;
  1. D CHKDATE I 'APCDOK Q
  1. I APCDFILE=9000011,$P(^AUPNPROB(APCDDFN,0),U,12)="D" Q ;deleted
  1. I APCDFILE=9000011,$P($G(^AUPNPROB(APCDDFN,800)),U,1)]"" Q ;SNOME CODED
  1. S ^TMP($J,"APCDFPPV",APCDFILE,APCDDFN)=""
  1. Q
  1. PRINT ;
  1. I '$D(^TMP($J,"APCDFPPV")) D HEAD W !!,"There are no Uncoded entries." D XIT Q
  1. ;D HEAD
  1. S APCDFILE="" F S APCDFILE=$O(^TMP($J,"APCDFPPV",APCDFILE)) Q:APCDFILE=""!($D(APCDQUIT)) D
  1. .D HEAD
  1. .Q:$D(APCDQUIT)
  1. .W !!,$P(^DIC(APCDFILE,0),U,1)," uncoded entries: "
  1. .S APCDDFN=0 F S APCDDFN=$O(^TMP($J,"APCDFPPV",APCDFILE,APCDDFN)) Q:APCDDFN=""!($D(APCDQUIT)) D
  1. ..S Y=$$VALI^XBDIQ1(APCDFILE,APCDDFN,.02)
  1. ..S APCDVSIT="" I $L(APCDFILE)>7 S APCDVSIT=$$VALI^XBDIQ1(APCDFILE,APCDDFN,.03)
  1. ..D ^AUPNPAT
  1. ..S Y=AUPNDOB X ^DD("DD") S APCDDOB=Y
  1. ..S APCDHRN="" I $D(^AUPNPAT(AUPNPAT,41,DUZ(2),0)) S APCDHRN=$P(^AUPNPAT(AUPNPAT,41,DUZ(2),0),U,2)
  1. ..I $Y>(IOSL-7) D HEAD Q:$D(APCDQUIT)
  1. ..W !!,"HRN: ",APCDHRN," DOB: ",APCDDOB," SEX: ",AUPNSEX
  1. ..S DA=APCDDFN,DIC=^DIC(APCDFILE,0,"GL"),DR=0 D EN^DIQ K DIC,DA,DR
  1. ..I APCDVSIT,$L(APCDFILE)>7 S APCDVCTR=$$OPER(APCDVSIT) W ?2,"OPERATOR FROM FORMS TRACKING OR CREATED BY: " I APCDVCTR W $P(^VA(200,APCDVCTR,0),U) W !
  1. ..I APCDVSIT,$L(APCDFILE)>7 W ?2,"LOCATION OF ENCOUNTER: ",$$LOCENC^APCLV(APCDVSIT,"E")
  1. ..I APCDVSIT,$L(APCDFILE)>7 W !?2,"PROVIDER: ",$$PRIMPROV^APCLV(APCDVSIT,"N")
  1. ..I APCDFILE=9000011,$P($G(^AUPNPROB(APCDDFN,1)),U,4)]"" W ?2,"RECORDING PROVIDER: ",$$VAL^XBDIQ1(9000011,APCDDFN,1.04),!
  1. ..I APCDFILE=9000011,$P($G(^AUPNPROB(APCDDFN,1)),U,3)]"" W ?2,"ENTERED BY: ",$$VAL^XBDIQ1(9000011,APCDDFN,1.03),!
  1. ..I APCDFILE=9000011,$P($G(^AUPNPROB(APCDDFN,1)),U,5)]"" W !?2,"RESPONSIBLE PROVIDER: ",$$VAL^XBDIQ1(9000011,APCDDFN,1.05)
  1. Q
  1. ;
  1. OPER(V) ;
  1. I $G(V)="" Q ""
  1. ;find operator in forms tracking first, if none return .23 of visit (user who created)
  1. NEW Y,D,M S Y=""
  1. S D=$O(^APCDFORM("AB",V,"")) I D="" Q $P(^AUPNVSIT(V,0),U,23)
  1. S M=$O(^APCDFORM("AB",V,D,"")) I M="" Q $P(^AUPNVSIT(V,0),U,23)
  1. S Y=$P(^APCDFORM(D,11,M,0),U,2)
  1. Q $S(Y:Y,1:$P(^AUPNVSIT(V,0),U,23))
  1. NONE ;
  1. W !!,"There are no Uncoded diagnoses or procedures in the ",$P(^DIC(APCDFILE,0),U)," file."
  1. Q
  1. CHKDATE ;
  1. S APCDOK=0
  1. S APCDG=APCDVDG_"APCDDFN,0)" S Y=$P(@APCDG,U,2),APCDVSIT=$P(@APCDG,U,3) I Y=""!(APCDVSIT="") W !,"ERROR IN GLOBAL -- NOTIFY PROGRAMMER - PATIENT OR VISIT DFN MISSING" Q
  1. I $L(APCDFILE)>7 Q:'$D(^AUPNVSIT(APCDVSIT)) I $P($P(^AUPNVSIT(APCDVSIT,0),U),".")<APCDFUDT!($P($P(^AUPNVSIT(APCDVSIT,0),U),".")>APCDFUET) Q ;before date wanted
  1. I $L(APCDFILE)=7,$P(@APCDG,U,3)<APCDFUDT Q ;quit if problem modified before date
  1. S APCDOK=1
  1. Q
  1. I 'APCDPG G HEAD1
  1. I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR I Y=0!($D(DTOUT)) K DIR S APCDQUIT="" Q
  1. HEAD1 ;
  1. ;
  1. W:$D(IOF) @IOF S APCDPG=APCDPG+1
  1. W !,APCDDT,?70,"Page: ",APCDPG
  1. W !?29,"PCC Data Entry Module"
  1. W !?16,"***********************************************"
  1. W !?16,"* LISTING OF UNCODED DIAGNOSES AND PROCEDURES *"
  1. W !?16,"***********************************************"
  1. Q
  1. SUBHEAD ;
  1. W !!,"Uncoded ",$P(^DIC(APCDFILE,0),U)," entries:"
  1. Q
  1. TSKMN ;
  1. K ZTSAVE
  1. S ZTSAVE("APCD*")=""
  1. S ZTSAVE("DUZ(2)")="",ZTIO=ION,ZTCPU=$G(IOCPU),ZTRTN="EN^APCDFPPV",ZTDTH="",ZTDESC="VISIT ERROR REPORT - DATA ENTRY" D ^%ZTLOAD
  1. D XIT
  1. Q
  1. DOC ;
  1. ; need to change to go thru PT node of ICD9 and
  1. ; fix all files in the 9000001-9000099 range.
  1. ;