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

BQICASPL.m

Go to the documentation of this file.
  1. BQICASPL ;GDIT/HS/ALA-Community Alerts Splash ; 17 Oct 2011 4:21 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**1**;Apr 18, 2012;Build 43
  1. ;
  1. EN(DATA,FAKE) ;EP -- BQI GET COMM ALERTS SPLASH
  1. NEW UID,II,DATE,IEN,COMM,CMN,DCAT,DIAG,DXC,DXN,NUM,OCDT,TYP,TYPE,TEMP,TCAT
  1. NEW ADATE,DCN,LINK,PAT
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQICASPL",UID)),TEMP=$NA(^TMP("BQITMP",UID))
  1. K @DATA,@TEMP
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQICASPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. D GRID(.DATA)
  1. Q
  1. ;
  1. DONE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. K @TEMP
  1. Q
  1. ;
  1. SOR ; Sort out the alerts
  1. NEW COMM,TYPE,LINK,DCAT,NUM,OCDT,TWEN,PT,DATE,TNUM,TTWN,LABNUM,LABNM
  1. S COMM=""
  1. F S COMM=$O(@TEMP@(COMM)) Q:COMM="" D
  1. . S CMN=""
  1. . F S CMN=$O(@TEMP@(COMM,CMN)) Q:CMN="" D
  1. .. S TYPE=""
  1. .. F S TYPE=$O(@TEMP@(COMM,CMN,TYPE)) Q:TYPE="" D
  1. ... NEW DA,IENS,BQIH,BQI
  1. ... S BQIH=$$SPM^BQIGPUTL()
  1. ... S BQI=$O(^BQI(90508,BQIH,15,"B",TYPE,""))
  1. ... S DA(1)=BQIH,DA=BQI,IENS=$$IENS^DILF(.DA)
  1. ... S LINK=$$GET1^DIQ(90508.015,IENS,.02,"E")
  1. ... S DCAT=""
  1. ... F S DCAT=$O(@TEMP@(COMM,CMN,TYPE,DCAT)) Q:DCAT="" D
  1. .... S PT="",TNUM=0,TTWN=0,LABNM=0
  1. .... F S PT=$O(@TEMP@(COMM,CMN,TYPE,DCAT,PT)) Q:PT="" D
  1. ..... S NUM=+$P(@TEMP@(COMM,CMN,TYPE,DCAT,PT),U,1)
  1. ..... S TNUM=TNUM+NUM
  1. ..... S TWEN=+$P(@TEMP@(COMM,CMN,TYPE,DCAT,PT),U,2)
  1. ..... S TTWN=TTWN+TWEN
  1. ..... S LABNUM=+$P(@TEMP@(COMM,CMN,TYPE,DCAT,PT),U,3)
  1. ..... S LABNM=LABNM+LABNUM
  1. ..... ; Check for lab display flag
  1. ..... S LABNM=$S(+$P(^BQI(90508,1,0),U,25)=0:"",1:LABNM)
  1. ..... S OCDT=$O(@TEMP@(COMM,CMN,TYPE,DCAT,PT,""),-1)
  1. ..... I OCDT'="" S DATE(OCDT)=""
  1. ..... S TCAT=$S(DCAT="Ideation":"Ideation with Plan and Intent",DCAT="Completion":"Completed Suicide",1:DCAT)
  1. ..... ;S CMN=@TEMP@(COMM,CMN,TYPE,DCAT,OCDT)
  1. .... S OCDT=$O(DATE(""),-1) K DATE
  1. .... S II=II+1,@DATA@(II)=COMM_U_TYPE_U_LINK_U_TCAT_U_TNUM_U_TTWN_U_$$FMTE^BQIUL1(OCDT)_U_CMN_U_LABNM_$C(30)
  1. ;
  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. FND ;EP - Find the alerts for a date and a community
  1. NEW COMM,TYP,TYPE,DXC,DCAT,DCN,LOOK,ADATE,DXN,QFL,TWDT,TCAT,LBN
  1. S COMM=$$GET1^DIQ(90507.6,CMN_",",.01,"E")
  1. S ADATE=$$DATE^BQIUL1("T-30"),TWDT=$$DATE^BQIUL1("T-1")
  1. ; Get the type of the alert, either CDC NND or Suicide
  1. S TYP=0
  1. F S TYP=$O(^BQI(90507.6,CMN,1,TYP)) Q:'TYP D
  1. . S TYPE=$P(^BQI(90507.6,CMN,1,TYP,0),U,1)
  1. . ; Get the Diagnosis Category
  1. . S DXC=0
  1. . F S DXC=$O(^BQI(90507.6,CMN,1,TYP,1,DXC)) Q:'DXC D
  1. .. S DCAT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,0),U,1)
  1. .. I TYPE'="Suicidal Behavior" S QFL=0 D Q:QFL
  1. ... S DCN=$$FIND1^DIC(90507.8,"","BX",DCAT,"","","ERROR")
  1. ... I DCN=0 S QFL=1 Q
  1. ... S LOOK=$$VAL^BQICAVW(DUZ,DCN)
  1. ... I $P(LOOK,U,1)="OFF"!($P(LOOK,U,1)=0) S QFL=1 Q
  1. ... S ADATE=$P(LOOK,U,2)
  1. .. S DXN=0
  1. .. F S DXN=$O(^BQI(90507.6,CMN,1,TYP,1,DXC,1,DXN)) Q:'DXN D
  1. ... NEW DA,IENS
  1. ... S DA(3)=CMN,DA(2)=TYP,DA(1)=DXC,DA=DXN,IENS=$$IENS^DILF(.DA)
  1. ... S OCDT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,1,DXN,0),U,2)
  1. ... I (OCDT\1)'>ADATE Q
  1. ... S PAT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,1,DXN,0),U,4)
  1. ... ;I $D(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)) Q
  1. ... S @TEMP@(COMM,CMN,TYPE,DCAT,PAT,OCDT)=CMN
  1. ... S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,1)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,1)+1
  1. ... ;S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,3)=0
  1. ... I OCDT=TWDT S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,2)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,2)+1
  1. .. S LBN=0
  1. .. F S LBN=$O(^BQI(90507.6,CMN,1,TYP,1,DXC,2,LBN)) Q:'LBN D
  1. ... S DA(3)=CMN,DA(2)=TYP,DA(1)=DXC,DA=LBN,IENS=$$IENS^DILF(.DA)
  1. ... S OCDT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,2,LBN,0),U,2)
  1. ... I (OCDT\1)'>ADATE Q
  1. ... S PAT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,2,LBN,0),U,4)
  1. ... S @TEMP@(COMM,CMN,TYPE,DCAT,PAT,OCDT)=CMN
  1. ... S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,3)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,3)+1
  1. ... I $P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,1)=1 Q
  1. ... S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,1)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,1)+1
  1. ... I OCDT=TWDT S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,2)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,2)+1
  1. Q
  1. ;
  1. PAT(DATA,DFN) ;EP -- BQI GET COMM ALERTS BY PATIENT
  1. ; Gets a list of alerts that go along with the patient's community
  1. ;
  1. NEW UID,II,DATE,IEN,COMM,ADATE,CMN
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQICAPAT",UID)),TEMP=$NA(^TMP("BQITMP",UID))
  1. K @DATA,@TEMP
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQICASPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S @DATA@(II)="T00030COMMUNITY^T00045ALERT_TYPE^T00100TYPE_LINK^T00045DX_CAT^I00005NUM_CASES^I00005TWEN_CASES^D00015VISITDATE^I00010COMM_IEN^I00005LAB_NUM"_$C(30)
  1. S ADATE=$$DATE^BQIUL1("T-30")
  1. ;
  1. S COMM=$$GET1^DIQ(9000001,DFN_",",1117,"I"),CMN=COMM
  1. ; If no alerts for the patient's community, quit
  1. I $D(^BQI(90507.6,COMM))<1 G DONE
  1. ;
  1. D FND
  1. D SOR
  1. G DONE
  1. ;
  1. GRID(DATA,FAKE) ; EP - BQI GET COMM ALERTS GRID
  1. ; Gets a list of alerts that go along with the patient's community
  1. ;
  1. NEW UID,II,DATE,IEN,COMM
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQICAGRD",UID)),TEMP=$NA(^TMP("BQITMP",UID))
  1. K @DATA,@TEMP
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQICASPL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S ADATE=$$DATE^BQIUL1("T-30"),TWDT=$$DATE^BQIUL1("T-1")
  1. ;
  1. S @DATA@(II)="T00030COMMUNITY^T00045ALERT_TYPE^T00100TYPE_LINK^T00045DX_CAT^I00005NUM_CASES^I00005TWEN_CASES^D00015VISITDATE^I00010COMM_IEN^I00005LAB_NUM"_$C(30)
  1. ;
  1. S CMN=0
  1. F S CMN=$O(^BQI(90507.6,CMN)) Q:'CMN D
  1. . S COMM=$$GET1^DIQ(90507.6,CMN_",",.01,"E")
  1. . ; Get the type of the alert, either CDC NND or Suicide
  1. . S TYP=0
  1. . F S TYP=$O(^BQI(90507.6,CMN,1,TYP)) Q:'TYP D
  1. .. S TYPE=$P(^BQI(90507.6,CMN,1,TYP,0),U,1)
  1. .. NEW DA,IENS,BQIH,BQI,SDATE
  1. .. S BQIH=$$SPM^BQIGPUTL()
  1. .. S BQI=$O(^BQI(90508,BQIH,15,"B",TYPE,""))
  1. .. S DA(1)=BQIH,DA=BQI,IENS=$$IENS^DILF(.DA)
  1. .. S SDATE=$$GET1^DIQ(90508.015,IENS,.03,"E")
  1. .. I SDATE'="" S ADATE=$$DATE^BQIUL1("T-"_SDATE)
  1. .. ; Get the Diagnosis Category
  1. .. S DXC=0
  1. .. F S DXC=$O(^BQI(90507.6,CMN,1,TYP,1,DXC)) Q:'DXC D
  1. ... S DCAT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,0),U,1)
  1. ... I TYPE'="Suicidal Behavior" S QFL=0 D Q:QFL
  1. .... S DCN=$$FIND1^DIC(90507.8,"","BX",DCAT,"","","ERROR")
  1. .... I DCN=0 S QFL=1 Q
  1. .... S LOOK=$$VAL^BQICAVW(DUZ,DCN)
  1. .... I $P(LOOK,U,1)="OFF"!($P(LOOK,U,1)=0) S QFL=1 Q
  1. .... S ADATE=$P(LOOK,U,2)
  1. ... S DXN=0
  1. ... F S DXN=$O(^BQI(90507.6,CMN,1,TYP,1,DXC,1,DXN)) Q:'DXN D
  1. .... NEW DA,IENS
  1. .... S DA(3)=CMN,DA(2)=TYP,DA(1)=DXC,DA=DXN,IENS=$$IENS^DILF(.DA)
  1. .... S OCDT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,1,DXN,0),U,2)
  1. .... I (OCDT\1)'>ADATE Q
  1. .... S PAT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,1,DXN,0),U,4)
  1. .... ;S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,3)=0
  1. .... ;I $D(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)) Q
  1. .... S @TEMP@(COMM,CMN,TYPE,DCAT,PAT,OCDT)=CMN
  1. .... S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,1)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,1)+1
  1. .... I OCDT=TWDT S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,2)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,2)+1
  1. ... S LBN=0
  1. ... F S LBN=$O(^BQI(90507.6,CMN,1,TYP,1,DXC,2,LBN)) Q:'LBN D
  1. .... S DA(3)=CMN,DA(2)=TYP,DA(1)=DXC,DA=LBN,IENS=$$IENS^DILF(.DA)
  1. .... S OCDT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,2,LBN,0),U,2)
  1. .... I (OCDT\1)'>ADATE Q
  1. .... S PAT=$P(^BQI(90507.6,CMN,1,TYP,1,DXC,2,LBN,0),U,4)
  1. .... S @TEMP@(COMM,CMN,TYPE,DCAT,PAT,OCDT)=CMN
  1. .... S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,3)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,3)+1
  1. .... I $P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,1)=1 Q
  1. .... S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,1)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,1)+1
  1. .... I OCDT=TWDT S $P(@TEMP@(COMM,CMN,TYPE,DCAT,PAT),U,2)=$P($G(@TEMP@(COMM,CMN,TYPE,DCAT,PAT)),U,2)+1
  1. D SOR
  1. G DONE