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