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

BKMQQCRC.m

Go to the documentation of this file.
  1. BKMQQCRC ;VNGT/HS/ALA-HIV QOC Report continued ; 12 Mar 2010 3:02 PM
  1. ;;2.2;HIV MANAGEMENT SYSTEM;;Apr 01, 2015;Build 40
  1. ;
  1. ; run mental health
  1. D EXAM,EDU,DXS,PSYC,AMH,MEAS
  1. ; MHDV - Domestic Violence
  1. ; MHDEP - Depression
  1. ; MHANX - Anxiety
  1. ; MHCOG - Cognitive
  1. ; MHSLEEP - Sleep Disorder
  1. ; MHAPP - Appetite
  1. ; MHPTSD - Post Traumatic Stress
  1. ; MHPSYC - Psychosocial
  1. ; SSEX - Safe Sex
  1. ; FPLN - Family Planning
  1. ; HIVED - HIV Education
  1. ;
  1. Q
  1. ;
  1. EXAM ;EP Exams
  1. NEW TREF,EXAM
  1. S REVPER=$$FMADD^XLFDT(EDATE,-365)
  1. S TREF="BQITAX" K @TREF
  1. S EXAM=34 D
  1. . S IEN=$O(^AUTTEXAM("C",EXAM,"")) I IEN="" Q
  1. . S @TREF@(IEN)="MHDV"
  1. S EXAM=36 D
  1. . S IEN=$O(^AUTTEXAM("C",EXAM,"")) I IEN="" Q
  1. . S @TREF@(IEN)="MHDEP"
  1. S TOTPTS=$P(GLOB,")")_",""HIVCHK"",""MH"",BKMDFN,TYP)"
  1. D EXM(.TOTPTS,.TREF)
  1. K @TREF
  1. Q
  1. ;
  1. MEAS ;EP Measurements
  1. NEW MEAS
  1. S TREF="BQITAX" K @TREF
  1. F MEAS="PHQ2","PHQ9" D
  1. . S IEN=$O(^AUTTMSR("B",MEAS,"")) I IEN="" Q
  1. . S @TREF@(IEN)="MHDEP"
  1. S TOTPTS=$P(GLOB,")")_",""HIVCHK"",""MH"",BKMDFN,TYP)"
  1. D MSR(.TOTPTS,.TREF)
  1. K @TREF
  1. Q
  1. ;
  1. EDU ;EP Education
  1. NEW TOP,NREF
  1. S REVPER=$$FMADD^XLFDT(EDATE,-365)
  1. S TREF="BQITAX" K @TREF
  1. S NREF="ARRAY" K @NREF
  1. F TAX="BKM SAFE SEX ED CODES" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="SSEX"
  1. S NREF="ARRAY" K @NREF
  1. F TOP="FP-","V25.01-","V25.02-","V25.03-","V25.04-","V25.09-","V26.4-" D EDTP^BQITRUTL(.NREF,TOP)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="FPLN"
  1. K @NREF
  1. F TOP="GAD-","-GAD" D EDTP^BQITRUTL(.NREF,TOP)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHANX"
  1. K @NREF
  1. F TOP="DV-","-DV" D EDTP^BQITRUTL(.NREF,TOP)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHDV"
  1. K @NREF
  1. F TOP="HIV-","-HIV" D EDTP^BQITRUTL(.NREF,TOP)
  1. F TOP="042.-","042.0-","042.1-","042.2-","042.9-","043.0-","043.1-" D EDTP^BQITRUTL(.NREF,TOP)
  1. F TOP="043.2-","043.3-","043.9-","044.0-","044.9-","795.71-","V08.-" D EDTP^BQITRUTL(.NREF,TOP)
  1. F TOP="V65.44-" D EDTP^BQITRUTL(.NREF,TOP)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="HIVED"
  1. K @NREF
  1. F TOP="DEP-","-DEP","BH-","-BH","SB-","-SB","PDEP-","-PDEP" D EDTP^BQITRUTL(.NREF,TOP)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHDEP"
  1. ;
  1. S TOTPTS=$P(GLOB,")")_",""HIVCHK"",""MH"",BKMDFN,TYP)"
  1. D EDUC(.TOTPTS,.TREF)
  1. K @NREF,@TREF
  1. Q
  1. ;
  1. DXS ;EP Diagnoses
  1. NEW REVPER,TREF,NREF
  1. S REVPER=$$FMADD^XLFDT(EDATE,-365)
  1. S TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. S NREF="ARRAY" K @NREF
  1. F TAX="BKM FAMILY PLANNING POV" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="FPLN"
  1. S NREF="ARRAY" K @NREF
  1. F TAX="BKM COGNITIVE DISORDERS DXS","BKM COGNITIVE ASSESS ICDS" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHCOG"
  1. K @NREF
  1. F TAX="BGP MOOD DISORDERS" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHDEP"
  1. K @NREF
  1. F TAX="BKM ANXIETY DXS" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHANX"
  1. K @NREF
  1. F TAX="BKM SLEEP DISORDER DXS" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHSLEEP"
  1. K @NREF
  1. F TAX="BKM APPETITE ASSESS DXS" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHAPP"
  1. K @NREF
  1. F TAX="BGP DV DXS","BGP IPV/DV COUNSELING ICDS" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHDV"
  1. K @NREF
  1. F TAX="BKM POST TX STRESS DIS DXS" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHPTSD"
  1. K @NREF
  1. F TAX="BKMV HIV ED DXS" D BLD^BQITUTL(TAX,NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="HIVED"
  1. K @NREF
  1. F TAX="BQI DEPRESSION SCREEN DXS" D BLD^BQITUTL(TAX,NREF)
  1. ;D BLDSV^BQITUTL(80,"V79.0",NREF)
  1. S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHDEP"
  1. ;
  1. S TOTPTS=$P(GLOB,")")_",""HIVCHK"",""MH"",BKMDFN,TYP)"
  1. D POV(.TOTPTS,.TREF)
  1. K @NREF,@TREF
  1. ;
  1. ; Check SNOMED
  1. ;S NREF="ARRAY" K @NREF
  1. ;NEW SUB
  1. ;S SUB="PXRM HIV" D SNOM^BQITUTL(SUB,NREF)
  1. ;S IEN="" F S IEN=$O(@NREF@(IEN)) Q:IEN="" S @TREF@(IEN)="MHDEP"
  1. ;D SNS(.TOTPTS,.TREF)
  1. Q
  1. ;
  1. PSYC ;EP
  1. NEW REVPER,TREF,TAX
  1. S REVPER=$$FMADD^XLFDT(EDATE,-365)
  1. S TREF="BQITAX" K @TREF
  1. F TAX="BKM PSYCHSOC ASSESS CPTS" D BLD^BQITUTL(TAX,TREF)
  1. S TYP="MHPSYC"
  1. S TOTPTS=$P(GLOB,")")_",""HIVCHK"",""MH"",BKMDFN,TYP)"
  1. D CPT(.TOTPTS,.TREF)
  1. K @TREF
  1. Q
  1. ;
  1. MSR(GLB,TREF,REVPER) ;EP
  1. S REVPER=$G(REVPER,"") I REVPER="" S REVPER=$$FMADD^XLFDT(EDATE,-365)
  1. S TIEN=""
  1. F S TIEN=$O(@TREF@(TIEN)) Q:TIEN="" D
  1. . S IEN=""
  1. . F S IEN=$O(^AUPNVMSR("B",TIEN,IEN),-1) Q:IEN="" D
  1. .. S PDATA=$G(^AUPNVMSR(IEN,0)) I PDATA="" Q
  1. .. S BKMDFN=$P(PDATA,U,2)
  1. .. I '$D(@GLOB@("HIVCHK",BKMDFN)) Q
  1. .. S VISIT=$P(PDATA,U,3) I VISIT="" Q
  1. .. I $P($G(^AUPNVMSR(IEN,2)),U,1)=1 Q
  1. .. S VDATA=$G(^AUPNVSIT(VISIT,0)) I VDATA="" Q
  1. .. I $P(VDATA,U,11)=1 Q
  1. .. S VSDTM=$P(VDATA,U,1)\1 I VSDTM=0 Q
  1. .. I VSDTM<REVPER!(VSDTM>EDATE) Q
  1. .. S TYP=@TREF@(TIEN)
  1. .. S @GLB=$G(@GLB)+1
  1. Q
  1. ;
  1. POV(GLB,TREF,REVPER) ;EP
  1. S REVPER=$G(REVPER,"") I REVPER="" S REVPER=$$FMADD^XLFDT(EDATE,-365)
  1. S BKMDFN=0
  1. F S BKMDFN=$O(@GLOB@("HIVCHK",BKMDFN)) Q:'BKMDFN D
  1. . NEW TIEN,VDATA,PDATA,VISIT,VSDTM
  1. . S IEN=""
  1. . F S IEN=$O(^AUPNVPOV("AC",BKMDFN,IEN),-1) Q:IEN="" D
  1. .. S PDATA=$G(^AUPNVPOV(IEN,0)) I PDATA="" Q
  1. .. S TIEN=$P(PDATA,U,1) I TIEN="" Q
  1. .. I '$D(@TREF@(TIEN)) Q
  1. .. S VISIT=$P(PDATA,U,3) I VISIT="" Q
  1. .. S VDATA=$G(^AUPNVSIT(VISIT,0)) I VDATA="" Q
  1. .. I $P(VDATA,U,11)=1 Q
  1. .. S VSDTM=$P(VDATA,U,1)\1 I VSDTM=0 Q
  1. .. I VSDTM<REVPER!(VSDTM>EDATE) Q
  1. .. S TYP=@TREF@(TIEN)
  1. .. S @GLB=$G(@GLB)+1
  1. Q
  1. ;
  1. SNS(GLB,TREF,REVPER) ;EP - Look by SNOMED concept ID
  1. S REVPER=$G(REVPER,"") I REVPER="" S REVPER=$$FMADD^XLFDT(EDATE,-365)
  1. S BKMDFN=0
  1. F S BKMDFN=$O(@GLOB@("HIVCHK",BKMDFN)) Q:'BKMDFN D
  1. . NEW TIEN,VDATA,PDATA,VISIT,VSDTM,BQCID
  1. . S IEN=""
  1. . F S IEN=$O(^AUPNVPOV("AC",BKMDFN,IEN),-1) Q:IEN="" D
  1. .. S PDATA=$G(^AUPNVPOV(IEN,0)) I PDATA="" Q
  1. .. S VISIT=$P(PDATA,U,3) I VISIT="" Q
  1. .. S VDATA=$G(^AUPNVSIT(VISIT,0)) I VDATA="" Q
  1. .. I $P(VDATA,U,11)=1 Q
  1. .. S VSDTM=$P(VDATA,U,1)\1 I VSDTM=0 Q
  1. .. I VSDTM<REVPER!(VSDTM>EDATE) Q
  1. .. S BQCID=$P($G(^AUPNVPOV(IEN,11)),U,1) I '$D(@TREF@(BQCID)) Q
  1. .. S TYP=@TREF@(TIEN)
  1. .. S @GLB=$G(@GLB)+1
  1. Q
  1. ;
  1. CPT(GLB,TREF) ;EP
  1. S BKMDFN=0
  1. F S BKMDFN=$O(@GLOB@("HIVCHK",BKMDFN)) Q:'BKMDFN D
  1. . NEW TIEN,VDATA,PDATA,VISIT,VSDTM
  1. . S IEN=""
  1. . F S IEN=$O(^AUPNVCPT("AC",BKMDFN,IEN),-1) Q:IEN="" D
  1. .. S PDATA=$G(^AUPNVCPT(IEN,0)) I PDATA="" Q
  1. .. ;S TIEN=$$GET1^DIQ(9000010.18,IEN,.01,"I") I TIEN="" Q
  1. .. S TIEN=$P(PDATA,U,1) I TIEN="" Q
  1. .. I '$D(@TREF@(TIEN)) Q
  1. .. S VISIT=$P(PDATA,U,3) I VISIT="" Q
  1. .. S VDATA=$G(^AUPNVSIT(VISIT,0)) I VDATA="" Q
  1. .. ;S VISIT=$$GET1^DIQ(9000010.18,IEN,.03,"I") I VISIT="" Q
  1. .. I $P(VDATA,U,11)=1 Q
  1. .. ;I $$GET1^DIQ(9000010,VISIT,.11,"I")=1 Q
  1. .. S VSDTM=$P(VDATA,U,1)\1 I VSDTM=0 Q
  1. .. ;S VSDTM=$$GET1^DIQ(9000010,VISIT,.01,"I")\1 I VSDTM=0 Q
  1. .. I VSDTM<REVPER!(VSDTM>EDATE) Q
  1. .. S @GLB=$G(@GLB)+1
  1. Q
  1. ;
  1. EDUC(GLB,TREF) ;EP Education
  1. S BKMDFN=0
  1. F S BKMDFN=$O(@GLOB@("HIVCHK",BKMDFN)) Q:'BKMDFN D
  1. . NEW TIEN,VDATA,PDATA,VISIT,VSDTM
  1. . S BDT=(9999999-EDATE)-.001,EDT=9999999-REVPER
  1. . F S BDT=$O(^AUPNVPED("AA",BKMDFN,BDT)) Q:BDT=""!(BDT>EDT) D
  1. .. S IEN=""
  1. .. F S IEN=$O(^AUPNVPED("AA",BKMDFN,BDT,IEN),-1) Q:IEN="" D
  1. ... S PDATA=$G(^AUPNVPED(IEN,0)) I PDATA="" Q
  1. ... S TIEN=$P(PDATA,U,1) I TIEN="" Q
  1. ... I '$D(@TREF@(TIEN)) Q
  1. ... S VISIT=$P(PDATA,U,3) I VISIT="" Q
  1. ... S VDATA=$G(^AUPNVSIT(VISIT,0)) I VDATA="" Q
  1. ... I $P(VDATA,U,11)=1 Q
  1. ... S VSDTM=$P(VDATA,U,1)\1 I VSDTM=0 Q
  1. ... I VSDTM<REVPER!(VSDTM>EDATE) Q
  1. ... S TYP=@TREF@(TIEN)
  1. ... S @GLB=$G(@GLB)+1
  1. . ; Refusals
  1. . NEW RFT,FIL,BDT,EDT,TIEN,IEN,TYP
  1. . S RFT=$O(^AUTTREFT("B","EDUCATION TOPICS","")) I RFT="" Q
  1. . S FIL=$P(^AUTTREFT(RFT,0),U,2)
  1. . S BDT=(9999999-EDATE)-.001,EDT=9999999-REVPER
  1. . S TIEN=""
  1. . F S TIEN=$O(^AUPNPREF("AA",BKMDFN,FIL,TIEN)) Q:TIEN="" D
  1. .. I '$D(@TREF@(TIEN)) Q
  1. .. F S BDT=$O(^AUPNPREF("AA",BKMDFN,FIL,TIEN,BDT)) Q:BDT=""!(BDT>EDT) D
  1. ... S IEN=""
  1. ... F S IEN=$O(^AUPNPREF("AA",BKMDFN,FIL,TIEN,BDT,IEN)) Q:IEN="" D
  1. .... S TYP=@TREF@(TIEN)
  1. .... S @GLB=$G(@GLB)+1
  1. Q
  1. ;
  1. EXM(GLB,TREF) ;EP
  1. S BKMDFN=0
  1. F S BKMDFN=$O(@GLOB@("HIVCHK",BKMDFN)) Q:'BKMDFN D
  1. . NEW TIEN,VDATA,PDATA,VISIT,VSDTM
  1. . S IEN=""
  1. . F S IEN=$O(^AUPNVXAM("AC",BKMDFN,IEN),-1) Q:IEN="" D
  1. .. S PDATA=$G(^AUPNVXAM(IEN,0)) I PDATA="" Q
  1. .. S TIEN=$P(PDATA,U,1) I TIEN="" Q
  1. .. I '$D(@TREF@(TIEN)) Q
  1. .. S VISIT=$P(PDATA,U,3) I VISIT="" Q
  1. .. S VDATA=$G(^AUPNVSIT(VISIT,0)) I VDATA="" Q
  1. .. I $P(VDATA,U,11)=1 Q
  1. .. S VSDTM=$P(VDATA,U,1)\1 I VSDTM=0 Q
  1. .. I VSDTM<REVPER!(VSDTM>EDATE) Q
  1. .. S TYP=@TREF@(TIEN)
  1. .. S @GLB=$G(@GLB)+1
  1. Q
  1. ;
  1. AMH ;EP
  1. NEW TREF,VC,VCIEN,REVPER,RIEN
  1. S REVPER=$$FMADD^XLFDT(EDATE,-365)
  1. S TREF="AMH" K @TREF
  1. F VC=14,14.1,15 S VCIEN=$O(^AMHPROB("B",VC,"")) Q:VCIEN="" S @TREF@(VCIEN)="MHDEP"
  1. F VC=43,43.1,43.2,43.3,43.4 S VCIEN=$O(^AMHPROB("B",VC,"")) Q:VCIEN="" S @TREF@(VCIEN)="MHDV"
  1. F VC=44,44.1,44.2,44.3,44.4 S VCIEN=$O(^AMHPROB("B",VC,"")) Q:VCIEN="" S @TREF@(VCIEN)="MHDV"
  1. ;
  1. S DATE=REVPER-.005
  1. F S DATE=$O(^AMHREC("B",DATE)) Q:DATE=""!(DATE\1>EDATE) D
  1. . S RIEN=""
  1. . F S RIEN=$O(^AMHREC("B",DATE,RIEN)) Q:RIEN="" D
  1. .. S IEN=""
  1. .. F S IEN=$O(^AMHRPRO("AD",RIEN,IEN),-1) Q:IEN="" D
  1. ... S VCIEN=$P(^AMHRPRO(IEN,0),U,1)
  1. ... I '$D(VCODE(VCIEN)) Q
  1. ... S DFN=$P(^AMHRPRO(IEN,0),U,2) I DFN="" Q
  1. ... I '$D(@GLOB@("HIVCHK",DFN)) Q
  1. ... S TYP=VCODE(VCIEN)
  1. ... S @GLB=$G(@GLB)+1
  1. K VCODE
  1. Q