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

BQIMSVW.m

Go to the documentation of this file.
  1. BQIMSVW ;PRXM/HC/ALA-My Measures View ; 01 Jun 2007 5:38 PM
  1. ;;2.1;ICARE MANAGEMENT SYSTEM;;Feb 07, 2011
  1. ;
  1. RET(DATA,OWNR,PLIEN) ; EP -- BQI GET MEASURES VIEW
  1. ; Input
  1. ; OWNR - Owner of the panel
  1. ; PLIEN - Panel internal entry number
  1. ;Output
  1. ; DATA - name of global (passed by reference) in which the data
  1. ; is stored
  1. ;Variables used
  1. ; UID - TMP global subscript. Will be either $J or "Z" plus the
  1. ; TaskMan Task ID
  1. ;
  1. NEW UID,II,MVALUE,IEN,GIEN,SIEN,DISPLAY,SOR,SDIR,TEMPL,LYIEN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIMSVW",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIMSVW D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T01024DISPLAY_ORDER^T00300SORT_ORDER^T00300SORT_DIRECTION"_$C(30)
  1. ;
  1. S OWNR=$G(OWNR,$G(DUZ)),PLIEN=$G(PLIEN,"") ; If no owner supplied use DUZ
  1. ;
  1. I OWNR=DUZ,PLIEN'="" D G DONE
  1. . ; Check if customized My Measures view
  1. . S IEN=0,DISPLAY="",SOR="",SDIR=""
  1. . F S IEN=$O(^BQICARE(OWNR,1,PLIEN,21,IEN)) Q:'IEN D
  1. .. S GIEN=$P(^BQICARE(OWNR,1,PLIEN,21,IEN,0),"^",1)
  1. .. S SIEN=$P(^BQICARE(OWNR,1,PLIEN,21,IEN,0),"^",3)
  1. .. S RIEN=$P(^BQICARE(OWNR,1,PLIEN,21,IEN,0),"^",4)
  1. .. S DISPLAY=DISPLAY_GIEN_$C(29)
  1. .. S SOR=SOR_SIEN_$C(29)
  1. .. S SDIR=SDIR_RIEN_$C(29)
  1. . S DISPLAY=$$TKO^BQIUL1(DISPLAY,$C(29))
  1. . S SOR=$$TKO^BQIUL1(SOR,$C(29))
  1. . S SDIR=$$TKO^BQIUL1(SDIR,$C(29))
  1. . ;
  1. . I $G(DISPLAY)="" D
  1. .. ; check if layout template used
  1. .. NEW DA,IENS,TEMPL,LYIEN
  1. .. S DA(1)=OWNR,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. .. S TEMPL=$$GET1^DIQ(90505.01,IENS,4.02,"E")
  1. .. I TEMPL'="" D
  1. ... S LYIEN=$$DEF^BQILYUTL(OWNR,"M")
  1. ... I LYIEN="" Q
  1. ... D DEF^BQILYDEF(LYIEN)
  1. ... S DISPLAY=$P(@DATA@(II),U,3),SOR=$P(@DATA@(II),U,4),SDIR=$P(@DATA@(II),U,5)
  1. .. ;
  1. .. I $G(DISPLAY)'="" Q
  1. .. ;
  1. .. S DISPLAY=$$DFNC()_$C(29)_$$MDEF()
  1. .. ;S DISPLAY=$$DFNC()
  1. .. ;S SOR=$$SFNC()_$C(29)
  1. .. S SOR=$$SFNC()
  1. .. S SDIR=""
  1. . I SDIR="" S SDIR="A"
  1. . S II=II+1,@DATA@(II)=DISPLAY_"^"_SOR_"^"_SDIR_$C(30)
  1. ;
  1. I OWNR'="",OWNR'=DUZ,PLIEN'="" D
  1. . S IEN=0,DISPLAY="",SORT="",SDIR=""
  1. . F S IEN=$O(^BQICARE(OWNR,1,PLIEN,30,DUZ,21,IEN)) Q:'IEN D
  1. .. S GIEN=$P(^BQICARE(OWNR,1,PLIEN,30,DUZ,21,IEN,0),"^",1)
  1. .. S SR=$P(^BQICARE(OWNR,1,PLIEN,30,DUZ,21,IEN,0),"^",2)
  1. .. S SD=$P(^BQICARE(OWNR,1,PLIEN,30,DUZ,21,IEN,0),"^",3)
  1. .. S DISPLAY=DISPLAY_GIEN_$C(29)
  1. .. I SR'="" S SORT=SORT_SR_$C(29)
  1. .. I SD'="" S SDIR=SDIR_SD_$C(29)
  1. . S DISPLAY=$$TKO^BQIUL1(DISPLAY,$C(29))
  1. . S SORT=$$TKO^BQIUL1(SORT,$C(29))
  1. . S SDIR=$$TKO^BQIUL1(SDIR,$C(29))
  1. ;
  1. I $G(DISPLAY)="" D
  1. .; check if layout template used
  1. . NEW DA,IENS,TEMPL,LYIEN
  1. . S DA(2)=OWNR,DA(1)=PLIEN,DA=DUZ,IENS=$$IENS^DILF(.DA)
  1. . S TEMPL=$$GET1^DIQ(90505.03,IENS,4.02,"E")
  1. . I TEMPL'="" D
  1. .. S LYIEN=$$DEF^BQILYUTL(OWNR,"M")
  1. .. I LYIEN="" Q
  1. .. D DEF^BQILYDEF(LYIEN)
  1. .. S DISPLAY=$P(@DATA@(II),U,3),SOR=$P(@DATA@(II),U,4),SDIR=$P(@DATA@(II),U,5)
  1. . ;
  1. . I $G(DISPLAY)'="" Q
  1. . ;
  1. . S DISPLAY=$$DFNC()_$C(29)_$$MDEF()
  1. . ;S DISPLAY=$$DFNC()
  1. . S SORT=$$SFNC()
  1. . S SDIR="A"
  1. S II=II+1,@DATA@(II)=DISPLAY_"^"_$G(SORT)_"^"_$G(SDIR)_$C(30)
  1. ;
  1. DONE ;
  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
  1. ;
  1. UPD(DATA,OWNR,PLIEN,SOR,SDIR,DOR) ; EP -- BQI SET MEASURES VIEW
  1. ;
  1. ;Description
  1. ; Update the display and sort order for a specified owner and panel
  1. ;Input
  1. ; DOR - The display order
  1. ; SOR - The sort order
  1. ; SDIR - The sort direction
  1. ;
  1. ; If the Owner and the User are the same person.
  1. NEW UID,II,IEN,ERROR,BQIDEL,DI,GIEN,SI
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIMSVW",UID))
  1. K @DATA
  1. S II=0
  1. S @DATA@(II)="I00010RESULT"_$C(30)
  1. ;
  1. S SOR=$G(SOR,""),SDIR=$G(SDIR,"")
  1. S DOR=$G(DOR,"")
  1. I DOR="" D
  1. . S LIST="",BN=""
  1. . F S BN=$O(DOR(BN)) Q:BN="" S LIST=LIST_DOR(BN)
  1. . K DOR
  1. . S DOR=LIST
  1. . K LIST
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIMSVW D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. ; If the user is the owner, delete the previous view values
  1. I OWNR=DUZ D G DONE
  1. . NEW DA,IENS
  1. . S DA(2)=OWNR,DA(1)=PLIEN,DA=0
  1. . F S DA=$O(^BQICARE(OWNR,1,PLIEN,21,DA)) Q:'DA D
  1. .. S IENS=$$IENS^DILF(.DA)
  1. .. S BQIDEL(90505.13,IENS,.01)="@"
  1. . I $D(BQIDEL) D FILE^DIE("","BQIDEL","ERROR")
  1. . ;
  1. . F DI=1:1:$L(DOR,$C(29)) S GIEN=$P(DOR,$C(29),DI) Q:GIEN="" D
  1. .. NEW DA,X,DINUM,DIC,DIE,DLAYGO,IENS
  1. .. S DA(2)=OWNR,DA(1)=PLIEN
  1. .. S DIC="^BQICARE("_DA(2)_",1,"_DA(1)_",21,",DIE=DIC
  1. .. S DLAYGO=90505.13,DIC(0)="L",DIC("P")=DLAYGO
  1. .. S X=GIEN
  1. .. I '$D(^BQICARE(DA(2),1,DA(1),21,0)) S ^BQICARE(DA(2),1,DA(1),21,0)="^90505.13^^"
  1. .. K DO,DD D FILE^DICN
  1. .. S DA=+Y I DA<1 S ERROR=1 Q
  1. .. S IENS=$$IENS^DILF(.DA)
  1. .. S BQIUPD(90505.13,IENS,.02)=DI
  1. .. D FILE^DIE("","BQIUPD","ERROR")
  1. . ;
  1. . F SI=1:1:$L(SOR,$C(29)) S SIEN=$P(SOR,$C(29),SI) D
  1. .. NEW DA,X,IENS,BQIUPD
  1. .. S DA(2)=OWNR,DA(1)=PLIEN,DA=SI,IENS=$$IENS^DILF(.DA)
  1. .. S BQIUPD(90505.13,IENS,.03)=SIEN
  1. .. S BQIUPD(90505.13,IENS,.04)=$P(SDIR,$C(29),SI)
  1. .. D FILE^DIE("","BQIUPD","ERROR")
  1. . ;
  1. . I $D(ERROR) S II=II+1,@DATA@(II)="-1"_$C(30)
  1. . I '$D(ERROR) S II=II+1,@DATA@(II)="1"_$C(30)
  1. ;
  1. ; If the user is sharing someone else's panel.
  1. NEW DA,IENS
  1. S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=DUZ,DA=0
  1. F S DA=$O(^BQICARE(OWNR,1,PLIEN,30,DUZ,21,DA)) Q:'DA D
  1. . S IENS=$$IENS^DILF(.DA)
  1. . S BQIDEL(90505.321,IENS,.01)="@"
  1. I $D(BQIDEL) D FILE^DIE("","BQIDEL","ERROR")
  1. ;
  1. F DI=1:1:$L(DOR,$C(29)) S GIEN=$P(DOR,$C(29),DI) Q:GIEN="" D
  1. . NEW DA,X,DINUM,DIC,DIE,DLAYGO,IENS
  1. . S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=DUZ
  1. . S DIC="^BQICARE("_DA(3)_",1,"_DA(2)_",30,"_DA(1)_",21,",DIE=DIC
  1. . S DLAYGO=90505.321,DIC(0)="L",DIC("P")=DLAYGO
  1. . S X=GIEN
  1. . I '$D(^BQICARE(DA(3),1,DA(2),30,DA(1),21,0)) S ^BQICARE(DA(3),1,DA(2),30,DA(1),21,0)="^90505.321^^"
  1. . K DO,DD D FILE^DICN
  1. . S DA=+Y I DA<1 S ERROR=1
  1. ;
  1. F SI=1:1:$L(SOR,$C(29)) S SIEN=$P(SOR,$C(29),SI) Q:SIEN="" D
  1. . NEW DA,X,IENS
  1. . S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=DUZ,DA=SI,IENS=$$IENS^DILF(.DA)
  1. . S BQIUPD(90505.321,IENS,.02)=SIEN
  1. . S BQIUPD(90505.321,IENS,.03)=$P(SDIR,$C(29),SI)
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. K BQIUPD
  1. ;
  1. I $D(ERROR) S II=II+1,@DATA@(II)="-1"_$C(30)
  1. I '$D(ERROR) S II=II+1,@DATA@(II)="1"_$C(30)
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. DFNC() ;EP -- Get the standard display order
  1. S DVALUE=""
  1. S DOR="" F S DOR=$O(^BQI(90506.1,"AD","D",DOR)) Q:DOR="" D
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90506.1,"AD","D",DOR,IEN)) Q:IEN="" D
  1. .. ;I $$GET1^DIQ(90506.1,IEN_",",.13,"I")'="O" D
  1. .. I $$GET1^DIQ(90506.1,IEN_",",3.04,"I")'="O" D
  1. ... S STVCD=$$GET1^DIQ(90506.1,IEN_",",.01,"E")
  1. ... S DVALUE=DVALUE_STVCD_$C(29)
  1. S DVALUE=$$TKO^BQIUL1(DVALUE,$C(29))
  1. Q DVALUE
  1. ;
  1. SFNC() ;EP -- Get the standard sort order
  1. S SVALUE=""
  1. S SOR="" F S SOR=$O(^BQI(90506.1,"AE","D",SOR)) Q:SOR="" D
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90506.1,"AE","D",SOR,IEN)) Q:IEN="" D
  1. .. ;I $$GET1^DIQ(90506.1,IEN_",",.13,"I")'="O" D
  1. .. I $$GET1^DIQ(90506.1,IEN_",",3.04,"I")'="O" D
  1. ... S STVCD=$$GET1^DIQ(90506.1,IEN_",",.01,"E")
  1. ... S SVALUE=SVALUE_STVCD_$C(29)
  1. S SVALUE=$$TKO^BQIUL1(SVALUE,$C(29))
  1. Q SVALUE
  1. ;
  1. MDEF() ; EP - Get Measures default fields
  1. S MVALUE=""
  1. F TYP="G","R","A","H" D
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90506.1,"AC",TYP,IEN)) Q:IEN="" D
  1. .. ;I $$GET1^DIQ(90506.1,IEN_",",.09,"I")'="O" D
  1. .. I $$GET1^DIQ(90506.1,IEN_",",3.04,"I")'="O" D
  1. ... S STVCD=$$GET1^DIQ(90506.1,IEN_",",.01,"E")
  1. ... S MVALUE=MVALUE_STVCD_$C(29)
  1. ;
  1. S MVALUE=$$TKO^BQIUL1(MVALUE,$C(29))
  1. Q MVALUE