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

BQICEVW.m

Go to the documentation of this file.
  1. BQICEVW ;VNGT/HS/BEE - CMET Views ; 06 Jun 2008 2:22 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;;Apr 18, 2012;Build 59
  1. ;
  1. RET(DATA,OWNR,PLIEN,CARE) ; EP - BQI GET CMET VIEW
  1. ; Input
  1. ; OWNR - Owner of the panel
  1. ; PLIEN - Panel internal entry number
  1. ; CARE - CMET Type
  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,BN,CIEN,CODE
  1. NEW DVALUE,ORD,RIEN,SD,SORT,SR,SVALUE,STVCD,CRN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQICEVW",UID))
  1. K @DATA
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQICEVW D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="I00010TEMPL_IEN^T00040TEMPLATE_NAME^T00001DEFAULT^T00001TYPE^T00120DISPLAY_ORDER^T00120SORT_ORDER^T00120SORT_DIRECTION"_$C(30)
  1. ;
  1. S OWNR=$G(OWNR,DUZ),PLIEN=$G(PLIEN,"") ; If no owner supplied use DUZ
  1. I $G(CARE)="" S BMXSEC="No CMET Selected" Q
  1. I CARE?.N S CARE=$P(^BQI(90506.5,CARE,0),U,1),TYP=$P(^(0),U,2)
  1. I CARE'?.N S CRN=$O(^BQI(90506.5,"B",CARE,"")),TYP=$P(^BQI(90506.5,CRN,0),U,2)
  1. ;
  1. ; If there is a template
  1. I $$TMPL(CARE) G DONE
  1. ;
  1. ; If there is a customized view
  1. I $$CVW(CARE) G DONE
  1. ;
  1. S TIEN="",TEMPL="",DEF=""
  1. S DISPLAY=$$DFNC()_$C(29)_$$CDEF()
  1. S SORT=$$SFNC(CRN,TYP)
  1. S SDIR="A"_$C(29)_"D"_$C(29)_"A",TEMPL="System Default"
  1. S II=II+1,@DATA@(II)=TIEN_U_TEMPL_U_DEF_U_TYP_U_DISPLAY_U_SORT_U_SDIR_$C(30)
  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,CARE,TEMPL,SOR,SDIR,DOR) ; EP -- BQI SET CARE MGMT VIEW
  1. ;
  1. ;Description
  1. ; Update the display and sort order for a specified owner and panel
  1. ;Input
  1. ; CARE - Source View Type
  1. ; SOR - The sort order
  1. ; SDIR - The sort direction
  1. ; DOR - The display order
  1. ;
  1. ; If the Owner and the User are the same person.
  1. NEW UID,II,IEN,ERROR,BQIDEL,DI,GIEN,SI,GCODE,LIST,BN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQICMVW",UID))
  1. K @DATA
  1. S II=0
  1. S @DATA@(II)="I00010RESULT^T00120MSG"_$C(30)
  1. ;
  1. S TEMPL=$G(TEMPL,""),SOR=$G(SOR,""),SDIR=$G(SDIR,""),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^BQICMVW D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. D FIL(OWNR,PLIEN,CARE,TEMPL,SOR,SDIR,DOR)
  1. ;
  1. I $D(ERROR) S II=II+1,@DATA@(II)="-1^"_$G(ERROR("DIERR",1,"TEXT",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. FIL(OWNR,PLIEN,CARE,TEMPL,SOR,SDIR,DOR) ; EP - Filer
  1. NEW CRN,CTYP
  1. S CRN=$O(^BQI(90506.5,"B",CARE,""))
  1. S CTYP=$P(^BQI(90506.5,CRN,0),U,2)
  1. ; If the user is the owner, delete the previous view values
  1. I OWNR=DUZ D Q
  1. . S CRIEN=$O(^BQICARE(OWNR,1,PLIEN,23,"B",CARE,""))
  1. . I CRIEN="" D
  1. .. NEW DA,DIC
  1. .. S DA(2)=OWNR,DA(1)=PLIEN,X=CARE
  1. .. S DIC="^BQICARE("_DA(2)_",1,"_DA(1)_",23,",DIC(0)="L",DLAYGO=90505.123
  1. .. K DO,DD D FILE^DICN
  1. .. S CRIEN=+Y
  1. . NEW DA,IENS
  1. . S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=CRIEN,DA=0
  1. . F S DA=$O(^BQICARE(OWNR,1,PLIEN,23,CRIEN,1,DA)) Q:'DA D
  1. .. S IENS=$$IENS^DILF(.DA)
  1. .. S BQIDEL(90505.1231,IENS,.01)="@"
  1. . I $D(BQIDEL) D FILE^DIE("","BQIDEL","ERROR")
  1. . K DA,IENS
  1. . ;
  1. . N DA,IENS
  1. . S DA(2)=OWNR,DA(1)=PLIEN
  1. . S DA=0
  1. . F S DA=$O(^BQICARE(OWNR,1,PLIEN,4,DA)) Q:'DA D
  1. .. S IENS=$$IENS^DILF(.DA)
  1. .. I $$GET1^DIQ(90505.14,IENS,.02,"I")'=CTYP Q
  1. .. S BQIDEL(90505.14,IENS,.01)="@"
  1. . I $D(BQIDEL) D FILE^DIE("","BQIDEL","ERROR")
  1. . K DA,IENS
  1. . ;
  1. . ; If template
  1. . I $G(TEMPL)'="" D Q
  1. .. NEW DA,DIC,DLAYGO,IENS,DIE
  1. .. S DA(2)=OWNR,DA(1)=PLIEN
  1. .. S DIC="^BQICARE("_DA(2)_",1,"_DA(1)_",4,",DIE=DIC
  1. .. S DLAYGO=90505.14,DIC(0)="L",DIC("P")=DLAYGO
  1. .. I '$D(^BQICARE(DA(2),1,DA(1),4,0)) S ^BQICARE(DA(2),1,DA(1),4,0)="^90505.14^^"
  1. .. S X=TEMPL
  1. .. D ^DIC
  1. .. S DA=+Y
  1. .. S IENS=$$IENS^DILF(.DA)
  1. .. S BQIUPD(90505.14,IENS,.02)=CTYP
  1. .. I $D(BQIUPD) D FILE^DIE("","BQIUPD","ERROR")
  1. .. K BQIUPD
  1. . ; If customized
  1. . F DI=1:1:$L(DOR,$C(29)) S GCODE=$P(DOR,$C(29),DI) Q:GCODE="" D
  1. .. NEW DA,X,DINUM,DIC,DIE,DLAYGO,IENS
  1. .. S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=CRIEN
  1. .. S DIC="^BQICARE("_DA(3)_",1,"_DA(2)_",23,"_DA(1)_",1,",DIE=DIC
  1. .. S DLAYGO=90505.1231,DIC(0)="L",DIC("P")=DLAYGO
  1. .. ;S GIEN=$O(^BQI(90506.1,"B",GCODE,""))
  1. .. S X=GCODE
  1. .. I $G(^BQICARE(DA(3),1,DA(2),23,DA(1),0))="" S ^BQICARE(DA(3),1,DA(2),23,DA(1),0)="^90505.1231^^"
  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.1231,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) Q:SIEN="" D
  1. .. NEW DA,X,IENS,BQIUPD
  1. .. ;I SIEN'?.N S SIEN=$O(^BQI(90506.1,"B",SIEN,""))
  1. .. S SN=$O(^BQICARE(OWNR,1,PLIEN,23,CRIEN,1,"B",SIEN,""))
  1. .. S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=CRIEN,DA=SN,IENS=$$IENS^DILF(.DA)
  1. .. ;S BQIUPD(90505.1231,IENS,.03)=SIEN
  1. .. S BQIUPD(90505.1231,IENS,.03)=SI
  1. .. S BQIUPD(90505.1231,IENS,.04)=$P(SDIR,$C(29),SI)
  1. .. D FILE^DIE("","BQIUPD","ERROR")
  1. ;
  1. ; If the user is sharing someone else's panel.
  1. I OWNR'=DUZ D
  1. . S CRIEN=$O(^BQICARE(OWNR,1,PLIEN,30,DUZ,23,"B",CARE,""))
  1. . I CRIEN="" D
  1. .. NEW DA,DIC
  1. .. S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=DUZ,X=CARE
  1. .. S DIC="^BQICARE("_DA(3)_",1,"_DA(2)_",30,"_DA(1)_",23,",DIC(0)="L",DLAYGO=90505.323
  1. .. K DO,DD D FILE^DICN
  1. .. S CRIEN=+Y
  1. . NEW DA,IENS
  1. . S DA(4)=OWNR,DA(3)=PLIEN,DA(2)=DUZ,DA(1)=CRIEN,DA=0
  1. . F S DA=$O(^BQICARE(OWNR,1,PLIEN,30,DUZ,23,CRIEN,1,DA)) Q:'DA D
  1. .. S IENS=$$IENS^DILF(.DA)
  1. .. S BQIDEL(90505.3231,IENS,.01)="@"
  1. . I $D(BQIDEL) D FILE^DIE("","BQIDEL","ERROR")
  1. . K DA,IENS
  1. . ;
  1. . N DA,IENS
  1. . S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=DUZ
  1. . S DA=0
  1. . F S DA=$O(^BQICARE(OWNR,1,PLIEN,30,DUZ,4,DA)) Q:'DA D
  1. .. S IENS=$$IENS^DILF(.DA)
  1. .. I $$GET1^DIQ(90505.34,IENS,.02,"I")'=CTYP Q
  1. .. S BQIDEL(90505.34,IENS,.01)="@"
  1. . I $D(BQIDEL) D FILE^DIE("","BQIDEL","ERROR")
  1. . K DA,IENS
  1. . ;
  1. . ; If template
  1. . I $G(TEMPL)'="" D Q
  1. .. NEW DA,DIC,DLAYGO,IENS,DIE
  1. .. S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=DUZ
  1. .. S DIC="^BQICARE("_DA(3)_",1,"_DA(2)_",30,"_DUZ_",4,",DIE=DIC
  1. .. S DLAYGO=90505.34,DIC(0)="L",DIC("P")=DLAYGO
  1. .. I '$D(^BQICARE(DA(3),1,DA(2),30,DA(1),20,0)) S ^BQICARE(DA(3),1,DA(2),30,DA(1),4,0)="^90505.34^^"
  1. .. S X=TEMPL
  1. .. D ^DIC
  1. .. S DA=+Y
  1. .. S IENS=$$IENS^DILF(.DA)
  1. .. S BQIUPD(90505.34,IENS,.02)=CTYP
  1. .. I $D(BQIUPD) D FILE^DIE("","BQIUPD","ERROR")
  1. .. K BQIUPD
  1. . ; If customized
  1. . F DI=1:1:$L(DOR,$C(29)) S GCODE=$P(DOR,$C(29),DI) Q:GCODE="" D
  1. .. NEW DA,X,DINUM,DIC,DIE,DLAYGO,IENS
  1. .. S DA(4)=OWNR,DA(3)=PLIEN,DA(2)=DUZ,DA(1)=CRIEN
  1. .. S DIC="^BQICARE("_DA(4)_",1,"_DA(3)_",30,"_DA(2)_",23,"_DA(1)_",1,",DIE=DIC
  1. .. S DLAYGO=90505.3231,DIC(0)="L",DIC("P")=DLAYGO
  1. .. ;S GIEN=$O(^BQI(90506.1,"B",GCODE,""))
  1. .. S X=GCODE
  1. .. I $G(^BQICARE(DA(4),1,DA(3),30,DA(2),23,DA(1),0))="" S ^BQICARE(DA(4),1,DA(3),30,DA(2),23,DA(1),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. .. ;I SIEN'?.N S SIEN=$O(^BQI(90506.1,"B",SIEN,""))
  1. .. S SN=$O(^BQICARE(OWNR,1,PLIEN,30,DUZ,23,CRIEN,1,"B",SIEN,""))
  1. .. S DA(4)=OWNR,DA(3)=PLIEN,DA(2)=DUZ,DA(1)=CRIEN,DA=SN,IENS=$$IENS^DILF(.DA)
  1. .. ;S BQIUPD(90505.3231,IENS,.02)=SIEN
  1. .. S BQIUPD(90505.3231,IENS,.02)=SI
  1. .. S BQIUPD(90505.3231,IENS,.03)=$P(SDIR,$C(29),SI)
  1. . D FILE^DIE("I","BQIUPD","ERROR")
  1. . K BQIUPD
  1. Q
  1. ;
  1. DFNC() ;EP -- Get the standard display order
  1. NEW CRIEN,TYP,ORD,KEY
  1. S DVALUE=""
  1. ; Check for any alternate display order which trumps source display order
  1. S CRIEN=$$FIND1^DIC(90506.5,"","B",CARE,"","","ERROR")
  1. S TYP=$P(^BQI(90506.5,CRIEN,0),U,2)
  1. S ORD=""
  1. F S ORD=$O(^BQI(90506.1,"AF",TYP,ORD)) Q:ORD="" D
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90506.1,"AF",TYP,ORD,IEN)) Q:IEN="" D
  1. .. S KEY=$$GET1^DIQ(90506.1,IEN_",",3.1,"E")
  1. .. I KEY'="",'$$KEYCHK^BQIULSC(KEY,DUZ) Q
  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. ;
  1. ; Get demographic data display order
  1. S CRIEN=$$FIND1^DIC(90506.5,"","B","Patient","","","ERROR")
  1. S TYP=$P(^BQI(90506.5,CRIEN,0),U,2)
  1. ; Check for alternate display order first
  1. S ORD=""
  1. F S ORD=$O(^BQI(90506.1,"AF",TYP,ORD)) Q:ORD="" D
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90506.1,"AF",TYP,ORD,IEN)) Q:IEN="" D
  1. .. S KEY=$$GET1^DIQ(90506.1,IEN_",",3.1,"E")
  1. .. I KEY'="",'$$KEYCHK^BQIULSC(KEY,DUZ) Q
  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. ;
  1. ; Check for normal display order
  1. S ORD=""
  1. F S ORD=$O(^BQI(90506.1,"AD",TYP,ORD)) Q:ORD="" D
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90506.1,"AD",TYP,ORD,IEN)) Q:IEN="" D
  1. .. S KEY=$$GET1^DIQ(90506.1,IEN_",",3.1,"E")
  1. .. I KEY'="",'$$KEYCHK^BQIULSC(KEY,DUZ) Q
  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(CRN,TYP) ;EP -- Get the standard sort order
  1. NEW IEN,ORD,STVCD,SVALUE,KEY
  1. S SVALUE=""
  1. ;
  1. ;Get CMET Sort(s) First
  1. S ORD=""
  1. F S ORD=$O(^BQI(90506.1,"AE",TYP,ORD)) Q:ORD="" D
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90506.1,"AE",TYP,ORD,IEN)) Q:IEN="" D
  1. .. S KEY=$$GET1^DIQ(90506.1,IEN_",",3.1,"E")
  1. .. I KEY'="",'$$KEYCHK^BQIULSC(KEY,DUZ) Q
  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_$S(SVALUE]"":$C(29),1:"")_STVCD
  1. ;
  1. ;Now Get Patient Sort(s)
  1. S CRN=$$FIND1^DIC(90506.5,"","B","Patient","","","ERROR")
  1. S TYP=$P(^BQI(90506.5,CRN,0),U,2)
  1. S ORD=""
  1. F S ORD=$O(^BQI(90506.1,"AE",TYP,ORD)) Q:ORD="" D
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90506.1,"AE",TYP,ORD,IEN)) Q:IEN="" D
  1. .. S KEY=$$GET1^DIQ(90506.1,IEN_",",3.1,"E")
  1. .. I KEY'="",'$$KEYCHK^BQIULSC(KEY,DUZ) Q
  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_$S(SVALUE]"":$C(29),1:"")_STVCD
  1. Q SVALUE
  1. ;
  1. CDEF() ; EP - Get Care Management source default fields
  1. NEW CRIEN,TYP,ORD,KEY
  1. S MVALUE=""
  1. S CRIEN=$$FIND1^DIC(90506.5,"","B",CARE,"","","ERROR")
  1. S TYP=$P(^BQI(90506.5,CRIEN,0),U,2)
  1. ;
  1. ; Check for normal display order
  1. S ORD=""
  1. F S ORD=$O(^BQI(90506.1,"AD",TYP,ORD)) Q:ORD="" D
  1. . S IEN=""
  1. . F S IEN=$O(^BQI(90506.1,"AD",TYP,ORD,IEN)) Q:IEN="" D
  1. .. S KEY=$$GET1^DIQ(90506.1,IEN_",",3.1,"E")
  1. .. I KEY'="",'$$KEYCHK^BQIULSC(KEY,DUZ) Q
  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. NEW KEY,DXCL,FDATA,CAT,REQ,SRC
  1. S KEY=$P(^BQI(90506.5,CRIEN,0),U,12)
  1. I KEY'="",'$$KEYCHK^BQIULSC(KEY,DUZ) Q
  1. S DXCL=0
  1. F S DXCL=$O(^BQI(90506.5,CRIEN,10,DXCL)) Q:'DXCL D
  1. . S FDATA=^BQI(90506.5,CRIEN,10,DXCL,0)
  1. . I $P(FDATA,U,6)'="",$P(FDATA,U,6)'="O" D
  1. .. S MVALUE=MVALUE_$P(FDATA,U,1)_$C(29)
  1. ;Get locally created care management columns if associated with a dx tag
  1. NEW DXTN
  1. S DXTN=$P($G(^BQI(90506.5,CRIEN,0)),U,11)
  1. I DXTN'="" D
  1. . S DXCL=0
  1. . F S DXCL=$O(^BQI(90506.2,DXTN,6,DXCL)) Q:'DXCL D
  1. .. S FDATA=^BQI(90506.2,DXTN,6,DXCL,0)
  1. .. I $P(FDATA,U,6)'="",$P(FDATA,U,6)'="O" D
  1. ... S MVALUE=MVALUE_$P(FDATA,U,1)_$C(29)
  1. S MVALUE=$$TKO^BQIUL1(MVALUE,$C(29))
  1. Q MVALUE
  1. ;
  1. TMPL(CARE) ;EP - Check if layout template is used
  1. ; CTYP = Care Mgmt type
  1. NEW CRN,CTYP,RESULT
  1. S CRN=$O(^BQI(90506.5,"B",CARE,""))
  1. S CTYP=$P(^BQI(90506.5,CRN,0),U,2),RESULT=0
  1. NEW DA,IENS,TEMPL,LYIEN
  1. S TEMPL=""
  1. I OWNR'=DUZ D
  1. . I $G(PLIEN)="" Q
  1. . S DA=$O(^BQICARE(OWNR,1,PLIEN,30,DUZ,4,"C",CTYP,""))
  1. . I DA="" Q
  1. . S DA(3)=OWNR,DA(2)=PLIEN,DA(1)=DUZ,IENS=$$IENS^DILF(.DA)
  1. . S TEMPL=$$GET1^DIQ(90505.34,IENS,.01,"E")
  1. I OWNR=DUZ D
  1. . I $G(PLIEN)="" Q
  1. . S DA=$O(^BQICARE(OWNR,1,PLIEN,4,"C",CTYP,""))
  1. . I DA="" Q
  1. . S DA(2)=OWNR,DA(1)=PLIEN,IENS=$$IENS^DILF(.DA)
  1. . S TEMPL=$$GET1^DIQ(90505.14,IENS,.01,"E")
  1. I TEMPL'="" D
  1. . ;S LYIEN=$$DEF^BQILYUTL(OWNR,"M")
  1. . S LYIEN=$$TPN^BQILYUTL(DUZ,TEMPL)
  1. . I LYIEN="" Q
  1. . D DEF^BQILYDEF(LYIEN)
  1. . S RESULT=1
  1. . ;S DISPLAY=$P(@DATA@(II),U,3),SOR=$P(@DATA@(II),U,4),SDIR=$P(@DATA@(II),U,5)
  1. Q RESULT
  1. ;
  1. CVW(CARE) ;EP - Get Customized Care Management view
  1. NEW FL,TIEN,TEMPL,DEF,TYP,DISPLAY,SORT,SDIR,CIEN,IEN,GIEN,SIEN,RIEN,CODE,SOR
  1. S DISPLAY="",SORT="",SDIR="",TIEN="",TEMPL="",RESULT=0,DEF=""
  1. I $G(PLIEN)="" Q 0
  1. ;
  1. ; Owner and user are the same
  1. S FL=1
  1. I OWNR=DUZ D I FL=0 Q 0
  1. . S CIEN=$O(^BQICARE(OWNR,1,PLIEN,23,"B",CARE,"")) I CIEN="" S FL=0 Q
  1. . S CRN=$O(^BQI(90506.5,"B",CARE,""))
  1. . S TYP=$P(^BQI(90506.5,CRN,0),U,2)
  1. . S IEN=0,DISPLAY="",SORT="",SDIR=""
  1. . F S IEN=$O(^BQICARE(OWNR,1,PLIEN,23,CIEN,1,IEN)) Q:'IEN D
  1. .. ;S GIEN=$P(^BQICARE(OWNR,1,PLIEN,23,CIEN,1,IEN,0),"^",1)
  1. .. S CODE=$P(^BQICARE(OWNR,1,PLIEN,23,CIEN,1,IEN,0),"^",1)
  1. .. S SIEN=$P(^BQICARE(OWNR,1,PLIEN,23,CIEN,1,IEN,0),"^",3)
  1. .. S RIEN=$P(^BQICARE(OWNR,1,PLIEN,23,CIEN,1,IEN,0),"^",4)
  1. .. ;S CODE=$P(^BQI(90506.1,GIEN,0),U,1)
  1. .. S DISPLAY=DISPLAY_CODE_$C(29)
  1. .. I SIEN'="" D
  1. ... ;I SIEN?.N S CODE=$P(^BQI(90506.1,SIEN,0),U,1)
  1. ... ;E S CODE=SIEN
  1. ... ;S SORT=SORT_CODE_$C(29)
  1. ... S $P(SORT,$C(29),SIEN)=CODE
  1. ... S $P(SDIR,$C(29),SIEN)=RIEN
  1. .. ;S SDIR=SDIR_RIEN_$C(29)
  1. ;
  1. ; User is not owner but share
  1. I OWNR'=DUZ D I FL=0 Q 0
  1. .S CIEN=$O(^BQICARE(OWNR,1,PLIEN,30,DUZ,23,"B",CARE,"")) I CIEN="" S FL=0 Q
  1. . S CRN=$O(^BQI(90506.5,"B",CARE,""))
  1. . S TYP=$P(^BQI(90506.5,CRN,0),U,2)
  1. . S IEN=0,DISPLAY="",SORT="",SDIR=""
  1. . F S IEN=$O(^BQICARE(OWNR,1,PLIEN,30,DUZ,23,CIEN,1,IEN)) Q:'IEN D
  1. .. ;S GIEN=$P(^BQICARE(OWNR,1,PLIEN,30,DUZ,23,CIEN,1,IEN,0),"^",1)
  1. .. S CODE=$P(^BQICARE(OWNR,1,PLIEN,30,DUZ,23,CIEN,1,IEN,0),"^",1)
  1. .. S SIEN=$P(^BQICARE(OWNR,1,PLIEN,30,DUZ,23,CIEN,1,IEN,0),"^",3)
  1. .. S RIEN=$P(^BQICARE(OWNR,1,PLIEN,30,DUZ,23,CIEN,1,IEN,0),"^",4)
  1. .. ;S CODE=$P(^BQI(90506.1,GIEN,0),U,1)
  1. .. S DISPLAY=DISPLAY_CODE_$C(29)
  1. .. I SIEN'="" D
  1. ... ;I SIEN?.N S CODE=$P(^BQI(90506.1,SIEN,0),U,1)
  1. ... ;E S CODE=SIEN
  1. ... ;S SORT=SORT_CODE_$C(29)
  1. ... S $P(SORT,$C(29),SIEN)=CODE
  1. ... S $P(SDIR,$C(29),SIEN)=RIEN
  1. .. ;S SDIR=SDIR_RIEN_$C(29)
  1. ;
  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. I DISPLAY'="" D
  1. . S RESULT=1
  1. . S II=II+1,@DATA@(II)=TIEN_U_TEMPL_U_DEF_U_TYP_U_DISPLAY_U_SORT_U_SDIR_$C(30)
  1. Q RESULT