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

BGOICDPR.m

Go to the documentation of this file.
  1. BGOICDPR ; IHS/BAO/TMD - ICD PREFERENCES MANAGER ;14-Mar-2013 11:07;DU
  1. ;;1.1;BGO COMPONENTS;**1,3,5,8,12**;Mar 20, 2007;Build 5
  1. ; Validate an ICD9 code
  1. VALIDATE(RET,IEN,CODE) ;EP
  1. I 'IEN,$G(CODE)'="" D
  1. .N X,LP
  1. .S IEN=-1,RET=-1
  1. .F LP=0,1 D Q:RET'<0
  1. ..F X=0:0 S X=$O(^ICD9("AB",CODE_$S(LP:" ",1:""),X)) Q:'X D Q:RET'<0
  1. ...S IEN=X
  1. ...S RET=$$CHKICD^BGOVPOV(IEN)
  1. .S:IEN<0 RET=$$ERR^BGOUTL(1029,CODE)
  1. E I 'IEN S RET=$$ERR^BGOUTL(1030)
  1. E S RET=$$CHKICD^BGOVPOV(IEN)
  1. S:RET'<0 RET=""
  1. Q
  1. ; Return long name for an ICD9 code
  1. GETLNAME(RET,IEN) ;EP
  1. I 'IEN S RET=$$ERR^BGOUTL(1030)
  1. E D
  1. .I $$AICD^BGOUTL2 S RET=$$LD^ICDEX(80,IEN,DT)
  1. .E S RET=$P($G(^ICD9(+IEN,1)),U)
  1. Q
  1. ; Return categories matching specified criteria
  1. ; INP = Category IEN [1] ^ Hospital Location IEN [2] ^ Provider IEN [3] ^ Manager IEN [4] ^ Show All [5]
  1. GETCATS(RET,INP) ;EP
  1. D GETCATS^BGOPFUTL(.RET,INP,90362.35)
  1. Q
  1. ; Returns list of ICD9s for specified category
  1. ; INP = Category IEN [1] ^ Group [2] ^ Visit IEN [3] ^ Display Freq Order [4]
  1. ; Returns list of records in the format
  1. ; ICD9 IEN [1] ^ ICD9 Code [2] ^ ICD9 Text [3] ^ Short Text [4] ^ Freq [5] ^
  1. ; VPOV IEN [6] ^ Rank [7] ^ Pref IEN [8] ^ Long Text [9]
  1. GETITEMS(RET,INP) ;EP
  1. N PX,I,J,FREQ,VIEN,GRP,CAT,LONG,VPX,FREQ,CNT,RANK,IEN
  1. S RET=$$TMPGBL^BGOUTL
  1. S CAT=+INP
  1. I 'CAT S @RET@(1)=$$ERR^BGOUTL(1018) Q
  1. I '$D(^BGOICDPR(CAT,0)) S @RET@(1)=$$ERR^BGOUTL(1019) Q
  1. S GRP=$P(INP,U,2)
  1. S VIEN=$P(INP,U,3)
  1. S FREQ=$P(INP,U,4)
  1. S:$P(^BGOICDPR(CAT,0),U,6) GRP=""
  1. I VIEN D
  1. .S VPX=0
  1. .F S VPX=$O(^AUPNVPOV("AD",VIEN,VPX)) Q:'VPX D
  1. ..S I=$G(^AUPNVPOV(VPX,0))
  1. ..S:$L(I) VPX(+I,+$P(I,U,4))=VPX
  1. S (CNT,RANK)=0
  1. I FREQ D
  1. .S J=""
  1. .F S J=$O(^BGOICDPR(CAT,1,"AC",J),-1) Q:J="" D
  1. ..S IEN=0
  1. ..F S IEN=$O(^BGOICDPR(CAT,1,"AC",J,IEN)) Q:'IEN D GD1
  1. E D
  1. .S IEN=0
  1. .F S IEN=$O(^BGOICDPR(CAT,1,IEN)) Q:'IEN D GD1
  1. Q
  1. GD1 N N0,ICDIEN,TXT,DX,FREQVAL,CODE
  1. S N0=$G(^BGOICDPR(CAT,1,IEN,0))
  1. S ICDIEN=+N0
  1. Q:'ICDIEN
  1. Q:'$D(^ICD9(ICDIEN,0))
  1. I $$AICD^BGOUTL2 S DX=$$SD^ICDEX(80,ICDIEN,DT)
  1. E S DX=$P(^ICD9(ICDIEN,0),U,3)
  1. S CODE=$P(^ICD9(ICDIEN,0),U)
  1. S TXT=$P(N0,U,2),TXT(0)=+$$FNDNARR^BGOUTL2(TXT,0)
  1. I $$AICD^BGOUTL2 S LONG=$$LD^ICDEX(80,ICDIEN,DT)
  1. E S LONG=$P($G(^ICD9(ICDIEN,1)),U)
  1. S FREQVAL=$P(N0,U,3)
  1. I FREQ D
  1. .S RANK=RANK+1
  1. .S RANK=$S(RANK<10:"00",RANK<100:"0",1:"")_RANK
  1. S CNT=CNT+1
  1. S @RET@(CNT)=ICDIEN_U_CODE_U_DX_U_TXT_U_FREQVAL_U_$G(VPX(ICDIEN,TXT(0)))_U_RANK_U_IEN_U_LONG
  1. Q
  1. ; Return list of managers associated with a specified category
  1. GETMGRS(RET,CAT) ;EP
  1. D GETMGRS^BGOPFUTL(.RET,CAT,90362.35)
  1. Q
  1. ; Set category fields
  1. ; INP = Name [1] ^ Hosp Loc [2] ^ Clinic [3] ^ Provider [4] ^ User [5] ^ Category IEN [6] ^ Delete [7] ^ Discipline [8]
  1. SETCAT(RET,INP) ;EP
  1. D SETCAT^BGOPFUTL(.RET,INP,90362.35)
  1. Q
  1. ; Set field values for a ICD preference entry
  1. ; INP = Category IEN [1] ^ ICD IEN [2] ^ Display Text [3] ^ Delete [4] ^ ICD Code [5] ^ Frequency [6] ^
  1. ; Allow Dups [7] ^ Item IEN [8]
  1. SETITEM(RET,INP) ;EP
  1. D SETITEM^BGOPFUTL(.RET,INP,90362.35)
  1. Q
  1. ; Add or remove a manager from a category
  1. ; INP = Category IEN [1] ^ Manager IEN [2] ^ Add [3]
  1. SETMGR(RET,INP) ;EP
  1. D SETMGR^BGOPFUTL(.RET,INP,90362.352)
  1. Q
  1. ; Set display name for an item
  1. ; INP = Category IEN [1] ^ Item IEN [2] ^ Display Name [3]
  1. SETNAME(RET,INP) ;EP
  1. D SETNAME^BGOPFUTL(.RET,INP,90362.351)
  1. Q
  1. ; Set frequency for an item
  1. ; INP = Category IEN [1] ^ ICD IEN [2] ^ Increment [3] ^ Frequency [4]
  1. SETFREQ(RET,INP) ;EP
  1. D SETFREQ^BGOPFUTL(.RET,INP,90362.351)
  1. Q