| 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 | 
|---|