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

APCLCV1.m

Go to the documentation of this file.
  1. APCLCV1 ; IHS/CMI/LAB - Indian Beneficiary Calendar Year Visit Summary ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;APCL1 = New Patients 1st Visit (Indian)
  1. ;APCL2 = Est Patients 1st Visit (Indian)
  1. ;APCL3 = Total 1st Visits (Indian)
  1. ;APCL4 = Additional Visits (2nd,3rd, etc.) (Indian)
  1. ;APCLG = Total Vistis (Indian)
  1. ;
  1. ;APCL5 = Grand Total (All Visits)
  1. ;
  1. ;APCL1O = New Patients 1st Visit (Non-Indian)
  1. ;APCL2O = Est Patients 1st Visit (Non-Indian)
  1. ;APCL3O = Total 1st Visits (Non-Indian)
  1. ;APCL4O = Additional Visits (Non-Indian)
  1. ;APCLGO = Total Visits (Non-Indian)
  1. ;
  1. ;IHS/CMI/LAB - added comment lines below
  1. ;APCL1N = New Patients 1st Visit (tribe 970)
  1. ;APCL2N = Est Patients 1st Visit (tribe 970)
  1. ;APCL3N = Total 1st Visits (tribe 970)
  1. ;APCL4N = Additional Visits (tribe 970)
  1. ;APCLGN = Total Visits (tribe 970)
  1. ;
  1. START ;
  1. S APCLBT=$H,APCLJOB=$J,APCL1=0,APCL2=0,APCL3=0,APCL4=0,APCL5=0,APCL1O=0,APCL2O=0,APCL3O=0,APCL4O=0,APCLG=0,APCLGO=0,(APCL1N,APCL2N,APCL3N,APCL4N,APCLGN)=0 ;IHS/CMI/LAB - added new vars to list
  1. S APCLSDD=$$FMADD^XLFDT(APCLBD,-1),APCLBDD=$$FMTE^XLFDT($E(APCLBD,1,3)_"0101")
  1. K ^XTMP("APCLCV",APCLJOB,APCLBT)
  1. D XTMP^APCLOSUT("APCLCV","PCC CALENDAR YR 1ST VISIT RPT")
  1. V ; Run by visit date
  1. S APCLSD=APCLSD_".9999" F S APCLSD=$O(^AUPNVSIT("B",APCLSD)) Q:APCLSD=""!((APCLSD\1)>APCLED) D V1
  1. ;
  1. XIT ;
  1. D EOJ
  1. S APCLET=$H
  1. Q
  1. V1 ;
  1. S APCLVIEN="" F S APCLVIEN=$O(^AUPNVSIT("B",APCLSD,APCLVIEN)) Q:APCLVIEN'=+APCLVIEN I $D(^AUPNVSIT(APCLVIEN,0)) S APCLVREC=^(0) D PROC
  1. Q
  1. PROC ;
  1. Q:'$P(APCLVREC,U,9)
  1. Q:$P(APCLVREC,U,11)
  1. Q:"ETC"[$P(APCLVREC,U,7)
  1. Q:$D(^APCLCNTL(4,11,"B",$P(APCLVREC,U,3)))
  1. I APCLLOC]"",APCLLOC'=$P(APCLVREC,U,6) Q
  1. S APCLCLIN=$P(APCLVREC,U,8)
  1. I APCLCLIN]"",$D(APCLCLNT),'$D(APCLCLNT(APCLCLIN)) Q
  1. I $D(APCLCLNT),APCLCLIN="" Q
  1. ;I APCLCL]"",APCLCL'=$P(APCLVREC,U,8) Q
  1. S DFN=$P(APCLVREC,U,5)
  1. Q:$$DEMO^APCLUTL(DFN,$G(APCLDEMO))
  1. Q:'$D(^AUPNVPOV("AD",APCLVIEN))
  1. Q:'$D(^AUPNVPRV("AD",APCLVIEN))
  1. ;
  1. GETCLASS ;
  1. S APCLTRIB=$$TRIBE^AUPNPAT(DFN,"C") ;IHS/CMI/LAB - get tribe code
  1. S APCLCLAS=$$BEN^AUPNPAT(DFN,"C")
  1. Q:APCLCLAS=""
  1. ;
  1. S APCL5=APCL5+1 ; Grand Total
  1. ;
  1. I $D(^XTMP("APCLCV",APCLJOB,APCLBT,"PATIENTS",DFN)) D SECONDV Q
  1. ;
  1. FIRST ;First Visit Count No patient DFN in TMP Global
  1. ;
  1. S ^XTMP("APCLCV",APCLJOB,APCLBT,"PATIENTS",DFN)=""
  1. ;New Patients 1st Visit
  1. S APCLDTE=$P(^AUPNPAT(DFN,0),U,2) ; Date Patient Established
  1. I APCLDTE'<APCLBD,APCLDTE'>APCLED D Q
  1. .I APCLTRIB=970 S APCL1N=APCL1N+1,APCL3N=APCL3N+1 Q ;tribe 970 - 1st visit IHS/CMI/LAB
  1. .S:APCLCLAS="01" APCL1=APCL1+1 ;Indian - 1st Visit
  1. .S:APCLCLAS'="01" APCL1O=APCL1O+1 ;Non-Indian-1st Visit
  1. .S:APCLCLAS="01" APCL3=APCL3+1 ;Indian - Total 1st Visit
  1. .S:APCLCLAS'="01" APCL3O=APCL3O+1 ;Non-Indian - Total 1st Visit
  1. .Q
  1. ;Established Patients 1st Visit
  1. I '$$VST(DFN,APCLBDD,APCLSDD,APCLLOC,.APCLCLNT) D SECONDV Q
  1. I APCLTRIB=970 S APCL2N=APCL2N+1,APCL3N=APCL3N+1 Q ;tribe 970 - 1st visit IHS/CMI/LAB
  1. S:APCLCLAS="01" APCL2=APCL2+1 ;Indian - Established Pt 1st Visit
  1. S:APCLCLAS'="01" APCL2O=APCL2O+1 ;Non-Indian - Est Pt 1st Visit
  1. S:APCLCLAS="01" APCL3=APCL3+1 ;Indian - Total Est 1st Visit
  1. S:APCLCLAS'="01" APCL3O=APCL3O+1 ;Non-Indian - Total Est 1st Visit
  1. Q
  1. ;
  1. SECONDV ;Counts for Established Patients Additional Visits for Year
  1. ;
  1. I APCLTRIB=970 S APCL4N=APCL4N+1 Q ;IHS/CMI/LAB - tribe 970 additional visits
  1. S:APCLCLAS="01" APCL4=APCL4+1 ;Indian-Est Pts Additional Visits
  1. S:APCLCLAS'="01" APCL4O=APCL4O+1 ;Non-Indian-Est Pts Additional Visits
  1. Q
  1. EOJ K APCLVLOC,APCLVREC,APCLSKIP,APCLAP,APCLDISC,APCLDPTR,APCLLOCC,APCLCLN
  1. K X,X1,X2
  1. Q
  1. ;
  1. ;
  1. VST(APCLCVP,APCLCVFD,APCLCVLD,APCLCVL,APCLCVC) ;return 1 if patient had a visit between APCLCVFD AND APCDCVLD, otherwise return 0
  1. I 'APCLCVP Q 0
  1. I $G(APCLCVFD)="" Q 0
  1. I $G(APCLCVLD)="" Q 0
  1. I $G(APCLCVL)="" S APCLCVL=""
  1. NEW X,APCL
  1. K APCL
  1. S X=APCLCVP_"^ALL VISITS;DURING "_APCLCVFD_"-"_$$FMTE^XLFDT(APCLCVLD) S E=$$START1^APCLDF(X,"APCL(")
  1. I '$D(APCL) Q 1
  1. S X=0 F S X=$O(APCL(X)) Q:X'=+X D
  1. .S V=$P(APCL(X),U,5)
  1. .I '$P(^AUPNVSIT(V,0),U,9) K APCL(X)
  1. .I $P(^AUPNVSIT(V,0),U,11) K APCL(X)
  1. .Q:'$D(^AUPNVPOV("AD",V))
  1. .Q:'$D(^AUPNVPRV("AD",V))
  1. .I APCLCVL]"",$P(^AUPNVSIT(V,0),U,6)'=APCLCVL K APCL(X)
  1. .I "ETC"[$P(^AUPNVSIT(V,0),U,7) K APCL(X)
  1. .I $D(^APCLCNTL(4,11,"B",$P(^AUPNVSIT(V,0),U,3))) K APCL(X)
  1. .S C=$P(^AUPNVSIT(V,0),U,8) I C]"",$O(APCLCVC(0)),'$D(APCLCVC(C)) K APCL(X)
  1. .I $O(APCLCVC(0)),C="" K APCL(X)
  1. I $O(APCL(0)) Q 0
  1. Q 1