[613] | 1 | DVBCLKTL ;ALB/GTS-AMIE C&P APPT LINK MNGT ROUTINE ; 10/20/94 10:30 PM
|
---|
| 2 | ;;2.7;AMIE;**1**;Apr 10, 1995
|
---|
| 3 | ;
|
---|
| 4 | ;** NOTICE: This routine is part of an implementation of a Nationally
|
---|
| 5 | ;** Controlled Procedure. Local modifications to this routine
|
---|
| 6 | ;** are prohibited per VHA Directive 10-93-142
|
---|
| 7 | ;
|
---|
| 8 | ;** Version Changes
|
---|
| 9 | ; 2.7 - New routine (Enhc 13)
|
---|
| 10 | ;
|
---|
| 11 | EN ;** Main entry point
|
---|
| 12 | K ^TMP("DVBC",$J)
|
---|
| 13 | D HOME^%ZIS
|
---|
| 14 | K DVBASUPR
|
---|
| 15 | S:$D(^XUSEC("DVBA C SUPERVISOR",DUZ)) DVBASUPR=""
|
---|
| 16 | ;** Select a C&P patient
|
---|
| 17 | F D HDR S DVBADFN=$$REQPAT^DVBCUTL5 D:+DVBADFN>0 MAINPROC Q:+DVBADFN'>0
|
---|
| 18 | K DVBASUPR,DVBADFN
|
---|
| 19 | Q
|
---|
| 20 | ;
|
---|
| 21 | MAINPROC ;
|
---|
| 22 | D CPPATARY^DVBCUTL5(DVBADFN) ;**^TMP - array of 2507's for patient
|
---|
| 23 | I +DVBACNT=1 D AUTO2507 ;**S/W select the 2507 if only one exists
|
---|
| 24 | I +DVBACNT>1 D USEL2507 ;**More than 1 2507 exists, user selects
|
---|
| 25 | S:'$D(DVBADA) DVBADA=""
|
---|
| 26 | I '$D(^DVB(396.3,+DVBADA,0)) D NO2507^DVBCUTL5 ;**No 2507 sel'd, error
|
---|
| 27 | ;
|
---|
| 28 | ;** If 2507 selected, allow link adjustment
|
---|
| 29 | I $D(^DVB(396.3,+DVBADA,0)) DO ;**Output current appointments
|
---|
| 30 | .D EXMDISP^DVBCUTL6(DVBADA) ;**Display the exams
|
---|
| 31 | .S DIR(0)="FAO^1:1",DIR("A")="Hit Return to continue with appointment display."
|
---|
| 32 | .S DIR("A",1)=" " D ^DIR K DIR,X,Y
|
---|
| 33 | .F Q:($D(DVBAOUT)) DO
|
---|
| 34 | ..D APPTSEL^DVBCUTL6($P(^DVB(396.3,DVBADA,0),U,1),1,DVBADA,$P(^DVB(396.3,DVBADA,0),U,5))
|
---|
| 35 | ..I '$D(^TMP("DVBC",$J,2)),(DVBAAPT="") DO ;**No C&P appt's
|
---|
| 36 | ...D:'$D(DVBAOUT) NOAPTERR^DVBCLKT2
|
---|
| 37 | ..I '$D(DVBAAPT),($D(^TMP("DVBC",$J,2))) DO ;**No appt selected
|
---|
| 38 | ...D:'$D(DVBAOUT) APPTERR^DVBCLKT2
|
---|
| 39 | ..I $D(DVBAAPT),($D(^TMP("DVBC",$J,2))&(DVBAAPT="")) DO
|
---|
| 40 | ...D:'$D(DVBAOUT) APPTERR^DVBCLKT2
|
---|
| 41 | ..I $D(DVBAAPT),(DVBAAPT'="") DO
|
---|
| 42 | ...K DVBADEL
|
---|
| 43 | ...I $D(DVBASUPR),($D(^DVB(396.95,"AB",+DVBADA,$P(DVBAAPT,U,4)))) D DELCK^DVBCLKT2 DO
|
---|
| 44 | ....I $D(DVBADEL) D DODEL^DVBCLKT2
|
---|
| 45 | ...I '$D(DVBASUPR),($D(^DVB(396.95,"AB",+DVBADA,$P(DVBAAPT,U,4)))) DO DELERR^DVBCLKT2
|
---|
| 46 | ...I '$D(^DVB(396.95,"AB",+DVBADA,$P(DVBAAPT,U,4))),('$D(DVBADEL)) D LINKPROC
|
---|
| 47 | ..K DVBAMORE,DVBALP,DVBADT,DVBAORD,DVBASEL,DVBAAPT
|
---|
| 48 | ..K APPTSTAT,APPTNODE,DVBALKDA,DVBCADLK,DVBCOLAP,DVBADEL
|
---|
| 49 | K ^TMP("DVBC",$J),DVBAOUT,DVBADTOT,DVBAPNAM,DVBADA
|
---|
| 50 | Q
|
---|
| 51 | ;
|
---|
| 52 | AUTO2507 ;If only 1 2507, select it
|
---|
| 53 | ;** DVBADA is the IEN of the selected 2507 request
|
---|
| 54 | N DVBADT,DVBAORD
|
---|
| 55 | S (DVBADT,DVBADA,DVBAORD)=""
|
---|
| 56 | S DVBAORD=$O(^TMP("DVBC",$J,DVBAORD))
|
---|
| 57 | S DVBADT=$O(^TMP("DVBC",$J,DVBAORD,DVBADT))
|
---|
| 58 | S DVBADA=$O(^TMP("DVBC",$J,DVBAORD,DVBADT,DVBADA))
|
---|
| 59 | K ^TMP("DVBC",$J)
|
---|
| 60 | Q
|
---|
| 61 | ;
|
---|
| 62 | LINKPROC ;Link appt to 2507
|
---|
| 63 | D LNKQS^DVBCLKT2 ;**Add link or modify existing link
|
---|
| 64 | K DVBCADLK S:+Y=0 DVBCADLK="" S DVBAYVAL=Y K Y
|
---|
| 65 | N DVBAOUT S:$D(DTOUT) DVBAOUT=""
|
---|
| 66 | ;
|
---|
| 67 | ;** If Appt, either add to 396.95 or modify an existing link
|
---|
| 68 | ;** APPTNODE and APPTSTAT from 'S' node of appt selected to link
|
---|
| 69 | I $D(DVBCADLK),(DVBAYVAL'="^"),('$D(DVBAOUT)) DO ;**Add Link
|
---|
| 70 | .D STATCK^DVBCUTL7($P(DVBAAPT,U,4),DVBADFN) ;**Set APPTNODE,APPTSTAT
|
---|
| 71 | .S SAVESTAT=APPTSTAT
|
---|
| 72 | .I SAVESTAT["A" D ATRBCK^DVBCUTL7,ADDLK^DVBCUTL8 ;**Link lost: Auto-rbk
|
---|
| 73 | .I SAVESTAT'["A" D NOAUTO^DVBCUTL7,ADDLK^DVBCUTL8 ;**Link lost: non-auto
|
---|
| 74 | I '$D(DVBCADLK),(DVBAYVAL'="^"),('$D(DVBAOUT)) DO ;**Rebook Link
|
---|
| 75 | .S DVBAOLDA=$$SELLNK^DVBCUTL8(DVBADA)
|
---|
| 76 | .I +DVBAOLDA'>0,('$D(DVBANOLK)) D ERRMESS^DVBCLKT2
|
---|
| 77 | .I +DVBAOLDA>0 DO
|
---|
| 78 | ..S OLDSTAT=$P(^DPT(DVBADFN,"S",$P(^DVB(396.95,DVBAOLDA,0),U,3),0),U,2)
|
---|
| 79 | ..I OLDSTAT["P"!(OLDSTAT["N"&(OLDSTAT'="NT")) DO
|
---|
| 80 | ...S ^TMP("DVBC",$J,"VETERAN CANCELLATION")=1
|
---|
| 81 | ...S ^TMP("DVBC",$J,"VETERAN REQ APPT DATE")=$P(DVBAAPT,U,4)
|
---|
| 82 | ..D STATCK^DVBCUTL7($P(DVBAAPT,U,4),DVBADFN) ;**Set APPTNODE,APPTSTAT
|
---|
| 83 | ..S SAVESTAT=APPTSTAT ;**APPTNODE,APPTSTAT used in subroutines
|
---|
| 84 | ..I SAVESTAT["A" D ATRBCK^DVBCUTL7,FIXLK^DVBCUTL8 ;**Link lost:Auto-rbk
|
---|
| 85 | ..I SAVESTAT'["A" D NOAUTO^DVBCUTL7,FIXLK^DVBCUTL8 ;**Link lost:non-auto
|
---|
| 86 | K SAVESTAT,OLDSTAT,DVBAYVAL,DVBANOLK
|
---|
| 87 | Q
|
---|
| 88 | ;
|
---|
| 89 | USEL2507 ;**User select 2507
|
---|
| 90 | D REQSEL^DVBCUTL5 ;**Select 2507 from ^TMP
|
---|
| 91 | I (+Y'>0)!($D(DVBAOUT)) S DVBADA=""
|
---|
| 92 | S:+Y>0 DVBASEL=+Y ;**Y selected 2507 value returned from ^DIR
|
---|
| 93 | D:+Y>0 FINDDA^DVBCUTL5 ;**Find selected 2507 DA (Return DVBADA)
|
---|
| 94 | K ^TMP("DVBC",$J)
|
---|
| 95 | Q
|
---|
| 96 | ;
|
---|
| 97 | HDR ;** Veteran selection header
|
---|
| 98 | W @IOF,!!,?18,"AMIE/C&P Appointment Link Management",!!
|
---|
| 99 | I $D(DVBASUPR) W !,"As a Supervisor, you may remove 2507 appointment links",!!
|
---|
| 100 | Q
|
---|