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

BQICMUT2.m

Go to the documentation of this file.
  1. BQICMUT2 ;GDHD/HCS/ALA-Care Mgmt Utility ; 02 Nov 2016 9:53 AM
  1. ;;2.6;ICARE MANAGEMENT SYSTEM;;Jul 07, 2017;Build 72
  1. ;;
  1. ;
  1. MEAS(DFN,MEAS) ;EP - Last Measurement
  1. NEW VALUE,RES
  1. S VALUE=$$MEAS^BQITUTL(DFN,MEAS)
  1. I 'VALUE Q ""
  1. S RES=$P(VALUE,"^",3) I MEAS="BMI" S RES=$J(RES,3,2)
  1. S VALUE=$$FMTMDY^BQIUL1($P(VALUE,"^",2))_" ("_RES_")"
  1. Q VALUE
  1. ;
  1. LEAD(DFN) ;EP - Lead test
  1. NEW VALUE
  1. S VALUE=$$LAB^BQITRUTL("",0,DFN,"BQI BLOOD LEAD TESTS","","'=","","","")
  1. I 'VALUE Q ""
  1. Q $P(VALUE,U,2)_" ("_$P(VALUE,U,3)_")"
  1. ;
  1. INF(DFN,AGE,FFLG) ;EP - Infant Feeding record
  1. NEW VALUE,FIEN,DOB,BD1,BD2,STRT,DATE
  1. S VALUE="",FFLG=$G(FFLG,0)
  1. I $G(AGE)="" D Q VALUE
  1. . S FIEN=$O(^AUPNVIF("AC",DFN,""),-1) I FIEN="" Q
  1. . D INV
  1. ;
  1. S VALUE="NO"
  1. S DOB=$P(^DPT(DFN,0),"^",3)
  1. I AGE="2 MOS" S B1=45,B2=89
  1. I AGE="6 MOS" S B1=165,B2=209
  1. I AGE="9 MOS" S B1=255,B2=299
  1. I AGE="12 MOS" S B1=350,B2=394
  1. S BD1=$$FMADD^XLFDT(DOB,B1),BD2=$$FMADD^XLFDT(DOB,B2)
  1. S STRT=""
  1. F S STRT=$O(^AUPNVIF("AA",DFN,STRT)) Q:STRT="" D
  1. . S DATE=9999999-STRT
  1. . I DATE'<BD1,DATE'>BD2 S FIEN=$O(^AUPNVIF("AA",DFN,STRT,"")) D INV
  1. Q VALUE
  1. ;
  1. DENT(DFN) ;EP - Last Dental Visit
  1. NEW VALUE,BDATE,EDATE,P,ORD,N,BGPG,BQIXX,BGPC,DATE
  1. S VALUE=""
  1. S BDATE=$$DATE^BQIUL1("T-60M"),EDATE=DT,P=DFN
  1. ; Search by Exam
  1. D
  1. . S %=P_"^LAST EXAM DENTAL;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(%,"BGPG(")
  1. . S ORD=$P(^BTPW(90621.1,2,0),U,5)
  1. . S N="" F S N=$O(BGPG(N)) Q:N="" S DATE=$P(BGPG(N),U,1),BQIXX(DATE,ORD,N)=BGPG(N)
  1. K BGPG
  1. ; Search by ADA
  1. D
  1. . S BGPC="",%=P_"^LAST ADA [BGP DENTAL EXAM ADA CODES;DURING "_$$FMTE^XLFDT(BDATE)_"-"_$$FMTE^XLFDT(EDATE),E=$$START1^APCLDF(%,"BGPG(")
  1. . S ORD=1
  1. . S N="" F S N=$O(BGPG(N)) Q:N="" S DATE=$P(BGPG(N),U,1),BQIXX(DATE,ORD,N)=BGPG(N)
  1. K BGPG
  1. ; Search by CPT
  1. D
  1. . S BGPC=$$CPT^BGP7DU(P,BDATE,EDATE,$O(^ATXAX("B","BGP DENTAL EXAM CPTS",0)),6)
  1. . I BGPC="" Q
  1. . S DATE=$P(BGPC,U,2),ORD=$P(^BTPW(90621.1,5,0),"^",5)
  1. . S BQIXX(DATE,ORD,1)=BGPC
  1. ; Search by DX
  1. D
  1. . S BGPG=$$LASTDX^BGP7UTL1(P,"BGP DENTAL EXAM DXS",BDATE,EDATE)
  1. . I BGPG="" Q
  1. . S DATE=$P(BGPG,U,3),ORD=$P(^BTPW(90621.1,7,0),"^",5)
  1. . S BQIXX(DATE,ORD,1)=BGPG
  1. ;
  1. I $D(BQIXX) D
  1. . S DATE=$O(BQIXX(""),-1),ORD=$O(BQIXX(DATE,"")),N=$O(BQIXX(DATE,ORD,""))
  1. . S VALUE=DATE
  1. ;
  1. Q $$FMTMDY^BQIUL1(VALUE)
  1. ;
  1. INV ;EP
  1. I 'FFLG S VALUE=$$FMTMDY^BQIUL1($$VISD^BQICMUTL(9000010.44,FIEN)\1)_" ("_$$GET1^DIQ(9000010.44,FIEN_",",.01,"E")_")"
  1. I FFLG S VALUE="YES"
  1. Q
  1. ;
  1. GPR(CODE) ;EP
  1. NEW BGPHOME,BQIH,BQIINDF,BQIINDG,BQIMEASF,BQIMEASG,BQIROU,BQIY,BQIYR,ERR,LIST
  1. NEW IEN,N,VAL
  1. D INP^BQINIGHT
  1. D FIND^DIC(90506.1,"","","X",CODE,"","E","","","LIST","ERR")
  1. S VAL=""
  1. S N=0 F S N=$O(LIST("DILIST",1,N)) Q:N="" D
  1. . I LIST("DILIST",1,N)'[BQIYR_"_" K LIST("DILIST",1,N),LIST("DILIST",2,N)
  1. S N=0 F S N=$O(LIST("DILIST",2,N)) Q:N="" D
  1. . S IEN=LIST("DILIST",2,N) I $P(^BQI(90506.1,IEN,0),U,3)=CODE S VAL=IEN_U_$P(^(0),U,1)
  1. Q VAL
  1. ;
  1. COLO(DFN) ;EP
  1. NEW REC,CODE,IEN,NUM,DEN
  1. S REC=$$GPR("Colorectal Cancer Screen 50-75") I REC="" Q ""
  1. S CODE=$P(REC,U,2)
  1. S IEN=$O(^BQIPAT(DFN,30,"B",CODE,"")) I IEN="" Q "NDA"
  1. S NUM=$P(^BQIPAT(DFN,30,IEN,0),U,3),DEN=$P(^(0),U,4)
  1. I DEN'=1 Q "N/A"
  1. I DEN=1,+NUM=0 Q "NO"
  1. Q "YES"
  1. ;
  1. DEP(DFN) ;EP
  1. NEW REC,CODE,IEN,NUM,DEN
  1. S REC=$$GPR("Depression: Screening Only 18+") I REC="" Q ""
  1. S CODE=$P(REC,U,2)
  1. S IEN=$O(^BQIPAT(DFN,30,"B",CODE,"")) I IEN="" Q "NDA"
  1. S NUM=$P(^BQIPAT(DFN,30,IEN,0),U,3),DEN=$P(^(0),U,4)
  1. I DEN'=1 Q "N/A"
  1. I DEN=1,+NUM=0 Q "NO"
  1. Q "YES"
  1. ;
  1. ADHD(DFN) ;EP
  1. NEW VALUE
  1. S VALUE=$$TAX^BQITRUTL("","BQI ADD/ADHD DXS",1,DFN,9000010.07,1,"","","","")
  1. I 'VALUE Q "NO"
  1. Q "YES ("_$$FMTMDY^BQIUL1($P(VALUE,U,2))_")"
  1. ;
  1. HEAR(DFN) ;EP
  1. NEW MS,ARRAY,CT,DATE,NBRN,NEWB,AUD,IEN,VALUE,RES
  1. S MS=$$MEAS^BQITUTL(DFN,"HE"),CT=1
  1. I MS S DATE=$P(MS,"^",2),ARRAY(DATE,CT)=MS_"^HEARING"
  1. F NBRN="NEWBORN HEARING SCREEN (LEFT)","NEWBORN HEARING SCREEN (RIGHT)" D
  1. . S NEWB=$$EXAM^BQITUTL(DFN,NBRN)
  1. . I 'NEWB Q
  1. . S CT=CT+1,DATE=$P(NEWB,"^",2),ARRAY(DATE,CT)=NEWB_"^"_NBRN
  1. S AUD=$$EXAM^BQITUTL(DFN,"AUDITORY EVOKED POTENTIAL")
  1. I AUD S CT=CT+1,DATE=$P(AUD,"^",2),ARRAY(DATE,CT)=AUD_"^"_"AUDITORY EVOKED POTENTIAL"
  1. S DATE=$O(ARRAY(""),-1)
  1. I DATE="" Q "NO"
  1. S CT=$O(ARRAY(DATE,""),-1)
  1. S IEN=$P(ARRAY(DATE,CT),"^",5),RES=$P(ARRAY(DATE,CT),"^",6)
  1. S VALUE="YES "_$$FMTMDY^BQIUL1(DATE)_" ("_RES_")"
  1. Q VALUE
  1. ;
  1. VIS(DFN) ;EP - Vision
  1. NEW VALUE,IEN,RES,DATE
  1. S VALUE=$$EXAM^BQITUTL(DFN,"EYE EXAM - GENERAL")
  1. I 'VALUE Q "NO"
  1. S IEN=$P(VALUE,"^",5),RES=$$GET1^DIQ(9000010.13,IEN_",",.04,"E"),DATE=$P(VALUE,"^",2)
  1. Q "YES "_$$FMTMDY^BQIUL1(DATE)
  1. ;Q "YES "_$$FMTMDY^BQIUL1(DATE)_" ("_RES_")"
  1. ;
  1. WELL(DFN,NUM) ;EP - Last Number of Well Child Visits
  1. NEW BQISBST,OK,BQSN,CNT,CDATA,CID,TXT,LIEN,VIS,CT,QTL,DATE,VALUE,ARRAY
  1. S NUM=$G(NUM,3)
  1. S BQISBST=$NA(^TMP("BQIWELLC",$J)) K @BQISBST
  1. S OK=$$SUBLST^BSTSAPI(BQISBST,"PXRM BQI WELL CHILD VISIT^36^1")
  1. S BQSN=0,CNT=0
  1. F S BQSN=$O(@BQISBST@(BQSN)) Q:BQSN="" D
  1. . S CDATA=@BQISBST@(BQSN)
  1. . S CID=$P(CDATA,"^",1),TXT=$P(CDATA,"^",3)
  1. . S BDT="",CT=0
  1. . F S BDT=$O(^AUPNVPOV("ASNC",DFN,CID,BDT)) Q:BDT="" D
  1. .. S LIEN=""
  1. .. F S LIEN=$O(^AUPNVPOV("ASNC",DFN,CID,BDT,LIEN)) Q:LIEN="" D
  1. ... I $P($G(^AUPNVPOV(LIEN,11)),U,1)'=CID Q
  1. ... S VIS=$P($G(^AUPNVPOV(LIEN,0)),U,3) I VIS="" Q
  1. ... I $G(^AUPNVSIT(VIS,0))="" Q
  1. ... S CT=CT+1,DATE=9999999-BDT,ARRAY(DATE,CID,CT)=LIEN_"^"_VIS_"^"_TXT
  1. I '$D(ARRAY) Q ""
  1. S CT=0,QTL=0,DATE="",VALUE=""
  1. F S DATE=$O(ARRAY(DATE),-1) Q:DATE=""!(QTL) D Q:QTL
  1. . S CID=""
  1. . F S CID=$O(ARRAY(DATE,CID)) Q:CID="" D
  1. .. S VL=$O(ARRAY(DATE,CID,"")),TXT=$P(ARRAY(DATE,CID,VL),"^",3)
  1. .. S VALUE=VALUE_$$FMTMDY^BQIUL1(DATE)_" ("_TXT_")"_$C(10)_$C(13)
  1. .. S CT=CT+1 I CT>NUM S QTL=1
  1. S VALUE=$$TKO^BQIUL1(VALUE,$C(10)_$C(13))
  1. Q VALUE
  1. ;
  1. ASQ(DFN) ;EP - Last ASQ measurement
  1. NEW MEAS,MS,VALUE,RES,RESU,NAME
  1. S MS="ASQ",MEAS=MS,RESU=""
  1. F S MEAS=$O(^AUTTMSR("B",MEAS)) Q:MEAS=""!($E(MEAS,1,3)'=MS) D
  1. . S IEN=$O(^AUTTMSR("B",MEAS,"")) I IEN="" Q
  1. . S NAME=$P(^AUTTMSR(IEN,0),"^",2),NAME=$P(NAME,"ASQ - ",2)
  1. . I MEAS="ASQM" S NAME="ASQ QUESTIONNAIRE (MOS)"
  1. . S VALUE=$$MEAS^BQITUTL(DFN,MEAS)
  1. . S RES=$P(VALUE,"^",3)
  1. . S RESU=RESU_NAME_" "_$$FMTMDY^BQIUL1($P(VALUE,"^",2))_" ("_RES_")"_$C(10)_$C(13)
  1. S RESU=$$TKO^BQIUL1(RESU,$C(10)_$C(13))
  1. Q RESU