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