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

BMCFUNC.m

Go to the documentation of this file.
BMCFUNC ; IHS/PHXAO/TMJ - FIX UNCODED DX ;
 ;;4.0;REFERRED CARE INFO SYSTEM;**8,9**;JAN 09, 2006;Build 101
 ;BMC*4.0*8 CSV added a space to the .9999 code now checking for ".9999 "
 ;BMC*4.0*9 REWROTE FOR ICD-10 CHANGES
 ;
POV ;EP
 ;BMC*4.0*9 IHS.OIT.FCJ MODIFIED NXT SECTION TO CHECK FOR BOTH ICD9 AND ICD10 UNCODED DX CODE
 ;S BMCFILE=90001.01,BMCTEMP="[BMC FUD POV]" D GETCODE G PROCESS
 S BMCFILE=90001.01,BMCCONT=1
 F I=1:1:3 S BMC999=$S(I=1:$P($G(^APCCCTRL(DUZ(2),0)),U,5),I=2:$O(^ICD9("AB",".9999 ","")),I=3:$O(^ICD9("AB","ZZZ.999 ","")),1:"") D:BMC999'="" PROCESS Q:'BMCCONT
 W !!,"All done with the ",$P(^DIC(BMCFILE,0),U)," file",!
 D XIT
 Q
 ;
GETCODE ;
 ;I $P($G(^APCCCTRL(DUZ(2),0)),U,5)="" D SETDEF Q
 ;S BMC999=$P(^APCCCTRL(DUZ(2),0),U,5)
 ;Q
SETDEF ;SET DEFAULT OF .9999
 ;BMC*4.0*8 change ".9999" to ".9999 "
 ;S BMC999=$O(^ICD9("AB",.9999,""))
 ;S BMC999=$O(^ICD9("AB",".9999 ",""))
 ;Q
XIT ;
 K BMCFILE,BMCDFN,BMCVDG,BMCVIGR,BMCCONT,BMCTEMP,BMC999,BMCG,BMCL,BMCHRN,BMCDOB,BMCRIEN,AUPNSEX,AUPNPAT,AUPNDOB,AUPNDAYS,BMCEIN,AUPNDOD,BMCCAT
 K LEXVDT,DIC,BMCDX10,BMCDXCPT,BMCDXPR,BMCICD,BMCICD1,BMCLEX
 Q
PROCESS ;
 I BMC999="" W !!,"ERROR -- UNCODED DX IS NOT IN ICD DIAGNOSIS FILE, NOTIFY YOUR SUPERVISOR" G XIT
 S BMCEIN="",BMCDFN="",U="^"
 I '$D(^DIC(BMCFILE)) W !!,"FILE DOES NOT EXIST -- NOTIFY YOUR SUPERVISOR" G XIT
 S BMCVDG=$P(^DIC(BMCFILE,0),U) I BMCVDG="" W !,"ERROR IN ^DIC -- NOTIFY PROGRAMMER" G XIT
 S BMCVDG=^DIC(BMCFILE,0,"GL")
 S BMCG=BMCVDG_"""B"",BMC999)"
 I I=2,'$D(@BMCG) Q  ;BMC*4.0*9
 I '$D(@BMCG) W ?10,!!,"***There are no Uncoded DX codes to change.***" H 3 Q
 S BMCVIGR=BMCVDG_"""B"",BMC999,BMCDFN)"
 W !!,"Searching the ",$P(^DIC(BMCFILE,0),U)," File",!
 S BMCDFN=0,BMCCONT=1 F BMCL=0:0 S BMCDFN=$O(@BMCVIGR) Q:BMCDFN'=+BMCDFN  D CONT Q:'BMCCONT  D BMCDIE
 ;W !!,"All done with the ",$P(^DIC(BMCFILE,0),U)," file",!
 Q
CONT ;
 W !!
 S DIR("A")="Continue",DIR("B")="Y",DIR(0)="Y" D ^DIR
 I $D(DIRUT) S X="N"
 S:"Nn"[X BMCCONT=""
 W !
 K DIR,DIRUT,DUOUT,DTOUT,DIROUT
 Q
BMCDIE ;
 S BMCQ=0  ;BMC*4.0*9
 S BMCG=BMCVDG_"BMCDFN,0)" S Y=$P(@BMCG,U,2),BMCRIEN=$P(@BMCG,U,3) I Y=""!(BMCRIEN="") W !,"ERROR IN GLOBAL -- NOTIFY PROGRAMMER - PATIENT OR VISIT DFN MISSING" Q
 D ^AUPNPAT
 I $L(BMCFILE)>7,AUPNDOB]"" S X2=AUPNDOB,X1=$P(^BMCREF(BMCRIEN,0),U)\1 D ^%DTC S AUPNDAYS=X ; re-set days of age to visit date-dob
 S Y=AUPNDOB X ^DD("DD") S BMCDOB=Y
 S BMCHRN="" I $D(^AUPNPAT(AUPNPAT,41,DUZ(2),0)) S BMCHRN=$P(^AUPNPAT(AUPNPAT,41,DUZ(2),0),U,2)
 W !,"NAME: ",$P(^DPT(AUPNPAT,0),U),"  DOB: ",BMCDOB,"  SEX: ",AUPNSEX,"  HRN: ",$S(BMCHRN]"":BMCHRN,1:"NONE")
 W !,"Referral: ",$P(^BMCREF(BMCRIEN,0),U,2),"  DX NAR: ",$P($G(^BMCREF(BMCRIEN,12)),U)
 ;I $L(BMCFILE)>7 S BMCCAT=$P(^BMCREF(BMCRIEN,0),U,7) W !,"DATE OF VISIT: " S Y=$P(^AUPNVSIT(BMCRIEN,0),U) D DT^DIO2 S Y=""
 ;
 ;BMC*4.0*9 Use Lexicon instead of input templates
 ;S DA=BMCDFN,DIE=BMCVDG,DR=BMCTEMP D ^DIE K DA,DIE,DR
 S BMCDOS=$$AVDOS^BMCRLU(BMCRIEN,"N")
 I BMCDOS<$$IMPDATE^LEXU("10D") S (BMCICD,BMCICD1)="ICD"
 E  S (BMCICD,BMCICD1)="10D"
 S BMCLEX=+($$CSYS^LEXU(BMCICD))             ;Get Coding System
 D CONFIG^LEXSET(BMCICD,BMCICD1,BMCDOS)
 W !! S DIC("A")="Enter ICD DX code: " K X D ^LEXA1
 I +Y<0 S BMCQ=1 Q
 K DIC
 S X=$P($$CODEN^ICDEX($G(Y(+BMCLEX)),80),"~")  ;POINTER TO ICD
 I +Y<0 W !,"Unable to add DX code." S BMCQ=1 Q
 S DA=BMCDFN,DR=".01////"_X_";.02////"_DFN_";.03////"_BMCRIEN_";.04////P"_";.05;.06"
 S DIE=BMCVDG
 D DIE^BMCFMC
 K BMCDX,DIC,DIE,DR,DA,X,LEXQ,LEXVDT,ICDV,BMCLEX,BMCICD,BMCICD1
 ;BMC*4.0*9 END OF CHANGES
 ;
 ;I $L(BMCFILE)>7 S AUPNVSIT=BMCRIEN D MOD^AUPNVSIT
 ;Stuff Todays's Date in field .27 Date Last Modified in BMCREF(
 ;
 S DA=BMCRIEN,DIE="^BMCREF(",DR=".27////"_DT D ^DIE K DA,DIE,DIU,DIV,DR
 ;
 Q