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

BGOEDTPR.m

Go to the documentation of this file.
  1. BGOEDTPR ; IHS/BAO/TMD - EDUCATION TOPIC PREFERENCES MANAGER ;03-Sep-2008 13:28;PLS
  1. ;;1.1;BGO COMPONENTS;**1,3,4,5**;Mar 20, 2007
  1. ; Patch 5 delivers logic to import education pick-lists.
  1. ; Validates an education topic
  1. VALIDATE(RET,IEN,CODE) ;EP
  1. I 'IEN,$G(CODE)'="" D
  1. .N X
  1. .S IEN=-1
  1. .F X=0:0 S X=$O(^AUTTEDT("C",CODE,X)) Q:'X S IEN=X Q:'$P($G(^AUTTEDT(IEN,0)),U,3)
  1. I 'IEN S RET=$$ERR^BGOUTL(1023)
  1. E I '$D(^AUTTEDT(IEN,0)) S RET=$$ERR^BGOUTL(1024)
  1. E I $P(^AUTTEDT(IEN,0),U,3) S RET=$$ERR^BGOUTL(1025)
  1. E S RET=""
  1. Q
  1. ; Return long name for an education topic
  1. GETLNAME(RET,IEN) ;EP
  1. I 'IEN S RET=$$ERR^BGOUTL(1023)
  1. E S RET=$P($G(^AUTTEDT(+IEN,0)),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.36)
  1. Q
  1. ; Returns list of education topics for specified category
  1. ; INP = Category IEN [1] ^ Group [2] ^ Visit IEN [3] ^ Display Freq Order [4]
  1. ; Returns a list of records in the format:
  1. ; Topic IEN [1] ^ Topic Text [2] ^ Freq [3] ^ VPED IEN [4] ^ Rank [5] ^ Item IEN [6] ^ Mnemonic [7]
  1. GETITEMS(RET,INP) ;EP
  1. N DX,J,TXT,FREQ,VIEN,GRP,CAT,CNT,VPX,FREQ,RANK,IEN
  1. S RET=$$TMPGBL^BGOUTL
  1. S CAT=+INP
  1. I 'CAT S @RET@(1)=$$ERR^BGOUTL(1018) Q
  1. I '$D(^BGOEDTPR(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(^BGOEDTPR(CAT,0),U,6) GRP=""
  1. I VIEN D
  1. .S VPX=0
  1. .F S VPX=$O(^AUPNVPED("AD",VIEN,VPX)) Q:'VPX D
  1. .S:$D(^AUPNVPED(VPX,0)) VPX(+^(0))=VPX
  1. S (CNT,RANK)=0
  1. I FREQ D
  1. .S J=""
  1. .F S J=$O(^BGOEDTPR(CAT,1,"AC",J),-1) Q:J="" D
  1. ..S IEN=0
  1. ..F S IEN=$O(^BGOEDTPR(CAT,1,"AC",J,IEN)) Q:'IEN D GE1
  1. E D
  1. .S IEN=0
  1. .F S IEN=$O(^BGOEDTPR(CAT,1,IEN)) Q:'IEN D GE1
  1. Q
  1. GE1 N N0,EDT,TXT,CATP,FREQVAL,MNEM
  1. S N0=$G(^BGOEDTPR(CAT,1,IEN,0))
  1. S EDT=+N0
  1. Q:'EDT
  1. Q:'$D(^AUTTEDT(EDT,0))
  1. S TXT=$P(^AUTTEDT(EDT,0),U),MNEM=$P(^(0),U,2),CATP=$P(^(0),U,6)
  1. I $P(TXT,"-",2)'="",CATP'="" D
  1. .S CATP=$O(^AUTTEDMT("B",CATP,0))
  1. .Q:'CATP
  1. .S TXT=$P($G(^AUTTEDMT(CATP,0)),U)_"-"_$P(TXT,"-",2)
  1. S:$P(N0,U,2)'="" TXT=$P(N0,U,2)
  1. I FREQ D
  1. .S RANK=RANK+1
  1. .S RANK=$S(RANK<10:"00",RANK<100:"0",1:"")_RANK
  1. S FREQVAL=$P(N0,U,3)
  1. S CNT=CNT+1
  1. S @RET@(CNT)=EDT_U_TXT_U_FREQVAL_U_$G(VPX(EDT))_U_RANK_U_IEN_U_MNEM
  1. Q
  1. ; Return list of managers associated with a specified category
  1. GETMGRS(RET,CAT) ;EP
  1. D GETMGRS^BGOPFUTL(.RET,CAT,90362.36)
  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.36)
  1. Q
  1. ; Set field values for an education topic preference entry
  1. ; INP = Category IEN [1] ^ Education Topic IEN [2] ^ Display Text [3] ^ Delete [4] ^ Mnemonic [5] ^ Frequency [6] ^
  1. ; Allow Dups [7] ^ Item IEN [8]
  1. SETITEM(RET,INP) ;EP
  1. ;Patch 5 start
  1. N NAME,ACTIVE,IEN,ACTIVE,DONE,NCAT,NMN,NAME1
  1. S DONE=0,NCAT=""
  1. S NAME=$P(INP,U,3)
  1. I NAME'="" D
  1. .S NAME1=$P(NAME,"-",1)
  1. .S NCAT=$O(^AUTTEDMT("B",NAME1,NCAT)) Q:NCAT="" D
  1. ..S NMN=$P($G(^AUTTEDMT(NCAT,0)),U,2)
  1. ..I NAME1'=NMN S NAME=NMN_"-"_$P(NAME,"-",2)
  1. .I NAME'="" D
  1. ..S IEN="" F S IEN=$O(^AUTTEDT("B",NAME,IEN)) Q:IEN=""!(DONE=1) D
  1. ...S ACTIVE=$P($G(^AUTTEDT(IEN,0)),U,3)
  1. ...I ACTIVE="" S DONE=1 S $P(INP,U,2)=IEN
  1. ;Patch 5 end
  1. D SETITEM^BGOPFUTL(.RET,INP,90362.36)
  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.362)
  1. Q
  1. ; Set display name for a preference
  1. ; INP = Category IEN [1] ^ Item IEN [2] ^ Display Name [3]
  1. SETNAME(RET,INP) ;EP
  1. D SETNAME^BGOPFUTL(.RET,INP,90362.361)
  1. Q
  1. ; Set frequency for an education topic
  1. ; INP = Category IEN [1] ^ Item Value [2] ^ Increment [3] ^ Frequency [4]
  1. SETFREQ(RET,INP) ;EP
  1. D SETFREQ^BGOPFUTL(.RET,INP,90362.361)
  1. Q