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

BQIPTPNL.m

Go to the documentation of this file.
  1. BQIPTPNL ;PRXM/HC/ALA-Get Panels for a Patient ; 09 Nov 2005 10:41 AM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;;Apr 18, 2012;Build 59
  1. ;
  1. Q
  1. ;
  1. GET(DATA,DFN,OWNR) ; EP -- BQI GET PANELS BY PATIENT
  1. ;
  1. ;Description
  1. ; Get a list of all panels that a patient is on
  1. ;Input
  1. ; DFN - Patient internal entry number
  1. ; OWNR - If only valid for a specific owner
  1. ;
  1. NEW UID,BQI,PLIEN,PLNM,PLID,X,SHRS,PCAT
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J),BQI=0
  1. S DATA=$NA(^TMP("BQIPTPNL",UID))
  1. K @DATA
  1. ;
  1. ;Set error trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIPTPNL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(BQI)="I00010PANEL_IEN^T00015PANEL_ID^T00120PANEL_NAME^T00250PANEL_DESCRIPTION^I00010OWNER^T00035OWNER_NAME^T00035PANEL_CATEGORY"_$C(30)
  1. I $G(OWNR)'="" D PNL G DONE
  1. S OWNR=""
  1. F S OWNR=$O(^BQICARE("AB",DFN,OWNR)) Q:OWNR="" D PNL
  1. DONE ;
  1. S BQI=BQI+1,@DATA@(BQI)=$C(31)
  1. Q
  1. ;
  1. PNL ; Find panels
  1. S PLIEN=""
  1. F S PLIEN=$O(^BQICARE("AB",DFN,OWNR,PLIEN)) Q:PLIEN="" D
  1. . I $G(^BQICARE(OWNR,1,PLIEN,40,DFN,0))="" K ^BQICARE("AB",DFN,OWNR,PLIEN) Q
  1. . NEW DA,IENS,PLID
  1. . S DA(1)=OWNR,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. . I $$GET1^DIQ(90505.01,IENS,.13,"I")]"" Q
  1. . ; Exclude panel if patient was "removed"
  1. . I $$GET1^DIQ(90505.04,DFN_","_IENS,.02,"I")="R" Q
  1. . S PLID=$$PLID^BQIUG1(OWNR,PLIEN)
  1. . S PCAT=$$PCAT^BQIPLDF(OWNR,PLIEN)
  1. . S BQI=BQI+1,@DATA@(BQI)=PLIEN_"^"_PLID_"^"_$$GET1^DIQ(90505.01,IENS,.01,"E")_"^"_$$GET1^DIQ(90505.01,IENS,1,"E")_"^"_OWNR_"^"_$$GET1^DIQ(90505,OWNR_",",.01,"E")_"^"_PCAT_$C(30)
  1. ;
  1. ; if patient is on a panel that is shared with the owner, get those panels too
  1. S SHRS=""
  1. F S SHRS=$O(^BQICARE("C",OWNR,SHRS)) Q:SHRS="" D
  1. . S PLIEN=""
  1. . F S PLIEN=$O(^BQICARE("C",OWNR,SHRS,PLIEN)) Q:PLIEN="" D
  1. .. NEW DA,IENS,PLID
  1. .. S DA(1)=SHRS,DA=PLIEN,IENS=$$IENS^DILF(.DA)
  1. .. I $$GET1^DIQ(90505.04,DFN_","_IENS,.01,"I")="" Q
  1. .. I $$GET1^DIQ(90505.04,DFN_","_IENS,.02,"I")="R" Q
  1. .. S PLID=$$PLID^BQIUG1(SHRS,PLIEN)
  1. .. S PCAT=$$PCAT^BQIPLDF(OWNR,PLIEN)
  1. .. S BQI=BQI+1,@DATA@(BQI)=PLIEN_"^"_PLID_"^"_$$GET1^DIQ(90505.01,IENS,.01,"E")_"^"_$$GET1^DIQ(90505.01,IENS,1,"E")_"^"_SHRS_"^"_$$GET1^DIQ(90505,SHRS_",",.01,"E")_"^"_PCAT_$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(BQI),$D(DATA) S BQI=BQI+1,@DATA@(BQI)=$C(31)
  1. Q