| 1 | IVMUTQ ;ALB/ESD - Device Handling and Queueing Utility ; 03-FEB-93
 | 
|---|
| 2 |  ;;Version 2.0 ; INCOME VERIFICATION MATCH ;; 21-OCT-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ; This routine is a generic interface to the device handler (^%ZIS)
 | 
|---|
| 6 |  ; and task manager (^%ZTLOAD).  It will handle device opening and
 | 
|---|
| 7 |  ; closing and variable clean-up.
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ;  Input (to be defined by the caller of the routine):
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ;       IVMRTN - application routine entry point for output (required).
 | 
|---|
| 12 |  ;       %ZIS   - device call variable (set to "QMP" if not defined).
 | 
|---|
| 13 |  ;       ZTDESC - description of task (set if not defined).
 | 
|---|
| 14 |  ;       ZTSAVE - input parameters to be saved (set to IVMRTN).
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  ; NOTE: Other optional input variables for %ZIS and %ZTLOAD calls
 | 
|---|
| 17 |  ;       may be defined as described in KERNEL documentation.
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | EN I $G(IVMRTN)="" W !!,"Routine aborted...entry point not defined." G ENQ
 | 
|---|
| 21 |  I $D(%ZIS)#2=0 S %ZIS="QMP"
 | 
|---|
| 22 |  D ^%ZIS K %ZIS G:POP ENQ
 | 
|---|
| 23 |  I '$D(IO("Q")) U IO D @IVMRTN,^%ZISC,ENQ Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  ; task job
 | 
|---|
| 26 |  S ZTRTN=@"IVMRTN",ZTSAVE("IVMRTN")=""
 | 
|---|
| 27 |  I '$D(ZTDESC) S ZTDESC="IVM UNKNOWN OPTION"
 | 
|---|
| 28 |  D ^%ZTLOAD
 | 
|---|
| 29 |  W !,$S($D(ZTSK):"Job has been queued. The task number is "_ZTSK_".",1:"Unable to queue this job.")
 | 
|---|
| 30 |  D HOME^%ZIS
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 | ENQ ; clean-up
 | 
|---|
| 33 |  K IO("Q"),IVMRTN,POP,ZTCPU,ZTDESC,ZTDTH,ZTIO,ZTKIL,ZTPRI,ZTRTN,ZTSAVE,ZTUCI,ZTSK
 | 
|---|
| 34 |  Q
 | 
|---|