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

BQIIPBNL.m

Go to the documentation of this file.
  1. BQIIPBNL ;VNGT/HS/ALA-IPC Bundle Logic ; 24 Jun 2011 11:53 AM
  1. ;;2.7;ICARE MANAGEMENT SYSTEM;;Dec 19, 2017;Build 23
  1. ;
  1. ;
  1. EN(CRSN,BNIEN,BQDATE,CODE,BQFROM,BQTHRU) ;EP - do the bundle for monthly update
  1. ; Input
  1. ; CRSN - Current IPC IEN
  1. ; BNIEN - Bundle IEN
  1. ; CODE - Code name
  1. ; BQI(90508,1,22,CRN,1,MSN,1
  1. ;
  1. NEW TDEN,TNUM,CNT,CD,BQIDOD,NA,YES,NO,NDA
  1. S BQDATE=$G(BQDATE,""),BQFROM=$G(BQFROM,""),BQTHRU=$G(BQTHRU,"")
  1. S TDEN=0,TNUM=0,CNT=0
  1. K XX
  1. D BUN(CRSN,BNIEN,.XX)
  1. S CD="" F S CD=$O(XX(CD)) Q:CD="" S CNT=CNT+1
  1. ;
  1. S PRV=""
  1. F S PRV=$O(^AUPNPAT("AK",PRV)) Q:PRV="" D
  1. . I $P(^VA(200,PRV,0),U,13)'="" Q
  1. . S DFN="",PCT=0,TP=0
  1. . F S DFN=$O(^AUPNPAT("AK",PRV,DFN)) Q:DFN="" D
  1. .. ;B:PRV=2911
  1. .. I '$$HRN^BQIUL1(DFN) Q
  1. .. S VAL=$$PAT(DFN,.XX)
  1. .. I VAL="N/A"!(VAL="{D}") Q
  1. .. S TP=TP+1
  1. .. I VAL="YES" S PCT=PCT+1
  1. .. Q
  1. .. S CD="",BCT=0,NA=0,YES=0,NO=0,NDA=0
  1. .. F S CD=$O(XX(CD)) Q:CD="" D
  1. ... S IEN=$O(^BQIPAT(DFN,30,"B",CD,"")) I IEN="" S NDA=NDA+1 Q
  1. ... S BQIDOD=$$GET1^DIQ(2,DFN_",",.351,"I")
  1. ... I BQIDOD'="" Q
  1. ... S NUM=$P(^BQIPAT(DFN,30,IEN,0),U,3)
  1. ... S DEN=$P(^BQIPAT(DFN,30,IEN,0),U,4)
  1. ... S TP=TP+1
  1. ... I NUM="",DEN="" S BCT=BCT+1,NA=NA+1 Q
  1. ... I DEN'="",NUM="" S NO=NO+1 Q
  1. ... I DEN'="",NUM'="" S BCT=BCT+1,YES=YES+1
  1. .. I NDA S NA=NA+1
  1. .. I 'NO S PCT=PCT+1
  1. .. Q
  1. .. S PCT=$S(BCT=CNT:PCT+1,1:PCT)
  1. . I '$G(WEEK) D STORP^BQIIPUTL(PRV,CODE,BQDATE,TP,PCT)
  1. . I $G(WEEK)=1 D STORPW^BQIIPUTL(PRV,CODE,BQFROM,BQTHRU,TP,PCT)
  1. . I $G(DEBUG)=1 W !,PRV,"|",CODE,"|",PCT,"/",TP
  1. . S TDEN=TDEN+TP,TNUM=TNUM+PCT
  1. S FAC=$$HME^BQIGPUTL()
  1. I '$G(WEEK) D STORF^BQIIPUTL(FAC,CODE,BQDATE,TDEN,TNUM)
  1. I $G(WEEK)=1 D STORFW^BQIIPUTL(FAC,CODE,BQFROM,BQTHRU,TDEN,TNUM)
  1. I $G(DEBUG)=1 W !,FAC,"|",CODE,"|",TNUM,"/",TDEN
  1. Q
  1. ;
  1. BUN(CRSN,BNIEN,XX) ;EP - Get values for bundle
  1. NEW BN,BCODE
  1. S BN=0
  1. F S BN=$O(^BQI(90508,1,22,CRSN,1,BNIEN,2,BN)) Q:'BN D
  1. . S BCODE=$P(^BQI(90508,1,22,CRSN,1,BNIEN,2,BN,0),U,1)
  1. . S XX(BCODE)=""
  1. Q
  1. ;
  1. PAT(DFN,XX) ;EP - See if patient meets bundle criteria
  1. NEW BCT,PCT,CNT,CD,IEN,NUM,DEN,BQIDOD,NA,YES,NO,NDA
  1. S BCT=0,PCT=0,CNT=0,NA=0,YES=0,NO=0,NDA=0
  1. S BQIDOD=$$GET1^DIQ(2,DFN_",",.351,"I")
  1. I BQIDOD'="" Q "{D}"
  1. S CD="" F S CD=$O(XX(CD)) Q:CD="" S CNT=CNT+1
  1. F S CD=$O(XX(CD)) Q:CD="" D
  1. . I $P(CD,"_",1)="MU" S NA=NA+1 Q
  1. . S IEN=$O(^BQIPAT(DFN,30,"B",CD,"")) I IEN="" S NDA=NDA+1 Q
  1. . S NUM=$P(^BQIPAT(DFN,30,IEN,0),U,3)
  1. . S DEN=$P(^BQIPAT(DFN,30,IEN,0),U,4)
  1. . I NUM="",DEN="" S BCT=BCT+1,NA=NA+1 Q
  1. . I DEN'="",NUM="" S NO=NO+1 Q
  1. . I DEN'="",NUM'="" S BCT=BCT+1,YES=YES+1
  1. I NDA Q "N/A"
  1. I NA=CNT Q "N/A"
  1. I YES=CNT Q "YES"
  1. I 'NO Q "YES"
  1. Q "NO"
  1. ;
  1. PT(DFN,IPCN,CDN) ;EP
  1. D BUN(IPCN,CDN,.XX)
  1. S VAL=$$PAT(DFN,.XX)
  1. Q VAL