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

HLCSDR.m

Go to the documentation of this file.
  1. HLCSDR ;ALB/RJS - INITIALIZE VARIABLES AND OPEN DEVICE FOR RECEIVER ;07/20/99 14:00 [ 04/02/2003 8:37 AM ]
  1. ;;1.6;HEALTH LEVEL SEVEN;**1004**;APR 1, 2003
  1. ;;1.6;HEALTH LEVEL SEVEN;**2,14,49,57**;Oct 13, 1995
  1. ;THIS ROUTINE CONTAINS IHS MODIFICATIONS BY IHS/TUC/DLR 03/19/97
  1. ;AND IHS/OIRM/DSD/AEF 11/24/02
  1. ;
  1. INIT ;
  1. S HLZER=0
  1. I '$D(HLDP)&($G(%)'="") S HLDP=% ;LAUNCHED FROM VMS
  1. I '$D(HLDP) Q
  1. D DT^DICRW
  1. I HLDP'>0 S HLDP=$O(^HLCS(870,"B",HLDP,""))
  1. I HLDP'>0 G EXIT
  1. ;HLDP IEN of LOGICAL LINK file #870
  1. S HLDNODE=$G(^HLCS(870,HLDP,0))
  1. S HLPARM=$G(^HLCS(870,HLDP,200))
  1. ;pointer to DEVICE file
  1. S HLDEVPTR=$P(HLPARM,U)
  1. G EXIT:HLDEVPTR'>0
  1. S HLDEVICE=$P($G(^%ZIS(1,HLDEVPTR,0)),"^",1)
  1. G EXIT:HLDEVICE=""
  1. D FILE
  1. INIT1 ;
  1. G END:'HLZER
  1. S HLZER=0
  1. D OPEN G INIT1
  1. FILE ;
  1. D NOW^%DTC
  1. L +^HLCS(870,HLDP,0):DTIME I '$T G FILE
  1. ;9=Time Started, 10=Time Stopped, 11=Task Number
  1. ;14=Shutdown LLP, 3=Shutdown LLP, 18=Gross Errors
  1. I '$D(ZTSK) S ZTSK=""
  1. S DIE="^HLCS(870,",DA=HLDP,DR="9////^S X=%;10////@;11////^S X=ZTSK;14////0;3////SH;18////@" D ^DIE K DIE,DA,DR
  1. L -^HLCS(870,HLDP,0)
  1. OPEN ;
  1. ;----- BEGIN IHS MODIFICATION
  1. ;THE 2 LINES BELOW ARE COMMENTED OUT AND REPLACED BY A NEW LINE
  1. ;NO $ETRAP AT IHS
  1. ;IHS/OIRM/DSD/AEF 11/24/02
  1. ;I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERROR^HLCSDR"
  1. ;E S X="ERROR^HLCSDR",@^%ZOSF("TRAP")
  1. S X="ERROR^HLCSDR",@^%ZOSF("TRAP")
  1. ;----- END IHS MODIFICATION
  1. OPEN1 I $P($G(^HLCS(870,HLDP,0)),U,15) G END
  1. S HLST="OPEN" D STATUS(HLST,HLDP)
  1. S IOP=HLDEVICE,%ZIS=0 D ^%ZIS
  1. I POP S HLST="OPENFAIL" D STATUS(HLST,HLDP) H 5 G OPEN1
  1. INIT2 ;
  1. ;Re-transmission attempts, Node, Hang Time, Start character,
  1. ;End character, LLP Version Number
  1. S HLDAPP=$P(HLDNODE,U,1)
  1. S HLRETPRM=$P(HLPARM,U,2),HLDBSIZE=$P(HLPARM,U,3),HLDREAD=$P(HLPARM,U,4),HLDWRITE=$P(HLPARM,U,5),HLDSTRT=$P(HLPARM,U,6),HLDEND=$P(HLPARM,U,7),HLDVER=$P(HLPARM,U,8)
  1. ;Defaults
  1. I HLRETPRM="" S HLRETPRM=5
  1. I HLDREAD="" S HLDREAD=10
  1. I HLDWRITE="" S HLDWRITE=2
  1. I HLDSTRT="" S HLDSTRT=11
  1. I HLDEND="" S HLDEND=28
  1. I HLDVER="" S HLDVER=21
  1. I HLDBSIZE'>1 S HLDBSIZE=245
  1. ;Set up Device Params
  1. ;----- BEGIN IHS MODIFICATION
  1. ;IHS/TUC/DLR 03/19/97 - avoid wrap of long lines
  1. ;LINE BELOW IS COMMENTED OUT AND REPLACED BY NEW LINE
  1. ;S X=255 U IO X ^%ZOSF("EOFF"),^%ZOSF("RM"),^%ZOSF("TRMON")
  1. S X=0 U IO X ^%ZOSF("EOFF"),^%ZOSF("RM"),^%ZOSF("TRMON")
  1. ;----- END IHS MODIFICATION
  1. START ;
  1. D START^HLCSDR1(HLDP,HLRETPRM,HLDREAD,HLDWRITE,HLDSTRT,HLDEND,HLDVER,HLDBSIZE)
  1. END ;
  1. I '$G(HLDP) G EXIT
  1. D NOW^%DTC
  1. L +^HLCS(870,HLDP,0):DTIME I '$T G END
  1. ;10=Time Stopped,9=Time Started,11=Task Number
  1. S DIE="^HLCS(870,",DA=HLDP,DR="10////^S X=%;9////@;11////@" D ^DIE K DIE,DA,DR
  1. L -^HLCS(870,HLDP,0)
  1. EXIT ;
  1. D ^%ZISC
  1. K HLDNODE,HLDEVPTR,HLDEVICE,HLRETPRM,HLDAPP,X,HLDEND,HLDSTRT,HLDVER,HLDREAD,HLDWRITE,HLTRACE,ZTSK,HLDBSIZE,HLPARM
  1. Q
  1. STATUS(HLST,HLDP) ;Update field 4
  1. ;HLST=Current Status
  1. ;HLDP=IEN of Logical Link
  1. S DIE="^HLCS(870,",DA=HLDP,DR="4///^S X=HLST" D ^DIE K DIE,DA,DR
  1. Q
  1. ERROR ;Trap disconnect & read errors
  1. I $$EC^%ZOSV["DSCON"!($$EC^%ZOSV["data set hang-up") S HLST="DSCONECT" D STATUS(HLST,HLDP) H 3 S HLZER=1 I 1
  1. E D ^%ZTER
  1. S IO("C")=1 D ^%ZISC
  1. G UNWIND^%ZTER
  1. Q