1 | FBPCR4 ;WOIFO/SS-LTC PHASE 3 UTILITIES ;03/17/04
|
---|
2 | ;;3.5;FEE BASIS;**48,76**;JAN 30, 1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | Q
|
---|
6 | ;
|
---|
7 | INSURED(FBDFN,FBINDT1,FBINDT2) ;check if the patient has insurance
|
---|
8 | ;FBDFN - patient DFN
|
---|
9 | ;FBINDT1 - the treatment date - for outpatients,
|
---|
10 | ; FROM date - for inpatients,
|
---|
11 | ; certified date - for Pharmacy
|
---|
12 | ;FBINDT2 (optional) - TO date for inpatients
|
---|
13 | N FBINS1
|
---|
14 | S FBINS1=+$$INSUR^IBBAPI(FBDFN,FBINDT1)
|
---|
15 | I FBINS1<0 D ADDERR(DFN) Q FBINCUNK ;error handling
|
---|
16 | Q:'$D(FBINDT2) FBINS1
|
---|
17 | Q:FBINS1=1 1 ;if was insured for FROM date - don't check TO date
|
---|
18 | S FBINS1=+$$INSUR^IBBAPI(FBDFN,FBINDT2) ;otherwise return the state on TO date
|
---|
19 | I FBINS1<0 D ADDERR(DFN) Q FBINCUNK ;error handling
|
---|
20 | Q FBINS1
|
---|
21 | ;
|
---|
22 | ADDERR(FBDFN) ;add error to ^TMP, FBDFN - patient DFN
|
---|
23 | I FBPARTY=1 Q
|
---|
24 | N DFN,FBPNAME,FBPID,FBDOB,FBPI
|
---|
25 | S DFN=FBDFN
|
---|
26 | D VET^FBPCR
|
---|
27 | S ^TMP($J,"FBINSIBAPI")=$G(^TMP($J,"FBINSIBAPI"))+1
|
---|
28 | S ^TMP($J,"FBINSIBAPI",DFN)=FBPID_"^"_FBDOB_"^"_FBPNAME
|
---|
29 | Q
|
---|
30 | ;
|
---|
31 | ERRHDL ;Error handler called from FBPCR
|
---|
32 | I +$G(^TMP($J,"FBINSIBAPI"))=0 Q ;no errors
|
---|
33 | D PRNUNKN
|
---|
34 | Q
|
---|
35 | ;
|
---|
36 | PRNUNKN ;write output
|
---|
37 | N FBDFN,FBDATA
|
---|
38 | D PAGEINS
|
---|
39 | I FBPG>1&(($Y+15)>IOSL) D HEADER Q:FBOUT
|
---|
40 | S FBDFN=0 F S FBDFN=$O(^TMP($J,"FBINSIBAPI",FBDFN)) Q:FBDFN']""!(FBOUT) D Q:FBOUT
|
---|
41 | . I ($Y+6)>IOSL D PAGEINS Q:FBOUT
|
---|
42 | . S FBDATA=$G(^TMP($J,"FBINSIBAPI",FBDFN))
|
---|
43 | . W !,$P(FBDATA,"^",3),?40,$P(FBDATA,"^",1),?62,$P(FBDATA,"^",2)
|
---|
44 | Q
|
---|
45 | PAGEINS ;new page
|
---|
46 | D CHKPAGE Q:FBOUT
|
---|
47 | D HEADER Q:FBOUT
|
---|
48 | Q
|
---|
49 | CHKPAGE ;form feed when new station/patient
|
---|
50 | S FBSTA=$G(FBPSF)_$G(FBPT)
|
---|
51 | I FBCRT&(FBPG'=0) D CR^FBPCR Q:FBOUT
|
---|
52 | I FBPG>0!FBCRT W @IOF
|
---|
53 | S FBPG=FBPG+1
|
---|
54 | Q
|
---|
55 | HEADER ;main header
|
---|
56 | N FBSTR1 S FBSTR1="List of the patients whose insurance information is currently unavailable"
|
---|
57 | W !?(IOM-30/2),"POTENTIAL COST RECOVERY REPORT"
|
---|
58 | W !?(IOM-$L(FBSTR1)/2),FBSTR1
|
---|
59 | W !?71,"Page: ",FBPG
|
---|
60 | W !,"Patient",?40,"Pat. ID",?62,"DOB"
|
---|
61 | W !,FBDASH
|
---|
62 | Q
|
---|
63 | ;/**filtering logic
|
---|
64 | ;input:
|
---|
65 | ; FBPARTY: 1-Patient copay only,2-Insurance only,3-Both
|
---|
66 | ; FBCOPAY: 1-LTC copays only,2-MT copays only,3-Both
|
---|
67 | ; FBINS: 1- has insurance,0-none
|
---|
68 | ; FBCATC: 0 - no copay,1- MT copay,2-LTC copay,3-no 1010EC,4-more analysis is needed
|
---|
69 | ;output:
|
---|
70 | ; 1 - include to report
|
---|
71 | ; 0 - exclude from report
|
---|
72 | FILTER() ;*/
|
---|
73 | I FBPARTY=1,FBCATC=0 Q 0
|
---|
74 | I FBPARTY=2,FBINS=0 Q 0
|
---|
75 | I FBPARTY=3,FBINS=1 Q 1
|
---|
76 | I FBCOPAY=1,FBCATC<2 Q 0
|
---|
77 | I FBCOPAY=2,FBCATC'=1 Q 0
|
---|
78 | Q 1
|
---|
79 | ;
|
---|
80 | ;/**
|
---|
81 | ; returns LTC status
|
---|
82 | ; input: Patient's DFN, Date of Care
|
---|
83 | ;
|
---|
84 | ; return values:
|
---|
85 | ; 0 - no1010EC
|
---|
86 | ; 1 - exemption from LTC copay
|
---|
87 | ; 2 - LTC copay
|
---|
88 | LTCST(DFN,FBDT) ;*/
|
---|
89 | Q +$$COPAY^EASECCAL(DFN,$$LASTDT(FBDT),1)
|
---|
90 | ;
|
---|
91 | LASTDT(X) ; compute the last day of the month in X
|
---|
92 | N XM,X1,X2
|
---|
93 | I $E(X,4,5)=12 Q $E(X,1,5)_"31"
|
---|
94 | S XM=$E(X,4,5)+1
|
---|
95 | S:XM<10 XM="0"_XM
|
---|
96 | S X1=$E(X,1,3)_XM_"01"
|
---|
97 | S X2=-1
|
---|
98 | D C^%DTC
|
---|
99 | Q X
|
---|
100 | ;
|
---|
101 | ;
|
---|
102 | ;prepares local array with LTC POV codes
|
---|
103 | ;input: FBARRLTC must be defined
|
---|
104 | ;output: FBARRLTC with POV codes
|
---|
105 | MKARRLTC ;
|
---|
106 | N FBPOV,FBIEN,FBLTCTYP
|
---|
107 | S FBPOV="" F S FBPOV=$O(^FBAA(161.82,"C",FBPOV)) Q:'FBPOV S FBIEN=+$O(^FBAA(161.82,"C",FBPOV,0)),FBLTCTYP=+$P($G(^FBAA(161.82,FBIEN,0)),"^",4) S:FBLTCTYP=1!(FBLTCTYP=2) FBARRLTC(FBPOV)=FBLTCTYP
|
---|
108 | Q
|
---|
109 | ;/**
|
---|
110 | ; Determine if POV code is related to LTC.
|
---|
111 | ;Input:
|
---|
112 | ; FBPOV - POV code, pointer to #161.82
|
---|
113 | ; FBARRLTC must be defined and populated - array with LTC POV codes (see MKARRLTC)
|
---|
114 | ;Output:
|
---|
115 | ; returns
|
---|
116 | ; 0 - it is not LTC service
|
---|
117 | ; 1 - this POV code is for LTC and recoverable from LTC copayment
|
---|
118 | ; 2 - this POV code is for LTC but it is not a subject of LTC copayment
|
---|
119 | ISLTC(FBPOV) ;*/
|
---|
120 | Q +$G(FBARRLTC(FBPOV))
|
---|
121 | ;
|
---|