1 | RMPRPCEL ;HCIOFO/RVD - LINK SUSPENSE UTILITY; 08/14/01
|
---|
2 | ;;3.0;PROSTHETICS;**62,69**;Feb 09, 1996
|
---|
3 | ;
|
---|
4 | ;RVD patch #69 4/17/02 - prevent error if record in 668 is not complete
|
---|
5 | ; for 2319 linking.
|
---|
6 | ;This routine contains the code for linking file #660 and #668.
|
---|
7 | ;Link the selected suspense to a corresponding 2319 record(s).
|
---|
8 | ;And call routine for updating #660 and #668
|
---|
9 | ;
|
---|
10 | ;Variables need for this subroutine:
|
---|
11 | ; ^TMP($J,"RMPRPCE",660
|
---|
12 | ; ^TMP($J,"RMPRPCE",668
|
---|
13 | LINK60 ;link suspense to 2319 records
|
---|
14 | SEL60 ;
|
---|
15 | K RMSUS60
|
---|
16 | S RMSULINK=DA
|
---|
17 | D NEWVAR
|
---|
18 | W !!,"List of 2319 Records:"
|
---|
19 | S (RM60CNT,RMSERR)=0
|
---|
20 | F RMSI=0:0 S RMSI=$O(^TMP($J,"RMPRPCE",660,RMSI)) Q:RMSI'>0 D
|
---|
21 | .I $D(^RMPR(660,RMSI,0)) S RM60CNT=RM60CNT+1,RMSUS60(RM60CNT)=RMSI
|
---|
22 | ;
|
---|
23 | RES60 K DIR
|
---|
24 | S (RMQUIT,RMSCNT,RMNT)=0
|
---|
25 | F RMSI=0:0 S RMSI=$O(RMSUS60(RMSI)) Q:(RMSI'>0)!(RMQUIT=1) D
|
---|
26 | .S DIR(0)="E"
|
---|
27 | .S RMSCNT=RMSCNT+1,RMNT=RMNT+1,(RM60IT,RM60VEN0,RMPRPRC)=""
|
---|
28 | .S RM60DATA=$G(^RMPR(660,RMSUS60(RMSI),0))
|
---|
29 | .S RM60DATE=$P(RM60DATA,U,1),RM60ITEM=$P(RM60DATA,U,6)
|
---|
30 | .S RM60TYPT=$P(RM60DATA,U,4),RM60VEN=$P(RM60DATA,U,9)
|
---|
31 | .S RM60D=$E(RM60DATE,4,5)_"/"_$E(RM60DATE,6,7)_"/"_$E(RM60DATE,2,3)
|
---|
32 | .I RM60ITEM,$D(^RMPR(661,RM60ITEM,0)) S RM60IT=$P(^RMPR(661,RM60ITEM,0),U,1)
|
---|
33 | .I RM60VEN,$D(^PRC(440,RM60VEN,0)) S RM60VEN0=$E($P(^PRC(440,RM60VEN,0),U,1),1,15)
|
---|
34 | .I RM60VEN,'$D(^PRC(440,RM60VEN,0)) S RM60VEN0=""
|
---|
35 | .I RM60ITEM,'$D(^RMPR(661,RM60ITEM,0)) S RM60IT=""
|
---|
36 | .I RM60IT,$D(^PRC(441,RM60IT,0)) S RMPRPRC=$E($P(^PRC(441,RM60IT,0),U,2),1,15)
|
---|
37 | .W !,?5,RMSI_".",?9,RM60D,?21,RMPRPRC,?39,RM60VEN0
|
---|
38 | .I RMNT>14 D ^DIR S RMNT=0 I Y'=1 S RMQUIT=1
|
---|
39 | Q:RMQUIT
|
---|
40 | S DIR(0)="LO^1:"_RMSCNT
|
---|
41 | S DIR("A")="Enter 2319 Record to be LINKED "
|
---|
42 | D ^DIR
|
---|
43 | I $D(DUOUT)!$D(DTOUT)!$D(DIRUT)!(Y="") W !!,"***NO Link to Suspense!!",!! Q
|
---|
44 | S RM60L=Y
|
---|
45 | S RC=0 F S RC=RC+1 S RMD=$P(RM60L,",",RC) Q:RMD="" D
|
---|
46 | .Q:'$D(RMSUS60(RMD))
|
---|
47 | .S RMSEL(RMD)=""
|
---|
48 | .S $P(^TMP($J,"RMPRPCE",660,RMSUS60(RMD)),U,3)=1
|
---|
49 | .S $P(^TMP($J,"RMPRPCE",660,RMSUS60(RMD)),U,4)=RMSULINK
|
---|
50 | .K RMSUS60(RMD)
|
---|
51 | .;S RNT=0 F RMSI=0:0 S RMSI=$O(RMSUS60(RMSI)) Q:RMSI'>0 S RNT=RNT+1 I (RMSI>1),(RNT'=RMSI) S RMSUS60(RNT)=RMSUS60(RMSI) K RMSUS60(RMSI)
|
---|
52 | ;
|
---|
53 | UPFILE ;call update 660 & 668
|
---|
54 | ;process link to suspense, update field in file #660.
|
---|
55 | S RMSCHECK=0
|
---|
56 | F I=0:0 S I=$O(^TMP($J,"RMPRPCE",660,I)) Q:I'>0 D
|
---|
57 | .S RM60DAT=$G(^TMP($J,"RMPRPCE",660,I))
|
---|
58 | .S RMSAMIS=$P(RM60DAT,U,1)
|
---|
59 | .S RMSTATUS=$P(RM60DAT,U,3)
|
---|
60 | .S RM668=$P(RM60DAT,U,4)
|
---|
61 | .Q:'$G(RM668)
|
---|
62 | .Q:'$G(RMSAMIS)
|
---|
63 | .S RMSCHECK=$$UP60^RMPRPCE1(I,RM668,RMSTATUS)
|
---|
64 | .S RMSERR=$$UP68^RMPRPCE1(I,RM668,RMSAMIS)
|
---|
65 | .K ^TMP($J,"RMPRPCE",660,I)
|
---|
66 | K ^TMP($J,"RMPRPCE",668)
|
---|
67 | S:$G(RMSULINK) DA=RMSULINK
|
---|
68 | Q
|
---|
69 | ;
|
---|
70 | SMESS8 ;print/display message for mandatory suspense entry.
|
---|
71 | W !!,"*********************************************************"
|
---|
72 | W !,"** No suspense record has been selected for this trans-**"
|
---|
73 | W !,"** action. You must select an entry from the list to **"
|
---|
74 | W !,"** complete this transaction, otherwise transaction **"
|
---|
75 | W !,"** will not be linked to SUSPENSE.................... **"
|
---|
76 | W !,"*********************************************************"
|
---|
77 | W !!
|
---|
78 | Q
|
---|
79 | ;
|
---|
80 | SMESS0 ;print/display message for 2319 entry.
|
---|
81 | W !!,"*********************************************************"
|
---|
82 | W !,"** Patient record(s) still exist...................... **"
|
---|
83 | W !,"** You must select an entry from the list to complete **"
|
---|
84 | W !,"** all transactions, otherwise some transactions will **"
|
---|
85 | W !,"** not be linked to SUSPENSE!!! **"
|
---|
86 | W !,"*********************************************************"
|
---|
87 | W !!
|
---|
88 | Q
|
---|
89 | ;
|
---|
90 | CDIR K DIR
|
---|
91 | S DIR(0)="SBO^L:LINK Suspense to Patient Record;E:EXIT without linking to Suspense"
|
---|
92 | S DIR("A")="Would you like to LINK Suspense or EXIT without linking"
|
---|
93 | S DIR("B")="L"
|
---|
94 | S DIR("?")="Answer `L` to Link to suspense, 'E' to exit without linking to suspense"
|
---|
95 | D ^DIR S RMENTSUS=Y
|
---|
96 | I $D(DIRUT)!$D(DUOUT)!$D(DTOUT) S RMENTSUS="E"
|
---|
97 | W !! K DIR
|
---|
98 | Q
|
---|
99 | ;
|
---|
100 | AUTO ;auto-link a suspense record.
|
---|
101 | ;added by #62
|
---|
102 | ;input rm60link(),rm68link, rgrp1 and rmprdfn
|
---|
103 | F R6I=0:0 S R6I=$O(RM60LINK(R6I)) Q:R6I'>0 D
|
---|
104 | .;do auto-link if only one suspense
|
---|
105 | .Q:'$D(RM68LINK)
|
---|
106 | .I $D(RM68LINK) S RM668I=$O(RM68LINK(0))
|
---|
107 | .S ^TMP($J,"RMPRPCE",660,R6I)=$G(RGRP1)_"^"_RMPRDFN_"^"_1_"^"_RM668I
|
---|
108 | .S ^TMP($J,"RMPRPCE",668,RM668I)=""
|
---|
109 | .D UPFILE^RMPRPCEL
|
---|
110 | G KILL
|
---|
111 | ;
|
---|
112 | MAN ;link record.
|
---|
113 | ;input rm60link(), rgrp1 and rmprdfn
|
---|
114 | ;call suspense listmanager screen for multiple suspense and items.
|
---|
115 | S RMSUCLFG=1
|
---|
116 | F R6I=0:0 S R6I=$O(RM60LINK(R6I)) Q:R6I'>0 D
|
---|
117 | .S ^TMP($J,"RMPRPCE",660,R6I)=$G(RGRP1)_"^"_RMPRDFN
|
---|
118 | D LINK^RMPRS
|
---|
119 | G KILL
|
---|
120 | ;
|
---|
121 | KILL ;kill link variables
|
---|
122 | K RM60LINK,RM68LINK,R6I,RM668I,RMSUCLFG
|
---|
123 | Q
|
---|
124 | ;
|
---|
125 | COL ;collect PREVIOUS items for CO & CPO options only.
|
---|
126 | ;input variable RMPRA
|
---|
127 | ;return variable RM68FG = a flag if previous item is linked.
|
---|
128 | ;if linked, variables RM60LINK & RM68LINK are sets.
|
---|
129 | S RM68FG=0
|
---|
130 | F RI=0:0 S RI=$O(^RMPR(664,RMPRA,1,RI)) Q:RI'>0 S RM664DAT=$G(^RMPR(664,RMPRA,1,RI,0)) I $P(RM664DAT,U,13) D
|
---|
131 | .S RM660I=$P(RM664DAT,U,13)
|
---|
132 | .S:$D(^RMPR(660,RM660I,"AMS")) RGRP1=$P(^RMPR(660,RM660I,"AMS"),U,1)
|
---|
133 | .I $P($G(^RMPR(660,RM660I,10)),U,14) S RM668D10=$O(^RMPR(668,"F",RM660I,0)) D
|
---|
134 | ..I $G(RM668D10),'$D(RM68LINK(RM668D10)) S RM68FG=RM68FG+1,RM68LINK(RM668D10)=""
|
---|
135 | .I '$D(^RMPR(660,RM660I,10)) S RM60LINK(RM660I)=""
|
---|
136 | .I $D(^RMPR(660,RM660I,10)),$P(^RMPR(660,RM660I,10),U,1)="" S RM60LINK(RM660I)=""
|
---|
137 | Q
|
---|
138 | ;
|
---|
139 | ICDT(R68) ;update the initial and completion date in #660
|
---|
140 | ;input variable R68 = FILE 668 ien
|
---|
141 | N RMDAT,RM660,RI,RMINDT,RMCODT,RMERROR,DA
|
---|
142 | Q:'$D(^RMPR(668,R68,10))
|
---|
143 | F RI=0:0 S RI=$O(^RMPR(668,R68,10,RI)) Q:RI'>0 I $P(^RMPR(668,R68,10,RI,0),U,1) D
|
---|
144 | .S RM660=$P(^RMPR(668,R68,10,RI,0),U,1)
|
---|
145 | .I $G(RM660),$D(^RMPR(660,RM660,10)) D
|
---|
146 | ..S RMINDT=$P(^RMPR(668,R68,0),U,9)
|
---|
147 | ..S RMCODT=$P(^RMPR(668,R68,0),U,5)
|
---|
148 | ..S RMDAT(660,RM660_",",8.3)=RMINDT
|
---|
149 | ..S RMDAT(660,RM660_",",8.4)=RMCODT
|
---|
150 | ..D FILE^DIE("","RMDAT","RMERROR")
|
---|
151 | ..I $D(RMERROR) W !!,"*** Error in 2319 Record = ",RM660," !!!",!! Q
|
---|
152 | Q
|
---|
153 | ;
|
---|
154 | NEWVAR N DIE,DIC,I,J,Y,RMDFN,RMI,RMDATE,RM680,RM6810,RMERROR,RM60L,RC
|
---|
155 | N RMERR,RMCHK,RMAMIS,DLAYGO,X,DR,RM668,RM60DAT,RMSTATUS
|
---|
156 | N RM68CNT,RM60CNT,RMSI,RMSAMIS,RM68IEN,RM60IEN,RMSUS60,RMSUS68,RMD
|
---|
157 | N RM68DATA,RM60TYP,RM68D,RM68TRAN,RMPRPRC,RM60IT,RMENTSUS,RMQUIT
|
---|
158 | Q
|
---|