| 1 | DVBCUTA1 ;ALB/GTS-AMIE C&P UTILITY ROUTINE A-1 ; 11/9/94  11:15 AM | 
|---|
| 2 | ;;2.7;AMIE;;Apr 10, 1995 | 
|---|
| 3 | ; | 
|---|
| 4 | ;** Version Changes | 
|---|
| 5 | ;   2.7 - New routine (Enhc 15) | 
|---|
| 6 | ; | 
|---|
| 7 | INSXM ;**Update Insuf exam info | 
|---|
| 8 | ; | 
|---|
| 9 | ;** Variable Descriptions | 
|---|
| 10 | ;    DVBAXMDA - 396.4 IEN - new Exam Rec | 
|---|
| 11 | ;    DVBAXMTP - 396.6 IEN - new exam | 
|---|
| 12 | ;    DVBAPROV - Provider on insufficiently completed exam | 
|---|
| 13 | ;    DVBAORXM - 396.4 IEN - insufficiently completed exam | 
|---|
| 14 | ;    DVBACMND - Local var containing Mumps code | 
|---|
| 15 | ;                X DVBACMND returns DVBAORXM | 
|---|
| 16 | ;    DVBCADEX - Indicates exam being added to 2507 | 
|---|
| 17 | ; | 
|---|
| 18 | I '$D(OUT)&($P(^DVB(396.3,REQDA,0),"^",10)="E") DO | 
|---|
| 19 | .S TVAR(1,0)="0,0,0,2,0^Enter the following information for the "_EXMNM | 
|---|
| 20 | .S TVAR(2,0)="0,0,0,1:1,0^ exam being returned as insufficient." | 
|---|
| 21 | .D WR^DVBAUTL4("TVAR") | 
|---|
| 22 | .K TVAR | 
|---|
| 23 | .N DVBAXMDA,REASON | 
|---|
| 24 | .S DVBAXMDA=+Y | 
|---|
| 25 | .K DIC,Y,DA | 
|---|
| 26 | .S REASON=+$$INRSLK^DVBCUTA3 | 
|---|
| 27 | .S:+REASON'>0 DTOUT="" | 
|---|
| 28 | .I +REASON>0 DO | 
|---|
| 29 | ..K DIE,Y,DA,DR | 
|---|
| 30 | ..S DIE="^DVB(396.4,",DR=".11////^S X=REASON;80;S:+$P(^DVB(396.3,REQDA,5),""^"",1)>0 Y="""";.12" | 
|---|
| 31 | ..S DA=DVBAXMDA S DIE("NO^")="" D ^DIE K DIE,DA,DR W !! | 
|---|
| 32 | .I '$D(DTOUT),(+$P(^DVB(396.3,REQDA,5),"^",1)>0) DO | 
|---|
| 33 | ..K DIE,Y,DR,DA ;**2507 Linked | 
|---|
| 34 | ..N DVBAXMTP,DVBAPROV,DVBAORXM,DVBACMND ;**S/W update Original Provider | 
|---|
| 35 | ..S DVBAXMTP=$P(^TMP($J,"NEW",EXMNM),U,1),DVBAORXM="",DVBAPROV="" | 
|---|
| 36 | ..S DVBACMND="S DVBAORXM=$O(^DVB(396.4,""ARQ"_DVBAINDA_""","_DVBAXMTP_",DVBAORXM))" | 
|---|
| 37 | ..N XREF S XREF="ARQ"_DVBAINDA | 
|---|
| 38 | ..I $D(^DVB(396.4,XREF,DVBAXMTP)) X DVBACMND ;**Return insuff exam IEN | 
|---|
| 39 | ..S:+DVBAORXM>0 DVBAPROV=$P(^DVB(396.4,DVBAORXM,0),U,7) | 
|---|
| 40 | ..I '$D(DVBCADEX)&(DVBAPROV="") DO | 
|---|
| 41 | ...S DVBAPROV="Unknown" ;**Bad 'ARQ' X-Ref | 
|---|
| 42 | ..K DVBADMNM | 
|---|
| 43 | ..I +DVBAORXM>0 DO | 
|---|
| 44 | ...I $D(^DVB(396.4,DVBAORXM,"TRAN")),(+$P(^DVB(396.4,DVBAORXM,"TRAN"),U,3)>0) DO | 
|---|
| 45 | ....S DVBADMNM=$P(^DIC(4.2,+$P(^DVB(396.4,DVBAORXM,"TRAN"),U,3),0),U,1) | 
|---|
| 46 | ....S DVBADMNM=$P(DVBADMNM,".",1) | 
|---|
| 47 | ..S:$D(DVBADMNM) DVBAPROV=DVBAPROV_" at "_DVBADMNM | 
|---|
| 48 | ..I $D(DVBCADEX)&(+DVBAORXM'>0) DO | 
|---|
| 49 | ...S DIR(0)="FAO^1:30" | 
|---|
| 50 | ...S DIR("A")="ORIGINAL PROVIDER: " | 
|---|
| 51 | ...S DIR("?",1)="Enter the Original Provider who performed the examination," | 
|---|
| 52 | ...S DIR("?",2)="if the exam was performed on the original 2507 request." | 
|---|
| 53 | ...S DIR("?")="Include the facility name if the exam was performed at another site." D ^DIR S DVBAPROV=X K DIR,X,Y | 
|---|
| 54 | ..S DIE="^DVB(396.4,",DR=".12////^S X=DVBAPROV",DA=DVBAXMDA | 
|---|
| 55 | ..D ^DIE K DVBADMNM | 
|---|
| 56 | Q | 
|---|
| 57 | ; | 
|---|
| 58 | RPTTYPE() ;** Report type - Detailed/Summary | 
|---|
| 59 | ;**RPTTYPE requires an entry.  Up-arrow exit allowed. | 
|---|
| 60 | ;**  All variables KILLed, EXCEPT DTOUT,DUOUT when user times | 
|---|
| 61 | ;**    or Up-Arrows out.  DTOUT,DUOUT KILLed by calling rtn. | 
|---|
| 62 | N TYPE | 
|---|
| 63 | S DIR(0)="SO^D:Detailed;S:Summary" | 
|---|
| 64 | S DIR("A",1)=" " | 
|---|
| 65 | S DIR("A")="Report Type" | 
|---|
| 66 | D ^DIR | 
|---|
| 67 | S TYPE=Y | 
|---|
| 68 | K X,Y,DIR | 
|---|
| 69 | Q TYPE | 
|---|
| 70 | ; | 
|---|
| 71 | INSFTME(CURIEN) ;** Calc Insuff 2507 total process time | 
|---|
| 72 | ;** Variables | 
|---|
| 73 | ;**   CURIEN - 396.3 IEN for 2507 in process | 
|---|
| 74 | ;**   PROCTM - Processing time running total | 
|---|
| 75 | ;**   LPQUIT - Exit loop indicator | 
|---|
| 76 | ; | 
|---|
| 77 | N PROCTM,LPQUIT | 
|---|
| 78 | S PROCTM=+$$PROCDAY^DVBCUTL2(CURIEN) | 
|---|
| 79 | F  Q:$D(LPQUIT)  DO | 
|---|
| 80 | .S:'$D(^DVB(396.3,CURIEN,5)) LPQUIT="" | 
|---|
| 81 | .I $D(^DVB(396.3,CURIEN,5)) DO | 
|---|
| 82 | ..I +$P(^DVB(396.3,CURIEN,5),U,1)'>0 DO | 
|---|
| 83 | ...S PROCTM=PROCTM+$P(^DVB(396.3,CURIEN,5),U,2) | 
|---|
| 84 | ...S LPQUIT="" | 
|---|
| 85 | ..I +$P(^DVB(396.3,CURIEN,5),U,1)>0 DO | 
|---|
| 86 | ...S CURIEN=+$P(^DVB(396.3,CURIEN,5),U,1) | 
|---|
| 87 | ...S PROCTM=PROCTM+$$PROCDAY^DVBCUTL2(CURIEN) | 
|---|
| 88 | Q PROCTM | 
|---|
| 89 | ; | 
|---|
| 90 | LINKDISP ;** Display Appt Links | 
|---|
| 91 | W @IOF | 
|---|
| 92 | N DVBAMORE | 
|---|
| 93 | W !,"Examination Appointment Links" | 
|---|
| 94 | W !!,"   Which Current Appt is "_$P(DVBAAPT,U,1)_" a reschedule of?",! | 
|---|
| 95 | W !,?4,"Initial Appt",?23,"Clock Stop Appt",?42,"Current Appt",?61,"Clinic" | 
|---|
| 96 | S ARYDA="" | 
|---|
| 97 | F ARYDA=1:1 Q:'$D(TMP("DVBC LINK",ARYDA))  DO | 
|---|
| 98 | .S SELDA="" | 
|---|
| 99 | .S SELDA=$O(TMP("DVBC LINK",ARYDA,SELDA)) | 
|---|
| 100 | .W !,?1,ARYDA,?4,$P(TMP("DVBC LINK",ARYDA,SELDA),U,1) | 
|---|
| 101 | .W ?23,$P(TMP("DVBC LINK",ARYDA,SELDA),U,2),?42,$P(TMP("DVBC LINK",ARYDA,SELDA),U,3) | 
|---|
| 102 | .W ?61,$E($P(TMP("DVBC LINK",ARYDA,SELDA),U,4),1,18) | 
|---|
| 103 | .S DVBAMORE=$O(TMP("DVBC LINK",ARYDA)) | 
|---|
| 104 | .I +DVBAMORE'>0 D SELLNK W ! | 
|---|
| 105 | .I +DVBAMORE>0,(ARYDA#5=0) D SELLNK W ! | 
|---|
| 106 | S SELDA="" | 
|---|
| 107 | I $D(Y) S SELDA=$O(TMP("DVBC LINK",Y,SELDA)) | 
|---|
| 108 | K TMP("DVBC LINK") | 
|---|
| 109 | Q | 
|---|
| 110 | ; | 
|---|
| 111 | SELLNK ;** Select link to modify | 
|---|
| 112 | W ! | 
|---|
| 113 | S DIR("A",1)="ENTER '^' TO STOP OR" | 
|---|
| 114 | S DIR("A")="CHOOSE 1-"_ARYDA_": " | 
|---|
| 115 | S DIR(0)="NOA^1:"_ARYDA_"^I X["".""!('$D(TMP(""DVBC LINK"",+Y))) K X" | 
|---|
| 116 | S DIR("?",1)="Select a link by entering its associated number." | 
|---|
| 117 | S DIR("?",2)="  'Initial Appt' is the first appointment made to complete the exam." | 
|---|
| 118 | S DIR("?",3)="  'Clock Stop Appt' is the date the processing clock will be stopped for the" | 
|---|
| 119 | S DIR("?",4)="    series of linked appointments, if the veteran reschedules or no shows." | 
|---|
| 120 | S DIR("?",5)="  'Current Appt' is the appointment the link shows as currently scheduled" | 
|---|
| 121 | S DIR("?",6)="    to complete the examination." | 
|---|
| 122 | S DIR("?")="Select from the numbers listed." | 
|---|
| 123 | D ^DIR | 
|---|
| 124 | I $D(DTOUT)!($D(DUOUT)) S ARYDA=9999 | 
|---|
| 125 | S:+Y>0 ARYDA=9999 | 
|---|
| 126 | I +Y'>0 K Y | 
|---|
| 127 | K DIR,DTOUT,DUOUT | 
|---|
| 128 | Q | 
|---|