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

APCDFUNC.m

Go to the documentation of this file.
  1. APCDFUNC ; IHS/CMI/LAB - FIX UNCODED DX ;
  1. ;;2.0;IHS PCC SUITE;**2,10,11**;MAY 14, 2009;Build 58
  1. ;
  1. POV ;EP
  1. S APCDFILE=9000010.07,APCDTEMP="[APCD FUD POV]" D GETCODE,GETDATE G:$G(APCDQUIT) XIT G PROCESS
  1. ;
  1. PROB ;EP
  1. ;
  1. S APCDFILE=9000011,APCDTEMP="[APCD FUD PROB]" D GETCODE,GETDATE G:$G(APCDQUIT) XIT G PROCESS
  1. FAMILY ;EP
  1. S APCDFILE=9000014,APCDTEMP="[APCD FUD FAMHX]" D GETCODE,GETDATE G:$G(APCDQUIT) XIT G PROCESS
  1. ;
  1. PERS ;EP
  1. S APCDFILE=9000013,APCDTEMP="[APCD FUD PER HX]" D GETCODE,GETDATE G:$G(APCDQUIT) XIT G PROCESS
  1. ;
  1. PRO ;EP
  1. S APCDFILE=9000010.08,APCDTEMP="[APCD FUD PROC]"
  1. D GETDATE I $D(APCDQUIT) D XIT Q
  1. S APCD999=$P($$ICDOP^ICDEX(".9999",,2,"E"),U),APCD990=$P($$ICDOP^ICDEX("ZZZ999",,31,"E"),U) G PROCESS
  1. ;
  1. Q
  1. GETDATE ;get beginning date ; -- add to code for a date range
  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 "_$P(^DIC(APCDFILE,0),U)_"'s" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) S APCDQUIT=1 Q
  1. S APCDFUDT=Y
  1. LOC ;
  1. 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) GETDATE
  1. S APCDLOCT=Y
  1. I APCDLOCT="A" Q
  1. D @APCDLOCT
  1. G:$D(APCDQUIT) LOC
  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 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. CHKLOC ;
  1. I APCDFILE=9000011 D Q
  1. .S APCDOK=0
  1. .I $P(^AUPNPROB(APCDDFN,0),U,12)="D" Q ;DELETED STATUS
  1. .Q:$P($G(^AUPNPROB(APCDDFN,800)),U,1)]""
  1. .I APCDLOCT="O",$P(^AUPNPROB(APCDDFN,0),U,6)'=APCDLOCT("ONE") Q
  1. .I APCDLOCT="S",$$VALI^XBDIQ1(9999999.06,$P(^AUPNPROB(APCDDFN,0),U,6),.05)'=APCDLOCT("SU") Q
  1. .S APCDOK=1
  1. I $L(APCDFILE)=7 S APCDOK=1 Q
  1. S APCDOK=0
  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. GETCODE ;
  1. K APCDQUIT ;IHS/CMI/LAB
  1. D SETDEF Q
  1. SETDEF ;SET DEFAULT OF .9999
  1. S APCD999=$P($$ICDDX^ICDEX(".9999",,1,"E"),U,1)
  1. S APCD990=$P($$ICDDX^ICDEX("ZZZ.999",,30,"E"),U,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. XIT ;
  1. K APCDFILE,APCDDFN,APCDVDG,APCDVIGR,APCDCONT,APCDTEMP,APCD999,APCD990,APCDG,APCDL,APCDHRN,APCDDOB,APCDVSIT,AUPNSEX,AUPNPAT,AUPNDOB,AUPNDAYS,APCDEIN,AUPNDOD,APCDCAT,APCDFUDT,APCDOK,APCDQUIT ;IHS/CMI/LAB - added APCDQUIT
  1. Q
  1. PROCESS ;
  1. I APCD999="" W !!,"ERROR -- .9999 NOT IN ICD ",$S(APCDFILE=9000010.08:"PROCEDURE",1:"DIAGNOSIS")," FILE, NOTIFY YOUR SUPERVISOR" G XIT
  1. I APCD990="" W !!,"ERROR -- ",$S(APCFILE=9000010.08:"ZZZ999",1:"ZZZ.999")," NOT IN ICD ",$S(APCDFILE=9000010.08:"PROCEDURE",1:"DIAGNOSIS")," FILE, NOTIFY YOUR SUPERVISOR" G XIT
  1. S APCDEIN="",APCDDFN="",U="^"
  1. I '$D(^DIC(APCDFILE)) W !!,"FILE DOES NOT EXIST -- NOTIFY YOUR SUPERVISOR" G XIT
  1. S APCDVDG=$P(^DIC(APCDFILE,0),U) I APCDVDG="" W !,"ERROR IN ^DIC -- NOTIFY PROGRAMMER" G XIT
  1. S APCDVDG=^DIC(APCDFILE,0,"GL")
  1. S APCDG=APCDVDG_"""B"",APCD999)"
  1. S APCDG0=APCDVDG_"""B"",APCD990)"
  1. I '$D(@APCDG),'$D(APCDG0) W !!,"There are no Uncoded codes to change." Q
  1. S APCDVIGR=APCDVDG_"""B"",APCD999,APCDDFN)"
  1. W !!,"Searching the ",$P(^DIC(APCDFILE,0),U)," File",!
  1. S APCDDFN=0,APCDCONT=1 F APCDL=0:0 S APCDDFN=$O(@APCDVIGR) Q:APCDDFN'=+APCDDFN D CHKDATE I APCDOK D CHKLOC I APCDOK D CONT Q:'APCDCONT D APCDDIE
  1. S APCDVIGR=APCDVDG_"""B"",APCD990,APCDDFN)"
  1. S APCDDFN=0,APCDCONT=1 F APCDL=0:0 S APCDDFN=$O(@APCDVIGR) Q:APCDDFN'=+APCDDFN D CHKDATE I APCDOK D CHKLOC I APCDOK D CONT Q:'APCDCONT D APCDDIE
  1. W !!,"All done with the ",$P(^DIC(APCDFILE,0),U)," file",!
  1. D XIT
  1. Q
  1. CONT ;
  1. W !!
  1. S DIR("A")="Continue",DIR("B")="Y",DIR(0)="Y" D ^DIR
  1. I $D(DIRUT) S X="N"
  1. S:"Nn"[X APCDCONT=""
  1. W !
  1. K DIR,DIRUT,DUOUT,DTOUT,DIROUT
  1. Q
  1. APCDDIE ;
  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. D ^AUPNPAT
  1. I $L(APCDFILE)>7,AUPNDOB]"" S X2=AUPNDOB,X1=$P(^AUPNVSIT(APCDVSIT,0),U)\1 D ^%DTC S AUPNDAYS=X ; re-set days of age to visit date-dob
  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. W !,"NAME: ",$P(^DPT(AUPNPAT,0),U)," DOB: ",APCDDOB," SEX: ",AUPNSEX," HRN: ",$S(APCDHRN]"":APCDHRN,1:"NONE")
  1. I $L(APCDFILE)>7 S APCDCAT=$P(^AUPNVSIT(APCDVSIT,0),U,7) W !,"DATE OF VISIT: " S Y=$P(^AUPNVSIT(APCDVSIT,0),U) D DT^DIO2 S Y="" W " LOC: ",$P(^DIC(4,$P(^AUPNVSIT(APCDVSIT,0),U,6),0),U)
  1. S DA=APCDDFN,DIC=APCDVDG D EN^DIQ
  1. I APCDFILE=9000010.07,$$VAL^XBDIQ1(APCDFILE,APCDDFN,1101)]"" NEW APCDLOOK S APCDLOOK=APCDDFN D EN^XBNEW("MAP^APCDFUNC","APCDLOOK")
  1. S DA=APCDDFN,DIE=APCDVDG,DR=APCDTEMP D ^DIE K DA,DIE,DR
  1. I $L(APCDFILE)>7 S AUPNVSIT=APCDVSIT D MOD^AUPNVSIT
  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. ;
  1. MAP ;EP - CALLED FROM XBDBQUE
  1. S D=$$VD^APCLV($P(^AUPNVPOV(APCDLOOK,0),U,3))
  1. S D=$$IMP^AUPNSICD(D)
  1. I D'=30 Q ;ICD10 ONLY
  1. S C=$$VAL^XBDIQ1(9000010.07,APCDLOOK,1101)
  1. ;GET MAP ADVICE
  1. S D=$$I10ADV^BSTSAPI("APCDV",C)
  1. I 'D Q ;NO MAP ADVICE
  1. ;ASK TO DISPLAY
  1. W !!,"This POV has been SNOMED coded and there is map advice available."
  1. K DIR
  1. S DIR(0)="Y",DIR("A")="Do you wish to see the Map Advice",DIR("B")="Y" KILL DA
  1. D ^DIR KILL DIR
  1. I $D(DIRUT) Q
  1. I 'Y Q
  1. ;ZW APCDV
  1. S X=0 F S X=$O(APCDV(X)) Q:X'=+X S APCDJ(X,0)=APCDV(X)
  1. K APCDV
  1. D ARRAY^XBLM("APCDJ(","Map Advice for SNOMED Concept ID: "_C)
  1. ;REDISPLAY POV
  1. S DA=APCDLOOK,DIC="^AUPNVPOV(" D EN^DIQ
  1. Q