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

BGP8D715.m

Go to the documentation of this file.
  1. BGP8D715 ; IHS/CMI/LAB - measure 6 ;
  1. ;;18.1;IHS CLINICAL REPORTING;;MAY 25, 2018;Build 66
  1. ;
  1. PREG(P,BDATE,EDATE,NOCHR,NORX,FORM,CPBD,CPED,TCNT) ;EP
  1. I $P($G(^DPT(P,0)),U,2)'="F" Q ""
  1. NEW B,E,A,CNT,BGPD,BGPG,X,Y,BGPDX,C,D,G,T,%,CTR,VIEN,DXT,PXT,CPTT,BGPV,H,BGP20M,T1,T2,MADX,APC,MCPT,ACPT
  1. I '$G(FORM) S FORM=""
  1. I $G(CPBD)="" S CPBD=$$FMADD^XLFDT(BDATE,-365)
  1. I $G(CPED)="" S CPED=EDATE
  1. I '$G(TCNT) S TCNT=1
  1. S D=$$RF(P,BDATE,EDATE) I D Q $S(FORM="":1,1:$$DATE^BGP8UTL(D)) ;REPRODUCTIVE FACTORS
  1. ;check problem list next
  1. PL ;must be modified in the past 20 months from EDATE
  1. S BGP20M=$$FMADD^XLFDT(EDATE,-608)
  1. S T=$O(^ATXAX("B","BGP PREGNANCY DIAGNOSES 2",0))
  1. S T1=$O(^ATXAX("B","BGP MISCARRIAGE/ABORTION DXS",0))
  1. S (X,G,A)=0 F S X=$O(^AUPNPROB("AC",P,X)) Q:X'=+X!(G) D
  1. .Q:$P(^AUPNPROB(X,0),U,12)="D"
  1. .Q:$P(^AUPNPROB(X,0),U,12)="I"
  1. .S A=0
  1. .;S D=$P(^AUPNPROB(X,0),U,3)
  1. .;I D'<BGP20M,D'>EDATE S A=1
  1. .;S D=$P(^AUPNPROB(X,0),U,8)
  1. .;I D'<BGP20M,D'>EDATE S A=1
  1. .;S D=$P(^AUPNPROB(X,0),U,13)
  1. .;I D'<BGP20M,D'>EDATE S A=1
  1. .Q:$P(^AUPNPROB(X,0),U,8)>EDATE
  1. .Q:$P(^AUPNPROB(X,0),U,8)<BGP20M
  1. .;Q:'A
  1. .S Y=$P(^AUPNPROB(X,0),U)
  1. .I '$$ICD^BGP8UTL2(Y,T,9),'$$ICD^BGP8UTL2(Y,T1,9) Q ;must be one of these
  1. .S G=$P(^AUPNPROB(X,0),U,8)
  1. I G Q $S(FORM="":1,1:$$DATE^BGP8UTL(G))
  1. V ;now visits
  1. D ALLV^APCLAPIU(P,BDATE,EDATE,"BGPV")
  1. I '$D(BGPV) Q ""
  1. S CNT=0,BGPD=""
  1. S NOCHR=$G(NOCHR)
  1. S NORX=$G(NORX)
  1. K BGPG
  1. S DXT=$O(^ATXAX("B","BGP PREGNANCY DIAGNOSES 2",0))
  1. S PXT=$O(^ATXAX("B","BGP PREGNANCY ICD PROCEDURES",0))
  1. S CPTT=$O(^ATXAX("B","BGP PREGNANCY CPT CODES",0))
  1. S MADX=$O(^ATXAX("B","BGP MISCARRIAGE/ABORTION DXS",0))
  1. S APC=$O(^ATXAX("B","BGP ABORTION PROCEDURES",0))
  1. S MCPT=$O(^ATXAX("B","BGP CPT MISCARRIAGE",0))
  1. S ACPT=$O(^ATXAX("B","BGP CPT ABORTION",0))
  1. ;CHECK DX, PROCS, CPTS for CNT separate visits
  1. S B=0,CTR=0 F S CTR=$O(BGPV(CTR)) Q:CTR'=+CTR!(CNT>(TCNT-1)) D
  1. .;get visit into VIEN
  1. .S VIEN=$P(BGPV(CTR),U,5)
  1. .S D=$$VD^APCLV(VIEN)
  1. .S C=$$CLINIC^APCLV(VIEN,"C")
  1. .I NORX,C=39 Q
  1. .S C=$$PRIMPROV^APCLV(VIEN,"D")
  1. .I NOCHR,C=53 Q ;no chr as primary provider
  1. .;now check for dx
  1. .S Y=0,H="" F S Y=$O(^AUPNVPOV("AD",VIEN,Y)) Q:Y'=+Y D
  1. ..S %=+^AUPNVPOV(Y,0)
  1. ..I $$ICD^BGP8UTL2(%,DXT,9)!($$ICD^BGP8UTL2(%,MADX,9)) S BGPDX(D)="",CNT=CNT+1,H=1
  1. .Q:H
  1. .;NOW GO THROUGH CPTS
  1. .S Y=0,H="" F S Y=$O(^AUPNVCPT("AD",VIEN,Y)) Q:Y'=+Y D
  1. ..S %=+^AUPNVCPT(Y,0)
  1. ..I $$ICD^BGP8UTL2(%,CPTT,1)!($$ICD^BGP8UTL2(%,MCPT,1))!($$ICD^BGP8UTL2(%,ACPT,1)) I '$D(BGPDX(D)) S BGPDX(D)="",CNT=CNT+1,H=1
  1. .Q:H
  1. .;NOW PROCEDURES
  1. .S Y=0,H="" F S Y=$O(^AUPNVPRC("AD",VIEN,Y)) Q:Y'=+Y D
  1. ..S %=+^AUPNVPRC(Y,0)
  1. ..I $$ICD^BGP8UTL2(%,PXT,0)!($$ICD^BGP8UTL2(%,APC,0)) I '$D(BGPDX(D)) S BGPDX(D)="",CNT=CNT+1,H=1
  1. .Q:H
  1. .Q
  1. I CNT>(TCNT-1) S D=$O(BGPDX(0)) Q $S(FORM="":1,1:$$DATE^BGP8UTL(D))
  1. Q ""
  1. RF(P,CPBD,CPED) ;CHECK REPRODUCTIVE FACTORS
  1. NEW A,B
  1. I $P($G(^AUPNREP(P,11)),U,1)'="Y" Q ""
  1. S A=""
  1. S B=$P($G(^AUPNREP(P,11)),U,2)
  1. I B="" Q ""
  1. I B<CPBD Q ""
  1. I B>CPED Q ""
  1. Q B