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