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

BQIUTB.m

Go to the documentation of this file.
  1. BQIUTB ;PRXM/HC/ALA-Table utilities ; 02 Nov 2005 2:52 PM
  1. ;;2.6;ICARE MANAGEMENT SYSTEM;;Jul 07, 2017;Build 72
  1. ;
  1. Q
  1. ;
  1. TBL(DATA,FILE,INAC) ;EP - Generic table retrieve function
  1. ;
  1. ;Description
  1. ; Return the values in a table
  1. ;Input
  1. ; FILE - FileMan file number where table resides
  1. ; INAC - If file has an inactive field to check, contains
  1. ; the node and piece in 'NODE;PIECE' format
  1. ;
  1. NEW GLBREF,IEN,LENGTH,TEST1,DLEN,PEC,NODE,X,TXT
  1. S INAC=$G(INAC,"")
  1. ;
  1. S II=0
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIUTB D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. I '$$VFILE^DILFD(FILE) S BMXSEC="Table doesn't exist in RPMS" Q
  1. ;
  1. S GLBREF=$$ROOT^DILFD(FILE,"",1)
  1. S LENGTH=$$GET1^DID(FILE,.01,"","FIELD LENGTH","TEST1","ERR")
  1. S DLEN=$E("00000",$L(LENGTH)+1,5)_LENGTH
  1. S @DATA@(II)="I00010IEN^T"_DLEN_$C(30)
  1. ;
  1. I INAC'="" S NODE=$P(INAC,";",1),PEC=$P(INAC,";",2)
  1. S IEN=0
  1. F S IEN=$O(@GLBREF@(IEN)) Q:'IEN D
  1. . I $G(@GLBREF@(IEN,0))="" Q
  1. . I INAC'="",$P($G(@GLBREF@(IEN,NODE)),"^",PEC)'="" Q
  1. . S TXT=$$GET1^DIQ(FILE,IEN_",",.01,"E")
  1. . I FILE=90360.3 D
  1. .. S TXT=$$LOWER^VALM1(TXT)
  1. .. I $P(TXT," ",1)="Hiv" D
  1. ... S TXT="HIV "_$P(TXT," ",2,99)
  1. .. I $P(TXT," ",1)="Ob" D
  1. ... S TXT="OB "_$P(TXT," ",2,99)
  1. . S II=II+1,@DATA@(II)=IEN_"^"_TXT_$C(30)
  1. ;
  1. DONE S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. TAB(DATA,TEXT) ; PEP -- BQI GET TABLE
  1. ;
  1. ;Description
  1. ; Get the values of a table, including the internal entry
  1. ; number and the text
  1. ;Input
  1. ; TEXT - Value from parameter definition
  1. ;
  1. NEW UID,II,X
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITABLE",UID))
  1. K @DATA
  1. I $G(DT)=""!($G(U)="") D DT^DICRW
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIUTB D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. I TEXT="DETAIL" D DET^BQIUTB3(.DATA)
  1. ;
  1. I TEXT="MUTAB" D MUT^BQIUTB2(.DATA)
  1. ;
  1. I TEXT["RANGE" D TMFRAM^BQIUTB4(.DATA,TEXT)
  1. I TEXT="PTMFRAME" D TMFRAM^BQIUTB4(.DATA,TEXT)
  1. I TEXT="PSTMFRAM" D TMFRAM^BQIUTB4(.DATA,TEXT)
  1. ;
  1. I TEXT="ETOP" D ETOP^BQIUTB4(.DATA)
  1. I TEXT="EDUC" D EDUC^BQIUTB4(.DATA)
  1. I TEXT="EPICK" D EPICK^BQIUTB4(.DATA)
  1. ;
  1. I TEXT="PROV" D USR^BQIUTB5(.DATA,"P")
  1. I TEXT="MPROV" D PRCL^BQIUTB5(.DATA)
  1. I TEXT="DPCP" D DPCP^BQIUTB2(.DATA)
  1. ;
  1. I TEXT="COMM" D COMM(.DATA,9999999.05,0)
  1. I TEXT="COMMALL" D COMM(.DATA,9999999.05,1)
  1. ;
  1. I TEXT="CLIN" D CLIN^BQIUTB2(.DATA)
  1. ;
  1. I TEXT="SPEC" D TBL(.DATA,90360.3,"")
  1. ;
  1. I TEXT="HLOC" D LOC^BQIUTB5(.DATA,1)
  1. I TEXT="HLOCALL" D LOC^BQIUTB5(.DATA,1)
  1. ;
  1. I TEXT="USER" D USR^BQIUTB5(.DATA,"")
  1. ;
  1. I TEXT="IUSER" D IUSR^BQIUTB1(.DATA,"I")
  1. ;
  1. I TEXT="EUSER" D IUSR^BQIUTB1(.DATA,"E")
  1. ;
  1. I TEXT="REG" D REG(.DATA)
  1. ;
  1. I TEXT="ILOC" D TBL(.DATA,9999999.06,"0;21")
  1. ;
  1. I TEXT="TEAM" D TBL(.DATA,9009017.5,"0;3")
  1. ;
  1. I TEXT="CMT" D CMT(.DATA)
  1. ;
  1. I TEXT="TSTAT" D TSTA(.DATA)
  1. ;
  1. I TEXT="IPCAT" D IPCAT^BQIUTB2(.DATA)
  1. ;
  1. I TEXT="DIAG" D TBL(.DATA,80,"0;11")
  1. I TEXT="POV" D DXN^BQIUTB3(.DATA)
  1. I TEXT="POVS" D POVS^BQIUTB3(.DATA)
  1. ;
  1. I TEXT="RACE" D TBL(.DATA,10,".02;1")
  1. I TEXT="ETHN" D TBL(.DATA,10.2,".02;1")
  1. I TEXT="LANG" D LANG^BQIUTB3(.DATA)
  1. I TEXT="PCOMM" D PRFC^BQIUTB4(.DATA)
  1. I TEXT="SEX" D SEX(.DATA)
  1. ;
  1. I TEXT="PCAT" D TBL(.DATA,90360.3,"")
  1. ;
  1. I TEXT="VIEW" D VW(.DATA)
  1. ;
  1. I TEXT="DXCAT" D DCT(.DATA)
  1. ;
  1. I TEXT="VFILE" D VFL^BQIUTB2(.DATA,"V")
  1. ;
  1. I TEXT="VOTHER" D VFL^BQIUTB2(.DATA,"O")
  1. ;
  1. I TEXT="APSTAT" D APST^BQIUTB2(.DATA)
  1. I TEXT="PRSTAT" D PRST^BQIUTB2(.DATA)
  1. ;
  1. I TEXT="LAB" D LAB^BQIUTB3(.DATA)
  1. I TEXT="LABR" D LABR^BQIUTB3(.DATA)
  1. ;
  1. I TEXT="MED" D MED^BQIUTB3(.DATA)
  1. I TEXT="CPT" D CPT^BQIUTB3(.DATA)
  1. ;
  1. I TEXT="PROB" D PROB^BQIUTB3(.DATA)
  1. I TEXT="PROBS" D PROBS^BQIUTB3(.DATA)
  1. ;
  1. I TEXT="COMMTX" D COMMTX(.DATA)
  1. ;
  1. I TEXT="TABS" D TBS(.DATA)
  1. ;
  1. I TEXT="BEN" D BEN(.DATA)
  1. ;
  1. I TEXT="CARE" D CRM^BQIUTB4(.DATA)
  1. ;
  1. I TEXT="REM" D REM(.DATA)
  1. ;
  1. I TEXT="PERS" D EPLIST^BQIUTB2(.DATA)
  1. ;
  1. I TEXT="FILTER" D FLTR^BQIUTB2(.DATA)
  1. ;
  1. I TEXT="ALLERGIES" D ALG^BQIUTB3(.DATA)
  1. ;
  1. I TEXT="UCLASS" D UCL^BQIUTB2(.DATA)
  1. ;
  1. I TEXT="FH80" D FH80^BQIUTB5(.DATA)
  1. ;
  1. I TEXT="FH9999999.36" D FHREL^BQIUTB5(.DATA)
  1. ;
  1. I TEXT="EMPL" D EMP^BQIUTB3(.DATA)
  1. ;
  1. I TEXT="DIV" D DIV^BQIUTB3(.DATA)
  1. ;
  1. I TEXT="ACM" D ACM^BQIUTB4(.DATA)
  1. ;
  1. I TEXT="MEAS" D MEAS^BQIUTB6(.DATA)
  1. ;
  1. I TEXT="WARD" D WARD^BQIUTB4(.DATA)
  1. I TEXT="FSPEC" D FSPEC^BQIUTB4(.DATA)
  1. I TEXT="IATYPE" D IATYP^BQIUTB4(.DATA)
  1. I TEXT="IDTYPE" D IDTYP^BQIUTB4(.DATA)
  1. ;
  1. I TEXT="EDTYPE" D EDTYP^BQIUTB4(.DATA)
  1. I TEXT="EVTYPE" D EVTYP^BQIUTB4(.DATA)
  1. I TEXT="EDACU" D EDACU^BQIUTB4(.DATA)
  1. ;
  1. I TEXT="COD" D COD^BQIUTB3(.DATA)
  1. ;
  1. K TEXT
  1. Q
  1. ;
  1. CLS(PR) ; Get user classification
  1. S USN="",TYPE=""
  1. F S USN=$O(^USR(8930.3,"B",PR,USN),-1) Q:USN="" D
  1. . I '$$CURRENT^USRLM(USN) Q
  1. . S TYPE=$P(^USR(8930.3,USN,0),U,2)
  1. . I TYPE'="" S TYPE=$S($P($G(^USR(8930,TYPE,0)),U,4)'="":$P($G(^USR(8930,TYPE,0)),U,4),1:$P($G(^USR(8930,TYPE,0)),U,1))
  1. Q TYPE
  1. ;
  1. CMT(DATA) ;EP - Get the table of comments that users can select from
  1. NEW FLAG
  1. S II=0
  1. S @DATA@(II)="I00010IEN^T00030^T00001FLAG^T00010ASSOC_STATUS^T00001DISPLAY_ORDER"_$C(30)
  1. S IEN=0
  1. F S IEN=$O(^BQI(90509.1,IEN)) Q:'IEN D
  1. . I $P(^BQI(90509.1,IEN,0),U,2)=1 Q
  1. . S FLAG=$S($P(^BQI(90509.1,IEN,0),U,3)=1:"Y",1:"N")
  1. . S II=II+1,@DATA@(II)=IEN_"^"_$$GET1^DIQ(90509.1,IEN_",",.01,"E")_"^"_FLAG_"^"_$$GET1^DIQ(90509.1,IEN_",",.04,"E")_"^"_$$GET1^DIQ(90509.1,IEN_",",.05,"E")_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. TSTA(DATA) ;EP - Get the table of tag statuses
  1. NEW FLAG,VALUE,BJ,CODE,TEXT
  1. S II=0
  1. S @DATA@(II)="T00001CODE^T00030^T00001FLAG"_$C(30)
  1. S VALUE=$P(^DD(90509,.03,0),U,3)
  1. F BJ=1:1:$L(VALUE,";") D
  1. . S CODE=$P(VALUE,";",BJ) Q:CODE=""
  1. . S TEXT=$P(CODE,":",2)
  1. . S II=II+1,@DATA@(II)=$P(CODE,":",1)_"^"_TEXT_"^"_$S(BJ<4:"Y",1:"N")_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. SEX(DATA) ;EP - Get a list of sexes
  1. NEW FLAG,VALUE,BJ,CODE,TEXT
  1. S II=0
  1. S @DATA@(II)="T00001CODE^T00030"_$C(30)
  1. S VALUE=$P(^DD(2,.02,0),U,3)
  1. F BJ=1:1:$L(VALUE,";") D
  1. . S CODE=$P(VALUE,";",BJ) Q:CODE=""
  1. . S TEXT=$P(CODE,":",2)
  1. . S II=II+1,@DATA@(II)=$P(CODE,":",1)_"^"_TEXT_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. TBS(DATA) ;EP - Get a list of GUI tabs
  1. NEW ORD,IEN,SEL
  1. S II=0
  1. S @DATA@(II)="I00010IEN^T00030TAB_NAME^T00030TAB_KEY^T00015TAB_TYPE^T00003DESELECT"_$C(30)
  1. S ORD=""
  1. F S ORD=$O(^BQI(90506.4,"AC",ORD)) Q:ORD="" D
  1. . S IEN=$O(^BQI(90506.4,"AC",ORD,"")) Q:'$D(^BQI(90506.4,IEN,0))
  1. . I $P(^BQI(90506.4,IEN,0),U,4)=1 Q
  1. . S SEL=$P(^BQI(90506.4,IEN,0),U,7),SEL=$S(SEL=1:"NO",1:"YES")
  1. . S II=II+1,@DATA@(II)=IEN_U_$P(^BQI(90506.4,IEN,0),U,6)_U_$P(^(0),U,2)_U_$$GET1^DIQ(90506.4,IEN_",",.03,"E")_U_SEL_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. VW(DATA) ;EP - Get the table of customized views
  1. NEW BQILOC,LII
  1. D EN^BQIMSLST(.BQILOC,"D")
  1. S LII=$O(@BQILOC@(""),-1)
  1. F II=0:1:LII-1 S @DATA@(II)=@BQILOC@(II)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. K @BQILOC
  1. Q
  1. ;
  1. DCT(DATA) ;EP - Get the table of diagnoses categories
  1. S II=0
  1. S @DATA@(II)="I00010IEN^T00031^I00010FILE_DEFN_IEN"_$C(30)
  1. NEW IEN,IACT,REG,REGFL,REGIEN
  1. S IEN=0
  1. F S IEN=$O(^BQI(90506.2,IEN)) Q:'IEN D
  1. . I $$GET1^DIQ(90506.2,IEN_",",.05,"I") Q
  1. . S II=II+1,REGIEN=""
  1. . S IACT=$$GET1^DIQ(90506.2,IEN_",",.03,"I")
  1. . S NAME=$$GET1^DIQ(90506.2,IEN_",",.01,"E")
  1. . ; Return ien for file 90506.3 based on associated register ien
  1. . S REG=$$GET1^DIQ(90506.2,IEN_",",.08,"I")
  1. . I REG'="" D
  1. .. S REGFL=$$GET1^DIQ(90507,REG_",",.02,"I")
  1. .. I REGFL'="" S REGIEN=$O(^BQI(90506.3,"C",REGFL,""))
  1. . S @DATA@(II)=IEN_"^"_$S(IACT=1:"*",1:"")_NAME_"^"_REGIEN_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. REG(DATA) ;EP - Get the table of registers
  1. NEW II,IEN,NAME,SREG,RLTD,STAT
  1. S II=0
  1. S @DATA@(II)="I00010REG_IEN^T00030REG_NAME^T00001SUB_REG^T00030RELATED_TO^T00001STATUS"_$C(30)
  1. S IEN=0
  1. F S IEN=$O(^BQI(90507,IEN)) Q:'IEN D
  1. . ; If the register is not active, quit
  1. . I $$GET1^DIQ(90507,IEN_",",.08,"I") Q
  1. . S NAME=$$GET1^DIQ(90507,IEN_",",.01,"E")
  1. . S SREG=$$GET1^DIQ(90507,IEN_",",.11,"I")
  1. . S RLTD=$$GET1^DIQ(90507,IEN_",",.17,"I")
  1. . S STAT=$$GET1^DIQ(90507,IEN_",",.14,"E")
  1. . S STAT=$S(STAT="":"N",1:"Y")
  1. . S II=II+1,@DATA@(II)=IEN_"^"_NAME_"^"_SREG_"^"_RLTD_"^"_STAT_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. COMM(DATA,FILE,FLAG) ;EP - Get the Community Table
  1. NEW CIEN
  1. S II=0
  1. S @DATA@(II)="I00010IEN^T00050^T00005COUNT"_$C(30)
  1. ;
  1. I $O(^XTMP("BQICOMM",0))="" D COMM^BQINIGH1
  1. S CIEN=0
  1. F S CIEN=$O(^XTMP("BQICOMM",CIEN)) Q:'CIEN D
  1. . I 'FLAG,$P(^XTMP("BQICOMM",CIEN),U,3)=0 Q
  1. . S II=II+1,@DATA@(II)=^XTMP("BQICOMM",CIEN)_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. COMMTX(DATA) ;EP - Get list of Community Taxonomies
  1. N TAXIEN,TYPE,COM,ITEM,OK,COMTXNM
  1. S TAXIEN=0
  1. S @DATA@(II)="I00010IEN^T00050COMM_TAX_NAME"_$C(30)
  1. F S TAXIEN=$O(^ATXAX(TAXIEN)) Q:'TAXIEN D
  1. . S TYPE=$P($G(^ATXAX(TAXIEN,0)),"^",15) Q:TYPE'=9999999.05
  1. . S ITEM=0,OK=0
  1. . F S ITEM=$O(^ATXAX(TAXIEN,21,ITEM)) Q:'ITEM D Q:OK
  1. .. S COM=$P(^ATXAX(TAXIEN,21,ITEM,0),U) Q:COM=""
  1. .. I '$D(^AUTTCOM("B",COM)) Q
  1. .. S COMTXNM=$$GET1^DIQ(9002226,TAXIEN,.01,"I"),OK=1
  1. .. S II=II+1,@DATA@(II)=TAXIEN_"^"_COMTXNM_$C(30)
  1. .. D UPD^BQITAXX4(COMTXNM,"","CM",7)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. BEN(DATA) ;EP - Get list of Beneficiary Codes
  1. N BENIEN,NAME,CODE
  1. S BENIEN=0
  1. S @DATA@(II)="I00010IEN^T00050"_$C(30)
  1. F S BENIEN=$O(^AUTTBEN(BENIEN)) Q:'BENIEN D
  1. . I '$D(^AUTTBEN(BENIEN,0)) Q
  1. . S NAME=$P(^AUTTBEN(BENIEN,0),"^")
  1. . S II=II+1,@DATA@(II)=BENIEN_"^"_NAME_$C(30) ;_"^"_CODE_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. REM(DATA) ;EP - Reminders
  1. NEW RM,CODE,NAME
  1. S RM=""
  1. S @DATA@(II)="T00010IEN^T00050"_$C(30)
  1. F S RM=$O(^BQI(90506.1,"AC","R",RM)) Q:RM="" D
  1. . I $P(^BQI(90506.1,RM,0),"^",10)'="" Q
  1. . S CODE=$P(^BQI(90506.1,RM,0),"^",1),NAME=$P(^BQI(90506.1,RM,0),"^",3)
  1. . I $P(CODE,"_",1)="AUTTIMM" Q
  1. . I $P(CODE,"_",1)'="EHR",$P(CODE,"_",1)'="REG",$P(CODE,"_",1)'="CMET",$P(CODE,"_",1)'="IZ" S NAME=NAME_" (HS)"
  1. . I $P(CODE,"_",1)="EHR" S NAME=NAME_" (EHR)"
  1. . I $P(CODE,"_",1)="REG" S NAME=NAME_" (HMS)"
  1. . I $P(CODE,"_",1)="CMET" S NAME=NAME_" (CMET)"
  1. . I $P(CODE,"_",1)="IZ" S NAME=NAME_" (IZ)"
  1. . S II=II+1,@DATA@(II)=CODE_"^"_NAME_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
  1. Q