1 | DVBCUTA2 ;ALB/GTS-AMIE C&P UTILITY ROUTINE A-2 ; 2/8/95 11:15 AM
|
---|
2 | ;;2.7;AMIE;;Apr 10, 1995
|
---|
3 | ;
|
---|
4 | ;** Version Changes
|
---|
5 | ; 2.7 - New routine (Enhc 15)
|
---|
6 | ;
|
---|
7 | INSUFXM ;** Insufficient exam information entry (Called from DVBCREDT)
|
---|
8 | K DIR,Y
|
---|
9 | N EXMNM,XMSTAT,XMDA,REQDA
|
---|
10 | S REQDA=SAVEDA
|
---|
11 | I $D(^DVB(396.3,REQDA,5)),NODE5=^DVB(396.3,REQDA,5) DO
|
---|
12 | .W !
|
---|
13 | .D XMQS
|
---|
14 | .I +Y=1 DO
|
---|
15 | ..K DIR,Y
|
---|
16 | ..K DTOUT,DUOUT
|
---|
17 | ..F XMDA=0:0 S XMDA=$O(^DVB(396.4,"C",REQDA,XMDA)) Q:(XMDA=""!($D(DTOUT))) D XMUPDT
|
---|
18 | .K DIR,Y
|
---|
19 | I $D(^DVB(396.3,REQDA,5)),(NODE5'=^DVB(396.3,REQDA,5)) DO
|
---|
20 | .D EXMEDIT
|
---|
21 | .I $D(XMEDT) DO
|
---|
22 | ..K DTOUT
|
---|
23 | ..D SAVEXAM ;**Save exam info in case time out
|
---|
24 | ..F XMDA=0:0 S XMDA=$O(^DVB(396.4,"C",REQDA,XMDA)) Q:(XMDA=""!($D(DTOUT))) D XMUPDT
|
---|
25 | ..I $D(DTOUT) D RESTLINK,RESTXAMS ;**Restore link and exam info
|
---|
26 | .I '$D(XMEDT) DO ;**Update original provider automatically
|
---|
27 | ..F XMDA=0:0 S XMDA=$O(^DVB(396.4,"C",REQDA,XMDA)) Q:XMDA="" D PROVUP
|
---|
28 | K Y,^TMP($J,"NEW"),XMEDT,^TMP("DVBC",$J,396.4)
|
---|
29 | Q
|
---|
30 | ;
|
---|
31 | XMUPDT ;** Update exam insuf info
|
---|
32 | W @IOF
|
---|
33 | S EXMNM=$P(^DVB(396.6,$P(^DVB(396.4,XMDA,0),U,3),0),U,1)
|
---|
34 | S ^TMP($J,"NEW",EXMNM)=$P(^DVB(396.4,XMDA,0),U,3)
|
---|
35 | S XMSTAT=$P(^DVB(396.4,XMDA,0),U,4),Y=XMDA ;**Set var's for INSXM
|
---|
36 | N DVBAINDA S DVBAINDA=$P(^DVB(396.3,REQDA,5),U,1)
|
---|
37 | D:(XMSTAT'["X"&(XMSTAT'="T")) INSXM^DVBCUTA1 ;**Update exam info
|
---|
38 | Q
|
---|
39 | ;
|
---|
40 | PROVUP ;** Auto update original provider
|
---|
41 | K DIE,Y,DR,DA
|
---|
42 | N DVBAXMTP,DVBAPROV,DVBAORXM,DVBACMND,DVBAINDA
|
---|
43 | S DVBAINDA=+$P(^DVB(396.3,REQDA,5),U,1)
|
---|
44 | S DVBAXMTP=$P(^DVB(396.4,XMDA,0),U,3),DVBAORXM="",DVBAPROV=""
|
---|
45 | S DVBACMND="S DVBAORXM=$O(^DVB(396.4,""ARQ"_DVBAINDA_""","_DVBAXMTP_",DVBAORXM))"
|
---|
46 | N XREF S XREF="ARQ"_DVBAINDA
|
---|
47 | I $D(^DVB(396.4,XREF,DVBAXMTP)) X DVBACMND ;**Return insuff exam IEN
|
---|
48 | S:+DVBAORXM>0 DVBAPROV=$P(^DVB(396.4,DVBAORXM,0),U,7)
|
---|
49 | I DVBAPROV="" DO
|
---|
50 | .S DVBAPROV="Unknown" ;**Bad 'ARQ' X-Ref
|
---|
51 | K DVBADMNM
|
---|
52 | I +DVBAORXM>0,($D(^DVB(396.4,DVBAORXM,"TRAN"))) DO
|
---|
53 | .S DVBADMNM=$P(^DIC(4.2,+$P(^DVB(396.4,DVBAORXM,"TRAN"),U,3),0),U,1)
|
---|
54 | .S DVBADMNM=$P(DVBADMNM,".",1)
|
---|
55 | S:$D(DVBADMNM) DVBAPROV=DVBAPROV_" at "_DVBADMNM
|
---|
56 | S DIE="^DVB(396.4,",DR=".12////^S X=DVBAPROV",DA=XMDA
|
---|
57 | D ^DIE K DIE,DR,DA
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | RESTLINK ;** Restore 2507 link info (Called from ^DVBCREDT & INSUFXM)
|
---|
61 | N LINKDA,DAYS
|
---|
62 | S LINKDA=$P(NODE5,U,1)
|
---|
63 | S DAYS=$P(NODE5,U,2)
|
---|
64 | S:LINKDA="" LINKDA="@"
|
---|
65 | S:DAYS="" DAYS="@"
|
---|
66 | K DA,DR,DIE
|
---|
67 | S DIE="^DVB(396.3,"
|
---|
68 | S DA=REQDA,DR="44////^S X=LINKDA;45////^S X=DAYS"
|
---|
69 | D ^DIE
|
---|
70 | K DA,DR,DIE
|
---|
71 | S TVAR(1,0)="1,3,0,2:1,0^All exams must be reviewed....Insufficient link and info not updated!"
|
---|
72 | D WR^DVBAUTL4("TVAR")
|
---|
73 | K TVAR
|
---|
74 | D CONTMES^DVBCUTL4
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | EXMEDIT ;** Ask user to edit exams
|
---|
78 | I '$D(UPDT2507)!((+$P(^DVB(396.3,REQDA,5),U,1)>0)&($D(UPDT2507))) DO
|
---|
79 | .D XMQS
|
---|
80 | .S:+Y=1 XMEDT=""
|
---|
81 | I (+$P(^DVB(396.3,REQDA,5),U,1)'>0)&($D(UPDT2507)) DO
|
---|
82 | .S TVAR(1,0)="1,3,0,2:1,0^Review exam info for a new Original Provider."
|
---|
83 | .D WR^DVBAUTL4("TVAR")
|
---|
84 | .K TVAR
|
---|
85 | .S XMEDT=""
|
---|
86 | .D CONTMES^DVBCUTL4
|
---|
87 | Q
|
---|
88 | ;
|
---|
89 | XMQS ;** Edit exams?
|
---|
90 | S DIR(0)="Y^AO",DIR("A")="Do you want to edit the insufficient information for the exams"
|
---|
91 | S DIR("?",1)="Enter Yes to edit Remarks, Insufficient Reason and Original Providor (when"
|
---|
92 | S DIR("?")=" appropriate). Enter No to keep the current information."
|
---|
93 | S DIR("B")="NO" D ^DIR
|
---|
94 | Q
|
---|
95 | ;
|
---|
96 | SAVEXAM ;** Save exam info prior to edit
|
---|
97 | N REMDA,XMDA
|
---|
98 | F XMDA=0:0 S XMDA=$O(^DVB(396.4,"C",REQDA,XMDA)) Q:XMDA="" DO
|
---|
99 | .S ^TMP("DVBC",$J,396.4,XMDA,0)=$P(^DVB(396.4,XMDA,0),U,11)_"^"_$P(^DVB(396.4,XMDA,0),U,12)
|
---|
100 | .F REMDA=0:0 S REMDA=$O(^DVB(396.4,XMDA,"INREM",REMDA)) Q:REMDA="" DO
|
---|
101 | ..S ^TMP("DVBC",$J,396.4,XMDA,"INREM",REMDA,0)=^DVB(396.4,XMDA,"INREM",REMDA,0)
|
---|
102 | Q
|
---|
103 | ;
|
---|
104 | RESTXAMS ;** Restore exam information (Called from INSUFXM)
|
---|
105 | N REMDA,XMDA,REASDA,PROV,REMARK,LNCNT,XMSTAT
|
---|
106 | F XMDA=0:0 S XMDA=$O(^DVB(396.4,"C",REQDA,XMDA)) Q:XMDA="" DO
|
---|
107 | .S XMSTAT=$P(^DVB(396.4,XMDA,0),U,4)
|
---|
108 | .I (XMSTAT'["X")&(XMSTAT'["T") DO
|
---|
109 | ..S REASDA=$P(^TMP("DVBC",$J,396.4,XMDA,0),U,1)
|
---|
110 | ..S PROV=$P(^TMP("DVBC",$J,396.4,XMDA,0),U,2)
|
---|
111 | ..K DIE,DR,DA
|
---|
112 | ..S DIE="^DVB(396.4,",DR=".11////^S X=REASDA;.12////^S X=PROV;80////@",DA=XMDA
|
---|
113 | ..D ^DIE
|
---|
114 | ..S LNCNT=0
|
---|
115 | ..S:'$D(^DVB(396.4,XMDA,"INREM",0)) ^DVB(396.4,XMDA,"INREM",0)="^^0^0^"_DT_"^"
|
---|
116 | ..F REMDA=0:0 S REMDA=$O(^TMP("DVBC",$J,396.4,XMDA,"INREM",REMDA)) Q:REMDA="" DO
|
---|
117 | ...S REMARK=^TMP("DVBC",$J,396.4,XMDA,"INREM",REMDA,0)
|
---|
118 | ...S LNCNT=LNCNT+1
|
---|
119 | ...S ^DVB(396.4,XMDA,"INREM",REMDA,0)=REMARK
|
---|
120 | ..S ^DVB(396.4,XMDA,"INREM",0)="^^"_LNCNT_"^"_LNCNT_"^"_DT_"^"
|
---|
121 | Q
|
---|