Changeset 623 for WorldVistAEHR/trunk/r/FEE_BASIS-FB/FBPCR.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/FEE_BASIS-FB/FBPCR.m
r613 r623 1 FBPCR ;AISC/DMK,GRR,TET-POTENTIAL COST RECOVERY OUTPUT DRIVER ;23 May 2006 10:06 AM 2 ;;3.5;FEE BASIS;**12,48,76,98,103**;JAN 30, 1995;Build 19 3 ;;Per VHA Directive 2004-038, this routine should not be modified. 4 ; DBIA SUPPORTED REF $$NPI^XUSNPI = 4532 5 DOC ;Refer to fbdoc, tag fbpcr, for documentation of fbpcr* routines 6 PSF ;select one/many/all primary service failities 7 S FBARRLTC="" 8 W !! S DIC="^DIC(4,",VAUTSTR="Primary Service Facility",VAUTNI=2,VAUTVB="FBPSV" D FIRST^VAUTOMA K DIC I Y=-1 G EXIT 9 ARRAY ;set fee program array for all programs 10 S FBPI=0 F S FBPI=$O(^FBAA(161.8,FBPI)) Q:'FBPI S FBPIN=$G(^(FBPI,0)) I $P(FBPIN,U,3) S FBPROG(FBPI)=$P(FBPIN,U) 11 I '$D(FBPROG) G EXIT 12 ;prepare array with LTC POV codes 13 D MKARRLTC^FBPCR4 14 ;what party to include 15 K DIR 16 S DIR(0)="SO^P:Patient;I:Insurance;B:Both",DIR("A")="Include (P)atient Co-pays / (I)nsurance / (B)oth",DIR("B")="Both" 17 S DIR("?")=" Select type of recover to include",DIR("?",1)=" P - include only recover from patient copays",DIR("?",2)=" I - include only recover from insurance",DIR("?",3)=" B - include both",DIR("L")="" 18 D ^DIR S FBPARTY=$S($G(Y(0))="Patient":1,$G(Y(0))="Insurance":2,$G(Y(0))="Both":3,X="Both":3,1:0) 19 K DIR 20 G:FBPARTY=0 EXIT 21 ;what type of copay to include 22 S FBCOPAY=3 23 I FBPARTY'=2 D 24 . S DIR(0)="SO^M:MeansTest;L:LTC;B:Both",DIR("A")="Include (M)eans Test Co-pays /(L)TC Co-pays /(B)oth",DIR("B")="Both" 25 . S DIR("?")=" Select services to include",DIR("?",1)=" M - include only Means Test copays",DIR("?",2)=" L - include only LTC copays",DIR("?",3)=" B - include both",DIR("L")="" 26 . D ^DIR S FBCOPAY=$S($G(Y(0))="LTC":1,$G(Y(0))="MeansTest":2,$G(Y(0))="Both":3,X="Both":3,1:0) 27 . K DIR 28 G:FBCOPAY=0 EXIT 29 ; 30 ;include patients if their insurance informations is unavailable? 31 S FBINCUNK=0 32 I FBPARTY=2!(FBPARTY=3) D 33 . S FBINCUNK=1 34 . N Y,X 35 . W !! 36 . S DIR("A")="Do you want to include patients whose insurance status is unavailable? " 37 . S DIR("?")="Please answer Yes or No." 38 . S DIR("B")="YES",DIR(0)="YA^^" 39 . D ^DIR K DIR 40 . I $G(DIRUT) S FBINCUNK=-1 Q 41 . I $G(Y)=0 S FBINCUNK=0 42 I FBINCUNK=-1 G EXIT ;uparrow - exit 43 ; 44 DATE ;select date range 45 D DATE^FBAAUTL I FBPOP G PSF 46 S FBBDATE=BEGDATE,FBEDATE=ENDDATE 47 S Z=9999999.9999,FBBEG=Z-FBEDATE,FBEND=Z-FBBDATE 48 Q K ^TMP($J,"FB"),^TMP($J,"FBINSIBAPI"),DIC 49 ; 50 S VAR="FBINCUNK^FBARRLTC^FBARRLTC(^FBPARTY^FBCOPAY^FBNAME^FBIEN^FBID^FBBEG^FBEND^FBBDATE^FBEDATE^FBPSV^FBPSV(^FBPROG(",VAL=VAR,PGM="DQ^FBPCR",IOP="Q" D ZIS^FBAAUTL G:FBPOP EXIT 51 DQ S $P(FBDASH,"=",80)="",$P(FBDASH1,"-",80)="",FBPG=0,FBCRT=$S($E(IOST,1,2)="C-":1,1:0),FBOUT=0,FBBEG=FBBEG-.9 U IO 52 SORT ;sort driver for payment output(s) 53 S FBPI=0 F S FBPI=$O(FBPROG(FBPI)) Q:'FBPI S FBXPROG=FBPROG(FBPI) D 54 .I FBPI=2 D EN^FBPCR2 ;outpatient payments 55 .I FBPI=3 D EN^FBPCR3 ;pharmacy payments 56 .I FBPI=6!(FBPI=7) S:FBPI=6&($D(FBPROG(7))) FBPI=67 D EN^FBPCR67 S:FBPI=67 FBPI=7 ;civil hospital/cnh payments 57 PRINT ;print driver for payment output(s) 58 I $G(^TMP($J,"FBINSIBAPI"))>0 D HDRUNK 59 S FBPI=$O(^TMP($J,"FB",0)) I FBPI']"" D WMSG G OUT 60 S FBSTA=0 61 S FBPSF=0 F S FBPSF=$O(^TMP($J,"FB",FBPSF)) Q:'FBPSF!FBOUT D STA S FBPT="" F S FBPT=$O(^TMP($J,"FB",FBPSF,FBPT)) Q:FBPT']""!FBOUT S DFN=$P(FBPT,";",2) D VET S FBPI=0 F S FBPI=$O(FBPROG(FBPI)) Q:'FBPI S FBXPROG=FBPROG(FBPI) D Q:FBOUT 62 .I FBPSF_FBPT'=FBSTA D HDR Q:FBOUT 63 .I FBPI=2,$D(^TMP($J,"FB",FBPSF,FBPT,FBPI)) D PRINT^FBPCR2 Q 64 .I FBPI=3 D:$D(^TMP($J,"FB",FBPSF,FBPT,FBPI)) PRINT^FBPCR3 Q 65 .I FBPI=6!(FBPI=7) D:$D(^TMP($J,"FB",FBPSF,FBPT,FBPI)) PRINT^FBPCR671 Q 66 OUT I $G(^TMP($J,"FBINSIBAPI"))>0 D ERRHDL^FBPCR4 67 I FBOUT!$D(ZTQUEUED) G EXIT 68 D EXIT G PSF 69 Q 70 EXIT ;kill and quit 71 KILL ;kill all variables set in the FBPCR* routines, other than fbx 72 D CLOSE^FBAAUTL K ^TMP($J,"FB") 73 K A1,A2,A3,BEGDATE,C,D,D2,DFN,DIC,DIR,DTOUT,DUOUT,ENDDATE,FBPDXC,FBPARTY,FBCOPAY,FBARRLTC,FBINCUNK 74 K FBAAA,FBAACPTC,FBAC,FBAP,FBBATCH,FBBDATE,FBBEG,FBBN,FBCATC,FBCNT,FBCP,FBCRT,FBDA1,FBDASH,FBDASH1,FBDATA,FBDOB,FBDRUG,FBDT,FBDT1,FBDOS,FBDX,FBDX1,FBEDATE,FBEND,FBERR,FBFD,FBFD1,FBHEAD 75 K FBI,FBID,FBIEN,FBIN,FBINS,FBINVN,FBIX,FBJ,FBLOC,FBM,FBNAME,FBOB,FBOPI,FBOUT,FBOV,FBP,FBPAT,FBPD,FBPDX,FBPG,FBPI,FBPID,FBPIN,FBPNAME,FBPROC,FBPROC1,FBPROG,FBPSF,FBPSFNAM,FBPSFNUM,FBPSV,FBPT,FBPV,FBQTY,FBREIM,FBRX 76 K FBSC,FBSL,FBSTA,FBSTR,FBSUSP,FBTA,FBTYPE,FBV,FBVCHAIN,FBVEN,FBVENID,FBVNAME,FBVI,FBVID,FBVP,FBXPROG,FBY,FBZ,I,IOP,J,K,L,M,N,PGM,T,V,VA,VAERR,VAL,VAR,VAUTNI,VAUTSTR,VAUTVB,X,Y,Z,FBSTANPI,FBXX 77 Q 78 WMSG ;write message if no matches found 79 D HDR W !!?3,"There are no potential cost recoveries on file" 80 W !?5,"for specified date range: ",$$DATX^FBAAUTL(FBBDATE)," through ",$$DATX^FBAAUTL(FBEDATE) 81 I 'FBPSV D 82 .W ",",!?5,"and selected Primary Service Area(s):" 83 .S FBPSF=0 F S FBPSF=$O(FBPSV(FBPSF)) Q:'FBPSF W !?31,$G(FBPSV(FBPSF)) 84 E W !?5,"and ALL Primary Service Areas " 85 W ".",*7,!! 86 Q 87 ; 88 CATC(DFN,FBDT,FBPOV) ; 89 ;treats all copays as Means test for date < 3020705 (JULY 5,2002) 90 ;check if patient is liable for copay 91 ;INPUT: 92 ; DFN = IEN of Patient file 93 ; FBDT= Date 94 ; FBPOV = POV code (for LTC determination) 95 ;OUTPUT: 96 ;0 - the patient is not liable for any co-pay; 97 ;1 - if Means test catc or pending adjudication and agree to pay deduc 98 ;2 - the patient is liable for LTC co-pay; 99 ;3 - no 1010EC on file 100 ;4 - more analysis is needed to determine the patient liability 101 N FBLTC,FBISLTC 102 S FBCATC=$$BIL^DGMTUB(DFN,FBDT) 103 I '$D(FBPOV)!(FBDT<3020705) Q $S(FBCATC:1,1:0) 104 S FBISLTC=$$ISLTC^FBPCR4(FBPOV) 105 I FBISLTC=0 Q $S(FBCATC:1,1:0) ;Means test 106 I FBISLTC=2 Q 0 ;LTC-service, but LTC-copay is not applicable 107 S FBLTC=$$LTCST^FBPCR4(DFN,FBDT) 108 I FBLTC=2 Q 2 ;LTC copay 109 I FBLTC=0 Q 3 ;no 1010EC on file 110 I FBLTC=4 Q 4 ;more info needed 111 Q 0 ;exemption from LTC -copay 112 ; 113 VET ;set vet name/ssn/dob info 114 ;INPUT: DFN = IEN of Patient file 115 ; FBPI = IEN of fee program (optional) 116 ;OUTPUT: FBPNAME = Patient's name 117 ; FBPID = Patient's pid 118 ; FBDOB = Patient's dob (if pharmacy fee program) 119 N N 120 S N=$G(^DPT(DFN,0)),FBPNAME=$P(N,U),FBPID=$$SSN^FBAAUTL(DFN),FBDOB=$$FMTE^XLFDT($P(N,U,3)) 121 Q 122 STA ;set station name & number 123 ;INPUT = FBPSF - IEN to institution file 124 ;OUTPUT = FBPSFNAM = station name 125 ; FBPSFNUM = station number 126 S FBPSFNAM=$P($G(^DIC(4,FBPSF,0)),U),FBPSFNUM=$P($G(^DIC(4,FBPSF,99)),U) 127 S:FBPSFNAM=+FBPSFNAM FBPSFNAM="UNKNOWN" 128 S FBSTANPI=$S($G(FBPSFNAM)="":"",FBPSFNAM="UNKNOWN":"",1:$P($$NPI^XUSNPI("Organization_ID",FBPSF),U,1)) 129 Q 130 PAGE ;form feed when new station/patient 131 S FBSTA=$G(FBPSF)_$G(FBPT) 132 I FBCRT&(FBPG'=0) D CR Q:FBOUT 133 I FBPG>0!FBCRT W @IOF 134 S FBPG=FBPG+1 135 Q 136 CR ;read for display 137 S DIR(0)="E" W ! D ^DIR K DIR S:$D(DUOUT)!($D(DTOUT)) FBOUT=1 138 Q 139 HDR ;general header for potential recoveries 140 D PAGE Q:FBOUT 141 W !?(IOM-30/2),"POTENTIAL COST RECOVERY REPORT" 142 W !?(IOM-(11+$L($G(FBPSFNAM))+$L($G(FBPSFNUM)))/2),"Division: ",$G(FBPSFNUM)," ",$G(FBPSFNAM) 143 W !?(IOM-14/2),"NPI: ",$S($G(FBSTANPI)="":"",$G(FBSTANPI)<1:"",1:$G(FBSTANPI)) 144 W !?(IOM-19/2),$$DATX^FBAAUTL(FBBDATE)," - ",$$DATX^FBAAUTL(FBEDATE) 145 W !?71,"Page: ",FBPG 146 W !,"Patient: ",$G(FBPNAME),?40,"Pat. ID: ",$G(FBPID),?62,"DOB: ",$G(FBDOB) 147 W ! 148 I FBINCUNK=1,$D(^TMP($J,"FBINSIBAPI",+$G(DFN))) W ">> Warning: accurate insurance information for the patient is unavailable" 149 W !?3,"('*' Represents Reimbursement to Patient",?50,"'#' Represents Voided Payment)" 150 W !,FBDASH 151 W ! D:$D(DFN) INS^DGRPDB 152 Q 153 HDRUNK ;Warning message if patient's insurance status is unknown 154 D PAGE Q:FBOUT 155 W !?(IOM-30/2),"POTENTIAL COST RECOVERY REPORT" 156 W !?(IOM-(11+$L($G(FBPSFNAM))+$L($G(FBPSFNUM)))/2),"Division: ",$G(FBPSFNUM)," ",$G(FBPSFNAM) 157 W !?(IOM-19/2),$$DATX^FBAAUTL(FBBDATE)," - ",$$DATX^FBAAUTL(FBEDATE) 158 W !?71,"Page: ",FBPG 159 W !,"------------------------------ !!! WARNING !!! --------------------------------" 160 W !,"This report is incomplete due to problems with obtaining insurance information" 161 W !,"for those patients listed in a separate section in the end of the report. You" 162 W !,"may want to rerun the report again to get more accurate results." 163 W !,FBDASH 164 I FBINCUNK=1 D 165 . W !,"Note: You have chosen to include patients with unknown insurance status in" 166 . W !,"this report. Please be aware that these patients will be treated as if they" 167 . W !,"have billable insurance and their treatment details will be marked accordingly." 168 . W !,"The names of these patients will be accompanied with the following message" 169 . W !,"to order to identify them:" 170 . W !,">> Warning: accurate insurance information for the patient is unavailable" 171 . W !,FBDASH 172 Q 1 FBPCR ;AISC/DMK,GRR,TET-POTENTIAL COST RECOVERY OUTPUT DRIVER ;23 May 2006 10:06 AM 2 ;;3.5;FEE BASIS;**12,48,76,98**;JAN 30, 1995;Build 54 3 ;;Per VHA Directive 10-93-142, this routine should not be modified. 4 DOC ;Refer to fbdoc, tag fbpcr, for documentation of fbpcr* routines 5 PSF ;select one/many/all primary service failities 6 S FBARRLTC="" 7 W !! S DIC="^DIC(4,",VAUTSTR="Primary Service Facility",VAUTNI=2,VAUTVB="FBPSV" D FIRST^VAUTOMA K DIC I Y=-1 G EXIT 8 ARRAY ;set fee program array for all programs 9 S FBPI=0 F S FBPI=$O(^FBAA(161.8,FBPI)) Q:'FBPI S FBPIN=$G(^(FBPI,0)) I $P(FBPIN,U,3) S FBPROG(FBPI)=$P(FBPIN,U) 10 I '$D(FBPROG) G EXIT 11 ;prepare array with LTC POV codes 12 D MKARRLTC^FBPCR4 13 ;what party to include 14 K DIR 15 S DIR(0)="SO^P:Patient;I:Insurance;B:Both",DIR("A")="Include (P)atient Co-pays / (I)nsurance / (B)oth",DIR("B")="Both" 16 S DIR("?")=" Select type of recover to include",DIR("?",1)=" P - include only recover from patient copays",DIR("?",2)=" I - include only recover from insurance",DIR("?",3)=" B - include both",DIR("L")="" 17 D ^DIR S FBPARTY=$S($G(Y(0))="Patient":1,$G(Y(0))="Insurance":2,$G(Y(0))="Both":3,X="Both":3,1:0) 18 K DIR 19 G:FBPARTY=0 EXIT 20 ;what type of copay to include 21 S FBCOPAY=3 22 I FBPARTY'=2 D 23 . S DIR(0)="SO^M:MeansTest;L:LTC;B:Both",DIR("A")="Include (M)eans Test Co-pays /(L)TC Co-pays /(B)oth",DIR("B")="Both" 24 . S DIR("?")=" Select services to include",DIR("?",1)=" M - include only Means Test copays",DIR("?",2)=" L - include only LTC copays",DIR("?",3)=" B - include both",DIR("L")="" 25 . D ^DIR S FBCOPAY=$S($G(Y(0))="LTC":1,$G(Y(0))="MeansTest":2,$G(Y(0))="Both":3,X="Both":3,1:0) 26 . K DIR 27 G:FBCOPAY=0 EXIT 28 ; 29 ;include patients if their insurance informations is unavailable? 30 S FBINCUNK=0 31 I FBPARTY=2!(FBPARTY=3) D 32 . S FBINCUNK=1 33 . N Y,X 34 . W !! 35 . S DIR("A")="Do you want to include patients whose insurance status is unavailable? " 36 . S DIR("?")="Please answer Yes or No." 37 . S DIR("B")="YES",DIR(0)="YA^^" 38 . D ^DIR K DIR 39 . I $G(DIRUT) S FBINCUNK=-1 Q 40 . I $G(Y)=0 S FBINCUNK=0 41 I FBINCUNK=-1 G EXIT ;uparrow - exit 42 ; 43 DATE ;select date range 44 D DATE^FBAAUTL I FBPOP G PSF 45 S FBBDATE=BEGDATE,FBEDATE=ENDDATE 46 S Z=9999999.9999,FBBEG=Z-FBEDATE,FBEND=Z-FBBDATE 47 Q K ^TMP($J,"FB"),^TMP($J,"FBINSIBAPI"),DIC 48 ; 49 S VAR="FBINCUNK^FBARRLTC^FBARRLTC(^FBPARTY^FBCOPAY^FBNAME^FBIEN^FBID^FBBEG^FBEND^FBBDATE^FBEDATE^FBPSV^FBPSV(^FBPROG(",VAL=VAR,PGM="DQ^FBPCR",IOP="Q" D ZIS^FBAAUTL G:FBPOP EXIT 50 DQ S $P(FBDASH,"=",80)="",$P(FBDASH1,"-",80)="",FBPG=0,FBCRT=$S($E(IOST,1,2)="C-":1,1:0),FBOUT=0,FBBEG=FBBEG-.9 U IO 51 SORT ;sort driver for payment output(s) 52 S FBPI=0 F S FBPI=$O(FBPROG(FBPI)) Q:'FBPI S FBXPROG=FBPROG(FBPI) D 53 .I FBPI=2 D EN^FBPCR2 ;outpatient payments 54 .I FBPI=3 D EN^FBPCR3 ;pharmacy payments 55 .I FBPI=6!(FBPI=7) S:FBPI=6&($D(FBPROG(7))) FBPI=67 D EN^FBPCR67 S:FBPI=67 FBPI=7 ;civil hospital/cnh payments 56 PRINT ;print driver for payment output(s) 57 I $G(^TMP($J,"FBINSIBAPI"))>0 D HDRUNK 58 S FBPI=$O(^TMP($J,"FB",0)) I FBPI']"" D WMSG G OUT 59 S FBSTA=0 60 S FBPSF=0 F S FBPSF=$O(^TMP($J,"FB",FBPSF)) Q:'FBPSF!FBOUT D STA S FBPT="" F S FBPT=$O(^TMP($J,"FB",FBPSF,FBPT)) Q:FBPT']""!FBOUT S DFN=$P(FBPT,";",2) D VET S FBPI=0 F S FBPI=$O(FBPROG(FBPI)) Q:'FBPI S FBXPROG=FBPROG(FBPI) D Q:FBOUT 61 .I FBPSF_FBPT'=FBSTA D HDR Q:FBOUT 62 .I FBPI=2,$D(^TMP($J,"FB",FBPSF,FBPT,FBPI)) D PRINT^FBPCR2 Q 63 .I FBPI=3 D:$D(^TMP($J,"FB",FBPSF,FBPT,FBPI)) PRINT^FBPCR3 Q 64 .I FBPI=6!(FBPI=7) D:$D(^TMP($J,"FB",FBPSF,FBPT,FBPI)) PRINT^FBPCR671 Q 65 OUT I $G(^TMP($J,"FBINSIBAPI"))>0 D ERRHDL^FBPCR4 66 I FBOUT!$D(ZTQUEUED) G EXIT 67 D EXIT G PSF 68 Q 69 EXIT ;kill and quit 70 KILL ;kill all variables set in the FBPCR* routines, other than fbx 71 D CLOSE^FBAAUTL K ^TMP($J,"FB") 72 K A1,A2,A3,BEGDATE,C,D,D2,DFN,DIC,DIR,DTOUT,DUOUT,ENDDATE,FBPDXC,FBPARTY,FBCOPAY,FBARRLTC,FBINCUNK 73 K FBAAA,FBAACPTC,FBAC,FBAP,FBBATCH,FBBDATE,FBBEG,FBBN,FBCATC,FBCNT,FBCP,FBCRT,FBDA1,FBDASH,FBDASH1,FBDATA,FBDOB,FBDRUG,FBDT,FBDT1,FBDOS,FBDX,FBDX1,FBEDATE,FBEND,FBERR,FBFD,FBFD1,FBHEAD 74 K FBI,FBID,FBIEN,FBIN,FBINS,FBINVN,FBIX,FBJ,FBLOC,FBM,FBNAME,FBOB,FBOPI,FBOUT,FBOV,FBP,FBPAT,FBPD,FBPDX,FBPG,FBPI,FBPID,FBPIN,FBPNAME,FBPROC,FBPROC1,FBPROG,FBPSF,FBPSFNAM,FBPSFNUM,FBPSV,FBPT,FBPV,FBQTY,FBREIM,FBRX 75 K FBSC,FBSL,FBSTA,FBSTR,FBSUSP,FBTA,FBTYPE,FBV,FBVCHAIN,FBVEN,FBVENID,FBVNAME,FBVI,FBVID,FBVP,FBXPROG,FBY,FBZ,I,IOP,J,K,L,M,N,PGM,T,V,VA,VAERR,VAL,VAR,VAUTNI,VAUTSTR,VAUTVB,X,Y,Z,FBSTANPI,FBXX 76 Q 77 WMSG ;write message if no matches found 78 D HDR W !!?3,"There are no potential cost recoveries on file" 79 W !?5,"for specified date range: ",$$DATX^FBAAUTL(FBBDATE)," through ",$$DATX^FBAAUTL(FBEDATE) 80 I 'FBPSV D 81 .W ",",!?5,"and selected Primary Service Area(s):" 82 .S FBPSF=0 F S FBPSF=$O(FBPSV(FBPSF)) Q:'FBPSF W !?31,$G(FBPSV(FBPSF)) 83 E W !?5,"and ALL Primary Service Areas " 84 W ".",*7,!! 85 Q 86 ; 87 CATC(DFN,FBDT,FBPOV) ; 88 ;treats all copays as Means test for date < 3020705 (JULY 5,2002) 89 ;check if patient is liable for copay 90 ;INPUT: 91 ; DFN = IEN of Patient file 92 ; FBDT= Date 93 ; FBPOV = POV code (for LTC determination) 94 ;OUTPUT: 95 ;0 - the patient is not liable for any co-pay; 96 ;1 - if Means test catc or pending adjudication and agree to pay deduc 97 ;2 - the patient is liable for LTC co-pay; 98 ;3 - no 1010EC on file 99 ;4 - more analysis is needed to determine the patient liability 100 N FBLTC,FBISLTC 101 S FBCATC=$$BIL^DGMTUB(DFN,FBDT) 102 I '$D(FBPOV)!(FBDT<3020705) Q $S(FBCATC:1,1:0) 103 S FBISLTC=$$ISLTC^FBPCR4(FBPOV) 104 I FBISLTC=0 Q $S(FBCATC:1,1:0) ;Means test 105 I FBISLTC=2 Q 0 ;LTC-service, but LTC-copay is not applicable 106 S FBLTC=$$LTCST^FBPCR4(DFN,FBDT) 107 I FBLTC=2 Q 2 ;LTC copay 108 I FBLTC=0 Q 3 ;no 1010EC on file 109 I FBLTC=4 Q 4 ;more info needed 110 Q 0 ;exemption from LTC -copay 111 ; 112 VET ;set vet name/ssn/dob info 113 ;INPUT: DFN = IEN of Patient file 114 ; FBPI = IEN of fee program (optional) 115 ;OUTPUT: FBPNAME = Patient's name 116 ; FBPID = Patient's pid 117 ; FBDOB = Patient's dob (if pharmacy fee program) 118 N N 119 S N=$G(^DPT(DFN,0)),FBPNAME=$P(N,U),FBPID=$$SSN^FBAAUTL(DFN),FBDOB=$$FMTE^XLFDT($P(N,U,3)) 120 Q 121 STA ;set station name & number 122 ;INPUT = FBPSF - IEN to institution file 123 ;OUTPUT = FBPSFNAM = station name 124 ; FBPSFNUM = station number 125 S FBPSFNAM=$P($G(^DIC(4,FBPSF,0)),U),FBPSFNUM=$P($G(^DIC(4,FBPSF,99)),U) 126 S:FBPSFNAM=+FBPSFNAM FBPSFNAM="UNKNOWN" 127 S FBSTANPI=$S($G(FBPSFNAM)="":"",FBPSFNAM="UNKNOWN":"",1:$P($$NPI^XUSNPI("Organization_ID",FBPSF),U,1)) 128 Q 129 PAGE ;form feed when new station/patient 130 S FBSTA=$G(FBPSF)_$G(FBPT) 131 I FBCRT&(FBPG'=0) D CR Q:FBOUT 132 I FBPG>0!FBCRT W @IOF 133 S FBPG=FBPG+1 134 Q 135 CR ;read for display 136 S DIR(0)="E" W ! D ^DIR K DIR S:$D(DUOUT)!($D(DTOUT)) FBOUT=1 137 Q 138 HDR ;general header for potential recoveries 139 D PAGE Q:FBOUT 140 W !?(IOM-30/2),"POTENTIAL COST RECOVERY REPORT" 141 W !?(IOM-(11+$L($G(FBPSFNAM))+$L($G(FBPSFNUM)))/2),"Division: ",$G(FBPSFNUM)," ",$G(FBPSFNAM) 142 W !?(IOM-14/2),"NPI: ",$S($G(FBSTANPI)="":"",$G(FBSTANPI)=-1:"",1:$G(FBSTANPI)) 143 W !?(IOM-19/2),$$DATX^FBAAUTL(FBBDATE)," - ",$$DATX^FBAAUTL(FBEDATE) 144 W !?71,"Page: ",FBPG 145 W !,"Patient: ",$G(FBPNAME),?40,"Pat. ID: ",$G(FBPID),?62,"DOB: ",$G(FBDOB) 146 W ! 147 I FBINCUNK=1,$D(^TMP($J,"FBINSIBAPI",+$G(DFN))) W ">> Warning: accurate insurance information for the patient is unavailable" 148 W !?3,"('*' Represents Reimbursement to Patient",?50,"'#' Represents Voided Payment)" 149 W !,FBDASH 150 W ! D:$D(DFN) INS^DGRPDB 151 Q 152 HDRUNK ;Warning message if patient's insurance status is unknown 153 D PAGE Q:FBOUT 154 W !?(IOM-30/2),"POTENTIAL COST RECOVERY REPORT" 155 W !?(IOM-(11+$L($G(FBPSFNAM))+$L($G(FBPSFNUM)))/2),"Division: ",$G(FBPSFNUM)," ",$G(FBPSFNAM) 156 W !?(IOM-19/2),$$DATX^FBAAUTL(FBBDATE)," - ",$$DATX^FBAAUTL(FBEDATE) 157 W !?71,"Page: ",FBPG 158 W !,"------------------------------ !!! WARNING !!! --------------------------------" 159 W !,"This report is incomplete due to problems with obtaining insurance information" 160 W !,"for those patients listed in a separate section in the end of the report. You" 161 W !,"may want to rerun the report again to get more accurate results." 162 W !,FBDASH 163 I FBINCUNK=1 D 164 . W !,"Note: You have chosen to include patients with unknown insurance status in" 165 . W !,"this report. Please be aware that these patients will be treated as if they" 166 . W !,"have billable insurance and their treatment details will be marked accordingly." 167 . W !,"The names of these patients will be accompanied with the following message" 168 . W !,"to order to identify them:" 169 . W !,">> Warning: accurate insurance information for the patient is unavailable" 170 . W !,FBDASH 171 Q
Note:
See TracChangeset
for help on using the changeset viewer.