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

APCLPYR3.m

Go to the documentation of this file.
APCLPYR3 ; IHS/CMI/LAB - Patients by Payer (Insurer) - Medicaid ;
 ;;2.0;IHS PCC SUITE;;MAY 14, 2009
 Q
 ;
MCDLOOP ;EP
 I $E(IOST)="C" W !!,"Please be patient.  This may take a few minutes.",!! H 6
 S APCLINAM="Medicaid"
 K ^TMP($J,"APCLPYR")
 S APCLPAGE=0
 ;
 I $G(APCLMCST) S APCLINAM=$P(^DIC(5,APCLMCST,0),U)_" MEDICAID"
 I $G(APCLPYR) S APCLINAM=APCLINAM_" for Plan "_$P(^AUTNINS(APCLPYR,0),U)
 ;
 D HEADING
 ;
 S APCLMIEN=0
 F  S APCLMIEN=$O(^AUPNMCD(APCLMIEN)) Q:'APCLMIEN  D  Q:$D(DUOUT)
 .I $G(APCLMCST) Q:$P(^AUPNMCD(APCLMIEN,0),U,4)'=APCLMCST
 .I $G(APCLPYR) Q:$P(^AUPNMCD(APCLMIEN,0),U,10)'=APCLPYR
 .;Check if Patient is registered here
 .S APCLDFN=$P(^AUPNMCD(APCLMIEN,0),U)
 .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>0
 ..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
 .S APCLRATE="",APCLPLAN=""
 .F  S APCLIEN=$O(^AUPNMCD(APCLMIEN,11,APCLIEN)) Q:'APCLIEN  D
 ..S APCLCTR=APCLCTR+1
 ..S APCLFLAG=APCLIEN
 ..S APCLBEG=$P(^AUPNMCD(APCLMIEN,11,APCLIEN,0),U)
 ..S APCLEND=$P(^AUPNMCD(APCLMIEN,11,APCLIEN,0),U,2)
 ..S APCLRATE=$P(^AUPNMCD(APCLMIEN,0),U,11)
 ..S APCLMCNO=$P(^AUPNMCD(APCLMIEN,0),U,3)
 ..S X=$P(^AUPNMCD(APCLMIEN,0),U,10)
 ..I X S X=$G(^AUTNINS(X,0),U)
 ..S APCLPLAN=X
 ..;--> There is no Beg Date 
 ..I APCLACT,APCLBEG="" S APCLFLAG=0
 ..;--> User wants to restrict to beg dates after begin 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
 ...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 APCLMIEN=0
 .F  S APCLMIEN=$O(^TMP($J,"APCLPYR",APCLSRT,APCLMIEN)) Q:'APCLMIEN  D  Q:$D(DUOUT)
 ..S X=^TMP($J,"APCLPYR",APCLSRT,APCLMIEN)
 ..S APCLDFN=$P(X,U)
 ..S APCLBEG=$P(X,U,2)
 ..S APCLEND=$P(X,U,3)
 ..S APCLMCNO=$P(X,U,4)
 ..S APCLRATE=$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,APCLMIEN)=APCLDFN_U_APCLBEG_U_APCLEND_U_APCLMCNO_U_$G(APCLRATE)
 Q
 ;
WRT ;
 W $P(^DPT(APCLDFN,0),U)
 W ?32,$J($$HRN^AUPNPAT(APCLDFN,APCLFAC),6)
 W ?41,APCLMCNO
 W ?52,APCLRATE
 I APCLALL=0 D  Q
 .W ?60,$E(APCLBEG,4,5),"/",$E(APCLBEG,6,7),"/",$E(APCLBEG,2,3)
 .I APCLEND W ?70,$E(APCLEND,4,5),"/",$E(APCLEND,6,7),"/",$E(APCLEND,2,3)
 .W !
 S APCLIEN=0
 F  S APCLIEN=$O(^AUPNMCD(APCLMIEN,11,APCLIEN)) Q:'APCLIEN  D
 .S APCLBEG=$P(^AUPNMCD(APCLMIEN,11,APCLIEN,0),U)
 .I APCLACT=2,APCLBEG<APCLBDAT Q
 .S APCLEND=$P(^AUPNMCD(APCLMIEN,11,APCLIEN,0),U,2)
 .W ?60,$E(APCLBEG,4,5),"/",$E(APCLBEG,6,7),"/",$E(APCLBEG,2,3)
 .I APCLEND W ?70,$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
 W !
 ;
 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 from "
 .S X=X_$E(APCLBDAT,4,5)_"/"_$E(APCLBDAT,6,7)_"/"_$E(APCLBDAT,2,3)
 .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,"MCD #",?53,"Rate",?62,"Begin",?72,"End"
 W !
 ;
 W "------------",?32,"------",?41,"---------",?52,"------",?60,"--------",?70,"--------"
 W !
 Q