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

AUM101RL.m

Go to the documentation of this file.
  1. AUM101RL ;IHS/SD/DMJ,SDR - ICD 9 CODES FOR FY 2010 ; [ 08/18/2003 11:02 AM ]
  1. ;;10.2;TABLE MAINTENANCE;;MAR 09, 2010
  1. START ;EP
  1. ;
  1. SVARS ;;A,C,E,F,L,M,N,O,P,R,S,T,V;Single-character work variables.
  1. NEW DA,DIC,DIE,DINUM,DLAYGO,DR,@($P($T(SVARS),";",3))
  1. S U="^"
  1. D RSLT^AUM101R1("Beginning AUM 10.1 RELOAD, ICD Update.")
  1. D DRGS^AUM101E ;update DRGs
  1. D DASH^AUM101R1,ICD9NEW
  1. D DASH^AUM101R1,ICD9REV
  1. D DASH^AUM101R1,ICD9INAC
  1. D DASH^AUM101R1,ICD0NEW
  1. D DASH^AUM101R1,ICD0REV
  1. D DASH^AUM101R1,ICD0INAC
  1. ;D DASH^AUM101R1,ICD9OREV
  1. ;D DASH^AUM101R1,ICD0OREV
  1. D DASH^AUM101R1
  1. D RSLT^AUM101R1("End AUM 10.1 RELOAD ICD Update.")
  1. Q
  1. ; ---------------------------------
  1. ICD9NEW ;
  1. D RSLT^AUM101R1("ICD 9 DIAGNOSIS, NEW CODES:") ;("ICD9NEW")
  1. D RSLT^AUM101R1($J("",8)_"CODE DESCRIPTION")
  1. D RSLT^AUM101R1($J("",8)_"---- -----------")
  1. ; loads new ICD9 CODES
  1. NEW AUMDA,AUMI,AUMLN,DA,DIE,DR
  1. F AUMI=1:1 S AUMLN=$P($T(ICD9NEW+AUMI^AUM101A),";;",2) Q:AUMLN="END" D ICD9NPRC
  1. F AUMI=1:1 S AUMLN=$P($T(ICD9NEW2+AUMI^AUM101E),";;",2) Q:AUMLN="END" D ICD9NPRC
  1. F AUMI=1:1 S AUMLN=$P($T(ICD9NEW3+AUMI^AUM101F),";;",2) Q:AUMLN="END" D ICD9NPRC
  1. D NEWVCODS
  1. Q
  1. ICD9NPRC ;
  1. S AUMLN=$TR(AUMLN,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. S Y=$$IXDIC^AUM101R1("^ICD9(","ILXM","AB",$P(AUMLN,U)_" ",80)
  1. I Y=-1 D RSLT^AUM101R1("ERROR: Lookup/Add of CODE '"_$P(AUMLN,U)_"' FAILED.") Q
  1. S DA=+Y
  1. S DR="3///"_$P(AUMLN,U,2) ;diagnosis
  1. S DR=DR_";10///"_$P(AUMLN,U,3) ;description
  1. ;
  1. S DR=DR_";100////@" ;inactive flag
  1. S DR=DR_";102////@" ;inactive date
  1. ;
  1. S DR=DR_";9999999.04///3091001" ;date added
  1. S DR=DR_";16///3091001" ;activation date
  1. ;
  1. S DR=DR_";9.5///"_$P(AUMLN,U,4) ;use with sex
  1. S DR=DR_";5///"_$P(AUMLN,U,5) ;MDC
  1. I $P(AUMLN,U,7)=1 S DR=DR_";70///1" ;complication/comorbidity
  1. S DIE="^ICD9("
  1. S AUMDA=DA
  1. D DIE^AUM101R1
  1. ;
  1. ;effective date multiple
  1. D EFFDTMUL("NEW")
  1. ;diagnosis multiple
  1. D SDSCMULT("NEW")
  1. ;description multiple
  1. D DESCMULT("NEW")
  1. ;MDC multiple
  1. D MDCMULT("NEW")
  1. ;CC multiple
  1. D CCMULT("NEW")
  1. ;
  1. ; this part loads DRGs if there are any
  1. S (AUMDRG,AUMDRGS,DR)=""
  1. S AUMDRGS=$P(AUMLN,U,6)
  1. I $L(AUMDRGS,",")>0 D
  1. .F AUMJ=1:1:$L(AUMDRGS,",") D
  1. ..S AUMDRG=$TR($P(AUMDRGS,",",AUMJ)," ")
  1. ..S DR=60+(AUMJ-1)_"///"_AUMDRG
  1. ..S DA=AUMDA
  1. ..S DIE="^ICD9("
  1. ..D DIE^AUM101R1
  1. F AUMJ=AUMJ:1:5 D
  1. .S DR=60+(AUMJ)_"////@"
  1. .S DA=AUMDA
  1. .S DIE="^ICD9("
  1. .D DIE^AUM101R1
  1. I $D(Y) D RSLT^AUM101R1("ERROR: Edit of fields for CODE '"_$P(AUMLN,U,1)_"' FAILED.") Q
  1. D RSLT^AUM101R1($J("",8)_$P(AUMLN,U,1)_$J("",4)_$E($P(AUMLN,U,2),1,30))
  1. ;remove any data in OTHER WORDS or TAXONOMY
  1. I $D(^ICD9(AUMDA,9999999.21,0)) D
  1. .S AUMO=0
  1. .F S AUMO=$O(^ICD9(AUMDA,9999999.21,AUMO)) Q:+AUMO=0 D
  1. ..S DA(1)=AUMDA
  1. ..S DA=AUMO
  1. ..S DIK="^ICD9("_DA(1)_",9999999.21,"
  1. ..D ^DIK
  1. I $D(^ICD9(AUMDA,9999999.41,0)) D
  1. .S AUMO=0
  1. .F S AUMO=$O(^ICD9(AUMDA,9999999.41,AUMO)) Q:+AUMO=0 D
  1. ..S DA(1)=AUMDA
  1. ..S DA=AUMO
  1. ..S DIK="^ICD9("_DA(1)_",9999999.41,"
  1. ..D ^DIK
  1. Q
  1. NEWVCODS ; loads NEW V-CODES
  1. D DASH^AUM101R1
  1. D RSLT^AUM101R1("ICD 9 DIAGNOSIS, NEW V-CODES:") ;("ICD9VNEW")
  1. D RSLT^AUM101R1($J("",8)_"CODE DESCRIPTION")
  1. D RSLT^AUM101R1($J("",8)_"---- -----------")
  1. NEW AUMDA,AUMI,AUMLN,DA,DIE,DR
  1. F AUMI=1:1 S AUMLN=$P($T(ICD9VNEW+AUMI^AUM101E),";;",2) Q:AUMLN="END" D
  1. .S AUMLN=$TR(AUMLN,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. .S Y=$$IXDIC^AUM101R1("^ICD9(","ILXM","AB",$P(AUMLN,U),80)
  1. .I Y=-1 D RSLT^AUM101R1("ERROR: Lookup/Add of CODE '"_$P(AUMLN,U)_"' FAILED.") Q
  1. .S DA=+Y
  1. .S DR="3///"_$P(AUMLN,U,2) ;diagnosis
  1. .S DR=DR_";10///"_$P(AUMLN,U,3) ;description
  1. .;
  1. .S DR=DR_";100///@" ;inactive flag
  1. .S DR=DR_";102///@" ;inactive date
  1. .S DR=DR_";9999999.04///3091001" ;date added
  1. .;
  1. .S DR=DR_";9.5///"_$P(AUMLN,U,4) ;use with sex
  1. .S DR=DR_";5///"_$P(AUMLN,U,5) ;MDC
  1. .S DIE="^ICD9("
  1. .S AUMDA=DA
  1. .D DIE^AUM101R1
  1. .;
  1. .;effective date multiple
  1. .K AUMFLG
  1. .D EFFDTMUL("NEW")
  1. .;diagnosis multiple
  1. .D SDSCMULT("NEW")
  1. .;description multiple
  1. .D DESCMULT("NEW")
  1. .;
  1. .; this part loads the DRGs if there are any
  1. .S (AUMDRGS,DR)=""
  1. .S AUMDRGS=$P(AUMLN,U,6)
  1. .I $L(AUMDRGS,",")>0 D
  1. ..F AUMJ=1:1:$L(AUMDRGS,",") D
  1. ...S AUMDRG=$TR($P(AUMDRGS,",",AUMJ)," ")
  1. ...S DR=60+(AUMJ-1)_"///"_AUMDRG
  1. ...S DA=AUMDA
  1. ...S DIE="^ICD9("
  1. ...D DIE^AUM101R1
  1. .I $D(Y)!$G(AUMFLG) D RSLT^AUM101R1("ERROR: Edit of fields for CODE '"_$P(AUMLN,U,1)_"' FAILED.") Q
  1. .D RSLT^AUM101R1($J("",8)_$P(AUMLN,U,1)_$J("",4)_$E($P(AUMLN,U,2),1,30))
  1. .Q
  1. ;loads new E-CODES
  1. D DASH^AUM101R1
  1. D RSLT^AUM101R1("ICD 9, NEW/REVISED E-CODES:") ;("ICD9ENEW")
  1. D RSLT^AUM101R1($J("",8)_"CODE DESCRIPTION")
  1. D RSLT^AUM101R1($J("",8)_"---- -----------")
  1. NEW AUMDA,AUMI,AUMLN,DA,DIE,DR
  1. F AUMI=1:1 S AUMLN=$P($T(ICD9ENEW+AUMI^AUM101B),";;",2) Q:AUMLN="END" D
  1. .S AUMLN=$TR(AUMLN,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. .;don't add space if E- or V-code; lookup fails
  1. .S Y=$$IXDIC^AUM101R1("^ICD9(","ILXM","AB",$P(AUMLN,U)_$S($A($E($P(AUMLN,U)))<58:" ",1:""),80)
  1. .I Y=-1 D RSLT^AUM101R1("ERROR: Lookup/Add of CODE '"_$P(AUMLN,U)_"' FAILED.") Q
  1. .S DA=+Y
  1. .S DR="3///"_$P(AUMLN,U,2) ;diagnosis
  1. .S DR=DR_";10///"_$P(AUMLN,U,3) ;description
  1. .S DR=DR_";100///@" ;inactive flag
  1. .S DR=DR_";102///@" ;inactive date
  1. .S DR=DR_";9999999.04///3091001" ;date added
  1. .S DR=DR_";9.5///"_$P(AUMLN,U,4) ;use with sex
  1. .S DIE="^ICD9("
  1. .S AUMDA=DA
  1. .D DIE^AUM101R1
  1. .;
  1. .;effective date multiple
  1. .K AUMFLG
  1. .D EFFDTMUL("NEW")
  1. .;diagnosis multiple
  1. .D SDSCMULT("NEW")
  1. .;description multiple
  1. .D DESCMULT("NEW")
  1. .;
  1. .I $G(AUMFLG) D RSLT^AUM101R1("ERROR: Edit of fields for CODE '"_$P(AUMLN,U,1)_"' FAILED.") Q
  1. .D RSLT^AUM101R1($J("",8)_$P(AUMLN,U,1)_$J("",4)_$E($P(AUMLN,U,2),1,30))
  1. .Q
  1. Q
  1. ;
  1. ICD9INAC ;
  1. D RSLT^AUM101R1("ICD 9 DIAGNOSIS, INACTIVE CODES:") ;("ICD9DINA")
  1. D RSLT^AUM101R1($J("",8)_"CODE DESCRIPTION")
  1. D RSLT^AUM101R1($J("",8)_"---- -----------")
  1. NEW AUMI,DA,DIE,DR,X
  1. F AUMI=1:1 S X=$P($T(ICD9DINA+AUMI^AUM101D),";;",2) Q:X="END" D
  1. .S Y=$$IXDIC^AUM101R1("^ICD9(","ILXM","AB",$P(X,U)_" ")
  1. .I Y=-1 D RSLT^AUM101R1(" CODE '"_X_"' not found (that's OK).") Q
  1. .S DA=+Y,AUMDA=+Y
  1. .S DIE="^ICD9("
  1. .S DR="102///3091001" ;inactive date
  1. .S DR=DR_";100////1" ;inactive flag
  1. .D DIE^AUM101R1
  1. .;effective date multiple
  1. .K AUMFLG
  1. .K DIC,DIE,DA,X,Y
  1. .S DA(1)=AUMDA
  1. .S DIC="^ICD9("_DA(1)_",66,"
  1. .S DIC("P")=$P(^DD(80,66,0),U,2)
  1. .S DIC(0)="L"
  1. .S X="3091001" ;use active date of 10/01/2009
  1. .S DIC("DR")=".02////0"
  1. .D ^DIC
  1. .I $G(AUMFLG) D RSLT^AUM101R1("ERROR: Edit of INACTIVE DATE field for CODE '"_$P(X,U)_"' FAILED.") Q
  1. .D RSLT^AUM101R1($J("",8)_$P(^ICD9(AUMDA,0),U,1)_$J("",4)_$E($P(^ICD9(AUMDA,0),U,3),1,30))
  1. .Q
  1. Q
  1. ;
  1. ICD9OINA ;
  1. D RSLT^AUM101R1("ICD 9 DIAGNOSIS, OTHER INACTIVATED CODES:") ;("ICD9OINA")
  1. D RSLT^AUM101R1($J("",8)_"CODE DESCRIPTION")
  1. D RSLT^AUM101R1($J("",8)_"---- -----------")
  1. NEW AUMI,DA,DIE,DR,X
  1. F AUMI=1:1 S X=$P($T(ICD9OINA+AUMI^AUM101D),";;",2) Q:X="END" D
  1. .S Y=$$IXDIC^AUM101R1("^ICD9(","ILXM","AB",$P(X,U)_" ")
  1. .I Y=-1 D RSLT^AUM101R1(" CODE '"_X_"' not found (that's OK).") Q
  1. .S DA=+Y,AUMDA=+Y
  1. .S DIE="^ICD9("
  1. .S DR="102///3091001" ;inactive date
  1. .S DR=DR_";100////1" ;inactive flag
  1. .D DIE^AUM101R1
  1. .;effective date multiple
  1. .K DIC,DIE,DA,X,Y
  1. .S DA(1)=AUMDA
  1. .S DIC="^ICD9("_DA(1)_",66,"
  1. .S DIC("P")=$P(^DD(80,66,0),U,2)
  1. .S DIC(0)="L"
  1. .S X="3091001" ;use active date of 10/01/2009
  1. .S DIC("DR")=".02////0"
  1. .D ^DIC
  1. .I $D(Y) D RSLT^AUM101R1("ERROR: Edit of INACTIVE DATE field for CODE '"_$P(AUMLN,U,1)_"' FAILED.") Q
  1. .D RSLT^AUM101R1($J("",8)_$P(^ICD9(AUMDA,0),U,1)_$J("",4)_$E($P(^ICD9(AUMDA,0),U,3),1,30))
  1. .Q
  1. Q
  1. ;
  1. ICD9REV ;
  1. D RSLT^AUM101R1("ICD 9 DIAGNOSIS, MODIFIED CODES:")
  1. D RSLT^AUM101R1($J("",8)_"CODE DESCRIPTION")
  1. D RSLT^AUM101R1($J("",8)_"---- -----------")
  1. NEW AUMDA,AUMI,AUMLN,DA,DIE,DR
  1. F AUMI=1:1 S AUMLN=$P($T(ICD9REV+AUMI^AUM101C),";;",2) Q:AUMLN="END" D PROCESS
  1. Q
  1. ;
  1. PROCESS S AUMLN=$TR(AUMLN,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. S Y=$$IXDIC^AUM101R1("^ICD9(","ILXM","AB",$P(AUMLN,U)_$S($A($E($P(AUMLN,U)))<58:" ",1:""),80)
  1. I Y=-1 D RSLT^AUM101R1("ERROR: Lookup/Add of CODE '"_$P(AUMLN,U)_"' FAILED.") Q
  1. S DA=+Y
  1. S DR="3///"_$P(AUMLN,U,2) ;diagnosis
  1. S DR=DR_";10///"_$P(AUMLN,U,3) ;description
  1. ;
  1. S DR=DR_";100///@" ;inactive flag
  1. S DR=DR_";102///@" ;inactive date
  1. S DR=DR_";2100000///"_DT ;date updated
  1. ;
  1. S DR=DR_";9.5///"_$P(AUMLN,U,4) ;use with sex
  1. S DR=DR_";5///"_$P(AUMLN,U,5) ;MDC
  1. S DIE="^ICD9("
  1. S AUMDA=DA
  1. D DIE^AUM101R1
  1. ;effective date multiple
  1. D EFFDTMUL("REV")
  1. ;diagnosis multiple
  1. D SDSCMULT("REV")
  1. ;description multiple
  1. D DESCMULT("REV")
  1. ;
  1. ;clear DRGs in case there are less than before
  1. F AUMJ=60:1:65 D
  1. .S DIE="^ICD9("
  1. .S DA=AUMDA
  1. .S DR=AUMJ_"////@"
  1. .D ^DIE
  1. ;
  1. ; this part loads the DRGs if there are any
  1. S (AUMDRGS,DR)=""
  1. S AUMDRGS=$P(AUMLN,U,6)
  1. I $L(AUMDRGS,",")>0 D
  1. .F AUMJ=1:1:$L(AUMDRGS,",") D
  1. ..S AUMDRG=$TR($P(AUMDRGS,",",AUMJ)," ")
  1. ..S DR=60+(AUMJ-1)_"///"_AUMDRG
  1. ..S DA=AUMDA
  1. ..S DIE="^ICD9("
  1. ..D DIE^AUM101R1
  1. I $D(Y) D RSLT^AUM101R1("ERROR: Edit of fields for CODE '"_$P(AUMLN,U,1)_"' FAILED.") Q
  1. D RSLT^AUM101R1($J("",8)_$P(AUMLN,U,1)_$J("",4)_$E($P(AUMLN,U,2),1,30))
  1. Q
  1. ;
  1. ICD9OREV ;
  1. D RSLT^AUM101R1("ICD 9 DIAGNOSIS, OTHER MODIFIED CODE TITLES:") ;("ICD9OREV")
  1. D RSLT^AUM101R1($J("",8)_"CODE DESCRIPTION")
  1. D RSLT^AUM101R1($J("",8)_"---- -----------")
  1. NEW AUMDA,AUMI,AUMLN,DA,DIE,DR
  1. F AUMI=1:1 S AUMLN=$P($T(ICD9OREV+AUMI^AUM101C),";;",2) Q:AUMLN="END" D
  1. .S AUMLN=$TR(AUMLN,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. .S Y=$$IXDIC^AUM101R1("^ICD9(","ILX","AB",$P(AUMLN,U)_" ",80)
  1. .I Y=-1 D RSLT^AUM101R1("ERROR: Lookup/Add of CODE '"_$P(AUMLN,U)_"' FAILED.") Q
  1. .S DA=+Y
  1. .S DR="3///"_$P(AUMLN,U,2) ;diagnosis
  1. .S DR=DR_";10///"_$P(AUMLN,U,3) ;description
  1. .;
  1. .S DR=DR_";100///@" ;inactive flag
  1. .S DR=DR_";102///@" ;inactive date
  1. .S DR=DR_";2100000///"_DT ;date updated
  1. .;
  1. .S DR=DR_";9.5///"_$P(AUMLN,U,4) ;use with sex
  1. .S DR=DR_";5///"_$P(AUMLN,U,5) ;MDC
  1. .S DIE="^ICD9("
  1. .S AUMDA=DA
  1. .D DIE^AUM101R1
  1. ;effective date multiple
  1. D EFFDTMUL("REV")
  1. ;diagnosis multiple
  1. D SDSCMULT("REV")
  1. ;description multiple
  1. D DESCMULT("REV")
  1. Q
  1. ;
  1. ;
  1. EFFDTMUL(AUMX) ;
  1. ;effective date multiple
  1. S AUMLDT=0
  1. S AUMLDT=$O(^ICD9(AUMDA,66,"B",9999999),-1) ;get last date in multiple
  1. I +AUMLDT>0 D ;entry exists; check if status is correct (active)
  1. .S AUMMIEN=$O(^ICD9(AUMDA,66,"B",AUMLDT,0))
  1. .I +AUMMIEN=0 S AUMLDT=0 Q ;quit if incomplete entry for some reason
  1. .I AUMX="REV",(AUMLDT=3091001) Q ;already has 10/01/2009 entry
  1. .I $P($G(^ICD9(AUMDA,66,AUMMIEN,0)),U,2)=1 Q ;already active
  1. .S AUMLDT=0 ;set date to zero so it will add entry
  1. I +AUMLDT=0 D ;no entry or needs a new entry
  1. .K DIC,DIE,DA,X,Y
  1. .S DA(1)=AUMDA
  1. .S DIC="^ICD9("_DA(1)_",66,"
  1. .S DIC("P")=$P(^DD(80,66,0),U,2)
  1. .S DIC(0)="L"
  1. .S X="3091001" ;use active date of 10/01/2009
  1. .S DIC("DR")=".02////1"
  1. .D ^DIC
  1. Q
  1. ;
  1. DESCMULT(AUMX) ;
  1. S AUMODESC=""
  1. S AUMLDT=0
  1. S AUMLDT=$O(^ICD9(AUMDA,68,"B",9999999),-1)
  1. I +AUMLDT>0 D ;there is an entry
  1. .S AUMMIEN=$O(^ICD9(AUMDA,68,"B",AUMLDT,0))
  1. .I +AUMMIEN=0 S AUMLDT=0 Q
  1. .I AUMX="REV",(AUMLDT=3091001) Q ;already has 10/01/2009 entry
  1. .I $P($G(^ICD9(AUMDA,68,AUMMIEN,0)),U)=$P(AUMLN,U,3) Q
  1. .S AUMLDT=0
  1. I +AUMLDT=0 D ;no entry or needs a new entry
  1. .K DIC,DIE,DA,X,Y
  1. .S DA(1)=AUMDA
  1. .S DIC="^ICD9("_DA(1)_",68,"
  1. .S DIC("P")=$P(^DD(80,68,0),U,2)
  1. .S DIC(0)="L"
  1. .S X="3091001" ;use active date of 10/01/2009
  1. .S DIC("DR")="1////"_$P(AUMLN,U,3) ;description
  1. .D ^DIC
  1. Q
  1. ;
  1. SDSCMULT(AUMX) ;
  1. S AUMLDT=0
  1. S AUMLDT=$O(^ICD9(AUMDA,67,"B",9999999),-1) ;get last entry
  1. I +AUMLDT>0 D ;there is an entry
  1. .S AUMMIEN=$O(^ICD9(AUMDA,67,"B",AUMLDT,0))
  1. .I +AUMMIEN=0 S AUMLDT=0 Q ;quit if incomplete entry
  1. .I AUMX="REV",(AUMLDT=3091001) Q ;already has 10/01/2009 entry
  1. .I $P($G(^ICD0(AUMDA,67,AUMMIEN,0)),U,2)=$P(AUMLN,U,2) Q
  1. .S AUMLDT=0 ;set date to zero so it will add entry
  1. I +AUMLDT=0 D ;no entry or needs a new entry
  1. .K DIC,DIE,DA,X,Y
  1. .S DA(1)=AUMDA
  1. .S DIC="^ICD9("_DA(1)_",67,"
  1. .S DIC("P")=$P(^DD(80,67,0),U,2)
  1. .S DIC(0)="L"
  1. .S X="3091001" ;use active date of 10/01/2009
  1. .S DIC("DR")="1////"_$P(AUMLN,U,2) ;diagnosis
  1. .D ^DIC
  1. Q
  1. ;
  1. MDCMULT(AUMX) ;
  1. S AUMLDT=0
  1. S AUMLDT=$O(^ICD9(AUMDA,4,"B",9999999),-1) ;get last entry
  1. I +AUMLDT>0 D ;there is an entry
  1. .S AUMMIEN=$O(^ICD9(AUMDA,4,"B",AUMLDT,0))
  1. .I +AUMMIEN=0 S AUMLDT=0 Q ;quit if incomplete entry
  1. .I AUMX="REV",(AUMLDT=3091001) Q ;already has 10/01/2009 entry
  1. .I $P($G(^ICD0(AUMDA,4,AUMMIEN,0)),U,2)=$P(AUMLN,U,2) Q
  1. .S AUMLDT=0 ;set date to zero so it will add entry
  1. I +AUMLDT=0 D ;no entry or needs a new entry
  1. .K DIC,DIE,DA,X,Y
  1. .S DA(1)=AUMDA
  1. .S DIC="^ICD9("_DA(1)_",4,"
  1. .S DIC("P")=$P(^DD(80,72,0),U,2)
  1. .S DIC(0)="L"
  1. .S X="3091001" ;use active date of 10/01/2009
  1. .S DIC("DR")="1////"_$P(AUMLN,U,5) ;MDC
  1. .D ^DIC
  1. Q
  1. ;
  1. CCMULT(AUMX) ;
  1. Q:$P(AUMLN,U,7)'=1 ;not cc
  1. S AUMLDT=0
  1. S AUMLDT=$O(^ICD9(AUMDA,69,"B",9999999),-1) ;get last entry
  1. I +AUMLDT>0 D ;there is an entry
  1. .S AUMMIEN=$O(^ICD9(AUMDA,69,"B",AUMLDT,0))
  1. .I +AUMMIEN=0 S AUMLDT=0 Q ;quit if incomplete entry
  1. .I AUMX="REV",(AUMLDT=3091001) Q ;already has 10/01/2009 entry
  1. .I $P($G(^ICD0(AUMDA,69,AUMMIEN,0)),U,2)=$P(AUMLN,U,2) Q
  1. .S AUMLDT=0 ;set date to zero so it will add entry
  1. I +AUMLDT=0 D ;no entry or needs a new entry
  1. .K DIC,DIE,DA,X,Y
  1. .S DA(1)=AUMDA
  1. .S DIC="^ICD9("_DA(1)_",69,"
  1. .S DIC("P")=$P(^DD(80,103,0),U,2)
  1. .S DIC(0)="L"
  1. .S X="3091001" ;use active date of 10/01/2009
  1. .S DIC("DR")="1////1" ;cc
  1. .D ^DIC
  1. Q
  1. ;
  1. ICD0NEW ;
  1. D ICD0NEW^AUM101R2
  1. Q
  1. ;
  1. ; -----------------------------------------------------
  1. ICD0REV ;
  1. D ICD0REV^AUM101R2
  1. Q
  1. ICD0INAC ;
  1. D ICD0INAC^AUM101R2
  1. Q
  1. ICD0OREV ;
  1. D ICD0OREV^AUM101R2
  1. Q