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

ABMRMCRD.m

Go to the documentation of this file.
  1. ABMRMCRD ;IHS/SD/SDR - MEDICARE PART D REPORT ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;**10,21**;NOV 12, 2009;Build 379
  1. ;
  1. ;IHS/SD/SDR - 2.6*21 - HEAT119339 - fix <UNDEF>RAILROAD+9^ABMRMCRD if user typed '^' at
  1. ; exclude inactive/deceased pt prompt
  1. ;;
  1. ;; ABMILIST(insurer IEN)=insurer type--list of insurers for report
  1. ;; ABMINAME(insurer name,insurer IEN)=""--by name for display alphabetically
  1. ;; ABMICNT(SU,insurer name,insurer IEN)=count--count by insurer
  1. ;; ABMITOT(SU,"TOTAL")=total by service unit
  1. ;; ABMISU=(SU)=city, state of SU
  1. ;; ABMITOT("TOTAL")=total for report
  1. ;; ^TMP($J,"ABM-MCRD",Service Unit,patient IEN)--what patients have been counted
  1. ;; ABMIDUP=count--if patient is counted under more than one SU
  1. ;;
  1. S $P(ABMLINE,"-",79)="-"
  1. D MESSAGE ;message about report
  1. D GETINS ;get list of insurers we're looking for
  1. D DISP ;display list
  1. D GETMORE ;do they want to add others to list?
  1. Q:$D(DUOUT)!$D(DIROUT)!$D(DIRUT)!$D(DTOUT)
  1. I $G(ABMDFLG)=1 D DISP ;display list if more added
  1. D ELIGDT ;get list for what date?
  1. Q:$D(DUOUT)!$D(DIROUT)!$D(DIRUT)!$D(DTOUT)
  1. D INACT ;include inactive/deceased pts?
  1. Q:$D(DUOUT)!$D(DIROUT)!$D(DIRUT)!$D(DTOUT) ;abm*2.6*21 IHS/SD/SDR HEAT119339
  1. D DETAILQ ;detail?
  1. Q:$D(DUOUT)!$D(DIROUT)!$D(DIRUT)!$D(DTOUT)
  1. D ^%ZIS Q:POP
  1. U IO
  1. D COUNTIT ;go count data
  1. D OUTPUT ;display results
  1. D ^%ZISC
  1. Q
  1. ;
  1. MESSAGE ;
  1. W !?2,"This option will print a list of Patients who are registered at the"
  1. W !?2,"facility you select who are currently enrolled in a Medicare Part D"
  1. W !?2,"plan."
  1. W !!?2,"You will be asked to enter an ""As of"" date to be used in determining"
  1. W !?2,"those patients who are ""actively"" enrolled in a plan."
  1. W !!?2,"The report will be sorted alphabetically by Plan Name."
  1. Q
  1. ;
  1. GETINS ;loop thru insurers and get ones with MD
  1. ;insurer type
  1. ;
  1. K ABMILIST,ABMINAME,ABMDFLG,ABMIDUP,^TMP($J,"ABM-MCRD"),ABMITOT
  1. K ^TMP($J,"ABM-MCRAB")
  1. S ABMINS=0
  1. F S ABMINS=$O(^AUTNINS(ABMINS)) Q:+ABMINS=0 D
  1. .I $E($P($G(^AUTNINS(ABMINS,0)),U),1,2)="D-" D
  1. ..;S ABMILIST(ABMINS)=$P($G(^AUTNINS(ABMINS,2)),U) ;abm*2.6*10 HEAT73780
  1. ..S ABMILIST(ABMINS)=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABMINS,".211","I"),1,"I") ;abm*2.6*10 HEAT73780
  1. ..S ABMINAME($P($G(^AUTNINS(ABMINS,0)),U),ABMINS)=""
  1. .;I $P($G(^AUTNINS(ABMINS,2)),U)="MD" D ;abm*2.6*10 HEAT73780
  1. .I $$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABMINS,".211","I"),1,"I")="MD" D ;abm*2.6*10 HEAT73780
  1. ..;S ABMILIST(ABMINS)=$P($G(^AUTNINS(ABMINS,2)),U) ;abm*2.6*10 HEAT73780
  1. ..S ABMILIST(ABMINS)=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,ABMINS,".211","I"),1,"I") ;abm*2.6*10 HEAT73780
  1. ..S ABMINAME($P($G(^AUTNINS(ABMINS,0)),U),ABMINS)=""
  1. Q
  1. ;
  1. DISP ;display list of insurers
  1. K ABMIFLG
  1. W !!?2
  1. I +$G(ABMDFLG)=0 D
  1. .W "The following insurers contain the Insurer Type code of ""MD"" or contain "
  1. .W !?2,"""D-"" in the name of the plan:"
  1. W:+$G(ABMDFLG)=1 "The following insurers will be included on this report:"
  1. W !!
  1. S ABMNAME=""
  1. F S ABMNAME=$O(ABMINAME(ABMNAME)) Q:ABMNAME="" D
  1. .W ?10,ABMNAME
  1. .S ABMINS=$O(ABMINAME(ABMNAME,0))
  1. .S IT=$P($G(ABMILIST(ABMINS)),U)
  1. .W ?45,$S(IT="P":"PRIVATE",IT="MD":"MCR PART D",1:IT)
  1. .W !
  1. .S ABMIFLG=1
  1. I +$G(ABMIFLG)=0 D
  1. .W !?10,"THERE ARE NO INSURERS THAT CURRENTLY HAVE 'MD' AS THE INSURER TYPE"
  1. Q
  1. ;
  1. GETMORE ;do they want more PI insurers?
  1. S DIR(0)="Y"
  1. S DIR("A")="Do you wish to include any other insurers?"
  1. S DIR("B")="N"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DUOUT)!$D(DIROUT)!$D(DIRUT)!$D(DTOUT)
  1. I Y=1 D
  1. .S ABMDFLG=1
  1. .F D Q:($G(Y)="")!($G(X)=""&(Y<0))
  1. ..W !
  1. ..K X,Y,DIC,DR
  1. ..S DIC="^AUTNINS("
  1. ..S DIC(0)="AEMQ"
  1. ..;S DIC("S")="I $P(^AUTNINS(Y,2),U)=""P""" ;PIs only! ;abm*2.6*10 HEAT73780
  1. ..S DIC("S")="I $$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,Y,"".211"",""I""),1,""I"")=""P""" ;PIs only! ;abm*2.6*10 HEAT73780
  1. ..D ^DIC
  1. ..I Y>0 D
  1. ...W $P(Y,U,2)
  1. ...;S ABMILIST(+Y)=$P($G(^AUTNINS(+Y,2)),U) ;abm*2.6*10 HEAT73780
  1. ...S ABMILIST(+Y)=$$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,+Y,".211","I"),1,"I") ;abm*2.6*10 HEAT73780
  1. ...S ABMINAME($P(Y,U,2),+Y)=""
  1. Q
  1. ;
  1. ELIGDT ;get list for what date-default to today
  1. W !
  1. K DIR,DIC,DIE,X,Y,DR
  1. S DIR(0)="D"
  1. S DIR("A")="Display eligibility as of what date?"
  1. S DIR("B")="Today"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DUOUT)!$D(DIROUT)!$D(DIRUT)!$D(DTOUT)
  1. S ABMODT=+Y
  1. W " ("_Y(0)_")" ;display date selected
  1. Q
  1. ;
  1. INACT ;include inactive/deceased pts?
  1. W !
  1. K DIR,DIC,DIE,X,Y,DR
  1. S DIR(0)="Y"
  1. S DIR("A")="Do you wish to EXCLUDE inactive and deceased patients"
  1. S DIR("B")="YES"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DUOUT)!$D(DIROUT)!$D(DIRUT)!$D(DTOUT)
  1. I Y=1 S ABMALL=0 ;exclude
  1. E S ABMALL=1 ;include all patients
  1. Q
  1. DETAILQ ;
  1. W !
  1. K DIR,DIC,DIE,X,Y,DR
  1. S DIR(0)="Y"
  1. S DIR("A")="Do you wish to view detail (patients)"
  1. S DIR("B")="NO"
  1. D ^DIR
  1. K DIR
  1. Q:$D(DUOUT)!$D(DIROUT)!$D(DIRUT)!$D(DTOUT)
  1. I Y=1 S ABMDTAIL=1 ;detail
  1. E S ABMDTAIL=0 ;summary
  1. Q
  1. ;
  1. COUNTIT ;do counts for selected insurers
  1. D RAILROAD
  1. D MEDICARE
  1. D PRIVATE
  1. Q
  1. ;
  1. RAILROAD ;
  1. S ABMIEN=0
  1. F S ABMIEN=$O(^AUPNRRE(ABMIEN)) Q:+ABMIEN=0 D
  1. .S ABMEIEN=0
  1. .F S ABMEIEN=$O(^AUPNRRE(ABMIEN,11,ABMEIEN)) Q:+ABMEIEN=0 D
  1. ..S ABMCOV=$P($G(^AUPNRRE(ABMIEN,11,ABMEIEN,0)),U,3)
  1. ..I ABMCOV="D" S ABMPIEN=$P($G(^AUPNRRE(ABMIEN,11,ABMEIEN,0)),U,4)
  1. ..I ABMCOV="D",($G(ABMPIEN)="") Q
  1. ..I ABMCOV="D",($G(ABMILIST(ABMPIEN))="") Q ;no entry for insurer on requested list
  1. ..I ABMALL=0,($P($G(^DPT(ABMIEN,.35)),U)'="") Q ;check exclude flag and DOD
  1. ..K ABMSDT,ABMEDT
  1. ..S ABMSDT=$P($G(^AUPNRRE(ABMIEN,11,ABMEIEN,0)),U)
  1. ..S ABMEDT=$P($G(^AUPNRRE(ABMIEN,11,ABMEIEN,0)),U,2)
  1. ..I ((ABMSDT<ABMODT)!(ABMSDT=ABMODT)),((ABMEDT>ABMODT)!(ABMEDT="")) D
  1. ...S ABMHRN=0
  1. ...F S ABMHRN=$O(^AUPNPAT(ABMIEN,41,ABMHRN)) Q:+ABMHRN=0 D
  1. ....S ABMHRNS=$P($G(^AUPNPAT(ABMIEN,41,ABMHRN,0)),U,5) ;inactive?
  1. ....I ABMALL=0,ABMHRN="I" Q ;check exclude inactive flag and status
  1. ....S ABMSU=$S($P($G(^AUTTLOC(ABMHRN,0)),U,5)'="":$P($G(^AUTTSU($P($G(^AUTTLOC(ABMHRN,0)),U,5),0)),U),1:"NO SERVICE UNIT") ;SU name
  1. ....S ABMISU(ABMSU)=$P($G(^AUTTLOC(ABMHRN,0)),U,13)_", "_$S($P($G(^AUTTLOC(ABMHRN,0)),U,14)'="":$P($G(^DIC(5,$P($G(^AUTTLOC(ABMHRN,0)),U,14),0)),U,2),1:"")
  1. ....S:ABMCOV="D" ABMINAME=$P($G(^AUTNINS(ABMPIEN,0)),U) ;insurer name
  1. ....I ABMCOV="D",($G(^TMP($J,"ABM-MCRD",ABMSU,ABMPIEN,ABMIEN))="") D
  1. .....S ABMPN=$P($G(^AUPNRRE(ABMIEN,11,ABMEIEN,0)),U,6) ;ID
  1. .....S ABMHRNN=$P($G(^AUPNPAT(ABMIEN,41,ABMHRN,0)),U,2) ;HRN
  1. .....S ^TMP($J,"ABM-MCRD",ABMSU,ABMPIEN,ABMIEN)=ABMHRNN_U_ABMSDT_U_ABMEDT_U_ABMPN
  1. .....S ABMICNT(ABMSU,ABMINAME,ABMPIEN)=+$G(ABMICNT(ABMSU,ABMINAME,ABMPIEN))+1
  1. .....S ABMITOT(ABMSU,"TOTAL")=+$G(ABMITOT(ABMSU,"TOTAL"))+1
  1. .....S ABMITOT("TOTAL")=+$G(ABMITOT("TOTAL"))+1
  1. .....S ABMBTHCT(ABMSU,"TOTAL")=$G(ABMBTHCT(ABMSU,"TOTAL"))+1
  1. ....I ABMCOV="D",($G(^TMP($J,"ABM-MCRD",ABMSU,ABMPIEN,ABMIEN))'="") S ABMIDUP=+$G(ABMIDUP)+1
  1. ....I ABMCOV="A"!(ABMCOV="B") D ;count patients with active A and/or B
  1. .....Q:$G(^TMP($J,"ABM-MCRAB",ABMSU,ABMIEN))'=""
  1. .....S ^TMP($J,"ABM-MCRAB",ABMSU,ABMIEN)=ABMIEN
  1. .....S ^TMP($J,"ABM-MCRAB",ABMSU,"TOTAL")=+$G(^TMP($J,"ABM-MCRAB",ABMSU,"TOTAL"))+1
  1. Q
  1. ;
  1. MEDICARE ;
  1. S ABMIEN=0
  1. F S ABMIEN=$O(^AUPNMCR(ABMIEN)) Q:+ABMIEN=0 D
  1. .S ABMEIEN=0
  1. .F S ABMEIEN=$O(^AUPNMCR(ABMIEN,11,ABMEIEN)) Q:+ABMEIEN=0 D
  1. ..S ABMCOV=$P($G(^AUPNMCR(ABMIEN,11,ABMEIEN,0)),U,3)
  1. ..I ABMCOV="D" S ABMPIEN=$P($G(^AUPNMCR(ABMIEN,11,ABMEIEN,0)),U,4)
  1. ..I ABMCOV="D",($G(ABMPIEN)="") Q
  1. ..I ABMCOV="D",($G(ABMILIST(ABMPIEN))="") Q ;no entry for insurer on requested list
  1. ..I ABMALL=0,($P($G(^DPT(ABMIEN,.35)),U)'="") Q ;check exclude flag and DOD
  1. ..K ABMSDT,ABMEDT
  1. ..S ABMSDT=$P($G(^AUPNMCR(ABMIEN,11,ABMEIEN,0)),U)
  1. ..S ABMEDT=$P($G(^AUPNMCR(ABMIEN,11,ABMEIEN,0)),U,2)
  1. ..I ((ABMSDT<ABMODT)!(ABMSDT=ABMODT)),((ABMEDT>ABMODT)!(ABMEDT="")) D
  1. ...S ABMHRN=0
  1. ...F S ABMHRN=$O(^AUPNPAT(ABMIEN,41,ABMHRN)) Q:+ABMHRN=0 D
  1. ....S ABMHRNS=$P($G(^AUPNPAT(ABMIEN,41,ABMHRN,0)),U,5) ;inactive?
  1. ....I ABMALL=0,ABMHRN="I" Q ;check exclude inactive flag and status
  1. ....S ABMSU=$S($P($G(^AUTTLOC(ABMHRN,0)),U,5)'="":$P($G(^AUTTSU($P($G(^AUTTLOC(ABMHRN,0)),U,5),0)),U),1:"NO SERVICE UNIT") ;SU name
  1. ....S ABMSUC=$P($G(^AUTTLOC(ABMHRN,0)),U,13)
  1. ....S ABMSUS=$P($G(^AUTTLOC(ABMHRN,0)),U,14)
  1. ....S ABMISU(ABMSU)=ABMSUC_", "_$S(ABMSUS'="":$P($G(^DIC(5,ABMSUS,0)),U,2),1:"")
  1. ....S:ABMCOV="D" ABMINAME=$P($G(^AUTNINS(ABMPIEN,0)),U) ;insurer name
  1. ....I ABMCOV="D",($G(^TMP($J,"ABM-MCRD",ABMSU,ABMPIEN,ABMIEN))="") D ;part D and not on list already
  1. .....S ABMPN=$P($G(^AUPNMCR(ABMIEN,11,ABMEIEN,0)),U,6) ;ID
  1. .....S ABMHRNN=$P($G(^AUPNPAT(ABMIEN,41,ABMHRN,0)),U,2) ;HRN
  1. .....S ^TMP($J,"ABM-MCRD",ABMSU,ABMPIEN,ABMIEN)=ABMHRNN_U_ABMSDT_U_ABMEDT_U_ABMPN
  1. .....S ABMICNT(ABMSU,ABMINAME,ABMPIEN)=+$G(ABMICNT(ABMSU,ABMINAME,ABMPIEN))+1
  1. .....S ABMITOT(ABMSU,"TOTAL")=+$G(ABMITOT(ABMSU,"TOTAL"))+1
  1. .....S ABMITOT("TOTAL")=+$G(ABMITOT("TOTAL"))+1
  1. ....I ABMCOV="D",($G(^TMP($J,"ABM-MCRD",ABMSU,ABMPIEN,ABMIEN))'="") S ABMIDUP=+$G(ABMIDUP)+1 ;part D dup pt
  1. ....I ABMCOV="A"!(ABMCOV="B") D ;count patients with active A and/or B
  1. .....Q:$G(^TMP($J,"ABM-MCRAB",ABMSU,ABMIEN))'=""
  1. .....S ^TMP($J,"ABM-MCRAB",ABMSU,ABMIEN)=ABMIEN
  1. .....S ^TMP($J,"ABM-MCRAB",ABMSU,"TOTAL")=+$G(^TMP($J,"ABM-MCRAB",ABMSU,"TOTAL"))+1
  1. Q
  1. ;
  1. PRIVATE ;
  1. S ABMPTIEN=0
  1. F S ABMPTIEN=$O(^AUPNPRVT(ABMPTIEN)) Q:+ABMPTIEN=0 D
  1. .S ABMIEN=0
  1. .F S ABMIEN=$O(^AUPNPRVT(ABMPTIEN,11,ABMIEN)) Q:+ABMIEN=0 D
  1. ..S ABMINS=$P($G(^AUPNPRVT(ABMPTIEN,11,ABMIEN,0)),U)
  1. ..Q:$G(ABMILIST(ABMINS))="" ;not on list
  1. ..S ABMSDT=$P($G(^AUPNPRVT(ABMPTIEN,11,ABMIEN,0)),U,6)
  1. ..S ABMEDT=$P($G(^AUPNPRVT(ABMPTIEN,11,ABMIEN,0)),U,7)
  1. ..I ((ABMSDT=ABMODT)!(ABMSDT<ABMODT)),((ABMEDT>ABMODT)!(ABMEDT="")) D ;inside date range
  1. ...S ABMHRN=0
  1. ...F S ABMHRN=$O(^AUPNPAT(ABMPTIEN,41,ABMHRN)) Q:+ABMHRN=0 D
  1. ....S ABMHRNS=$P($G(^AUPNPAT(ABMPTIEN,41,ABMHRN,0)),U,5) ;inactive?
  1. ....I ABMALL=0,ABMHRNS="I" Q ;check exclude inactive flag and status
  1. ....S ABMSU=$S($P($G(^AUTTLOC(ABMHRN,0)),U,5)'="":$P($G(^AUTTSU($P($G(^AUTTLOC(ABMHRN,0)),U,5),0)),U),1:"NO SERVICE UNIT") ;SU name
  1. ....S ABMISU(ABMSU)=$P($G(^AUTTLOC(ABMHRN,0)),U,13)_", "_$S($P($G(^AUTTLOC(ABMHRN,0)),U,14)'="":$P($G(^DIC(5,$P($G(^AUTTLOC(ABMHRN,0)),U,14),0)),U,2),1:"")
  1. ....S ABMINAME=$P($G(^AUTNINS(ABMINS,0)),U) ;insurer name
  1. ....I $G(^TMP($J,"ABM-MCRD",ABMSU,ABMINS,ABMPTIEN))="" D
  1. .....S:$P($G(^AUPNPRVT(ABMPTIEN,11,ABMIEN,0)),U,8)'="" ABMPN=$P($G(^AUPN3PPH($P($G(^AUPNPRVT(ABMPTIEN,11,ABMIEN,0)),U,8),0)),U,4)
  1. .....S ABMHRNN=$P($G(^AUPNPAT(ABMPTIEN,41,ABMHRN,0)),U,2) ;HRN
  1. .....S ^TMP($J,"ABM-MCRD",ABMSU,ABMINS,ABMPTIEN)=ABMHRNN_U_ABMSDT_U_ABMEDT_U_ABMPN
  1. .....S ABMICNT(ABMSU,ABMINAME,ABMINS)=+$G(ABMICNT(ABMSU,ABMINAME,ABMINS))+1
  1. .....S ABMITOT(ABMSU,"TOTAL")=+$G(ABMITOT(ABMSU,"TOTAL"))+1
  1. .....S ABMITOT("TOTAL")=+$G(ABMITOT("TOTAL"))+1
  1. ....I $G(^TMP($J,"ABM-MCRD",ABMSU,ABMINS,ABMPTIEN))'="" S ABMIDUP=+$G(ABMIDUP)+1
  1. Q
  1. ;
  1. OUTPUT ;
  1. ;make sure at minimum 0 will print for each insurer selected
  1. S ESCAPE=0
  1. S ABMSU=""
  1. F S ABMSU=$O(^TMP($J,"ABM-MCRAB",ABMSU)) Q:ABMSU="" D
  1. .S ABMNAME=""
  1. .F S ABMNAME=$O(ABMINAME(ABMNAME)) Q:ABMNAME="" D
  1. ..S ABMINS=$O(ABMINAME(ABMNAME,0))
  1. ..I '$D(ABMICNT(ABMSU,ABMNAME)) S ABMICNT(ABMSU,ABMNAME,ABMINS)=0
  1. ;
  1. S ABMPG=0
  1. S ABMSU=""
  1. S ABMSUOLD=""
  1. D HDR
  1. F S ABMSU=$O(ABMICNT(ABMSU)) Q:ABMSU="" D
  1. .S ABMNAME=""
  1. .F S ABMNAME=$O(ABMICNT(ABMSU,ABMNAME)) Q:ABMNAME="" D
  1. ..S ABMINS=0
  1. ..F S ABMINS=$O(ABMICNT(ABMSU,ABMNAME,ABMINS)) Q:+ABMINS=0 D
  1. ...I ABMSUOLD=""!(ABMSUOLD'=ABMSU) D:ABMPG'=1 HDR D SUHDR S ABMSUOLD=ABMSU
  1. ...W !?2,ABMNAME
  1. ...S IT=$G(ABMILIST(ABMINS))
  1. ...W ?40,$S(IT="P":"PRIVATE",IT="MD":"MCR PART D",1:IT)
  1. ...W ?63,+$G(ABMICNT(ABMSU,ABMNAME,ABMINS))
  1. ...I $G(ABMDTAIL)=1 D DETAIL
  1. .W !!,?10,"TOTAL PART D FOR "_ABMSU_" SERVICE UNIT:",?63,+$G(ABMITOT(ABMSU,"TOTAL"))
  1. .W !,?10,"TOTAL NUMBER OF MEDICARE/RAILROAD ELIG ENROLLEES:",?63,+$G(^TMP($J,"ABM-MCRAB",ABMSU,"TOTAL"))
  1. ;total
  1. W !!,?2,"TOTAL NUMBER OF ACTIVE MEDICARE PART D ENROLLEES: "
  1. W ?63,+$G(ABMITOT("TOTAL")),!
  1. W !,"(REPORT COMPLETE)",!
  1. I (IOST[("C-")) Q:ESCAPE Q:$D(IO("S")) K DIR S DIR(0)="E" D ^DIR S ESCAPE=X=U
  1. ;cleanup
  1. K ABMICNT,ABMINAME,ABMILIST
  1. K ABMLINE,IT,ABMIEN,ABMEIEN,ABMPIEN,ABMNAME,ABMINAME
  1. K ABMIDUP
  1. K ABMITOT
  1. K ^TMP($J,"ABM-MCRD")
  1. K ^TMP($J,"ABM-MCRAB")
  1. Q
  1. ;
  1. HDR ;
  1. W @IOF
  1. S ABMPG=ABMPG+1
  1. S Y=DT X ^DD("DD")
  1. W !,Y,?68,"Page ",ABMPG
  1. W !
  1. D CENTER("REGISTERED PATIENTS - ACTIVE MEDICARE PART D ENROLLEES")
  1. W !
  1. S Y=ABMODT X ^DD("DD")
  1. D CENTER("Actively enrolled as of "_Y)
  1. Q
  1. SUHDR W !!?2,"Service Unit: ",ABMSU," "_$G(ABMISU(ABMSU)),!
  1. W !?2,"PLAN NAME",?40,"INS TYPE",?60,"COUNT"
  1. I $G(ABMDTAIL)=1 D
  1. .W !,?3,"HRN",?15,"SUBSCRIBER NAME",?45,"EFF.DT",?57,"END.DT",?69,"SUBSCR.ID"
  1. W !,ABMLINE,!
  1. Q
  1. CENTER(X) ;EP -
  1. S CENTER=IOM/2
  1. W ?CENTER-($L(X)/2),X
  1. Q
  1. DETAIL ;
  1. S ABMPT=0
  1. F S ABMPT=$O(^TMP($J,"ABM-MCRD",ABMSU,ABMINS,ABMPT)) Q:+ABMPT=0 D
  1. .W !?3,$P($G(^TMP($J,"ABM-MCRD",ABMSU,ABMINS,ABMPT)),U)
  1. .W ?15,$P($G(^DPT(ABMPT,0)),U)
  1. .W ?45,$$SDT^ABMDUTL($P($G(^TMP($J,"ABM-MCRD",ABMSU,ABMINS,ABMPT)),U,2))
  1. .W ?57,$$SDT^ABMDUTL($P($G(^TMP($J,"ABM-MCRD",ABMSU,ABMINS,ABMPT)),U,3))
  1. .W ?69,$P($G(^TMP($J,"ABM-MCRD",ABMSU,ABMINS,ABMPT)),U,4)
  1. .I (IOST[("C-")),(($Y>IOSL)!($Y=IOSL)) Q:ESCAPE Q:$D(IO("S")) K DIR S DIR(0)="E" D ^DIR S ESCAPE=X=U D HDR,SUHDR
  1. Q