source: FOIAVistA/trunk/r/INTEGRATED_BILLING-IB-PRQ--IBD--IBQ--PRQS/IBCIUT7.m@ 1693

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

initial load of FOIAVistA 6/30/08 version

File size: 7.2 KB
Line 
1IBCIUT7 ;DSI/ESG - COMMENTS FIELD UTILITIES ;16-JULY-2001
2 ;;2.0;INTEGRATED BILLING;**161**;21-MAR-94
3 ;;Per VHA Directive 10-93-142, this routine should not be modified.
4 ;
5 Q
6 ;
7COMMENT(IBIFN,TYPE) ; Capture the comments
8 ; This procedure will capture and file all comments to be stored
9 ; in field 2.01 of the ClaimsManager file (#351.9).
10 ;
11 ; TYPE=1 indicates Exit comments:
12 ; This procedure is called from IBCSCP and from IBCB2 whenever
13 ; the status of the bill in the ClaimsManager file is 4 (returned
14 ; with errors) and the user is trying to exit out of the screens
15 ; without correcting the errors found.
16 ; This is also called from the ListMan screen routine IBCIMG.
17 ;
18 ; TYPE=2 indicates overriding the CM errors:
19 ; This procedure is called from IBCIMG whenever the user wants to
20 ; override the ClaimsManager errors.
21 ;
22 ; TYPE=3 indicates the bill is being cancelled:
23 ; This procedure is called from IBCIST in order to move the cancel
24 ; comments into this file when cancelling a bill that has been thru
25 ; the ClaimsManager interface.
26 ;
27 ; TYPE=4 indicates that the bill was sent from the multiple claim
28 ; send option and some ClaimsManager errors were found. Record a
29 ; comment indicating how this bill was sent to ClaimsManager. This
30 ; procedure is called from IBCIUT2 in this case.
31 ;
32 ; TYPE=5 indicates that the bill is being reassigned by a user,
33 ; typically a coder, to another user, typically a biller,
34 ; from a standalone option which allows only users to
35 ; re-assign a bill. This procedure is called from IBCIASN, which
36 ; as indicated above, is a standalone option available only from
37 ; menus which are assigned at sites.
38 ;
39 NEW CMNT,D0,DA,DI,DIC,DIE,DN,DQ,DR,LASTONE,LASTTXT
40 NEW NOCOMMSG,NOW,REASON,X
41 NEW COMMCHG,NEWCOMCT,OLDCOMCT,CMT,PREVCHG
42 NEW WHO,WHEN,AUDITMSG
43 ;
44 ; Intro text and set-up to read WP field for exit comments
45 I TYPE=1 D
46 . W !!?2,"There are still some unresolved errors reported by ClaimsManager."
47 . W !?2,"Please enter some comments before exiting this option.",!
48 . Q
49 ;
50 ; Intro text and set-up to read WP field for override comments
51 I TYPE=2 D
52 . W !!?2,"Please enter some comments indicating why you are overriding"
53 . W !?2,"the errors reported by ClaimsManager.",!
54 . Q
55 ;
56 ; for cancel processing, just grab the reason cancelled field and
57 ; stuff it in here
58 I TYPE=3 D
59 . S REASON=$P($G(^DGCR(399,IBIFN,"S")),U,19)
60 . D DCOM^IBCIUT4(IBIFN) ; delete whatever's in there
61 . S DIE="^IBA(351.9,",DA=IBIFN,DR="2.01///^S X=REASON"
62 . D ^DIE
63 . Q
64 ;
65 ; for bills with errors from the multiple claim send option,
66 ; just stuff in some text.
67 I TYPE=4 D
68 . S DIE="^IBA(351.9,",DA=IBIFN,DR="2.01///This Bill was sent to ClaimsManager from the Multiple Claim Send Option."
69 . D ^DIE
70 . Q
71 ;
72 ; for bills that a coder is re-assigning
73 I TYPE=5 D
74 . W !!?2,"Please enter some comments for the person to whom this"
75 . W !?2,"bill will be assigned.",!
76 . Q
77 ;
78 ; Define a variable for the "no comments entered" text
79 S NOCOMMSG=" << No Comments Entered >>"
80 ;
81 ; Capture and file just the word-processing field here.
82 ; If the user made an illegal edit, then do it again.
83WP I $F(".1.2.5.","."_TYPE_".") D I PREVCHG G WP
84 . ;
85 . ; if the only comment currently in there is the message about
86 . ; there being no comments, then blow that stuff away before
87 . ; reading in the new comments.
88 . S LASTONE=+$O(^IBA(351.9,IBIFN,2,99999999),-1)
89 . S LASTTXT=$P($G(^IBA(351.9,IBIFN,2,LASTONE,0)),U,1)
90 . I LASTONE=1,LASTTXT=NOCOMMSG D DCOM^IBCIUT4(IBIFN)
91 . ;
92 . ; esg - 7/16/01
93 . ; add an audit text line in the comment text field.
94 . ; this audit text line should be in the comments field before
95 . ; the user gets the chance to add/edit comment text.
96 . ;
97 . S WHO=$P($G(^VA(200,DUZ,0)),U,1)
98 . S WHEN=$$FMTE^XLFDT($$NOW^XLFDT,5)
99 . S AUDITMSG="*---"_WHO_"---"_$P(WHEN,"@",1)_"---"_$P(WHEN,"@",2)_"---*"
100 . S DIE="^IBA(351.9,",DA=IBIFN,DR="2.01///+"_AUDITMSG
101 . D ^DIE
102 . ;
103 . ; Save off the before version of the comments so we can compare
104 . ; later on.
105 . KILL ^TMP($J,"IBCICOMMENTS")
106 . M ^TMP($J,"IBCICOMMENTS")=^IBA(351.9,IBIFN,2)
107 . ;
108 . ; set up the variables for editing the comments field
109 . S DIE="^IBA(351.9,",DA=IBIFN,DR=2.01
110 . D ^DIE
111 . ;
112 . ; Compare the new comments with the old comments and set variable
113 . ; COMMCHG appropriately. COMMCHG=1 if the comments were modified in
114 . ; any way. COMMCHG=0 if there were no changes to the comments.
115 . ;
116 . S PREVCHG=0 ; flag indicating if old comment text was changed
117 . S COMMCHG=0
118 . S NEWCOMCT=$P($G(^IBA(351.9,IBIFN,2,0)),U,4) ; new comment count
119 . S OLDCOMCT=$P($G(^TMP($J,"IBCICOMMENTS",0)),U,4) ; old comment count
120 . I NEWCOMCT'=OLDCOMCT S COMMCHG=1
121 . E F CMT=1:1:NEWCOMCT I $G(^IBA(351.9,IBIFN,2,CMT,0))'=$G(^TMP($J,"IBCICOMMENTS",CMT,0)) S COMMCHG=1 Q
122 . ;
123 . ; If the user made no changes at all to the comment text, then
124 . ; append the "no comments entered" message to the text and then quit.
125 . I 'COMMCHG D Q
126 .. S DIE="^IBA(351.9,",DA=IBIFN,DR="2.01///+"_NOCOMMSG
127 .. D ^DIE
128 .. Q
129 . ;
130 . ; At this point, we know the user made some changes to the comment
131 . ; text. Variable PREVCHG is calculated to see if the user
132 . ; modified previously existing lines of comment text. This is
133 . ; not allowed and the user will be forced to re-enter their
134 . ; comment text if they do this.
135 . ;
136 . I NEWCOMCT<OLDCOMCT S PREVCHG=1
137 . E F CMT=1:1:OLDCOMCT I $G(^IBA(351.9,IBIFN,2,CMT,0))'=$G(^TMP($J,"IBCICOMMENTS",CMT,0)) S PREVCHG=1 Q
138 . ;
139 . ; If the user didn't change old comment text, then we're OK
140 . I 'PREVCHG Q
141 . ;
142 . ; Here, we know the user did a bad thing. We need to display
143 . ; an error message to the user and restore the old comments.
144 . W !!?8,"You are not allowed to modify previously entered comments."
145 . W !?8,"Any comments that you may have just entered have been discarded."
146 . W !!?8,"Please remember to start adding your comments on the line"
147 . W !?8,"following the audit stamp which contains your name and the"
148 . W !?8,"current date and time."
149 . W !!
150 . S DIR("A")="Press RETURN to continue",DIR(0)="E" D ^DIR K DIR
151 . ;
152 . ; Remove the last line of the original version of the comments.
153 . ; This should be the audit message. A new one will get created
154 . ; upon re-edit.
155 . KILL ^TMP($J,"IBCICOMMENTS",OLDCOMCT,0)
156 . S CMT=OLDCOMCT-1
157 . S $P(^TMP($J,"IBCICOMMENTS",0),U,3,4)=CMT_U_CMT
158 . ;
159 . ; Restore the original comments
160 . D DCOM^IBCIUT4(IBIFN)
161 . M ^IBA(351.9,IBIFN,2)=^TMP($J,"IBCICOMMENTS")
162 . Q
163 ;
164 ; remove the scratch global
165 KILL ^TMP($J,"IBCICOMMENTS")
166 ;
167 ; store the user/date/time stamp information in all cases
168 S NOW=$$NOW^XLFDT
169 S CMNT(351.9,IBIFN_",",.13)=NOW ; comment date/time
170 S CMNT(351.9,IBIFN_",",.14)=DUZ ; comment user
171 S CMNT(351.9,IBIFN_",",.08)=NOW ; last edited date/time
172 S CMNT(351.9,IBIFN_",",.09)=DUZ ; last edited user
173 D FILE^DIE("I","CMNT")
174 ;
175 ; Enter some comment data if the user failed to do so
176 ; This would only apply if the user manually deleted all lines of
177 ; comment text. We want to put something in there. This will
178 ; probably never happen.
179 I '$P($G(^IBA(351.9,IBIFN,2,0)),U,4) D
180 . S DIE="^IBA(351.9,",DA=IBIFN,DR="2.01///"_NOCOMMSG
181 . D ^DIE
182 . Q
183 ;
184 ; Get the assigned to person after entering Exit comments
185 ; or when using the stand-alone option to assign a bill
186 I TYPE=1!(TYPE=5) D EDATP^IBCIUT1(IBIFN,COMMCHG)
187 ;
188COMMX ;
189 Q
190 ;
Note: See TracBrowser for help on using the repository browser.