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

ICD9IDX.m

Go to the documentation of this file.
  1. ICD9IDX ;DLS/DEK - MUMPS Cross Reference Routine for History ;28-Mar-2011 09:11;DU
  1. ;;18.0;DRG Grouper;**6,1003**;Oct 20, 2000;Build 2
  1. ;Modified - IHS/MCS/PLS - 03/28/2011 - Line SHIS+5
  1. ;
  1. ; ICDCOD ICD Code from Global
  1. ; ICDCODX ICD Code passed in (X)
  1. ; ICDEFF Effective Date
  1. ; ICDSTA Status
  1. ; ICDNOD Global Node (to reduce Global hits)
  1. ; DA ien file 80 or 80.066
  1. ; ICDIEN,DA(1) ien of file 80
  1. ; ICDHIS ien of file 80.066
  1. ; X Data passed in to be indexed
  1. ;
  1. ; Set and Kill Activation History
  1. ;
  1. ; File 80, field .01
  1. SAHC ; Set new value when ICD Code is Edited
  1. ; ^DD(80,.01,1,D0,1) = D SAHC^ICD9IDX
  1. N ICDNOD,ICDSTA,ICDEFF,ICDCOD,ICDCODX,ICDHIS,ICDIEN
  1. S ICDCODX=$G(X) Q:'$L(ICDCODX) S ICDIEN=+($G(DA)) Q:+ICDIEN'>0 Q:'$D(^ICD9(+ICDIEN,66))
  1. S ICDHIS=0 F S ICDHIS=$O(^ICD9(+ICDIEN,66,ICDHIS)) Q:+ICDHIS=0 D
  1. . N DA,X S DA=+ICDHIS,DA(1)=+ICDIEN D HDC
  1. . S ICDCOD=ICDCODX Q:'$L($G(ICDCOD))
  1. . Q:'$L($G(ICDEFF)) Q:'$L($G(ICDSTA)) D SHIS
  1. Q
  1. KAHC ; Kill old value when ICD Code is Edited
  1. ; ^DD(80,.01,1,D0,2) = D KAHC^ICD9IDX
  1. N ICDNOD,ICDSTA,ICDEFF,ICDCOD,ICDCODX,ICDHIS,ICDIEN
  1. S ICDCODX=$G(X) Q:'$L(ICDCODX) S ICDIEN=+($G(DA)) Q:+ICDIEN'>0 Q:'$D(^ICD9(+ICDIEN,66))
  1. S ICDHIS=0 F S ICDHIS=$O(^ICD9(+ICDIEN,66,ICDHIS)) Q:+ICDHIS=0 D
  1. . N DA,X S DA=+ICDHIS,DA(1)=+ICDIEN D HDC
  1. . S ICDCOD=ICDCODX Q:'$L($G(ICDCOD))
  1. . Q:'$L($G(ICDEFF)) Q:'$L($G(ICDSTA)) D KHIS
  1. Q
  1. ;
  1. ; File 80.066, field .01
  1. SAHD ; Set new value when Effective Date is Edited
  1. ; ^DD(80.066,.01,1,D0,1) = D SAHD^ICD9IDX
  1. N ICDNOD,ICDSTA,ICDEFF,ICDCOD
  1. D HDC Q:'$L($G(ICDCOD)) Q:'$L($G(ICDSTA)) S ICDEFF=+($G(X)) Q:+ICDEFF=0 D SHIS
  1. Q
  1. KAHD ; Kill old value when Effective Date is Edited
  1. ; ^DD(80.066,.01,1,D0,2) = D KAHD^ICD9IDX
  1. N ICDNOD,ICDSTA,ICDEFF,ICDCOD
  1. D HDC Q:'$L($G(ICDCOD)) Q:'$L($G(ICDSTA))
  1. S ICDEFF=+($G(X)) Q:+ICDEFF=0 D KHIS
  1. Q
  1. ;
  1. ; File 80.066, field .02
  1. SAHS ; Set new value when Status is Edited
  1. ; ^DD(80.066,.02,1,D0,1) = D SAHS^ICD9IDX
  1. N ICDNOD,ICDSTA,ICDEFF,ICDCOD
  1. D HDC Q:'$L($G(ICDCOD)) Q:+ICDEFF=0
  1. S ICDSTA=$G(X) Q:'$L(ICDSTA) D SHIS
  1. Q
  1. KAHS ; Kill old value when Status is Edited
  1. ; ^DD(80.066,.02,1,D0,2) = D KAHS^ICD9IDX
  1. N ICDNOD,ICDSTA,ICDEFF,ICDCOD
  1. D HDC Q:'$L($G(ICDCOD)) Q:+ICDEFF=0
  1. S ICDSTA=$G(X) Q:'$L(ICDSTA) D KHIS
  1. Q
  1. ;
  1. HDC ; Set Common Variables (Code, Status and Effective Date)
  1. S (ICDCOD,ICDSTA,ICDEFF)=""
  1. Q:+($G(DA(1)))'>0 Q:+($G(DA))'>0 Q:'$D(^ICD9(+($G(DA(1))),66,+($G(DA)),0))
  1. S ICDCOD=$P($G(^ICD9(+($G(DA(1))),0)),"^",1),ICDNOD=$G(^ICD9(+($G(DA(1))),66,+($G(DA)),0))
  1. S ICDSTA=$P(ICDNOD,"^",2),ICDEFF=$P(ICDNOD,"^",1)
  1. Q
  1. ;
  1. SHIS ; Set Index ^ICD9("ACT",<code>,<status>,<date>,<ien>,<history>)
  1. Q:+($G(DA(1)))'>0 Q:+($G(DA))'>0 Q:'$D(^ICD9(+($G(DA(1))),66,+($G(DA)),0))
  1. S ^ICD9("ACT",(ICDCOD_" "),ICDSTA,ICDEFF,DA(1),DA)=""
  1. N PIECE,INACT S PIECE=$S('ICDSTA:11,1:16),INACT=$S('ICDSTA:1,1:"")
  1. S $P(^ICD9(DA(1),0),"^",9)=INACT,$P(^ICD9(DA(1),0),"^",PIECE)=ICDEFF
  1. ;IHS/MSC/PLS - 03/28/2011 - NEW LINE
  1. S:INACT="" $P(^ICD9(DA(1),0),"^",11)=""
  1. Q
  1. KHIS ; Kill Index ^ICD9("ACT",<code>,<status>,<date>,<ien>,<history>)
  1. Q:+($G(DA(1)))'>0 Q:+($G(DA))'>0 Q:'$D(^ICD9(+($G(DA(1))),66,+($G(DA)),0))
  1. N PIECE,INACT,IEN,OPP,OPPSTA,OPPEFF,BOOL
  1. S PIECE=$S('ICDSTA:11,1:16),INACT=$S('ICDSTA:"",1:1),OPPEFF=ICDEFF,BOOL=0
  1. F S OPPEFF=$O(^ICD9(DA(1),66,"B",OPPEFF),-1) Q:'OPPEFF!BOOL D
  1. . S IEN=$O(^ICD9(DA(1),66,"B",OPPEFF,""))
  1. . I 'IEN S OPPEFF="" Q
  1. . S OPP=$G(^ICD9(DA(1),66,IEN,0)),OPPEFF=$P($G(OPP),"^",1)
  1. . S OPPSTA=$P($G(OPP),"^",2),BOOL=OPPSTA'=ICDSTA
  1. I BOOL D
  1. . S $P(^ICD9(DA(1),0),"^",9)=INACT,$P(^ICD9(DA(1),0),"^",PIECE)=$G(OPPEFF)
  1. E S $P(^ICD9(DA(1),0),"^",9)=1,$P(^ICD9(DA(1),0),"^",11)="",$P(^ICD9(DA(1),0),"^",16)=""
  1. K ^ICD9("ACT",(ICDCOD_" "),ICDSTA,ICDEFF,DA(1),DA)
  1. Q