- APCLPYR2 ; IHS/CMI/LAB - Patients by Payer (Insurer) - Medicare ;
- ;;2.0;IHS PCC SUITE;**21**;MAY 14, 2009;Build 34
- Q
- ;
- MRALOOP ;EP
- I $E(IOST)="C" W !!,"Please be patient. This may take a few minutes.",!! H 6
- S APCLINAM="Medicare Part A"
- K ^TMP($J,"APCLPYR")
- S APCLPAGE=0
- ;
- D HEADING
- ;
- S APCLDFN=0
- F S APCLDFN=$O(^AUPNMCR(APCLDFN)) Q:'APCLDFN D Q:$D(DUOUT)
- .;Check if Patient is registered here
- .S Y=$$HRN^AUPNPAT(APCLDFN,APCLFAC)
- .I Y="" Q
- .I Y<1 Q
- .;
- .I APCLSORT="NAME" S APCLSRT=$P(^DPT(APCLDFN,0),U)_U_APCLDFN
- .I APCLSORT="HRNO" S APCLSRT=Y
- .;
- .;--> Check for Other Insurance if user picked this option
- .I APCLOTH=1 D Q:APCLICTR>1
- ..S APCLICTR=0
- ..I +$O(^AUPNMCR("B",APCLDFN,0)) S APCLICTR=APCLICTR+1
- ..I +$O(^AUPNMCD("B",APCLDFN,0)) S APCLICTR=APCLICTR+1
- ..I +$O(^AUPNRRE("B",APCLDFN,0)) S APCLICTR=APCLICTR+1
- ..S X=0
- ..F S X=$O(^AUPNPRVT("B",APCLDFN,11,X)) Q:'X S APCLICTR=APCLICTR+1
- .;
- .S APCLCTR=0
- .S APCLIEN=0
- .S APCLFLAG=0
- .F S APCLIEN=$O(^AUPNMCR(APCLDFN,11,APCLIEN)) Q:'APCLIEN D
- ..S APCLCTR=APCLCTR+1
- ..I $P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="A" Q
- ..S APCLFLAG=APCLIEN
- ..S APCLBEG=$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U)
- ..S APCLEND=$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,2)
- ..;--> There is no Beg Date
- ..I APCLACT,APCLBEG="" S APCLFLAG=0
- ..;--> User wants to restrict to beg elig dates after beg date
- ..I APCLACT=2,APCLBEG<APCLBDAT S APCLFLAG=0
- ..;--> Beg Date is earlier than selected end date
- ..I APCLACT,APCLEDAT>0,APCLBEG>APCLEDAT S APCLFLAG=0
- ..;--> End date is before selected begin date
- ..I APCLACT,APCLEND>0,APCLEND<APCLBDAT S APCLFLAG=0
- .I APCLFLAG D
- ..;S APCLMRNO=$P(^AUPNMCR(APCLDFN,0),U,3)
- ..S APCLMRNO=$$GETMCR^AGUTL(APCLDFN) ;IHS/CMI/LAB NMCI PATCH 21
- ..S APCLMRSF=""
- ..S X=$P(^AUPNMCR(APCLDFN,0),U,4)
- ..I X S APCLMRSF=$G(^AUTTMCS(X,0))
- ..I APCLOTH,APCLCTR=1 D STORE
- ..I APCLOTH=0 D STORE
- ;
- S APCLCTR=0
- S APCLSRT=""
- F S APCLSRT=$O(^TMP($J,"APCLPYR",APCLSRT)) Q:APCLSRT="" D Q:$D(DUOUT)
- .S X=^TMP($J,"APCLPYR",APCLSRT)
- .S APCLDFN=$P(X,U)
- .S APCLBEG=$P(X,U,2)
- .S APCLEND=$P(X,U,3)
- .S APCLMRNO=$P(X,U,4)
- .S APCLMRSF=$P(X,U,5)
- .D WRT
- .S APCLCTR=APCLCTR+1
- .I $Y>(IOSL-5) D I '$D(DUOUT) D HEADING
- ..I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR K DIR
- ;
- I '$D(DUOUT) W !!,"Total: ",APCLCTR
- Q
- ;
- MRBLOOP ;EP
- I $E(IOST)="C" W !!,"Please be patient. This may take a few minutes.",!! H 6
- S APCLINAM="Medicare Part B"
- K ^TMP($J,"APCLPYR")
- S APCLPAGE=0
- ;
- D HEADING
- ;
- S APCLDFN=0
- F S APCLDFN=$O(^AUPNMCR(APCLDFN)) Q:'APCLDFN D Q:$D(DUOUT)
- .;Check if Patient is registered here
- .S Y=$$HRN^AUPNPAT(APCLDFN,APCLFAC)
- .I Y="" Q
- .I Y<1 Q
- .;
- .I APCLSORT="NAME" S APCLSRT=$P(^DPT(APCLDFN,0),U)_U_APCLDFN
- .I APCLSORT="HRNO" S APCLSRT=Y
- .;
- .;--> Check for Other Insurance if user picked this option
- .I APCLOTH=1 D Q:APCLICTR>1
- ..S APCLICTR=0
- ..I +$O(^AUPNMCR("B",APCLDFN,0)) S APCLICTR=APCLICTR+1
- ..I +$O(^AUPNMCD("B",APCLDFN,0)) S APCLICTR=APCLICTR+1
- ..I +$O(^AUPNRRE("B",APCLDFN,0)) S APCLICTR=APCLICTR+1
- ..S X=0
- ..F S X=$O(^AUPNPRVT("B",APCLDFN,11,X)) Q:'X S APCLICTR=APCLICTR+1
- .;
- .S APCLCTR=0
- .S APCLIEN=0
- .S APCLFLAG=0
- .F S APCLIEN=$O(^AUPNMCR(APCLDFN,11,APCLIEN)) Q:'APCLIEN D
- ..S APCLCTR=APCLCTR+1
- ..I $P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="B" Q
- ..S APCLFLAG=APCLIEN
- ..S APCLBEG=$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U)
- ..S APCLEND=$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,2)
- ..;--> There is no Beg Date
- ..I APCLACT,APCLBEG="" S APCLFLAG=0
- ..;--> User wants to restrict to beg elig dates after beg date
- ..I APCLACT=2,APCLBEG<APCLBDAT S APCLFLAG=0
- ..;--> Beg Date is earlier than selected end date
- ..I APCLACT,APCLEDAT>0,APCLBEG>APCLEDAT S APCLFLAG=0
- ..;--> End date is before selected begin date
- ..I APCLACT,APCLEND>0,APCLEND<APCLBDAT S APCLFLAG=0
- .I APCLFLAG D
- ..;S APCLMRNO=$P(^AUPNMCR(APCLDFN,0),U,3)
- ..S APCLMRNO=$$GETMCR^AGUTL(APCLDFN) ;IHS/CMI/LAB NMCI PATCH 21
- ..S APCLMRSF=""
- ..S X=$P(^AUPNMCR(APCLDFN,0),U,4)
- ..I X S APCLMRSF=$G(^AUTTMCS(X,0))
- ..I APCLOTH,APCLCTR=1 D STORE
- ..I APCLOTH=0 D STORE
- ;
- S APCLCTR=0
- S APCLSRT=""
- F S APCLSRT=$O(^TMP($J,"APCLPYR",APCLSRT)) Q:APCLSRT="" D Q:$D(DUOUT)
- .S X=^TMP($J,"APCLPYR",APCLSRT)
- .S APCLDFN=$P(X,U)
- .S APCLBEG=$P(X,U,2)
- .S APCLEND=$P(X,U,3)
- .S APCLMRNO=$P(X,U,4)
- .S APCLMRSF=$P(X,U,5)
- .D WRT
- .S APCLCTR=APCLCTR+1
- .I $Y>(IOSL-5) D I '$D(DUOUT) D HEADING
- ..I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR K DIR
- ;
- I '$D(DUOUT) W !!,"Total: ",APCLCTR
- Q
- ;
- MRDLOOP ;EP
- I $E(IOST)="C" W !!,"Please be patient. This may take a few minutes.",!! H 6
- S APCLINAM="Medicare Part D"
- K ^TMP($J,"APCLPYR")
- S APCLPAGE=0
- ;
- D HEADING
- ;
- S APCLDFN=0
- F S APCLDFN=$O(^AUPNMCR(APCLDFN)) Q:'APCLDFN D Q:$D(DUOUT)
- .;Check if Patient is registered here
- .S Y=$$HRN^AUPNPAT(APCLDFN,APCLFAC)
- .I Y="" Q
- .I Y<1 Q
- .;
- .I APCLSORT="NAME" S APCLSRT=$P(^DPT(APCLDFN,0),U)_U_APCLDFN
- .I APCLSORT="HRNO" S APCLSRT=Y
- .;
- .;--> Check for Other Insurance if user picked this option
- .I APCLOTH=1 D Q:APCLICTR>1
- ..S APCLICTR=0
- ..I +$O(^AUPNMCR("B",APCLDFN,0)) S APCLICTR=APCLICTR+1
- ..I +$O(^AUPNMCD("B",APCLDFN,0)) S APCLICTR=APCLICTR+1
- ..I +$O(^AUPNRRE("B",APCLDFN,0)) S APCLICTR=APCLICTR+1
- ..S X=0
- ..F S X=$O(^AUPNPRVT("B",APCLDFN,11,X)) Q:'X S APCLICTR=APCLICTR+1
- .;
- .S APCLCTR=0
- .S APCLIEN=0
- .S APCLFLAG=0
- .F S APCLIEN=$O(^AUPNMCR(APCLDFN,11,APCLIEN)) Q:'APCLIEN D
- ..S APCLCTR=APCLCTR+1
- ..I $P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="D" Q
- ..S APCLFLAG=APCLIEN
- ..S APCLBEG=$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U)
- ..S APCLEND=$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,2)
- ..;--> There is no Beg Date
- ..I APCLACT,APCLBEG="" S APCLFLAG=0
- ..;--> User wants to restrict to beg elig dates after beg date
- ..I APCLACT=2,APCLBEG<APCLBDAT S APCLFLAG=0
- ..;--> Beg Date is earlier than selected end date
- ..I APCLACT,APCLEDAT>0,APCLBEG>APCLEDAT S APCLFLAG=0
- ..;--> End date is before selected begin date
- ..I APCLACT,APCLEND>0,APCLEND<APCLBDAT S APCLFLAG=0
- .I APCLFLAG D
- ..;S APCLMRNO=$P(^AUPNMCR(APCLDFN,0),U,3)
- ..S APCLMRNO=$$GETMCR^AGUTL(APCLDFN) ;IHS/CMI/LAB NMCI PATCH 21
- ..S APCLMRSF=""
- ..S X=$P(^AUPNMCR(APCLDFN,0),U,4)
- ..I X S APCLMRSF=$G(^AUTTMCS(X,0))
- ..I APCLOTH,APCLCTR=1 D STORE
- ..I APCLOTH=0 D STORE
- ;
- S APCLCTR=0
- S APCLSRT=""
- F S APCLSRT=$O(^TMP($J,"APCLPYR",APCLSRT)) Q:APCLSRT="" D Q:$D(DUOUT)
- .S X=^TMP($J,"APCLPYR",APCLSRT)
- .S APCLDFN=$P(X,U)
- .S APCLBEG=$P(X,U,2)
- .S APCLEND=$P(X,U,3)
- .S APCLMRNO=$P(X,U,4)
- .S APCLMRSF=$P(X,U,5)
- .D WRT
- .S APCLCTR=APCLCTR+1
- .I $Y>(IOSL-5) D I '$D(DUOUT) D HEADING
- ..I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR K DIR
- ;
- I '$D(DUOUT) W !!,"Total: ",APCLCTR
- Q
- ;
- STORE ;
- S ^TMP($J,"APCLPYR",APCLSRT)=APCLDFN_U_APCLBEG_U_APCLEND_U_APCLMRNO_U_APCLMRSF
- Q
- ;
- WRT ;
- W $P(^DPT(APCLDFN,0),U)
- W ?32,$J($$HRN^AUPNPAT(APCLDFN,APCLFAC),6)
- W ?41,APCLMRNO
- W ?53,APCLMRSF
- I APCLALL=0 D Q
- .W ?57,$E(APCLBEG,4,5),"/",$E(APCLBEG,6,7),"/",$E(APCLBEG,2,3)
- .I APCLEND W ?67,$E(APCLEND,4,5),"/",$E(APCLEND,6,7),"/",$E(APCLEND,2,3)
- .W !
- S APCLIEN=0
- F S APCLIEN=$O(^AUPNMCR(APCLDFN,11,APCLIEN)) Q:'APCLIEN D
- .S APCLBEG=$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U)
- .I APCLACT=2,APCLBEG<APCLBDAT Q
- .S APCLEND=$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,2)
- .I APCLTYP="MRA",$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="A" Q
- .I APCLTYP="MRB",$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="B" Q
- .I APCLTYP="MRD",$P(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="D" Q
- .W ?57,$E(APCLBEG,4,5),"/",$E(APCLBEG,6,7),"/",$E(APCLBEG,2,3)
- .I APCLEND W ?67,$E(APCLEND,4,5),"/",$E(APCLEND,6,7),"/",$E(APCLEND,2,3)
- .W !
- Q
- ;
- HEADING ;
- D ^XBCLS
- W !
- S X=DT
- W $E(X,4,5),"/",$E(X,6,7),"/",$E(X,2,3)
- S X=$P($G(^DIC(4,APCLFAC,0)),U)
- W ?((IOM-$L(X))/2),X
- S APCLPAGE=APCLPAGE+1
- W ?70,"Page ",APCLPAGE
- W !
- ;
- S X="Patient List for "_APCLINAM
- W ?((IOM-$L(X))/2),X,!
- ;
- S X=""
- I APCLOTH=1 S X=X_"Having only this insurance"
- I X]"" W ?((IOM-$L(X))/2),X,!
- ;
- S X=""
- I APCLACT=0 S X=X_"With any eligibility dates"
- I APCLACT D
- .S X=X_"With eligibility "
- .I $G(APCLEDAT)=$G(APCLBDAT) S X=X_"as of "
- .I $G(APCLEDAT)'=$G(APCLBDAT) S X=X_"from "
- .S X=X_$E(APCLBDAT,4,5)_"/"_$E(APCLBDAT,6,7)_"/"_$E(APCLBDAT,2,3)
- .I $G(APCLEDAT)=$G(APCLBDAT) Q
- .I $G(APCLEDAT)="" Q
- .S X=X_" to "
- .S X=X_$E(APCLEDAT,4,5)_"/"_$E(APCLEDAT,6,7)_"/"_$E(APCLEDAT,2,3)
- I X]"" W ?((IOM-$L(X))/2),X,!
- ;
- W !
- ;
- W "Patient Name",?33,"HRNO",?43,"MCR #",?52,"SUF",?59,"Begin",?69,"End"
- W !
- ;
- W "------------",?32,"------",?41,"---------",?52,"---",?57,"--------",?67,"--------"
- W !
- Q
- APCLPYR2 ; IHS/CMI/LAB - Patients by Payer (Insurer) - Medicare ;
- +1 ;;2.0;IHS PCC SUITE;**21**;MAY 14, 2009;Build 34
- +2 QUIT
- +3 ;
- MRALOOP ;EP
- +1 IF $EXTRACT(IOST)="C"
- WRITE !!,"Please be patient. This may take a few minutes.",!!
- HANG 6
- +2 SET APCLINAM="Medicare Part A"
- +3 KILL ^TMP($JOB,"APCLPYR")
- +4 SET APCLPAGE=0
- +5 ;
- +6 DO HEADING
- +7 ;
- +8 SET APCLDFN=0
- +9 FOR
- SET APCLDFN=$ORDER(^AUPNMCR(APCLDFN))
- IF 'APCLDFN
- QUIT
- Begin DoDot:1
- +10 ;Check if Patient is registered here
- +11 SET Y=$$HRN^AUPNPAT(APCLDFN,APCLFAC)
- +12 IF Y=""
- QUIT
- +13 IF Y<1
- QUIT
- +14 ;
- +15 IF APCLSORT="NAME"
- SET APCLSRT=$PIECE(^DPT(APCLDFN,0),U)_U_APCLDFN
- +16 IF APCLSORT="HRNO"
- SET APCLSRT=Y
- +17 ;
- +18 ;--> Check for Other Insurance if user picked this option
- +19 IF APCLOTH=1
- Begin DoDot:2
- +20 SET APCLICTR=0
- +21 IF +$ORDER(^AUPNMCR("B",APCLDFN,0))
- SET APCLICTR=APCLICTR+1
- +22 IF +$ORDER(^AUPNMCD("B",APCLDFN,0))
- SET APCLICTR=APCLICTR+1
- +23 IF +$ORDER(^AUPNRRE("B",APCLDFN,0))
- SET APCLICTR=APCLICTR+1
- +24 SET X=0
- +25 FOR
- SET X=$ORDER(^AUPNPRVT("B",APCLDFN,11,X))
- IF 'X
- QUIT
- SET APCLICTR=APCLICTR+1
- End DoDot:2
- IF APCLICTR>1
- QUIT
- +26 ;
- +27 SET APCLCTR=0
- +28 SET APCLIEN=0
- +29 SET APCLFLAG=0
- +30 FOR
- SET APCLIEN=$ORDER(^AUPNMCR(APCLDFN,11,APCLIEN))
- IF 'APCLIEN
- QUIT
- Begin DoDot:2
- +31 SET APCLCTR=APCLCTR+1
- +32 IF $PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="A"
- QUIT
- +33 SET APCLFLAG=APCLIEN
- +34 SET APCLBEG=$PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U)
- +35 SET APCLEND=$PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,2)
- +36 ;--> There is no Beg Date
- +37 IF APCLACT
- IF APCLBEG=""
- SET APCLFLAG=0
- +38 ;--> User wants to restrict to beg elig dates after beg date
- +39 IF APCLACT=2
- IF APCLBEG<APCLBDAT
- SET APCLFLAG=0
- +40 ;--> Beg Date is earlier than selected end date
- +41 IF APCLACT
- IF APCLEDAT>0
- IF APCLBEG>APCLEDAT
- SET APCLFLAG=0
- +42 ;--> End date is before selected begin date
- +43 IF APCLACT
- IF APCLEND>0
- IF APCLEND<APCLBDAT
- SET APCLFLAG=0
- End DoDot:2
- +44 IF APCLFLAG
- Begin DoDot:2
- +45 ;S APCLMRNO=$P(^AUPNMCR(APCLDFN,0),U,3)
- +46 ;IHS/CMI/LAB NMCI PATCH 21
- SET APCLMRNO=$$GETMCR^AGUTL(APCLDFN)
- +47 SET APCLMRSF=""
- +48 SET X=$PIECE(^AUPNMCR(APCLDFN,0),U,4)
- +49 IF X
- SET APCLMRSF=$GET(^AUTTMCS(X,0))
- +50 IF APCLOTH
- IF APCLCTR=1
- DO STORE
- +51 IF APCLOTH=0
- DO STORE
- End DoDot:2
- End DoDot:1
- IF $DATA(DUOUT)
- QUIT
- +52 ;
- +53 SET APCLCTR=0
- +54 SET APCLSRT=""
- +55 FOR
- SET APCLSRT=$ORDER(^TMP($JOB,"APCLPYR",APCLSRT))
- IF APCLSRT=""
- QUIT
- Begin DoDot:1
- +56 SET X=^TMP($JOB,"APCLPYR",APCLSRT)
- +57 SET APCLDFN=$PIECE(X,U)
- +58 SET APCLBEG=$PIECE(X,U,2)
- +59 SET APCLEND=$PIECE(X,U,3)
- +60 SET APCLMRNO=$PIECE(X,U,4)
- +61 SET APCLMRSF=$PIECE(X,U,5)
- +62 DO WRT
- +63 SET APCLCTR=APCLCTR+1
- +64 IF $Y>(IOSL-5)
- Begin DoDot:2
- +65 IF $EXTRACT(IOST)="C"
- KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- End DoDot:2
- IF '$DATA(DUOUT)
- DO HEADING
- End DoDot:1
- IF $DATA(DUOUT)
- QUIT
- +66 ;
- +67 IF '$DATA(DUOUT)
- WRITE !!,"Total: ",APCLCTR
- +68 QUIT
- +69 ;
- MRBLOOP ;EP
- +1 IF $EXTRACT(IOST)="C"
- WRITE !!,"Please be patient. This may take a few minutes.",!!
- HANG 6
- +2 SET APCLINAM="Medicare Part B"
- +3 KILL ^TMP($JOB,"APCLPYR")
- +4 SET APCLPAGE=0
- +5 ;
- +6 DO HEADING
- +7 ;
- +8 SET APCLDFN=0
- +9 FOR
- SET APCLDFN=$ORDER(^AUPNMCR(APCLDFN))
- IF 'APCLDFN
- QUIT
- Begin DoDot:1
- +10 ;Check if Patient is registered here
- +11 SET Y=$$HRN^AUPNPAT(APCLDFN,APCLFAC)
- +12 IF Y=""
- QUIT
- +13 IF Y<1
- QUIT
- +14 ;
- +15 IF APCLSORT="NAME"
- SET APCLSRT=$PIECE(^DPT(APCLDFN,0),U)_U_APCLDFN
- +16 IF APCLSORT="HRNO"
- SET APCLSRT=Y
- +17 ;
- +18 ;--> Check for Other Insurance if user picked this option
- +19 IF APCLOTH=1
- Begin DoDot:2
- +20 SET APCLICTR=0
- +21 IF +$ORDER(^AUPNMCR("B",APCLDFN,0))
- SET APCLICTR=APCLICTR+1
- +22 IF +$ORDER(^AUPNMCD("B",APCLDFN,0))
- SET APCLICTR=APCLICTR+1
- +23 IF +$ORDER(^AUPNRRE("B",APCLDFN,0))
- SET APCLICTR=APCLICTR+1
- +24 SET X=0
- +25 FOR
- SET X=$ORDER(^AUPNPRVT("B",APCLDFN,11,X))
- IF 'X
- QUIT
- SET APCLICTR=APCLICTR+1
- End DoDot:2
- IF APCLICTR>1
- QUIT
- +26 ;
- +27 SET APCLCTR=0
- +28 SET APCLIEN=0
- +29 SET APCLFLAG=0
- +30 FOR
- SET APCLIEN=$ORDER(^AUPNMCR(APCLDFN,11,APCLIEN))
- IF 'APCLIEN
- QUIT
- Begin DoDot:2
- +31 SET APCLCTR=APCLCTR+1
- +32 IF $PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="B"
- QUIT
- +33 SET APCLFLAG=APCLIEN
- +34 SET APCLBEG=$PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U)
- +35 SET APCLEND=$PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,2)
- +36 ;--> There is no Beg Date
- +37 IF APCLACT
- IF APCLBEG=""
- SET APCLFLAG=0
- +38 ;--> User wants to restrict to beg elig dates after beg date
- +39 IF APCLACT=2
- IF APCLBEG<APCLBDAT
- SET APCLFLAG=0
- +40 ;--> Beg Date is earlier than selected end date
- +41 IF APCLACT
- IF APCLEDAT>0
- IF APCLBEG>APCLEDAT
- SET APCLFLAG=0
- +42 ;--> End date is before selected begin date
- +43 IF APCLACT
- IF APCLEND>0
- IF APCLEND<APCLBDAT
- SET APCLFLAG=0
- End DoDot:2
- +44 IF APCLFLAG
- Begin DoDot:2
- +45 ;S APCLMRNO=$P(^AUPNMCR(APCLDFN,0),U,3)
- +46 ;IHS/CMI/LAB NMCI PATCH 21
- SET APCLMRNO=$$GETMCR^AGUTL(APCLDFN)
- +47 SET APCLMRSF=""
- +48 SET X=$PIECE(^AUPNMCR(APCLDFN,0),U,4)
- +49 IF X
- SET APCLMRSF=$GET(^AUTTMCS(X,0))
- +50 IF APCLOTH
- IF APCLCTR=1
- DO STORE
- +51 IF APCLOTH=0
- DO STORE
- End DoDot:2
- End DoDot:1
- IF $DATA(DUOUT)
- QUIT
- +52 ;
- +53 SET APCLCTR=0
- +54 SET APCLSRT=""
- +55 FOR
- SET APCLSRT=$ORDER(^TMP($JOB,"APCLPYR",APCLSRT))
- IF APCLSRT=""
- QUIT
- Begin DoDot:1
- +56 SET X=^TMP($JOB,"APCLPYR",APCLSRT)
- +57 SET APCLDFN=$PIECE(X,U)
- +58 SET APCLBEG=$PIECE(X,U,2)
- +59 SET APCLEND=$PIECE(X,U,3)
- +60 SET APCLMRNO=$PIECE(X,U,4)
- +61 SET APCLMRSF=$PIECE(X,U,5)
- +62 DO WRT
- +63 SET APCLCTR=APCLCTR+1
- +64 IF $Y>(IOSL-5)
- Begin DoDot:2
- +65 IF $EXTRACT(IOST)="C"
- KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- End DoDot:2
- IF '$DATA(DUOUT)
- DO HEADING
- End DoDot:1
- IF $DATA(DUOUT)
- QUIT
- +66 ;
- +67 IF '$DATA(DUOUT)
- WRITE !!,"Total: ",APCLCTR
- +68 QUIT
- +69 ;
- MRDLOOP ;EP
- +1 IF $EXTRACT(IOST)="C"
- WRITE !!,"Please be patient. This may take a few minutes.",!!
- HANG 6
- +2 SET APCLINAM="Medicare Part D"
- +3 KILL ^TMP($JOB,"APCLPYR")
- +4 SET APCLPAGE=0
- +5 ;
- +6 DO HEADING
- +7 ;
- +8 SET APCLDFN=0
- +9 FOR
- SET APCLDFN=$ORDER(^AUPNMCR(APCLDFN))
- IF 'APCLDFN
- QUIT
- Begin DoDot:1
- +10 ;Check if Patient is registered here
- +11 SET Y=$$HRN^AUPNPAT(APCLDFN,APCLFAC)
- +12 IF Y=""
- QUIT
- +13 IF Y<1
- QUIT
- +14 ;
- +15 IF APCLSORT="NAME"
- SET APCLSRT=$PIECE(^DPT(APCLDFN,0),U)_U_APCLDFN
- +16 IF APCLSORT="HRNO"
- SET APCLSRT=Y
- +17 ;
- +18 ;--> Check for Other Insurance if user picked this option
- +19 IF APCLOTH=1
- Begin DoDot:2
- +20 SET APCLICTR=0
- +21 IF +$ORDER(^AUPNMCR("B",APCLDFN,0))
- SET APCLICTR=APCLICTR+1
- +22 IF +$ORDER(^AUPNMCD("B",APCLDFN,0))
- SET APCLICTR=APCLICTR+1
- +23 IF +$ORDER(^AUPNRRE("B",APCLDFN,0))
- SET APCLICTR=APCLICTR+1
- +24 SET X=0
- +25 FOR
- SET X=$ORDER(^AUPNPRVT("B",APCLDFN,11,X))
- IF 'X
- QUIT
- SET APCLICTR=APCLICTR+1
- End DoDot:2
- IF APCLICTR>1
- QUIT
- +26 ;
- +27 SET APCLCTR=0
- +28 SET APCLIEN=0
- +29 SET APCLFLAG=0
- +30 FOR
- SET APCLIEN=$ORDER(^AUPNMCR(APCLDFN,11,APCLIEN))
- IF 'APCLIEN
- QUIT
- Begin DoDot:2
- +31 SET APCLCTR=APCLCTR+1
- +32 IF $PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="D"
- QUIT
- +33 SET APCLFLAG=APCLIEN
- +34 SET APCLBEG=$PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U)
- +35 SET APCLEND=$PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,2)
- +36 ;--> There is no Beg Date
- +37 IF APCLACT
- IF APCLBEG=""
- SET APCLFLAG=0
- +38 ;--> User wants to restrict to beg elig dates after beg date
- +39 IF APCLACT=2
- IF APCLBEG<APCLBDAT
- SET APCLFLAG=0
- +40 ;--> Beg Date is earlier than selected end date
- +41 IF APCLACT
- IF APCLEDAT>0
- IF APCLBEG>APCLEDAT
- SET APCLFLAG=0
- +42 ;--> End date is before selected begin date
- +43 IF APCLACT
- IF APCLEND>0
- IF APCLEND<APCLBDAT
- SET APCLFLAG=0
- End DoDot:2
- +44 IF APCLFLAG
- Begin DoDot:2
- +45 ;S APCLMRNO=$P(^AUPNMCR(APCLDFN,0),U,3)
- +46 ;IHS/CMI/LAB NMCI PATCH 21
- SET APCLMRNO=$$GETMCR^AGUTL(APCLDFN)
- +47 SET APCLMRSF=""
- +48 SET X=$PIECE(^AUPNMCR(APCLDFN,0),U,4)
- +49 IF X
- SET APCLMRSF=$GET(^AUTTMCS(X,0))
- +50 IF APCLOTH
- IF APCLCTR=1
- DO STORE
- +51 IF APCLOTH=0
- DO STORE
- End DoDot:2
- End DoDot:1
- IF $DATA(DUOUT)
- QUIT
- +52 ;
- +53 SET APCLCTR=0
- +54 SET APCLSRT=""
- +55 FOR
- SET APCLSRT=$ORDER(^TMP($JOB,"APCLPYR",APCLSRT))
- IF APCLSRT=""
- QUIT
- Begin DoDot:1
- +56 SET X=^TMP($JOB,"APCLPYR",APCLSRT)
- +57 SET APCLDFN=$PIECE(X,U)
- +58 SET APCLBEG=$PIECE(X,U,2)
- +59 SET APCLEND=$PIECE(X,U,3)
- +60 SET APCLMRNO=$PIECE(X,U,4)
- +61 SET APCLMRSF=$PIECE(X,U,5)
- +62 DO WRT
- +63 SET APCLCTR=APCLCTR+1
- +64 IF $Y>(IOSL-5)
- Begin DoDot:2
- +65 IF $EXTRACT(IOST)="C"
- KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- End DoDot:2
- IF '$DATA(DUOUT)
- DO HEADING
- End DoDot:1
- IF $DATA(DUOUT)
- QUIT
- +66 ;
- +67 IF '$DATA(DUOUT)
- WRITE !!,"Total: ",APCLCTR
- +68 QUIT
- +69 ;
- STORE ;
- +1 SET ^TMP($JOB,"APCLPYR",APCLSRT)=APCLDFN_U_APCLBEG_U_APCLEND_U_APCLMRNO_U_APCLMRSF
- +2 QUIT
- +3 ;
- WRT ;
- +1 WRITE $PIECE(^DPT(APCLDFN,0),U)
- +2 WRITE ?32,$JUSTIFY($$HRN^AUPNPAT(APCLDFN,APCLFAC),6)
- +3 WRITE ?41,APCLMRNO
- +4 WRITE ?53,APCLMRSF
- +5 IF APCLALL=0
- Begin DoDot:1
- +6 WRITE ?57,$EXTRACT(APCLBEG,4,5),"/",$EXTRACT(APCLBEG,6,7),"/",$EXTRACT(APCLBEG,2,3)
- +7 IF APCLEND
- WRITE ?67,$EXTRACT(APCLEND,4,5),"/",$EXTRACT(APCLEND,6,7),"/",$EXTRACT(APCLEND,2,3)
- +8 WRITE !
- End DoDot:1
- QUIT
- +9 SET APCLIEN=0
- +10 FOR
- SET APCLIEN=$ORDER(^AUPNMCR(APCLDFN,11,APCLIEN))
- IF 'APCLIEN
- QUIT
- Begin DoDot:1
- +11 SET APCLBEG=$PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U)
- +12 IF APCLACT=2
- IF APCLBEG<APCLBDAT
- QUIT
- +13 SET APCLEND=$PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,2)
- +14 IF APCLTYP="MRA"
- IF $PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="A"
- QUIT
- +15 IF APCLTYP="MRB"
- IF $PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="B"
- QUIT
- +16 IF APCLTYP="MRD"
- IF $PIECE(^AUPNMCR(APCLDFN,11,APCLIEN,0),U,3)'="D"
- QUIT
- +17 WRITE ?57,$EXTRACT(APCLBEG,4,5),"/",$EXTRACT(APCLBEG,6,7),"/",$EXTRACT(APCLBEG,2,3)
- +18 IF APCLEND
- WRITE ?67,$EXTRACT(APCLEND,4,5),"/",$EXTRACT(APCLEND,6,7),"/",$EXTRACT(APCLEND,2,3)
- +19 WRITE !
- End DoDot:1
- +20 QUIT
- +21 ;
- HEADING ;
- +1 DO ^XBCLS
- +2 WRITE !
- +3 SET X=DT
- +4 WRITE $EXTRACT(X,4,5),"/",$EXTRACT(X,6,7),"/",$EXTRACT(X,2,3)
- +5 SET X=$PIECE($GET(^DIC(4,APCLFAC,0)),U)
- +6 WRITE ?((IOM-$LENGTH(X))/2),X
- +7 SET APCLPAGE=APCLPAGE+1
- +8 WRITE ?70,"Page ",APCLPAGE
- +9 WRITE !
- +10 ;
- +11 SET X="Patient List for "_APCLINAM
- +12 WRITE ?((IOM-$LENGTH(X))/2),X,!
- +13 ;
- +14 SET X=""
- +15 IF APCLOTH=1
- SET X=X_"Having only this insurance"
- +16 IF X]""
- WRITE ?((IOM-$LENGTH(X))/2),X,!
- +17 ;
- +18 SET X=""
- +19 IF APCLACT=0
- SET X=X_"With any eligibility dates"
- +20 IF APCLACT
- Begin DoDot:1
- +21 SET X=X_"With eligibility "
- +22 IF $GET(APCLEDAT)=$GET(APCLBDAT)
- SET X=X_"as of "
- +23 IF $GET(APCLEDAT)'=$GET(APCLBDAT)
- SET X=X_"from "
- +24 SET X=X_$EXTRACT(APCLBDAT,4,5)_"/"_$EXTRACT(APCLBDAT,6,7)_"/"_$EXTRACT(APCLBDAT,2,3)
- +25 IF $GET(APCLEDAT)=$GET(APCLBDAT)
- QUIT
- +26 IF $GET(APCLEDAT)=""
- QUIT
- +27 SET X=X_" to "
- +28 SET X=X_$EXTRACT(APCLEDAT,4,5)_"/"_$EXTRACT(APCLEDAT,6,7)_"/"_$EXTRACT(APCLEDAT,2,3)
- End DoDot:1
- +29 IF X]""
- WRITE ?((IOM-$LENGTH(X))/2),X,!
- +30 ;
- +31 WRITE !
- +32 ;
- +33 WRITE "Patient Name",?33,"HRNO",?43,"MCR #",?52,"SUF",?59,"Begin",?69,"End"
- +34 WRITE !
- +35 ;
- +36 WRITE "------------",?32,"------",?41,"---------",?52,"---",?57,"--------",?67,"--------"
- +37 WRITE !
- +38 QUIT