source: WorldVistAEHR/trunk/r/INTEGRATED_BILLING-IB-PRQ--IBD--IBQ--PRQS/IBCICME1.m@ 1200

Last change on this file since 1200 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 5.1 KB
Line 
1IBCICME1 ;DSI/ESG - IBCI CLAIMSMANAGER ERROR REPORT <CONT> ;6-APR-2001
2 ;;2.0;INTEGRATED BILLING;**161**;21-MAR-94
3 ;;Per VHA Directive 10-93-142, this routine should not be modified.
4 ;
5BUILD ; Build the scratch global based on the selection and sort criteria
6 ;
7 NEW REF,MNEMONIC,RDT,IBIFN,CMDATA,IBDATA,CMSTATUS,BILLID,PATDATA
8 NEW NAME,SSN,BILLER,CODER,OIFLG,ASSIGNED,CHARGES,ERR,ERRCODES
9 NEW SORT1,SORT2,SORT3,SORT4,SORT5,RPTDATA,ERRIEN,LINENO
10 NEW COUNT,BILCOUNT,ERRCOUNT,INSNAME
11 ;
12 KILL ^TMP($J,IBCIRTN),^TMP($J,IBCIRTN_"-LIST-OF-BILLS")
13 KILL ^TMP($J,IBCIRTN_"-TOTALS")
14 ;
15 ; which array are we looping through? Find out here.
16 S REF="RPTSPECS(""SELECTED ERRCODES"")"
17 I RPTSPECS("ALL ERRCODES") S REF="^IBA(351.9,""AEC"")"
18 ;
19 S MNEMONIC="",(COUNT,BILCOUNT,ERRCOUNT)=0
20 F S MNEMONIC=$O(@REF@(MNEMONIC)) Q:MNEMONIC=""!$G(ZTSTOP) D
21 . S IBIFN=0
22 . F S IBIFN=$O(^IBA(351.9,"AEC",MNEMONIC,IBIFN)) Q:'IBIFN!$G(ZTSTOP) D
23 .. S COUNT=COUNT+1
24 .. I $D(ZTQUEUED),COUNT#100=0,$$S^%ZTLOAD() S ZTSTOP=1 Q
25 .. S CMDATA=$G(^IBA(351.9,IBIFN,0))
26 .. I CMDATA="" Q
27 .. S IBDATA=$G(^DGCR(399,IBIFN,0))
28 .. I IBDATA="" Q
29 .. ;
30 .. ; Get the date that the user selected and check it
31 .. S RDT=9999999
32 .. I RPTSPECS("DATYP")=1 S RDT=$P($P(IBDATA,U,3),".",1)
33 .. I RPTSPECS("DATYP")=2 S RDT=$P($P($G(^DGCR(399,IBIFN,"S")),U,1),".",1)
34 .. I RDT<RPTSPECS("BEGDATE") Q ; date too early
35 .. I RDT>RPTSPECS("ENDDATE") Q ; date too late
36 .. ;
37 .. ; If the user chose a specific ClaimsManager status to report
38 .. ; on, then make sure this bill has the status they want.
39 .. S CMSTATUS=$P(CMDATA,U,2)
40 .. I RPTSPECS("STATYP")=2,CMSTATUS'=RPTSPECS("IBCISTAT") Q
41 .. ;
42 .. ; If the user wants to see bills that are still open for editing
43 .. I RPTSPECS("STATYP")=3,'$F(".1.","."_$P(IBDATA,U,13)_".") Q ;DSI/DJW 3/21/02
44 .. ;
45 .. ; If the user wants to include a specific assigned to person,
46 .. ; then make sure the assigned to person is the one they want.
47 .. I RPTSPECS("ASNDUZ"),RPTSPECS("ASNDUZ")'=$P(CMDATA,U,12) Q
48 .. ;
49 .. ; At this point, we know we want to include this bill.
50 .. D GETDATA
51 .. I '$D(^TMP($J,IBCIRTN_"-LIST-OF-BILLS",IBIFN)) S ^TMP($J,IBCIRTN_"-LIST-OF-BILLS",IBIFN)="",BILCOUNT=BILCOUNT+1
52 .. ;
53 .. ; esg - 6/12/01
54 .. ; Determine what the value of SORT2 should be based on the user's
55 .. ; response to the Error Display Type question.
56 .. ;
57 .. I RPTSPECS("ERROR DISPLAY TYPE")=2 S SORT2=" "_MNEMONIC
58 .. S ^TMP($J,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5,NAME,IBIFN)=RPTDATA
59 .. ;
60 .. ; continue looping to get the error level data and the totals
61 .. S ERRIEN=0
62 .. F S ERRIEN=$O(^IBA(351.9,"AEC",MNEMONIC,IBIFN,ERRIEN)) Q:'ERRIEN D
63 ... S ERRCOUNT=ERRCOUNT+1
64 ... S LINENO=$G(^IBA(351.9,IBIFN,1,ERRIEN,0))
65 ... S LINENO=$P($P(LINENO,U,2),"~",1)
66 ... S ^TMP($J,IBCIRTN,SORT1,SORT2,SORT3,SORT4,SORT5,NAME,IBIFN,ERRIEN)=LINENO_U_MNEMONIC
67 ... S ^TMP($J,IBCIRTN_"-TOTALS",MNEMONIC)=$G(^TMP($J,IBCIRTN_"-TOTALS",MNEMONIC))+1
68 ... Q
69 .. Q
70 . Q
71 S ^TMP($J,IBCIRTN_"-TOTALS")=BILCOUNT_U_ERRCOUNT
72 KILL ^TMP($J,IBCIRTN_"-LIST-OF-BILLS")
73 ;
74BUILDX ;
75 Q
76 ;
77 ;
78GETDATA ; Retrieve the data for this bill
79 S BILLID=$P(IBDATA,U,1) ; bill number
80 S PATDATA=$G(^DPT(+$P(IBDATA,U,2),0))
81 I PATDATA="" Q
82 S NAME=$P(PATDATA,U,1) ; patient name
83 I NAME="" S NAME="UNKNOWN"
84 S NAMESUB=$E(NAME,1,15)_+$P(IBDATA,U,2) ; name subscript
85 S SSN=$P(PATDATA,U,9) ; patient ssn
86 S BILLER=$P($$BILLER^IBCIUT5(IBIFN),U,2)
87 I BILLER="" S BILLER="UNKNOWN"
88 S CODER=$$CODER^IBCIUT5(IBIFN)
89 S OIFLG=$P(CODER,U,1) ; inpatient/outpatient flag
90 S CODER=$P(CODER,U,3)
91 I CODER="" S CODER="UNKNOWN"
92 S ASSIGNED=$P($G(^VA(200,+$P(CMDATA,U,12),0)),U,1) ; assigned to
93 I ASSIGNED="" S ASSIGNED="UNASSIGNED"
94 S ASNSUB=$E(ASSIGNED,1,12)_+$P(CMDATA,U,12) ; assigned to subscript
95 S CHARGES=+$P($G(^DGCR(399,IBIFN,"U1")),U,1) ; total charges
96 S (ERR,ERRCODES)=""
97 F S ERR=$O(^IBA(351.9,IBIFN,1,"B",ERR)) Q:ERR="" D
98 . I ERRCODES="" S ERRCODES=ERR
99 . E S ERRCODES=ERRCODES_","_ERR ; build the list of error codes
100 . Q
101 ;
102 ; set the sort variables and build the scratch global
103 S (SORT1,SORT2,SORT3,SORT4,SORT5)=1
104 I RPTSPECS("ASNSORT") S SORT3=" "_ASNSUB
105 I RPTSPECS("SORTBY")=1 S SORT4=" "_$P($$TD^IBCIUT5(IBIFN),U,1)
106 I RPTSPECS("SORTBY")=2 D
107 . S INSNAME=$P($G(^DIC(36,+$$FINDINS^IBCEF1(IBIFN),0)),U,1)
108 . I INSNAME="" S INSNAME="~~~ NO INSURANCE ~~~"
109 . S SORT4=" "_$E(INSNAME,1,25)
110 . Q
111 I RPTSPECS("SORTBY")=3 S SORT4=" "_NAMESUB
112 I RPTSPECS("SORTBY")=4 S SORT4=-CHARGES
113 I RPTSPECS("SORTBY")=5 S SORT4=" "_BILLID
114 ;
115 S RPTDATA=BILLID_U_SSN_U_$P(RDT,".",1)_U_BILLER_U_CODER_U_ASSIGNED_U_OIFLG_U_CHARGES_U_CMSTATUS_U_ERRCODES
116 ;
117 ; Build an array with the total number of bills in each status
118 ; This array will be used in the report print routines and it is
119 ; available in both the status report and the error report.
120 ; esg - 5/22/01
121 ;
122 ; bill count by status
123 S IBCISCNT(1,CMSTATUS)=$G(IBCISCNT(1,CMSTATUS))+1
124 S IBCISCNT(1)=$G(IBCISCNT(1))+1
125 ;
126 ; charges by status
127 S IBCISCNT(2,CMSTATUS)=$G(IBCISCNT(2,CMSTATUS))+CHARGES
128 S IBCISCNT(2)=$G(IBCISCNT(2))+CHARGES
129 ;
130GETDATX ;
131 Q
132 ;
Note: See TracBrowser for help on using the repository browser.