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

BQIIPEMP.m

Go to the documentation of this file.
  1. BQIIPEMP ;VNGT/HS/ALA-Empanelled Patients ; 06 May 2011 1:38 PM
  1. ;;2.7;ICARE MANAGEMENT SYSTEM;;Dec 19, 2017;Build 23
  1. ;
  1. ;
  1. EN(BQDATE,BQFROM,BQTHRU) ;EP
  1. NEW BQMON,BQDTE,BEGDT,EDAY,ENDT,PYR,CYR,ID,FAC,BQITOTP,BQITOTR,DFN,BD,ED
  1. NEW BQGOTA,F,QFL,X,Y,CRST
  1. S QFL=0
  1. S CRST=$P($G(^BQI(90508,1,11)),U,2) S:CRST="" CRST=1
  1. S CRST="0"_CRST
  1. ;
  1. I $G(BQDATE)'="",$G(WEEK)="" D
  1. . S BEGDT=$E(BQDATE,1,5)_"01",CYR=$E(BQDATE,1,3),BQMON=$E(BQDATE,4,5)
  1. . I $L(BQMON)=1 S BQMON="0"_BQMON
  1. . S EDAY="31^"_($$LEAP^XLFDT2(CYR)+28)_"^31^30^31^30^31^31^30^31^30^31"
  1. . S ENDT=$E(BQDATE,1,5)_$P(EDAY,U,+BQMON)
  1. ;
  1. I $G(BQDATE)="",$G(WEEK)="" D Q:QFL
  1. . I $E(DT,6,7)'=CRST S QFL=1 Q
  1. . S BQMON=$E(DT,4,5)-1,CYR=$E(DT,1,3),PYR=CYR-1
  1. . S BQDTE=$P($T(BQM+BQMON),";;",2)
  1. . I $L(BQMON)=1 S BQMON="0"_BQMON
  1. . S BEGDT=@($P(BQDTE,U,2))_$P(BQDTE,U,1)_"01"
  1. . S EDAY="31^"_($$LEAP^XLFDT2(CYR)+28)_"^31^30^31^30^31^31^30^31^30^31"
  1. . S ENDT=@($P(BQDTE,U,2))_$P(BQDTE,U,1)_$P(EDAY,U,+$P(BQDTE,U,1))
  1. . S BQDATE=$S(BQMON="01":PYR,1:CYR)_BQMON_"00"
  1. ;
  1. I $G(WEEK)=1 D
  1. . S BGDT=BQFROM-.9999,ENDT=BQTHRU
  1. ;
  1. S ID="IPC_PEMP"
  1. S FAC=$$HME^BQIGPUTL()
  1. ;
  1. I $G(WEEK)="" S BGDT=$$FMADD^XLFDT(ENDT,1),BGDT=($E(BGDT,1,3)-3)_$E(BGDT,4,7)
  1. ; BQITOTP = Total active patients ; BQITOTR = Total active patients empanelled
  1. S BQITOTP=0,BQITOTR=0
  1. ;
  1. S DFN=0
  1. F S DFN=$O(^AUPNPAT(DFN)) Q:'DFN D
  1. . I $G(^AUPNPAT(DFN,0))="" Q
  1. . I $G(^DPT(DFN,0))="" Q
  1. . ; If patient merged to a different IEN
  1. . I $P(^DPT(DFN,0),U,19)'="" Q
  1. . ; if a demo patient
  1. . I $$DEMO^APCLUTL(DFN,"E") Q
  1. . ; if deceased
  1. . I $D(^DPT(DFN,.35)),$P(^(.35),U)]"",$P(^(.35),U)'>ENDT Q
  1. . ; if no HRN for this facility
  1. . I $G(^AUPNPAT(DFN,41,FAC,0))="" Q
  1. . ; if HRN marked inactive
  1. . ;I $P($G(^AUPNPAT(DFN,41,FAC,0)),U,3)'="",$P($G(^AUPNPAT(DFN,41,FAC,0)),U,3)'>ENDT Q
  1. . ;
  1. . S BD=(9999999-ENDT)-.0001,ED=9999999-BGDT,BQGOTA=0
  1. . F S BD=$O(^AUPNVSIT("AA",DFN,BD)) Q:BD=""!(BD\1>ED) D
  1. .. S VISIT=""
  1. .. F S VISIT=$O(^AUPNVSIT("AA",DFN,BD,VISIT)) Q:VISIT="" D
  1. ... I $G(^AUPNVSIT(VISIT,0))="" Q
  1. ... I $P(^AUPNVSIT(VISIT,0),U,11) Q
  1. ... I BQGOTA=1 Q
  1. ... Q:'$P(^AUPNVSIT(VISIT,0),U,9)
  1. ... Q:"DXECTI"[$P(^AUPNVSIT(VISIT,0),U,7)
  1. ... S CL=$$CLINIC^APCLV(VISIT,"C") I CL=11!(CL=68)!(CL=51)!(CL=52) Q
  1. ... Q:'$D(^AUPNVPOV("AD",VISIT))
  1. ... Q:$$PRIMPROV^APCLV(VISIT,"I")=""
  1. ... S F=$P(^AUPNVSIT(VISIT,0),U,6) I F="" Q
  1. ... I F'=FAC Q
  1. ... S BQGOTA=1
  1. ... S BQITOTP=BQITOTP+1 ; Denominator
  1. ... I $P(^AUPNPAT(DFN,0),U,14) S BQITOTR=BQITOTR+1 ; Numerator
  1. ;
  1. I $G(WEEK)="" D STORF^BQIIPUTL(FAC,ID,BQDATE,BQITOTP,BQITOTR)
  1. I $G(WEEK)=1 D STORFW^BQIIPUTL(FAC,ID,BQFROM,BQTHRU,BQITOTP,BQITOTR)
  1. Q
  1. ;
  1. BQM ;
  1. ;;12^PYR
  1. ;;01^CYR
  1. ;;02^CYR
  1. ;;03^CYR
  1. ;;04^CYR
  1. ;;05^CYR
  1. ;;06^CYR
  1. ;;07^CYR
  1. ;;08^CYR
  1. ;;09^CYR
  1. ;;10^CYR
  1. ;;11^CYR