1 | IBCIUT7 ;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 | ;
|
---|
7 | COMMENT(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.
|
---|
83 | WP 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 | ;
|
---|
188 | COMMX ;
|
---|
189 | Q
|
---|
190 | ;
|
---|