Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DVBCLKTL

DVBCLKTL.m

Go to the documentation of this file.
  1. DVBCLKTL ;ALB/GTS-AMIE C&P APPT LINK MNGT ROUTINE ; 10/20/94 10:30 PM
  1. ;;2.7;AMIE;**1**;Apr 10, 1995
  1. ;
  1. ;** NOTICE: This routine is part of an implementation of a Nationally
  1. ;** Controlled Procedure. Local modifications to this routine
  1. ;** are prohibited per VHA Directive 10-93-142
  1. ;
  1. ;** Version Changes
  1. ; 2.7 - New routine (Enhc 13)
  1. ;
  1. EN ;** Main entry point
  1. K ^TMP("DVBC",$J)
  1. D HOME^%ZIS
  1. K DVBASUPR
  1. S:$D(^XUSEC("DVBA C SUPERVISOR",DUZ)) DVBASUPR=""
  1. ;** Select a C&P patient
  1. F D HDR S DVBADFN=$$REQPAT^DVBCUTL5 D:+DVBADFN>0 MAINPROC Q:+DVBADFN'>0
  1. K DVBASUPR,DVBADFN
  1. Q
  1. ;
  1. MAINPROC ;
  1. D CPPATARY^DVBCUTL5(DVBADFN) ;**^TMP - array of 2507's for patient
  1. I +DVBACNT=1 D AUTO2507 ;**S/W select the 2507 if only one exists
  1. I +DVBACNT>1 D USEL2507 ;**More than 1 2507 exists, user selects
  1. S:'$D(DVBADA) DVBADA=""
  1. I '$D(^DVB(396.3,+DVBADA,0)) D NO2507^DVBCUTL5 ;**No 2507 sel'd, error
  1. ;
  1. ;** If 2507 selected, allow link adjustment
  1. I $D(^DVB(396.3,+DVBADA,0)) DO ;**Output current appointments
  1. .D EXMDISP^DVBCUTL6(DVBADA) ;**Display the exams
  1. .S DIR(0)="FAO^1:1",DIR("A")="Hit Return to continue with appointment display."
  1. .S DIR("A",1)=" " D ^DIR K DIR,X,Y
  1. .F Q:($D(DVBAOUT)) DO
  1. ..D APPTSEL^DVBCUTL6($P(^DVB(396.3,DVBADA,0),U,1),1,DVBADA,$P(^DVB(396.3,DVBADA,0),U,5))
  1. ..I '$D(^TMP("DVBC",$J,2)),(DVBAAPT="") DO ;**No C&P appt's
  1. ...D:'$D(DVBAOUT) NOAPTERR^DVBCLKT2
  1. ..I '$D(DVBAAPT),($D(^TMP("DVBC",$J,2))) DO ;**No appt selected
  1. ...D:'$D(DVBAOUT) APPTERR^DVBCLKT2
  1. ..I $D(DVBAAPT),($D(^TMP("DVBC",$J,2))&(DVBAAPT="")) DO
  1. ...D:'$D(DVBAOUT) APPTERR^DVBCLKT2
  1. ..I $D(DVBAAPT),(DVBAAPT'="") DO
  1. ...K DVBADEL
  1. ...I $D(DVBASUPR),($D(^DVB(396.95,"AB",+DVBADA,$P(DVBAAPT,U,4)))) D DELCK^DVBCLKT2 DO
  1. ....I $D(DVBADEL) D DODEL^DVBCLKT2
  1. ...I '$D(DVBASUPR),($D(^DVB(396.95,"AB",+DVBADA,$P(DVBAAPT,U,4)))) DO DELERR^DVBCLKT2
  1. ...I '$D(^DVB(396.95,"AB",+DVBADA,$P(DVBAAPT,U,4))),('$D(DVBADEL)) D LINKPROC
  1. ..K DVBAMORE,DVBALP,DVBADT,DVBAORD,DVBASEL,DVBAAPT
  1. ..K APPTSTAT,APPTNODE,DVBALKDA,DVBCADLK,DVBCOLAP,DVBADEL
  1. K ^TMP("DVBC",$J),DVBAOUT,DVBADTOT,DVBAPNAM,DVBADA
  1. Q
  1. ;
  1. AUTO2507 ;If only 1 2507, select it
  1. ;** DVBADA is the IEN of the selected 2507 request
  1. N DVBADT,DVBAORD
  1. S (DVBADT,DVBADA,DVBAORD)=""
  1. S DVBAORD=$O(^TMP("DVBC",$J,DVBAORD))
  1. S DVBADT=$O(^TMP("DVBC",$J,DVBAORD,DVBADT))
  1. S DVBADA=$O(^TMP("DVBC",$J,DVBAORD,DVBADT,DVBADA))
  1. K ^TMP("DVBC",$J)
  1. Q
  1. ;
  1. LINKPROC ;Link appt to 2507
  1. D LNKQS^DVBCLKT2 ;**Add link or modify existing link
  1. K DVBCADLK S:+Y=0 DVBCADLK="" S DVBAYVAL=Y K Y
  1. N DVBAOUT S:$D(DTOUT) DVBAOUT=""
  1. ;
  1. ;** If Appt, either add to 396.95 or modify an existing link
  1. ;** APPTNODE and APPTSTAT from 'S' node of appt selected to link
  1. I $D(DVBCADLK),(DVBAYVAL'="^"),('$D(DVBAOUT)) DO ;**Add Link
  1. .D STATCK^DVBCUTL7($P(DVBAAPT,U,4),DVBADFN) ;**Set APPTNODE,APPTSTAT
  1. .S SAVESTAT=APPTSTAT
  1. .I SAVESTAT["A" D ATRBCK^DVBCUTL7,ADDLK^DVBCUTL8 ;**Link lost: Auto-rbk
  1. .I SAVESTAT'["A" D NOAUTO^DVBCUTL7,ADDLK^DVBCUTL8 ;**Link lost: non-auto
  1. I '$D(DVBCADLK),(DVBAYVAL'="^"),('$D(DVBAOUT)) DO ;**Rebook Link
  1. .S DVBAOLDA=$$SELLNK^DVBCUTL8(DVBADA)
  1. .I +DVBAOLDA'>0,('$D(DVBANOLK)) D ERRMESS^DVBCLKT2
  1. .I +DVBAOLDA>0 DO
  1. ..S OLDSTAT=$P(^DPT(DVBADFN,"S",$P(^DVB(396.95,DVBAOLDA,0),U,3),0),U,2)
  1. ..I OLDSTAT["P"!(OLDSTAT["N"&(OLDSTAT'="NT")) DO
  1. ...S ^TMP("DVBC",$J,"VETERAN CANCELLATION")=1
  1. ...S ^TMP("DVBC",$J,"VETERAN REQ APPT DATE")=$P(DVBAAPT,U,4)
  1. ..D STATCK^DVBCUTL7($P(DVBAAPT,U,4),DVBADFN) ;**Set APPTNODE,APPTSTAT
  1. ..S SAVESTAT=APPTSTAT ;**APPTNODE,APPTSTAT used in subroutines
  1. ..I SAVESTAT["A" D ATRBCK^DVBCUTL7,FIXLK^DVBCUTL8 ;**Link lost:Auto-rbk
  1. ..I SAVESTAT'["A" D NOAUTO^DVBCUTL7,FIXLK^DVBCUTL8 ;**Link lost:non-auto
  1. K SAVESTAT,OLDSTAT,DVBAYVAL,DVBANOLK
  1. Q
  1. ;
  1. USEL2507 ;**User select 2507
  1. D REQSEL^DVBCUTL5 ;**Select 2507 from ^TMP
  1. I (+Y'>0)!($D(DVBAOUT)) S DVBADA=""
  1. S:+Y>0 DVBASEL=+Y ;**Y selected 2507 value returned from ^DIR
  1. D:+Y>0 FINDDA^DVBCUTL5 ;**Find selected 2507 DA (Return DVBADA)
  1. K ^TMP("DVBC",$J)
  1. Q
  1. ;
  1. HDR ;** Veteran selection header
  1. W @IOF,!!,?18,"AMIE/C&P Appointment Link Management",!!
  1. I $D(DVBASUPR) W !,"As a Supervisor, you may remove 2507 appointment links",!!
  1. Q