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

ACHSRELG.m

Go to the documentation of this file.
  1. ACHSRELG ;IHS/OIT/FCJ - Eligibility population Report by Tribe and FY
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**18**;JUN 11, 2001
  1. ;ACHS*3.1*18 new routine
  1. ;Eligibility population report by TRIBAL CHSDA and FY
  1. ST ;
  1. S ACHSIO=IO
  1. W !!,"This is a CHS population report based on Tribal CHSDA,"
  1. W !,"community of residence and Fiscal Year."
  1. W !,"The CHS Service Delivery Area is entered by county,"
  1. W !,"then checked against the patient's community of residence."
  1. W !!,"NOTE: If all counties are not listed for selected Tribal CHSDA"
  1. W !,"use the option SDA Enter/Edit Tribal CHSDA to update counties"
  1. ;
  1. FY ; Select FY.
  1. S ACHSACFY=$$FYSEL^ACHS(1)
  1. G:$D(DTOUT)!$D(DUOUT) EXT
  1. I '$D(^ACHS(9,DUZ(2),"FY",ACHSACFY)) W !!,*7,"Fiscal year '",ACHSACFY,"' does not exist. -- TRY AGAIN" G FY
  1. FYDT ;BEG AND END DATES FOR THE FY, DOS >ACHSBFY OR <ACHSEFY
  1. I $P(^ACHSF(DUZ(2),0),U,7)=1 S ACHSBFY=ACHSACFY-1701_($P(^ACHSF(DUZ(2),0),U,6)-1),ACHSEFY=ACHSACFY-1700_($P(^ACHSF(DUZ(2),0),U,6)-1)
  1. E S ACHSBFY=ACHSACFY-1700_($P(^ACHSF(DUZ(2),0),U,6)-1),ACHSEFY=ACHSACFY-1699_($P(^ACHSF(DUZ(2),0),U,6)-1)
  1. ;
  1. TRB ;Tribal CHSDA
  1. ;
  1. W !
  1. S DIC="^ACHSSDA(",DIC(0)="AEQM"
  1. S DIC("A")="Enter the Tribal CHSDA: "
  1. D ^DIC
  1. I +Y<0 G FY
  1. S ACHSSDA=+Y
  1. ;
  1. TYPE ; TYPE OF REPORT SUMARRY OR DETAILED
  1. ; Enter Summary or Detail
  1. S DIR(0)="S^S:SUMMARY;D:DETAILED",DIR("A")="Report Type ",DIR("B")="SUMMARY"
  1. S DIR("?")="Detail will display indiviual PO, Summary will display only the totals"
  1. D ^DIR
  1. G EXT:$D(DUOUT),EXT:$D(DTOUT),EXT:$D(DIROUT)
  1. S ACHSRTYP=Y
  1. DEV ; Select device for report.
  1. S %=$$PB^ACHS
  1. I %=U!$D(DTOUT)!$D(DUOUT) G EXT
  1. I %="B" D VIEWR^XBLM("A1^ACHSRELG"),EN^XBVK("VALM") G EXT
  1. K IOP,%ZIS
  1. S %ZIS="PQ"
  1. D ^%ZIS,SLV^ACHSFU:$D(IO("S"))
  1. K %ZIS
  1. I POP W !,*7,"No device specified." D HOME^%ZIS G EXT
  1. G:'$D(IO("Q")) A1
  1. K IO("Q")
  1. I $E(IOST)'="P" W *7,!,"Please queue to printers only." G DEV
  1. S ZTIO="",ACHSQIO=ION_";"_IOST_";"_IOM_";"_IOSL,ZTRTN="A1^ACHSRGPR",ZTDESC="CHS GPRA Report, "_ACHSRPT_", "_$$FMTE^XLFDT(ACHSBDT)_" to "_$$FMTE^XLFDT(ACHSEDT)
  1. F %="ACHSQIO","ACHSBDT","ACHSEDT","ACHSRTYP","ACHSACFY","ACHSEFY","ACHSBFY","ACHSSDA" S ZTSAVE(%)=""
  1. D ^%ZTLOAD
  1. G:'$D(ZTSK) DEV
  1. ;
  1. ;end of interactive portion. The rest performed by Taskman
  1. ;
  1. A1 ;EP - TaskMan.
  1. D FC^ACHSUF
  1. I $D(ACHSERR),ACHSERR=1 G EXT
  1. K ^TMP("ACHSRELG",$J)
  1. S ^TMP("ACHSRELG",$J,"TOTELG")=0
  1. S ACHSTRC=$P(^AUTTTRI($P(^ACHSSDA(ACHSSDA,0),U),0),U)
  1. ;
  1. CNTY ;SET COUNTY AND COMMUNITY CODES IN TMP GLB
  1. S ACHSCNTY=0
  1. F S ACHSCNTY=$O(^ACHSSDA(ACHSSDA,30,ACHSCNTY)) Q:ACHSCNTY'?1N.N D
  1. .S ACHSCST=$P(^AUTTCTY($P(^ACHSSDA(ACHSSDA,30,ACHSCNTY,0),U),0),U,4)
  1. .S ^TMP("ACHSRELG",$J,"CNTY",ACHSCST,0)=0
  1. .S ACHSCOM=ACHSCST_"000",ACHSCOMT=ACHSCST_999
  1. .F S ACHSCOM=$O(^AUTTCOM("C",ACHSCOM)) Q:(ACHSCOM="")!(ACHSCOM>ACHSCOMT) D
  1. ..S ^TMP("ACHSRELG",$J,"CNTY",ACHSCST,ACHSCOM)=0
  1. ..S ACHSCOMP=$O(^AUTTCOM("C",ACHSCOM,0))
  1. ..S ^TMP("ACHSRELG",$J,"COM",ACHSCOMP)=ACHSCOM
  1. ;
  1. REG ;CHECK PAT FOR CURRENT COM
  1. ;TEST FOR NON-INDIAN BENEFICIARY, NON-INDIAN MEMBER OF IND. HOUSEHOLD AND UNSPECIFIED
  1. S ACHSTCD1=$O(^AUTTTRI("C","000",0)),ACHSTCD2=$O(^AUTTTRI("C",970,0)),ACHSTCD3=$O(^AUTTTRI("C",999,0))
  1. S ACHSPAT=0,ACHSCT=0
  1. F S ACHSPAT=$O(^AUPNPAT(ACHSPAT)) Q:ACHSPAT'?1N.N D
  1. .S ACHSCT=ACHSCT+1 I '$D(ZTQUEUED),ACHSCT#1000=0 W "."
  1. .;TEST TRIBAL ENROLLMENT
  1. .Q:'$D(^AUPNPAT(ACHSPAT,11))
  1. .S ACHSTRB=$P(^AUPNPAT(ACHSPAT,11),U,8)
  1. .Q:(ACHSTRB=ACHSTCD1)!(ACHSTRB=ACHSTCD2)!(ACHSTRB=ACHSTCD3)!(ACHSTRB="")
  1. .;TEST FOR DATE OF DEATH, QUIT IF DATE IS < BEG DATE OF FY
  1. .I $D(^DPT(ACHSPAT,.35)) Q:$P(^DPT(ACHSPAT,.35),U)<ACHSBFY
  1. .;TEST FOR CURRENT COMMUNITY AND DATE MOVE < THE LAST DAY OF THE FY
  1. .S ACHSCOMP=$P(^AUPNPAT(ACHSPAT,11),U,17),ACHSCCDT=$P(^(11),U,13)
  1. .Q:'ACHSCOMP
  1. .I $D(^TMP("ACHSRELG",$J,"COM",ACHSCOMP)),ACHSCCDT<ACHSEFY D SET Q
  1. .;THEN TEST PREVIOUS COMMUNITY FOR DATES WITH IN SELECTED FY
  1. .I $D(^AUPNPAT(ACHSPAT,51)) S ACHSQUIT=0 D
  1. ..S L=0 F S L=$O(^AUPNPAT(ACHSPAT,51,L)) Q:L'?1N.N D Q:ACHSQUIT=1
  1. ...Q:L>ACHSEFY
  1. ...S ACHSCOMP=$P(^AUPNPAT(ACHSPAT,51,L,0),U,3)
  1. ...I ACHSCOMP,$D(^TMP("ACHSRELG",$J,"COM",ACHSCOMP)),(L>ACHSBFY&L<ACHSEFY) D SET S ACHSQUIT=1 Q
  1. ...I ACHSCOMP,$D(^TMP("ACHSRELG",$J,"COM",ACHSCOMP)),L<ACHSBFY D
  1. ....S L1=L,L1=$O(^AUPNPAT(ACHSPAT,51,L1)) I L1="" D SET S ACHSQUIT=1 Q
  1. ....I L1>ACHSBFY,L1<ACHSEFY D SET S ACHSQUIT=1 Q
  1. D PRINT
  1. ;
  1. EXT ; Kill vars, close device, quit.
  1. I $D(IO("S")) X ACHSPPC
  1. E D ^%ZISC
  1. D EN^XBVK("ACHS"),^ACHSVAR:'$D(ZTQUEUED)
  1. K ^TMP("ACHSRELG",$J)
  1. K DTOUT,DUOUT,ZTSK
  1. Q
  1. ;
  1. SET ;SET THE DATA FOR ELIG PATIENT
  1. ;
  1. S ACHSCOM=^TMP("ACHSRELG",$J,"COM",ACHSCOMP),ACHSCST=$E(ACHSCOM,1,4)
  1. S ^TMP("ACHSRELG",$J,"CNTY",ACHSCST,ACHSCOM)=^TMP("ACHSRELG",$J,"CNTY",ACHSCST,ACHSCOM)+1
  1. S ^TMP("ACHSRELG",$J,"CNTY",ACHSCST,0)=^TMP("ACHSRELG",$J,"CNTY",ACHSCST,0)+1
  1. S ^TMP("ACHSRELG",$J,"TOTELG")=^TMP("ACHSRELG",$J,"TOTELG")+1
  1. ;Q:ACHSRTYP="S"
  1. S ^TMP("ACHSRELG",$J,"CNTY","T",ACHSCST,$P(^AUTTTRI(ACHSTRB,0),U),$P(^DPT(ACHSPAT,0),U),ACHSPAT)=$P(^AUTTCOM(ACHSCOMP,0),U)
  1. I '$D(^TMP("ACHSRELG",$J,"CNTY","TRB",ACHSTRB)) S ^TMP("ACHSRELG",$J,"CNTY","TRB",ACHSTRB)=0
  1. S ^TMP("ACHSRELG",$J,"CNTY","TRB",ACHSTRB)=^TMP("ACHSRELG",$J,"CNTY","TRB",ACHSTRB)+1
  1. Q
  1. ;
  1. PRINT ;
  1. S ACHST1=$$C^XBFUNC("CHS population Report")
  1. S ACHST2=$$C^XBFUNC("Tribal CHS Delivery Area: "_ACHSTRC)
  1. S ACHST3=$$C^XBFUNC("For Fiscal Year "_ACHSACFY),X3=0
  1. D BRPT^ACHSFU
  1. X:$D(IO("S")) ACHSPPO
  1. I ACHSRTYP="D" D HDR,DET G:$D(DUOUT)!$D(DTOUT) EXT D TOT
  1. S ACHSRTYP="S" D HDR,SUM,TOT
  1. G EXT Q
  1. ;
  1. DET ;DETAILED REPORT
  1. S ACHSCST=0
  1. F S ACHSCST=$O(^TMP("ACHSRELG",$J,"CNTY","T",ACHSCST)) Q:ACHSCST'?1N.N D Q:$D(DUOUT)!$D(DTOUT)
  1. .S ACHSCTY=$O(^AUTTCTY("C",ACHSCST,0)) D HDRD
  1. .S ACHSTRB=0 F S ACHSTRB=$O(^TMP("ACHSRELG",$J,"CNTY","T",ACHSCST,ACHSTRB)) Q:ACHSTRB="" D Q:$D(DUOUT)!$D(DTOUT)
  1. ..D HDRD1
  1. ..S ACHSPAT=0 F S ACHSPAT=$O(^TMP("ACHSRELG",$J,"CNTY","T",ACHSCST,ACHSTRB,ACHSPAT)) Q:ACHSPAT="" D Q:$D(DUOUT)!$D(DTOUT)
  1. ...S ACHSIEN=0 F S ACHSIEN=$O(^TMP("ACHSRELG",$J,"CNTY","T",ACHSCST,ACHSTRB,ACHSPAT,ACHSIEN)) Q:ACHSIEN="" D Q:$D(DUOUT)!$D(DTOUT)
  1. ....W !?2,ACHSPAT,?50,^TMP("ACHSRELG",$J,"CNTY","T",ACHSCST,ACHSTRB,ACHSPAT,ACHSIEN)
  1. ....I $Y>ACHSBM D RTRN^ACHS Q:$D(DUOUT)!$D(DTOUT) D HDR,HDRD,HDRD1
  1. .Q:$D(DUOUT)!$D(DTOUT)
  1. .W !!,"Total County = ",$J($P(^TMP("ACHSRELG",$J,"CNTY",ACHSCST,0),U),10),!,$$REPEAT^XLFSTR("=",79),!
  1. .I $Y>ACHSBM D RTRN^ACHS Q:$D(DUOUT)!$D(DTOUT) D HDR,HDRD,HDRD1
  1. Q
  1. SUM ;SUMMARY REPORT
  1. ;
  1. S ACHSCST=0
  1. F S ACHSCST=$O(^TMP("ACHSRELG",$J,"CNTY",ACHSCST)) Q:ACHSCST'?1N.N D
  1. .S ACHSCTY=$O(^AUTTCTY("C",ACHSCST,0))
  1. .W !,$P(^AUTTCTY(ACHSCTY,0),U),?45,$J($P(^TMP("ACHSRELG",$J,"CNTY",ACHSCST,0),U),10)
  1. .I $Y>ACHSBM D RTRN^ACHS Q:$D(DUOUT)!$D(DTOUT) D HDR
  1. W !
  1. S ACHSTRB=0
  1. F S ACHSTRB=$O(^TMP("ACHSRELG",$J,"CNTY","TRB",ACHSTRB)) Q:ACHSTRB'?1N.N D
  1. .W !,$P(^AUTTTRI(ACHSTRB,0),U),?45,"TOTAL = ",$J($P(^TMP("ACHSRELG",$J,"CNTY","TRB",ACHSTRB),U),10)
  1. .I $Y>ACHSBM D RTRN^ACHS Q:$D(DUOUT)!$D(DTOUT) D HDR
  1. Q
  1. ;
  1. HDR ; Paginate.
  1. S ACHSPG=ACHSPG+1
  1. W @IOF,!!?19,"*** CONTRACT HEALTH MANAGEMENT SYSTEM ***",!,ACHSUSR,?71,"Page",$J(ACHSPG,3),!,ACHSLOC,!,ACHST1,!,ACHST2,!,ACHSTIME,!,ACHST3
  1. I ACHSRTYP="S" D
  1. .W !,"CHSDA-County",?45,"Population Total"
  1. W !,$$REPEAT^XLFSTR("=",79),!
  1. Q
  1. HDRD ;DETAILED HEADING
  1. W "CHSDA-County: ",$P(^AUTTCTY(ACHSCTY,0),U)
  1. Q
  1. HDRD1 ;
  1. W !!,"Tribe of Enrollment: ",ACHSTRB
  1. W !,"Patient Name",?48,"Community"
  1. Q
  1. TOT ;TOTALS
  1. W !!,"Total CHS Delivery Area = ",$J(^TMP("ACHSRELG",$J,"TOTELG"),10)
  1. D RTRN^ACHS Q:$D(DUOUT)!$D(DTOUT)
  1. Q