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

BQIUTB1.m

Go to the documentation of this file.
  1. BQIUTB1 ;PRXM/HC/ALA-Table Utilities continued ; 13 Jul 2006 3:47 PM
  1. ;;2.5;ICARE MANAGEMENT SYSTEM;**2**;May 24, 2016;Build 14
  1. ;
  1. Q
  1. ;
  1. SBRG(DATA,REG) ; EP -- BQI GET SUBREGISTERS
  1. ;Description
  1. ; To return a list of register types for a registry
  1. ;Input
  1. ; REG - Register IEN from the ICARE REGISTER INDEX file (#90507)
  1. NEW UID,II,FILE,X,FILE,GLBREF,IEN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITABLE",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIUTB1 D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. I $G(REG)="" S BMXSEC="No register selected" Q
  1. S @DATA@(II)="I00010SUBREG_IEN^T00030SUBREG_NAME^I00010REG_IEN"_$C(30)
  1. S FILE=$$GET1^DIQ(90507,REG_",",.12,"E")
  1. I FILE="" G DONE
  1. I '$$VFILE^DILFD(FILE) S BMXSEC="Table doesn't exist in RPMS" Q
  1. S GLBREF=$$ROOT^DILFD(FILE,"",1)
  1. ;
  1. S IEN=0
  1. F S IEN=$O(@GLBREF@(IEN)) Q:'IEN D
  1. . I $G(@GLBREF@(IEN,0))="" Q
  1. . I $P(@GLBREF@(IEN,0),U,1)="" Q
  1. . S II=II+1
  1. . S @DATA@(II)=IEN_"^"_$P(@GLBREF@(IEN,0),U,1)_"^"_REG_$C(30)
  1. ;
  1. DONE S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. REGSTAT(DATA,REG) ; EP -- BQI GET REGISTER STATUS
  1. ;
  1. ;Description:
  1. ; Returns the list of statuses associated with the register selected.
  1. ; If no register is passed statuses for all registers will be returned.
  1. ;
  1. ;RPC: BQI GET REGISTER STATUS
  1. ;
  1. ;Input:
  1. ; REG - Optional register IEN from the ICARE REGISTER INDEX file (#90507)
  1. ;
  1. ;Output:
  1. ; ^TMP("BQIREG",UID,#) = Register ^ status code=description_$C(28)_status code...
  1. ; where UID will be either $J or "Z" plus the Task
  1. ;
  1. N UID,X,II
  1. S II=0
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIREG",UID))
  1. K @DATA
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIUTB1 D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S II=II+1,@DATA@(II)="I00010REG_IEN^T00010STATUS_CODE^T00040STATUS_NAME"_$C(30) ;Header
  1. ;Retrieve set of codes for Status
  1. S REG=$G(REG)
  1. I REG D SET(REG) G RDNE
  1. S REG=0 F S REG=$O(^BQI(90507,REG)) Q:'REG D SET(REG)
  1. ;
  1. RDNE S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. SET(REG) ;EP
  1. N FILE,FIELD,SET,I,PC
  1. I REG=3 D Q
  1. . S II=II+1,@DATA@(II)=REG_"^A^ACTIVE"_$C(30)
  1. . S II=II+1,@DATA@(II)=REG_"^I^INACTIVE"_$C(30)
  1. S FILE=$$GET1^DIQ(90507,REG_",",.15,"E")
  1. S FIELD=$$GET1^DIQ(90507,REG_",",.14,"E")
  1. D FIELD^DID(FILE,.FIELD,,"POINTER","SET")
  1. Q:'$D(SET("POINTER"))
  1. F I=1:1:$L(SET("POINTER"),";") S PC=$P(SET("POINTER"),";",I) I PC'="" D
  1. . S II=II+1,@DATA@(II)=REG_"^"_$TR(PC,":","^")_$C(30)
  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
  1. ;
  1. DHLP(DATA,DXCN,COL) ;EP -- BQI GET DX CAT HELP TEXT
  1. ;
  1. ; COL - Width of output (e.g. 132 for 132 character width)
  1. ;
  1. NEW UID,II,DXN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQITABLE",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIUTB1 D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S DXCN=$G(DXCN,"")
  1. S COL=$G(COL,"")
  1. S @DATA@(II)="T00010DIAG_IEN^T00040DIAG_CAT^T00015DX_CAT^T01024DESC_TEXT"_$C(30)
  1. ;
  1. I DXCN'="" D G DNE
  1. . I DXCN'?.N S DXN=$O(^BQI(90506.2,"B",DXCN,""))
  1. . I DXCN?.N S DXN=DXCN,DXCN=$P(^BQI(90506.2,DXN,0),"^",1)
  1. . D GDATA(DXN,COL)
  1. ;
  1. I DXCN="" D
  1. . F S DXCN=$O(^BQI(90506.2,"B",DXCN)) Q:DXCN="" D
  1. .. S DXN=""
  1. .. F S DXN=$O(^BQI(90506.2,"B",DXCN,DXN)) Q:DXN="" D
  1. ... I $P(^BQI(90506.2,DXN,0),"^",3)=1 Q
  1. ... I $P(^BQI(90506.2,DXN,0),"^",5)=1 Q
  1. ... D GDATA(DXN,COL)
  1. DNE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. GDATA(DXN,COL) ;EP - Get tooltip
  1. NEW TEXT,LEN,DXCAT,DC,ARR,I
  1. S DXCAT=$$GET1^DIQ(90506.2,DXN_",",.07,"E")
  1. S DC=0,TEXT=""
  1. S II=II+1
  1. S @DATA@(II)=DXN_"^"_DXCN_"^"_DXCAT_"^"
  1. I COL D S II=II+1,@DATA@(II)=$C(30) Q
  1. .S DC=$O(^BQI(90506.2,DXN,3,DC)) Q:'DC
  1. .S II=II+1,@DATA@(II)=^BQI(90506.2,DXN,3,DC,0)
  1. .F S DC=$O(^BQI(90506.2,DXN,3,DC)) Q:'DC D
  1. .. S TEXT=^BQI(90506.2,DXN,3,DC,0)
  1. .. I TEXT="AND"!(TEXT="OR")!(TEXT?." "1AN1".".E) D UPD Q
  1. .. I $G(@DATA@(II))="AND"!($G(@DATA@(II))="OR") D UPD Q
  1. .. I $L($G(@DATA@(II)))+$L($P(TEXT," "))>COL D UPD Q
  1. .. S LEN=$L(@DATA@(II))+$L(TEXT)
  1. .. I LEN<COL S @DATA@(II)=@DATA@(II)_" "_TEXT Q
  1. .. F I=$L(TEXT," "):-1:1 S LEN=$L(@DATA@(II))+$L($P(TEXT," ",1,I)) I LEN<COL D Q
  1. ... S @DATA@(II)=@DATA@(II)_" "_$P(TEXT," ",1,I)_$C(10)
  1. ... S II=II+1,@DATA@(II)=$P(TEXT," ",I+1,99)
  1. ;
  1. F S DC=$O(^BQI(90506.2,DXN,3,DC)) Q:'DC D
  1. . S II=II+1,@DATA@(II)=^BQI(90506.2,DXN,3,DC,0)_$C(10)
  1. S II=II+1,@DATA@(II)=$C(30)
  1. Q
  1. ;
  1. UPD ; Update temporary global
  1. S @DATA@(II)=@DATA@(II)_$C(10)
  1. S II=II+1,@DATA@(II)=TEXT
  1. Q
  1. ;
  1. IUSR(DATA,TYPE) ;EP - Retrieve a list of iCare Users/Employer Health Key Holding Users
  1. ;
  1. ;Input
  1. ; TYPE - "I" - All iCare users
  1. ; "E" - All Employer Health iCare users
  1. ;
  1. S II=0
  1. S LENGTH=$$GET1^DID(200,.01,"","FIELD LENGTH","TEST1","ERR")
  1. S DLEN=$E("00000",$L(LENGTH)+1,5)_LENGTH
  1. S @DATA@(II)="I00010IEN^T"_DLEN_"^T00001PROVIDER"_$C(30)
  1. ;
  1. NEW IEN,NAME,PFLAG,EFLAG,TRMDT
  1. S IEN=0
  1. F S IEN=$O(^BQICARE(IEN)) Q:'IEN D
  1. . I $G(^VA(200,IEN,0))="" Q
  1. . I $P(^VA(200,IEN,0),"^",3)="" Q
  1. . I IEN\1'=IEN Q
  1. . ;I (+$P($G(^VA(200,IEN,0)),U,11)'>0&$P(^(0),U,11)'>DT)!(+$P($G(^VA(200,IEN,0)),U,11)>0&$P(^(0),U,11)>DT) D
  1. . S TRMDT=+$P($G(^VA(200,IEN,0)),U,11)
  1. . I TRMDT=0 D SAV Q
  1. . I TRMDT'>DT D SAV Q
  1. . I TRMDT>DT D SAV Q
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. SAV ; Save value
  1. S NAME=$$GET1^DIQ(200,IEN_",",.01,"E")
  1. I NAME="" Q
  1. ;
  1. ;Select only Employer Health iCare users
  1. I TYPE="E",'$D(^XUSEC("BQIZEMPHLTH",IEN)) Q
  1. ;
  1. S PFLAG=$S($D(^VA(200,"AK.PROVIDER",NAME,IEN)):"P",1:"")
  1. S II=II+1,@DATA@(II)=IEN_"^"_NAME_"^"_PFLAG_$C(30)
  1. Q
  1. ;
  1. INS(DATA) ;EP - Insurance plans
  1. NEW IEN,NAME
  1. S @DATA@(II)="T00060NAME"_$C(30)
  1. S NAME=""
  1. F S NAME=$O(^BQIPAT("AI",NAME)) Q:NAME="" D
  1. . S II=II+1,@DATA@(II)=NAME_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q