- APCLPYR4 ; IHS/CMI/LAB - Patients by Payer (Insurer) - Pvt Insurance ;
- ;;2.0;IHS PCC SUITE;;MAY 14, 2009
- Q
- ;
- PVTLOOP ;EP
- I $E(IOST)="C" W !!,"Please be patient. This may take a few minutes.",!! H 6
- S APCLINAM=$P(^AUTNINS(APCLPYR,0),U)
- K ^TMP($J,"APCLPYR")
- S APCLPAGE=0
- ;
- D HEADING
- ;
- S APCLDFN=0
- F S APCLDFN=$O(^AUPNPRVT(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(^AUPNPRVT(APCLDFN,11,APCLIEN)) Q:'APCLIEN D
- ..S APCLCTR=APCLCTR+1
- ..I $P(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U)'=APCLPYR Q
- ..S APCLFLAG=APCLIEN
- ..S APCLBEG=$P(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,6)
- ..S APCLEND=$P(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,7)
- ..S APCLPVNO=$S($P($G(^AUPNPRVT(APCLDFN,11,APCLIEN,2)),U)]"":$P(^AUPNPRVT(APCLDFN,11,APCLIEN,2),U),$P(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,8):$P(^AUPN3PPH($P(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,8),0),U,4),1:$P(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,2))
- ..;--> 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 APCLIEN=0
- .F S APCLIEN=$O(^TMP($J,"APCLPYR",APCLSRT,APCLIEN)) Q:'APCLIEN D Q:$D(DUOUT)
- ..S X=^TMP($J,"APCLPYR",APCLSRT,APCLIEN)
- ..S APCLDFN=$P(X,U)
- ..S APCLBEG=$P(X,U,2)
- ..S APCLEND=$P(X,U,3)
- ..S APCLPVNO=$P(X,U,4)
- ..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,APCLIEN)=APCLDFN_U_APCLBEG_U_APCLEND_U_APCLPVNO
- Q
- ;
- WRT ;
- W $P(^DPT(APCLDFN,0),U)
- W ?32,$J($$HRN^AUPNPAT(APCLDFN,APCLFAC),6)
- W ?40,APCLPVNO
- I APCLALL=0 D Q
- .W ?58,$E(APCLBEG,4,5),"/",$E(APCLBEG,6,7),"/",$E(APCLBEG,2,3)
- .I APCLEND W ?68,$E(APCLEND,4,5),"/",$E(APCLEND,6,7),"/",$E(APCLEND,2,3)
- .W !
- S APCLBEG=$P(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,6)
- S APCLEND=$P(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,7)
- W ?58,$E(APCLBEG,4,5),"/",$E(APCLBEG,6,7),"/",$E(APCLBEG,2,3)
- I APCLEND W ?68,$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 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",?42,"Policy #",?60,"Begin",?70,"End"
- W !
- ;
- W "------------",?32,"------",?40,"----------------",?58,"--------",?68,"--------"
- W !
- Q
- APCLPYR4 ; IHS/CMI/LAB - Patients by Payer (Insurer) - Pvt Insurance ;
- +1 ;;2.0;IHS PCC SUITE;;MAY 14, 2009
- +2 QUIT
- +3 ;
- PVTLOOP ;EP
- +1 IF $EXTRACT(IOST)="C"
- WRITE !!,"Please be patient. This may take a few minutes.",!!
- HANG 6
- +2 SET APCLINAM=$PIECE(^AUTNINS(APCLPYR,0),U)
- +3 KILL ^TMP($JOB,"APCLPYR")
- +4 SET APCLPAGE=0
- +5 ;
- +6 DO HEADING
- +7 ;
- +8 SET APCLDFN=0
- +9 FOR
- SET APCLDFN=$ORDER(^AUPNPRVT(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(^AUPNPRVT(APCLDFN,11,APCLIEN))
- IF 'APCLIEN
- QUIT
- Begin DoDot:2
- +31 SET APCLCTR=APCLCTR+1
- +32 IF $PIECE(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U)'=APCLPYR
- QUIT
- +33 SET APCLFLAG=APCLIEN
- +34 SET APCLBEG=$PIECE(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,6)
- +35 SET APCLEND=$PIECE(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,7)
- +36 SET APCLPVNO=$SELECT($PIECE(...
- ... $GET(^AUPNPRVT(APCLDFN,11,APCLIEN,2)),U)]"":$PIECE(^AUPNPRVT(APCLDFN,11,APCLIEN,2),U),$PIECE(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,8):$PIECE(^AUPN3PPH($PIECE(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,8),0),U,4),1:$PIECE(^AUPNPRVT(APCLDF
- N,11,APCLIEN,0),U,2))
- +37 ;--> There is no Beg Date
- +38 IF APCLACT
- IF APCLBEG=""
- SET APCLFLAG=0
- +39 ;--> User wants to restrict to beg dates after begin date
- +40 IF APCLACT=2
- IF APCLBEG<APCLBDAT
- SET APCLFLAG=0
- +41 ;--> Beg Date is earlier than selected end date
- +42 IF APCLACT
- IF APCLEDAT>0
- IF APCLBEG>APCLEDAT
- SET APCLFLAG=0
- +43 ;--> End date is before selected begin date
- +44 IF APCLACT
- IF APCLEND>0
- IF APCLEND<APCLBDAT
- SET APCLFLAG=0
- +45 IF APCLFLAG
- Begin DoDot:3
- +46 IF APCLOTH
- IF APCLCTR=1
- DO STORE
- +47 IF APCLOTH=0
- DO STORE
- End DoDot:3
- End DoDot:2
- End DoDot:1
- IF $DATA(DUOUT)
- QUIT
- +48 ;
- +49 SET APCLCTR=0
- +50 SET APCLSRT=""
- +51 FOR
- SET APCLSRT=$ORDER(^TMP($JOB,"APCLPYR",APCLSRT))
- IF APCLSRT=""
- QUIT
- Begin DoDot:1
- +52 SET APCLIEN=0
- +53 FOR
- SET APCLIEN=$ORDER(^TMP($JOB,"APCLPYR",APCLSRT,APCLIEN))
- IF 'APCLIEN
- QUIT
- Begin DoDot:2
- +54 SET X=^TMP($JOB,"APCLPYR",APCLSRT,APCLIEN)
- +55 SET APCLDFN=$PIECE(X,U)
- +56 SET APCLBEG=$PIECE(X,U,2)
- +57 SET APCLEND=$PIECE(X,U,3)
- +58 SET APCLPVNO=$PIECE(X,U,4)
- +59 DO WRT
- +60 SET APCLCTR=APCLCTR+1
- +61 IF $Y>(IOSL-5)
- Begin DoDot:3
- +62 IF $EXTRACT(IOST)="C"
- KILL DIR
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- End DoDot:3
- IF '$DATA(DUOUT)
- DO HEADING
- End DoDot:2
- IF $DATA(DUOUT)
- QUIT
- End DoDot:1
- IF $DATA(DUOUT)
- QUIT
- +63 ;
- +64 IF '$DATA(DUOUT)
- WRITE !!,"Total: ",APCLCTR
- +65 QUIT
- +66 ;
- STORE ;
- +1 SET ^TMP($JOB,"APCLPYR",APCLSRT,APCLIEN)=APCLDFN_U_APCLBEG_U_APCLEND_U_APCLPVNO
- +2 QUIT
- +3 ;
- WRT ;
- +1 WRITE $PIECE(^DPT(APCLDFN,0),U)
- +2 WRITE ?32,$JUSTIFY($$HRN^AUPNPAT(APCLDFN,APCLFAC),6)
- +3 WRITE ?40,APCLPVNO
- +4 IF APCLALL=0
- Begin DoDot:1
- +5 WRITE ?58,$EXTRACT(APCLBEG,4,5),"/",$EXTRACT(APCLBEG,6,7),"/",$EXTRACT(APCLBEG,2,3)
- +6 IF APCLEND
- WRITE ?68,$EXTRACT(APCLEND,4,5),"/",$EXTRACT(APCLEND,6,7),"/",$EXTRACT(APCLEND,2,3)
- +7 WRITE !
- End DoDot:1
- QUIT
- +8 SET APCLBEG=$PIECE(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,6)
- +9 SET APCLEND=$PIECE(^AUPNPRVT(APCLDFN,11,APCLIEN,0),U,7)
- +10 WRITE ?58,$EXTRACT(APCLBEG,4,5),"/",$EXTRACT(APCLBEG,6,7),"/",$EXTRACT(APCLBEG,2,3)
- +11 IF APCLEND
- WRITE ?68,$EXTRACT(APCLEND,4,5),"/",$EXTRACT(APCLEND,6,7),"/",$EXTRACT(APCLEND,2,3)
- +12 WRITE !
- +13 QUIT
- +14 ;
- 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 from "
- +22 SET X=X_$EXTRACT(APCLBDAT,4,5)_"/"_$EXTRACT(APCLBDAT,6,7)_"/"_$EXTRACT(APCLBDAT,2,3)
- +23 IF $GET(APCLEDAT)=""
- QUIT
- +24 SET X=X_" to "
- +25 SET X=X_$EXTRACT(APCLEDAT,4,5)_"/"_$EXTRACT(APCLEDAT,6,7)_"/"_$EXTRACT(APCLEDAT,2,3)
- End DoDot:1
- +26 IF X]""
- WRITE ?((IOM-$LENGTH(X))/2),X,!
- +27 ;
- +28 WRITE !
- +29 ;
- +30 WRITE "Patient Name",?33,"HRNO",?42,"Policy #",?60,"Begin",?70,"End"
- +31 WRITE !
- +32 ;
- +33 WRITE "------------",?32,"------",?40,"----------------",?58,"--------",?68,"--------"
- +34 WRITE !
- +35 QUIT