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

BQIRMDR.m

Go to the documentation of this file.
  1. BQIRMDR ;PRXM/HC/ALA-Find all reminder values ; 15 Mar 2007 2:30 PM
  1. ;;2.5;ICARE MANAGEMENT SYSTEM;;May 24, 2016;Build 27
  1. ;
  1. PAT(DFN,REF) ;EP
  1. NEW APCHSPAT,APCHSAGE,APCHSEX,APCHSANY,APCHSITM,APCHNON,APCHSURX
  1. NEW ZAPCHS,APCHSCVD,APCHSITI,APCHLBE,APCHLCOL,APCHOVR,APCHSBP
  1. NEW AMQQTAXN,APCHBHD,AMQQTAXN,APCHBHD,APCHC,APCHIMMC,APCHLADX
  1. NEW APCHLED,APCHLEX,APCHLEXB,APCHLHF,APCHLPV,APCHLSIG,APCHNEXT
  1. NEW APCHSBRK,APCHSBWR,APCHSC,APCHSCAT,APCHSCKP,APCHSCRI,APCHSDAT
  1. NEW APCHSDF,APCHSDF1,APCHSDIS,APCHSINT,APCHSIVD,APCHSKD,APCHSMSC
  1. NEW APCHSDO,APCHSDOB,APCHSDT,APCHSDUE,APCHSEXD,APCHSEXN,APCHSFLX
  1. NEW APCHSKDT,APCHSKN,APCHSKND,APCHSLAB,APCHSLBD,APCHSLDT,APCHSLP
  1. NEW APCHSMAM,APCHSMDT,APCHSYRY,APCHT,APCHTAXN,RIEN,DIC,DAYS,CODE
  1. NEW APCHSMSD,APCHSNPG,APCHSOLD,APCHSQIT,APCHSTEX,APCHSURD,APCHSWD
  1. NEW APCHTEST,APCHX,APCLAST,RMHDR,APCHNME,IMM,IMN,OT,OTH,REMTEXT,RJ
  1. NEW VER,NAME,APCHA,APCHCOLW,APCHDX4,APCHHR,APCHIC,APCHLR,APCHLSTR
  1. NEW APCHWHI,APCHWHL,APCHWHN,IQFL,IMOK,APCHRVAL,APCHSWHR,APCHR
  1. NEW APCHNUMD,APCHLAST
  1. ;
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIRMDR D UNWIND^%ZTER"
  1. ;
  1. ; Sometimes if Postmaster is the Task owner, DUZ is not defined correctly for some reminders
  1. I $G(DUZ(2))=""!(DUZ=.5) M DUZ=^XTMP("BQIRMDR","DUZ")
  1. ;
  1. S IMOK=0 I $$PATCH^XPDUTL("BI*8.3*1") S IMOK=1
  1. ; Delete any previous reminders
  1. NEW DA,DIK
  1. S DA(1)=DFN,DA=0,DIK="^BQIPAT("_DA(1)_",40,"
  1. F S DA=$O(^BQIPAT(DFN,40,DA)) Q:'DA D ^DIK
  1. ;
  1. ; If deceased, don't include
  1. ;I $P($G(^DPT(DFN,.35)),U,1)'="" Q
  1. ; If no active HRN, don't include
  1. ;I '$$HRN^BQIUL1(DFN) Q
  1. ; If no visit in last 3 years, quit
  1. ;I '$$VTHR^BQIUL1(DFN) Q
  1. ;
  1. S REF=$G(REF,0)
  1. ;
  1. S APCHSPAT=DFN
  1. S APCHSDOB=$P($G(^DPT(APCHSPAT,0)),U,3) I APCHSDOB="" Q
  1. S APCHSAGE=$$AGE^BQIAGE(APCHSPAT)
  1. S APCHSEX=$P(^DPT(APCHSPAT,0),U,2)
  1. S APCHSCVD="S:Y]"""" Y=+Y,Y=$E(Y,4,5)_""/""_$S($E(Y,6,7):$E(Y,6,7)_""/"",1:"""")_$E(Y,2,3)"
  1. S (APCHSANY,APCHSITM)=0,APCHNON=1,APCHSURX=""
  1. S APCHSCKP="S APCHSQIT=1 Q"
  1. S APCHSBRK="Q"
  1. S APCHSNPG=0
  1. K APCHSTEX
  1. ;
  1. ; If patient not in BQIPAT yet, add them
  1. I $G(^BQIPAT(DFN,0))="" D
  1. . NEW DIC,X,DINUM,DLAYGO
  1. . S (X,DINUM)=DFN,DLAYGO=90507.5,DIC="^BQIPAT(",DIC(0)="L"
  1. . K DO,DD D FILE^DICN
  1. ;
  1. S RIEN=""
  1. F S RIEN=$O(^BQI(90506.1,"AC","R",RIEN)) Q:RIEN="" D
  1. . I $P(^BQI(90506.1,RIEN,0),U,10)=1 Q
  1. . S NAME=$P(^BQI(90506.1,RIEN,0),U,3)
  1. . S CODE=$P(^BQI(90506.1,RIEN,0),U,1)
  1. . S HIEN=$P(CODE,"_",2)
  1. . ;
  1. . I $P(CODE,"_",1)="REG" D REG^BQIRMDR1(DFN,CODE) Q
  1. . ;
  1. . I $P(CODE,"_",1)="EHR" D EMR^BQIRMDR1(DFN,CODE) Q
  1. . ;
  1. . I $P(CODE,"_",1)="CMET" D CMT^BQIRMDR1(DFN,CODE) Q
  1. . ;
  1. . I $P(CODE,"_",1)="AUTTIMM" D
  1. .. S NAME="IMMUNIZATIONS"
  1. .. S HIEN=$$FIND1^DIC(9001018,"","Q",NAME,"B","","ERROR")
  1. . ;
  1. . I $P(CODE,"_",1)="COLO" D
  1. .. S NAME="COLORECTAL CA-SCOPE/XRAY"
  1. .. S HIEN=$$FIND1^DIC(9001018,"","Q",NAME,"B","","ERROR")
  1. . ;
  1. . D RMR(DFN,HIEN)
  1. ;
  1. ; Fill in all missing immunizations
  1. S IEN=""
  1. F S IEN=$O(^BQI(90506.1,"AC","R",IEN)) Q:IEN="" D
  1. . I $P(^BQI(90506.1,IEN,0),U,10)=1 Q
  1. . S CODE=$P(^BQI(90506.1,IEN,0),U,1)
  1. . I CODE["AUTTIMM" Q
  1. . I $O(^BQIPAT(DFN,40,"B",CODE,""))'="" Q
  1. . I $E(CODE,1,3)="REG" Q
  1. . I $E(CODE,1,4)="CMET" Q
  1. . S (REMDUE,REMLAST,REMNEXT)=""
  1. . D FIL
  1. ;
  1. D IZ^BQIRMDR2(DFN)
  1. Q
  1. ;
  1. RMR(DFN,HIEN) ;EP
  1. NEW RCIEN,RCFILE,VISIT,APCHSPAT,APCHSDOB,APCHSAGE,APCHSCVD,APCHSCKP,RCFILE
  1. NEW APCHSBRK,APCHSNPG,APCHSANY,APCHSITM,APCHNON,APCHSURX,IMNIEN,REMDUE
  1. NEW REMLAST,REMNEXT
  1. S APCHSPAT=DFN
  1. S APCHSDOB=$P($G(^DPT(APCHSPAT,0)),U,3) I APCHSDOB="" Q
  1. S APCHSAGE=$$AGE^BQIAGE(APCHSPAT)
  1. S APCHSEX=$P(^DPT(APCHSPAT,0),U,2)
  1. S APCHSCVD="S:Y]"""" Y=+Y,Y=$E(Y,4,5)_""/""_$S($E(Y,6,7):$E(Y,6,7)_""/"",1:"""")_$E(Y,2,3)"
  1. S (APCHSANY,APCHSITM)=0,APCHNON=1,APCHSURX=""
  1. S APCHSCKP="S APCHSQIT=1 Q"
  1. S APCHSBRK="Q"
  1. S APCHSNPG=0
  1. K APCHSTEX
  1. S APCHNME=$P($G(^APCHSURV(HIEN,0)),U,1) I APCHNME="" Q
  1. ; Sometimes if Postmaster is the Task owner, DUZ is not defined correctly for some reminders
  1. I $G(DUZ(2))="" M DUZ=^XTMP("BQIRMDR","DUZ")
  1. S IQFL=0
  1. I $G(IMOK)="" S IMOK=0 I $$PATCH^XPDUTL("BI*8.3*1") S IMOK=1
  1. I APCHNME="IMMUNIZATIONS" D Q:IQFL
  1. . I '$G(REF),'IMOK S IQFL=1 Q
  1. S X=$$GVHMR^APCHSMU(DFN,HIEN)
  1. I APCHNME="IMMUNIZATIONS" D Q
  1. . I X["Immunization Forecasting disabled" Q
  1. . I +$P(^BQI(90508,1,0),U,15)=0 Q
  1. . NEW VALUE,IMM
  1. . S IMM=X,VALUE=""
  1. . F PC=4:1:$L(IMM,"^") S IMN=$P(IMM,U,PC) Q:IMN=""!(IMN[$C(31)) D
  1. .. S REMNME=$P(IMN,"|",1),REMTEXT=$P(IMN,"|",2)
  1. .. ; Need to strip off leading spaces
  1. .. F RJ=1:1 Q:$E(REMNME,RJ,RJ)'=" "
  1. .. S REMNME=$E(REMNME,RJ,$L(REMNME))
  1. .. S IMNIEN=$O(^AUTTIMM("D",REMNME,"")) I IMNIEN="" Q
  1. .. I IMOK D
  1. ... S VALUE=$$IMM^BQIREM(DFN,IMNIEN)
  1. ... S REMDUE=$P(VALUE,U,1),REMNEXT=$P(VALUE,U,2),REMLAST=$P(VALUE,U,3),VISIT=$P(VALUE,U,4),RCIEN=$P(VALUE,U,5)
  1. ... I VISIT'="" S RCFILE=9000010.11
  1. .. I 'IMOK D
  1. ... S X=REMNME_U_U_$$IMM^BQIREM(DFN,IMNIEN)
  1. ... D PRS(X,HIEN)
  1. .. I REMTEXT'="",REMNEXT'="" S REMNEXT=REMTEXT_" ("_REMNEXT_")"
  1. .. I REMTEXT'="",REMNEXT="" S REMNEXT=REMTEXT
  1. .. S CODE="AUTTIMM_"_IMNIEN
  1. .. D FIL
  1. I APCHNME="COLORECTAL CA-SCOPE/XRAY" D Q
  1. . I X["|" D Q
  1. .. K OTH,OT,BQINEXT,BQIDUE,BQILAST
  1. .. S OTH=X
  1. .. F PC=1:1:$L(OTH,"|") S OT=$P(OTH,"|",PC) Q:OT="" D
  1. ... D PRS(OT,HIEN)
  1. ... I REMNEXT'="" S BQINEXT(REMNEXT)=""
  1. ... I REMDUE'="" S BQIDUE(REMDUE)=""
  1. ... I REMLAST'="" S BQILAST(REMLAST)=""
  1. .. S REMNEXT=$O(BQINEXT(""),-1)
  1. .. S REMDUE=$O(BQIDUE(""),-1)
  1. .. S REMLAST=$O(BQILAST(""),-1)
  1. .. D FIL
  1. . I $P(X,U,2)="" D PRS(X,HIEN),FIL Q
  1. . I $P(X,U,2)'="" D
  1. .. S OTH=$P(X,U,4),OT=$P(X,U,1)_U_$P(X,U,2)_U_$P(OTH," ",2)_U_$$DATE^BQIUL1($P(OTH," ",2))
  1. .. D PRS(OT,HIEN)
  1. .. D FIL
  1. . D PRS(X,HIEN)
  1. . D FIL
  1. . Q
  1. D PRS(X,HIEN)
  1. D FIL
  1. Q
  1. ;
  1. PRS(VAL,HIEN) ;EP - Parse
  1. S REMNME=$P(VAL,U,1)
  1. I X="" S REMNME=$P(^APCHSURV(HIEN,0),U,1)
  1. S REMDUE="",REMLAST=""
  1. S REMLAST=$P(VAL,U,2),REMNEXT=$P(VAL,U,4),REMDUE=$P(VAL,U,5)
  1. S VISIT=$P(VAL,U,6),RCIEN=$P(VAL,U,7),RCFILE=$P(VAL,U,8)
  1. I REMNEXT["/",$E(REMNEXT,1,1)'?.N D
  1. . I $E(REMNEXT,1,14)="MAY BE DUE NOW" Q
  1. . I REMNEXT["per Women's Health system" D
  1. .. NEW BQS,BQ,BQT,BQRDATE
  1. .. S BQS=$F(REMNEXT,"(by"),BQRDATE=""
  1. .. F BQ=BQS+1:1 S BQT=$E(REMNEXT,BQ,BQ) Q:BQT=")" S BQRDATE=BQRDATE_BQT
  1. .. I $L(BQRDATE,"/")=2 S BQRDATE=$P(BQRDATE,"/",1)_"/01/"_$P(BQRDATE,"/",2)
  1. .. S REMDUE=BQRDATE
  1. . I APCHNME="COLORECTAL CA-SCOPE/XRAY" D
  1. .. NEW XREMNXT,REMNME
  1. .. S XREMNXT=$TR(REMNEXT," ",":")
  1. .. S REMNEXT=$P(XREMNXT,":",$L(XREMNXT,":"))
  1. .. S REMNME=$P(XREMNXT,":",1)
  1. .. ;
  1. I REMNEXT?2N1"/"2N1"/"2N S REMDUE=REMNEXT
  1. I REMNEXT["MAY BE DUE NOW" S REMDUE=""
  1. I REMNEXT["WAS DUE" S REMDUE=$P($P(REMNEXT,"WAS DUE ",2),")")
  1. ;
  1. Q
  1. ;
  1. FIL ;EP - File the reminder
  1. NEW DIC,X,DINUM,DLAYGO,DA,IENS,BQIUPD
  1. S X=CODE,DLAYGO=90507.54,DA(1)=DFN,DIC("P")=DLAYGO
  1. I $G(^BQIPAT(DA(1),40,0))="" S ^BQIPAT(DA(1),40,0)="^90507.54P^^"
  1. S DIC="^BQIPAT("_DA(1)_",40,",DIC(0)="L"
  1. ;K DO,DD D FILE^DICN
  1. D ^DIC
  1. S DA=+Y I DA=-1 Q
  1. I REMDUE["." S REMDUE=REMDUE\1
  1. I REMLAST["." S REMLAST=REMLAST\1
  1. S IENS=$$IENS^DILF(.DA)
  1. I $E(REMDUE,4,7)="0000" S REMDUE=$E(REMDUE,1,3)_"0101"
  1. S BQIUPD(90507.54,IENS,.02)=$$DATE^BQIUL1(REMLAST)
  1. S BQIUPD(90507.54,IENS,.03)=$G(REMNEXT)
  1. S BQIUPD(90507.54,IENS,.04)=$$DATE^BQIUL1(REMDUE)
  1. S BQIUPD(90507.54,IENS,.05)=$$NOW^XLFDT()
  1. S BQIUPD(90507.5,DFN_",",.08)=$$NOW^XLFDT()
  1. I $$VFIELD^DILFD(90507.54,.06) S BQIUPD(90507.54,IENS,.06)=$G(VISIT)
  1. I $$VFIELD^DILFD(90507.54,.07) S BQIUPD(90507.54,IENS,.07)=$G(RCIEN)
  1. I $$VFIELD^DILFD(90507.54,.08) S BQIUPD(90507.54,IENS,.08)=$G(RCFILE)
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. ;
  1. ;Check reminder notification is completed
  1. D COMP^BQINOTR(DFN,CODE)
  1. Q
  1. ;
  1. CHK(TJOB) ;EP - Check for reminders and add new ones if found and inactivate
  1. ; ones no longer in list
  1. ; Input
  1. ; TJOB - Type of job
  1. ;
  1. S REF=0
  1. ; Delete reminders in 'All Reminders'
  1. NEW DIC,DIE,DA,NDX,NDX2,RMNDR,X,Y,DR,REMNDX,CALL,TAG
  1. S REMNDX=$$FIND1^DIC(9001015,"","","ALL REMINDERS","B","","")
  1. ; Kill Health Summary nodes
  1. S DA(1)=REMNDX,DA=0,DIK="^APCHSCTL("_DA(1)_",5,"
  1. F S DA=$O(^APCHSCTL(REMNDX,5,DA)) Q:'DA D ^DIK
  1. ;
  1. ; Add reminders back to 'All Reminders'
  1. S DA(1)=REMNDX,DLAYGO=9001015.06,DIC(0)="LZ"
  1. S DIC="^APCHSCTL("_DA(1)_",5,"
  1. ;
  1. S RMNDR=0
  1. F S RMNDR=$O(^APCHSURV(RMNDR)) Q:'RMNDR D
  1. . I $$GET1^DIQ(9001018,RMNDR,.03,"I")=1 D
  1. .. ; if not an official IHS reminder, quit
  1. .. I $$GET1^DIQ(9001018,RMNDR,.06,"I")'=1 Q
  1. .. ; if it is a treatment prompt instead, quit
  1. .. I $$GET1^DIQ(9001018,RMNDR,.07,"I")="T" Q
  1. .. S NDX=+$P(^APCHSURV(RMNDR,0),U,5)
  1. .. S (DA,NDX2)=(NDX*100)+RMNDR
  1. .. S X=NDX2
  1. .. K DO,DD D FILE^DICN
  1. .. S DA=+Y,DIE=DIC
  1. .. S DR="1////"_RMNDR
  1. .. D ^DIE
  1. .. Q
  1. ;
  1. ; Inactive all reminders
  1. K BQIUPD
  1. NEW SRCE,QFL
  1. S IEN=""
  1. F S IEN=$O(^BQI(90506.1,"AC","R",IEN)) Q:IEN="" D
  1. . S BQIUPD(90506.1,IEN_",",.1)=1
  1. . I $P(^BQI(90506.1,IEN,0),U,11)="" S BQIUPD(90506.1,IEN_",",.11)=DT
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. K BQIUPD
  1. ;
  1. FND ; Find the reminders and either reactivate or create new entry
  1. NEW BQIRM,SOURCE,DEF,ERROR,GCAT,RCAT,RCLIN,GCLIN,HDR,QFL,TEXT
  1. S BQIRM=$$FIND1^DIC(9001015,"","","ALL REMINDERS","B","","")
  1. S IEN=0,SOURCE="Reminders",GCAT="",GCLIN=""
  1. F S IEN=$O(^APCHSCTL(BQIRM,5,IEN)) Q:'IEN D
  1. . S HIEN=$P(^APCHSCTL(BQIRM,5,IEN,0),U,2)
  1. . I $P($G(^APCHSURV(HIEN,0)),U,3)'=1 Q
  1. . I $P($G(^APCHSURV(HIEN,0)),U,7)="T" Q
  1. . S TEXT=$P(^APCHSURV(HIEN,0),U,1),DEF=$P(^APCHSURV(HIEN,0),U,6)
  1. . S CALL=$P(^APCHSURV(HIEN,0),U,2),TAG=$P(CALL,";",1)
  1. . I TAG="" Q
  1. . S RCAT="Health Summary",RCLIN=$$GET1^DIQ(9001018,HIEN_",",.05,"E")
  1. . S:RCLIN="" RCLIN="No Category"
  1. . ; if reminder is an official IHS reminder with a category of GENERAL
  1. . ; make it a default
  1. . S DEF=$S(DEF=1&(RCLIN="GENERAL"):1,1:0)
  1. . I TEXT="IMMUNIZATIONS" D Q
  1. .. I $G(IMOK)="" S IMOK=0 I $$PATCH^XPDUTL("BI*8.3*1") S IMOK=1
  1. .. I +$P(^BQI(90508,1,0),U,15)=0 Q
  1. .. NEW IIEN
  1. .. S IIEN=0
  1. .. F S IIEN=$O(^AUTTIMM(IIEN)) Q:'IIEN D
  1. ... ; If inactive, quit
  1. ... I $P(^AUTTIMM(IIEN,0),U,7)=1 Q
  1. ... S TEXT=$P(^AUTTIMM(IIEN,0),U,2)
  1. ... S CODE="AUTTIMM_"_IIEN,RCLIN="IZ Forecast"
  1. ... S HDR="T00050"_CODE
  1. ... S RIEN="",RIEN=$O(^BQI(90506.1,"B",CODE,RIEN))
  1. ... I RIEN'="" D REA^BQIRMDR1 Q
  1. ... D FILE
  1. . ;
  1. . ; If IMMUNIZATION category and disabled, quit
  1. . I $$GET1^DIQ(9001018,HIEN_",",.05,"E")["IMMUNIZATION",+$P(^BQI(90508,1,0),U,18)=0 Q
  1. . S CODE=TAG_"_"_HIEN
  1. . S HDR="T00050"_CODE
  1. . S RIEN="",RIEN=$O(^BQI(90506.1,"B",CODE,RIEN))
  1. . I RIEN'="" D REA^BQIRMDR1 Q
  1. . D FILE
  1. ;
  1. D IFR^BQIRMDR2
  1. ;
  1. RGR ; Register Reminders
  1. S RGIEN=0
  1. F S RGIEN=$O(^BQI(90507,RGIEN)) Q:'RGIEN D
  1. . I $P(^BQI(90507,RGIEN,0),U,8)=1 Q
  1. . S RMIEN=0
  1. . F S RMIEN=$O(^BQI(90507,RGIEN,15,RMIEN)) Q:'RMIEN D
  1. .. I $P(^BQI(90507,RGIEN,15,RMIEN,0),U,3)'=1 Q
  1. .. S CODE="REG_"_RGIEN_"_"_RMIEN
  1. .. NEW DA,IENS
  1. .. S DA(1)=RGIEN,DA=RMIEN,IENS=$$IENS^DILF(.DA)
  1. .. S RCLIN=$$GET1^DIQ(90507.015,IENS,.05,"E")
  1. .. S TEXT=$$GET1^DIQ(90507.015,IENS,.01,"E")
  1. .. S RCAT="Care Management",SOURCE="Reminders",GCAT="",GCLIN=""
  1. .. S HDR="T00050"_CODE,DEF=0
  1. .. S RIEN=$O(^BQI(90506.1,"B",CODE,""))
  1. .. I RIEN="" D FILE Q
  1. .. D REA^BQIRMDR1
  1. D EHR^BQIRMDR1
  1. D CMET^BQIRMDR1
  1. ;
  1. ; Make sure that the new style cross-references are set
  1. NEW DIK
  1. S DIK="^BQI(90506.1,",DIK(1)="3.01"
  1. D ENALL^DIK
  1. ;
  1. NOT ; Check for any newly inactive reminders and send notifications
  1. S RIEN=""
  1. F S RIEN=$O(^BQI(90506.1,"AC","R",RIEN)) Q:RIEN="" D
  1. . I $P(^BQI(90506.1,RIEN,0),U,10)'=1 Q
  1. . I $P(^BQI(90506.1,RIEN,0),U,11)<DT Q
  1. . NEW OWNR,PLIEN,SUBJECT,CODE
  1. . S CODE=$P(^BQI(90506.1,RIEN,0),U,1)
  1. . S TEXT=$P(^BQI(90506.1,RIEN,0),U,3)
  1. . S OWNR=0
  1. . F S OWNR=$O(^BQICARE(OWNR)) Q:'OWNR D
  1. .. S PLIEN=0,QFL=0
  1. .. F S PLIEN=$O(^BQICARE(OWNR,1,PLIEN)) Q:'PLIEN D Q:QFL
  1. ... I $O(^BQICARE(OWNR,1,PLIEN,22,"B",CODE,""))'="" D
  1. .... S SUBJECT="Reminder ["_TEXT_"] has been deactivated/deleted. You may need to change your panel Reminder View layouts."
  1. .... I '$$DUP^BQINOTF(OWNR,SUBJECT,DT) S QFL=1 Q
  1. .... D ADD^BQINOTF("",OWNR,SUBJECT,,1)
  1. .... S QFL=1
  1. ... S SHR=0,QFL=0
  1. ... F S SHR=$O(^BQICARE(OWNR,1,PLIEN,30,SHR)) Q:'SHR D Q:QFL
  1. .... I $O(^BQICARE(OWNR,1,PLIEN,30,SHR,22,"B",CODE,""))'="" D
  1. ..... S SUBJECT="Reminder ["_TEXT_"] has been deactivated/deleted. You may need to change your panel Reminder View layouts."
  1. ..... I '$$DUP^BQINOTF(SHR,SUBJECT,DT) S QFL=1 Q
  1. ..... D ADD^BQINOTF("",SHR,SUBJECT,,1)
  1. ..... S QFL=1
  1. ;
  1. D EN^BQIRMCHK
  1. Q
  1. ;
  1. FILE ;File record
  1. NEW DA,X,DIC,DLAYGO
  1. S DIC="^BQI(90506.1,",DIC(0)="L",X=CODE
  1. K DO,DD D FILE^DICN
  1. S DA=+Y I DA=-1 S ERROR=1 Q
  1. ;S HIEN=DA
  1. S BQIUPD(90506.1,DA_",",.03)=TEXT
  1. ;S BQIUPD(90506.1,DA_",",2.01)=SOURCE
  1. ;S BQIUPD(90506.1,DA_",",2.02)=GCAT
  1. ;S BQIUPD(90506.1,DA_",",2.03)=RCAT
  1. S BQIUPD(90506.1,DA_",",3.03)=RCAT
  1. ;S BQIUPD(90506.1,DA_",",2.05)=RCLIN
  1. ;S BQIUPD(90506.1,DA_",",2.06)=GCLIN
  1. S BQIUPD(90506.1,DA_",",.08)=HDR
  1. S BQIUPD(90506.1,DA_",",.09)=$S($G(DEF)=1:"D",1:"O")
  1. S BQIUPD(90506.1,DA_",",3.04)=$S($G(DEF)=1:"Default",1:"Optional")
  1. S BQIUPD(90506.1,DA_",",.15)=100
  1. I SOURCE="Reminders" D
  1. . S BQIUPD(90506.1,DA_",",1)="S VAL=$$REM^BQIULPT(DFN,STVW)"
  1. . I CODE["AUTTIMM" D
  1. .. I 'IMOK S BQIUPD(90506.1,DA_",",3.07)=1 Q
  1. .. I IMOK S BQIUPD(90506.1,DA_",",3.07)="@"
  1. I SOURCE="Performance" S BQIUPD(90506.1,DA_",",1)="S VAL=$$PER^BQIULPT(DFN,STVW)"
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. ;
  1. S BQIUPD(90506.1,DA_",",3.01)=SOURCE
  1. S BQIUPD(90506.1,DA_",",3.02)=RCLIN
  1. S BQIUPD(90506.1,DA_",",3.03)=RCAT
  1. S BQIUPD(90506.1,DA_",",3.04)=$S($G(DEF)=1:"Default",1:"Optional")
  1. D FILE^DIE("E","BQIUPD","ERROR")
  1. ;
  1. ;I $D(ERROR)
  1. ; Send a notification that a new reminder was added
  1. NEW OWNR,PLIEN,SUBJECT
  1. S OWNR=0
  1. F S OWNR=$O(^BQICARE(OWNR)) Q:'OWNR D
  1. . S SUBJECT="Reminder ["_TEXT_"] has been newly added. You may want to update your panel Reminder View layouts."
  1. . D ADD^BQINOTF("",OWNR,SUBJECT,,1)
  1. ;
  1. I TJOB="Weekly" Q
  1. ;
  1. ; Create a reminder record for every patient with new reminder
  1. NEW RMN
  1. I $P($G(^XTMP("BQIRMOM",0)),U,2)'=$$DT^XLFDT() D
  1. . S RMN=0
  1. . F S RMN=$O(^XTMP("BQIRMOM",RMN)) Q:RMN="" K ^XTMP("BQIRMOM",RMN)
  1. . S ZTDESC="iCare Reminder Update",ZTRTN="ORM^BQITASK1",ZTIO=""
  1. . S JBDATE=$$FMADD^XLFDT($$NOW^XLFDT(),,,+15)
  1. . S ZTDTH=JBDATE
  1. . D ^%ZTLOAD
  1. . K ZTDESC,ZTRTN,ZTIO,JBDATE,ZTDTH,ZTSK
  1. S ^XTMP("BQIRMOM",0)=$$FMADD^XLFDT(DT,1)_U_$$DT^XLFDT()_U_"Newly activated Reminders"
  1. S RMN=$O(^XTMP("BQIRMOM",""),-1)+1
  1. I RCAT'="Care Management" S ^XTMP("BQIRMOM",RMN)=RCAT_U_HIEN_U_CODE
  1. I RCAT="Care Management" S ^XTMP("BQIRMOM",RMN)=RCAT_U_U_CODE
  1. Q
  1. ;
  1. ERR ;
  1. ;
  1. NEW DA
  1. S DA=$O(^BQI(90508,0))
  1. S BQIUPD(90508,DA_",",3.12)="@"
  1. S BQIUPD(90508,DA_",",4.09)="@"
  1. D FILE^DIE("","BQIUPD")
  1. K BQIUPD
  1. S ERRCNT=$G(ERRCNT)+1
  1. ;
  1. D ^%ZTER
  1. Q