Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/HEALTH_LEVEL_SEVEN-HL/HLCSLM.m

    r613 r623  
    1 HLCSLM  ;SFCIOFO/AC - HL7 LINK MANAGER ;03/19/2008  10:01
    2         ;;1.6;HEALTH LEVEL SEVEN;**49,57,109,123,140**;Oct 13, 1995;Build 5
    3         ;Per VHA Directive 2004-038, this routine should not be modified.
    4         ;
    5 EN      ;Entry point for start up task
    6         N %,HLEVLCHK,HLTSKCNT
    7         F %=1:1:10 L +^HLCS("HLCSLM"):2 Q:$T
    8         E  Q
    9         I $G(ZTQUEUED) S Y=$$PSET^%ZTLOAD(ZTQUEUED)
    10         D INIT,SAVDOLRH
    11         D SETNM^%ZOSV($E("HLmgr:"_$G(ZTQUEUED),1,15))
    12         ;
    13 LOOP    ;
    14         D CHKQUE
    15         I $$CKLMSTOP G EXIT
    16         D SAVDOLRH
    17         D CHECKMST^HLEVMST ;HL*1.6*109 - Make sure event monitor current
    18         ; patch HL*1.6*140
    19         ; H 10
    20         H 5
    21         G LOOP
    22         ;
    23 EXIT    N HLJ,X
    24         S X=1
    25         F  L +^HLCS(869.3,X,5):2 Q:$T
    26         ;52=Link Manager task number
    27         S HLJ(869.3,X_",",52)="@"
    28         D FILE^HLDIE("","HLJ","","EXIT","HLCSLM") ;HL*1.6*109
    29         L -^HLCS(869.3,X,5)
    30         L -^HLCS("HLCSLM")
    31         Q
    32         ;
    33 SAVDOLRH        ;Save Last Known $H
    34         N HLJ,X
    35         S X=1
    36         F  L +^HLCS(869.3,X,5):2 Q:$T
    37         ;54=LM LAST KNOWN $H
    38         S HLJ(869.3,X_",",54)=$H
    39         D FILE^HLDIE("","HLJ","","SAVDOLRH","HLCSLM") ;HL*1.6*109
    40         L -^HLCS(869.3,X,5)
    41         Q
    42         ;
    43 CHKQUE  ;Check queues for messages to send
    44         ;HLTSKCNT(logical link)=task #^$H
    45         N HLDA,HLDP,HLMSG,HLTSK,Y
    46         S (HLDA,HLMSG)=""
    47         F HLDP=0:0 S HLDP=+$O(^HLMA("AC","O",HLDP)) Q:HLDP'>0  S HLMSG=+$O(^(HLDP,0)) I HLMSG D  L -^HLCS("HLCSLSM",HLDP)
    48         .;quit if persistent link
    49         .Q:$P($G(^HLCS(870,HLDP,400)),U,4)="Y"
    50         .L +^HLCS("HLCSLSM",HLDP):0 E  K HLTSKCNT(HLDP) Q
    51         .Q:'$$LLOK(+HLDP)
    52         .;get tasknumber from file 870 and HLTSKCNT array
    53         .S Y=$$TASKNUM(HLDP),HLTSK=$G(HLTSKCNT(HLDP))
    54         . ;
    55         . ;patch HL*1.6*123 start
    56         . S HLDP("TASK-ACTIVE")=0
    57         . ;
    58         . I Y D
    59         .. N ZTSK
    60         .. S ZTSK=Y
    61         .. ; Check status of task
    62         .. D STAT^%ZTLOAD
    63         .. I "12"[ZTSK(1) S HLDP("TASK-ACTIVE")=1
    64         . Q:HLDP("TASK-ACTIVE")
    65         . ;
    66         . I HLTSK D
    67         .. N ZTSK
    68         .. S ZTSK=+HLTSK
    69         .. ; Check status of task
    70         .. D STAT^%ZTLOAD
    71         .. I "12"[ZTSK(1) S HLDP("TASK-ACTIVE")=1
    72         . Q:HLDP("TASK-ACTIVE")
    73         . ;
    74         . ;no tasknumber, link not running nor queued, task it
    75         . I 'HLTSK!'Y D TASKLSUB(HLDP),SAVTSK(HLDP) Q
    76         ; comment out the following lines
    77         ; .;link was tasked, check time
    78         ; .S Y=$P(HLTSK,U,2)
    79         ; .;check that time task is less than 30 minutes
    80         ; .Q:$$HDIFF^XLFDT($H,Y,2)<1800
    81         ; .;shutdown and send alert
    82         ; .D SDFLD^HLCSTCP,EXITS^HLCSTCP("Shutdown"),SNDALERT
    83         ; loop through links that have been tasked
    84         ; F HLDP=0:0 S HLDP=$O(HLTSKCNT(HLDP)) Q:HLDP'>0  K:'$D(^HLMA("AC","O",HLDP)) HLTSKCNT(HLDP)
    85         F HLDP=0:0 S HLDP=$O(HLTSKCNT(HLDP)) Q:HLDP'>0  D
    86         . N ZTSK
    87         . S ZTSK=+HLTSKCNT(HLDP)
    88         . ; Check status of task
    89         . D STAT^%ZTLOAD
    90         . ; kill HLTSKCNT(HLDP) if process is not active
    91         . I "12"'[ZTSK(1) K HLTSKCNT(HLDP)
    92         ; patch HL*1.6*123 end
    93         Q
    94         ;
    95 INIT    ;Create Task number and clear Stop flag.
    96         N HLJ,X
    97         S X=1
    98         F  L +^HLCS(869.3,X,5):2 Q:$T
    99         ;52=Link Manager task number,53=Stop Link Manager
    100         S HLJ(869.3,X_",",52)=$G(ZTQUEUED)
    101         S HLJ(869.3,X_",",53)="@"
    102         D FILE^HLDIE("","HLJ","","INIT","HLCSLM") ;HL*1.6*109
    103         L -^HLCS(869.3,X,5)
    104         Q
    105 TASKNUM(X)      ;Look-up task number
    106         N %,DA,Y
    107         S DA=X
    108         ;
    109         ;**109**
    110         ;F  L +^HLCS(870,+DA,0):2 Q:$T
    111         ;
    112         S Y=$$GET1^DIQ(870,DA_",",11)
    113         ;
    114         ;**109
    115         ;L -^HLCS(870,+DA,0)
    116         ;
    117         Q Y
    118 STATUS(X)       ;Status of task
    119         N Y,ZTSK
    120         S ZTSK=X
    121         D STAT^%ZTLOAD
    122         S Y=ZTSK(1)
    123         Q Y
    124         ;
    125 LLOK(X) ;Function to check whether LL ok.
    126         ;return value 1 = ok, 0 = not ok.
    127         Q:'$G(X)
    128         N HLDP,HLDP0,HLPARM4,HLTYPTR
    129         S HLDP=+X,HLDP0=$G(^HLCS(870,HLDP,0)),HLPARM4=$G(^(400)) Q:HLDP0="" 0
    130         ;must be a client
    131         Q:$P(HLPARM4,U,3)'="C" 0
    132         ;
    133         ; patch HL*1.6*123
    134         ;shutdown LLP must be 0
    135         ; Q:$P(HLDP0,U,15)'=0 0
    136         ; change to 1, in case the data is empty
    137         Q:$P(HLDP0,U,15)=1 0
    138         ;
    139         ;must have LLP Type of TCP
    140         S HLTYPTR=+$P(HLDP0,U,3) Q:$P($G(^HLCS(869.1,HLTYPTR,0)),U)'="TCP" 0
    141         Q 1
    142         ;
    143 SAVTSK(X)       ;
    144         N HLDP,HLJ
    145         S HLDP=X
    146         ;
    147         ;**109**
    148         F  L +^HLCS(870,HLDP,0):2 Q:$T
    149         ;
    150         ;4=status,10=Time Stopped,9=Time Started,11=Task Number,3=Online ?
    151         S X=$NA(HLJ(870,HLDP_",")),@X@(11)=$G(ZTSK)
    152         ;S HLJ(870,HLDP_",",11)=$G(ZTSK)
    153         D FILE^HLDIE("","HLJ","","SAVTSK","HLCSLM") ; HL*1.6*109
    154         S HLTSKCNT(HLDP)=$G(ZTSK)_"^"_$H
    155         ;
    156         ;**109**
    157         L -^HLCS(870,HLDP,0)
    158         ;
    159         Q
    160         ;
    161 STRTSTOP        ;ENTRY POINT TO START/STOP TCP LINK MANAGER
    162         N DIR,DIRUT,Y
    163         L +^HLCS("HLCSLM"):3 E  D  Q
    164         .W !,*7,"Link Manager already running!"
    165         .W ! S DIR(0)="YO",DIR("A")="Would you like to stop the Link Manager now",DIR("B")="NO" D ^DIR K DIR
    166         .I $D(DIRUT)!'Y Q
    167         .D STOPLM
    168         W !,*7,"Link Manager is NOT currently running!"
    169         W ! S DIR(0)="YO",DIR("A")="Would you like to start the Link Manager now",DIR("B")="YES" D ^DIR K DIR
    170         I '$D(DIRUT)&Y D TASKLM
    171         L -^HLCS("HLCSLM")
    172         Q
    173         ;
    174 STOPLM  ;ENTRY POINT TO STOP LINK MANAGER
    175         N DIC,X,Y,DTOUT,DUOUT,DLAYGO,DIE,DA,DR
    176         S DIC="^HLCS(869.3,"
    177         S X=1
    178         D ^DIC
    179         S DA=+Y,DIE=DIC
    180         S DR="53////1"
    181         D ^DIE
    182         W !,"Link Manager has been asked to stop"
    183         Q
    184 STAT()  ;Status of LINK MANAGER--up, down or unable to determine.
    185         N %,DA,X,Y
    186         S DA=1
    187         S X=$$GET1^DIQ(869.3,DA_",",52)
    188         Q:X']"" 0
    189         S X=$$GET1^DIQ(869.3,DA_",",54)
    190         Q:X']"" 0
    191         I $$HDIFF^XLFDT($H,X,2)>500 Q 0
    192         Q 1
    193         ;
    194 TASKLSUB(X)     ;Task LINK SUB-MANAGER.
    195         ;This may be a place to log the time which the LINK SUBMANAGER is tasked.
    196         N HLDP,HLDP0,HLDAPP,HLTYPTR,HLBGR,HLENV,HLPARM,HLPARM4,HLQUIT,ZTRTN,ZTDESC,ZTCPU,ZTSAVE
    197         ;ZTSK is not Newed here because it will be needed by SAVTSK.
    198         S HLDP=X,HLDP0=$G(^HLCS(870,HLDP,0)),HLPARM4=$G(^(400))
    199         ; Q:"N"'[$P(HLPARM4,U,4)  ; patch HL*1.6*123: comment out
    200         ;quit if no LLP TYPE
    201         S HLDAPP=$P(HLDP0,U),HLTYPTR=$P(HLDP0,U,3) Q:'HLTYPTR
    202         S HLBGR=$G(^HLCS(869.1,HLTYPTR,100)),HLENV=$G(^(200))
    203         I HLENV'="" K HLQUIT X HLENV Q:$D(HLQUIT)
    204         S ZTRTN="^HLCSLSM",HLBGR=$P(HLBGR," ",2)
    205         S ZTDESC=HLDAPP_" Low Level Protocol",ZTSAVE("HLDP")="",ZTSAVE("HLBGR")=""
    206         S ZTIO="",ZTDTH=$H
    207         ;get startup node
    208         I $P(HLPARM4,U,6),$D(^%ZIS(14.7,+$P(HLPARM4,U,6),0)) S ZTCPU=$P(^(0),U)
    209         D ^%ZTLOAD
    210         D MON^HLCSTCP("Tasked") ;HL*1.6*123
    211         Q
    212         ;
    213 TASKLM  ;Task Link Manager
    214         ;Declare variables
    215         N ZTRTN,ZTDESC,ZTIO,ZTDTH,ZTSK,TMP
    216         S ZTIO=""
    217         S ZTDTH=$H
    218         ;Task Link Manager
    219         S ZTRTN="EN^HLCSLM"
    220         S ZTDESC="HL7 Link Manager"
    221         ;Call TaskMan
    222         D ^%ZTLOAD
    223         I $G(ZTSK) W !,"Link Manager queued as task number ",ZTSK
    224         E  W $C(7),!!,"Unable to start/restart Link Manager"
    225         Q
    226         ;
    227 CKLMSTOP()      ;Check whether Link Manager should stop
    228         N PTRMAIN,NODE5,STOP
    229         S PTRMAIN=+$O(^HLCS(869.3,0))
    230         L +^HLCS(869.3,PTRMAIN,5):1
    231         I $T L -^HLCS(869.3,PTRMAIN,5)
    232         S NODE5=$G(^HLCS(869.3,PTRMAIN,5))
    233         S STOP=+$P(NODE5,"^",3)
    234         Q:STOP STOP
    235         S STOP=$$S^%ZTLOAD
    236         Q STOP
    237         ;
    238 SNDALERT        ;Send Alert
    239         N XQA,XQAMSG,XQAOPT,XQAROU,XQAID,Z
    240         S Z=$P($$PARAM^HLCS2,U,8) Q:Z=""
    241         S XQA("G."_Z)="",XQAMSG="HL7 Logical Link "_$P(^HLCS(870,HLDP,0),U)_" shutdown due to TaskMan unable to process task request"
    242         D SETUP^XQALERT
    243         Q
     1HLCSLM ;SFCIOFO/AC - HL7 LINK MANAGER ;06/14/2005  10:29
     2 ;;1.6;HEALTH LEVEL SEVEN;**49,57,109,123**;Oct 13, 1995
     3 ;
     4EN ;Entry point for start up task
     5 N %,HLEVLCHK,HLTSKCNT
     6 F %=1:1:10 L +^HLCS("HLCSLM"):2 Q:$T
     7 E  Q
     8 I $G(ZTQUEUED) S Y=$$PSET^%ZTLOAD(ZTQUEUED)
     9 D INIT,SAVDOLRH
     10 D SETNM^%ZOSV($E("HLmgr:"_$G(ZTQUEUED),1,15))
     11 ;
     12LOOP ;
     13 D CHKQUE
     14 I $$CKLMSTOP G EXIT
     15 D SAVDOLRH
     16 D CHECKMST^HLEVMST ;HL*1.6*109 - Make sure event monitor current
     17 H 10
     18 G LOOP
     19 ;
     20EXIT N HLJ,X
     21 S X=1
     22 F  L +^HLCS(869.3,X,5):2 Q:$T
     23 ;52=Link Manager task number
     24 S HLJ(869.3,X_",",52)="@"
     25 D FILE^HLDIE("","HLJ","","EXIT","HLCSLM") ;HL*1.6*109
     26 L -^HLCS(869.3,X,5)
     27 L -^HLCS("HLCSLM")
     28 Q
     29 ;
     30SAVDOLRH ;Save Last Known $H
     31 N HLJ,X
     32 S X=1
     33 F  L +^HLCS(869.3,X,5):2 Q:$T
     34 ;54=LM LAST KNOWN $H
     35 S HLJ(869.3,X_",",54)=$H
     36 D FILE^HLDIE("","HLJ","","SAVDOLRH","HLCSLM") ;HL*1.6*109
     37 L -^HLCS(869.3,X,5)
     38 Q
     39 ;
     40CHKQUE ;Check queues for messages to send
     41 ;HLTSKCNT(logical link)=task #^$H
     42 N HLDA,HLDP,HLMSG,HLTSK,Y
     43 S (HLDA,HLMSG)=""
     44 F HLDP=0:0 S HLDP=+$O(^HLMA("AC","O",HLDP)) Q:HLDP'>0  S HLMSG=+$O(^(HLDP,0)) I HLMSG D  L -^HLCS("HLCSLSM",HLDP)
     45 .;quit if persistent link
     46 .Q:$P($G(^HLCS(870,HLDP,400)),U,4)="Y"
     47 .L +^HLCS("HLCSLSM",HLDP):0 E  K HLTSKCNT(HLDP) Q
     48 .Q:'$$LLOK(+HLDP)
     49 .;get tasknumber from file 870 and HLTSKCNT array
     50 .S Y=$$TASKNUM(HLDP),HLTSK=$G(HLTSKCNT(HLDP))
     51 . ;
     52 . ;patch HL*1.6*123 start
     53 . S HLDP("TASK-ACTIVE")=0
     54 . ;
     55 . I Y D
     56 .. N ZTSK
     57 .. S ZTSK=Y
     58 .. ; Check status of task
     59 .. D STAT^%ZTLOAD
     60 .. I "12"[ZTSK(1) S HLDP("TASK-ACTIVE")=1
     61 . Q:HLDP("TASK-ACTIVE")
     62 . ;
     63 . I HLTSK D
     64 .. N ZTSK
     65 .. S ZTSK=+HLTSK
     66 .. ; Check status of task
     67 .. D STAT^%ZTLOAD
     68 .. I "12"[ZTSK(1) S HLDP("TASK-ACTIVE")=1
     69 . Q:HLDP("TASK-ACTIVE")
     70 . ;
     71 . ;no tasknumber, link not running nor queued, task it
     72 . I 'HLTSK!'Y D TASKLSUB(HLDP),SAVTSK(HLDP) Q
     73 ; comment out the following lines
     74 ; .;link was tasked, check time
     75 ; .S Y=$P(HLTSK,U,2)
     76 ; .;check that time task is less than 30 minutes
     77 ; .Q:$$HDIFF^XLFDT($H,Y,2)<1800
     78 ; .;shutdown and send alert
     79 ; .D SDFLD^HLCSTCP,EXITS^HLCSTCP("Shutdown"),SNDALERT
     80 ; loop through links that have been tasked
     81 ; F HLDP=0:0 S HLDP=$O(HLTSKCNT(HLDP)) Q:HLDP'>0  K:'$D(^HLMA("AC","O",HLDP)) HLTSKCNT(HLDP)
     82 F HLDP=0:0 S HLDP=$O(HLTSKCNT(HLDP)) Q:HLDP'>0  D
     83 . N ZTSK
     84 . S ZTSK=+HLTSKCNT(HLDP)
     85 . ; Check status of task
     86 . D STAT^%ZTLOAD
     87 . ; kill HLTSKCNT(HLDP) if process is not active
     88 . I "12"'[ZTSK(1) K HLTSKCNT(HLDP)
     89 ; patch HL*1.6*123 end
     90 Q
     91 ;
     92INIT ;Create Task number and clear Stop flag.
     93 N HLJ,X
     94 S X=1
     95 F  L +^HLCS(869.3,X,5):2 Q:$T
     96 ;52=Link Manager task number,53=Stop Link Manager
     97 S HLJ(869.3,X_",",52)=$G(ZTQUEUED)
     98 S HLJ(869.3,X_",",53)="@"
     99 D FILE^HLDIE("","HLJ","","INIT","HLCSLM") ;HL*1.6*109
     100 L -^HLCS(869.3,X,5)
     101 Q
     102TASKNUM(X) ;Look-up task number
     103 N %,DA,Y
     104 S DA=X
     105 ;
     106 ;**109**
     107 ;F  L +^HLCS(870,+DA,0):2 Q:$T
     108 ;
     109 S Y=$$GET1^DIQ(870,DA_",",11)
     110 ;
     111 ;**109
     112 ;L -^HLCS(870,+DA,0)
     113 ;
     114 Q Y
     115STATUS(X) ;Status of task
     116 N Y,ZTSK
     117 S ZTSK=X
     118 D STAT^%ZTLOAD
     119 S Y=ZTSK(1)
     120 Q Y
     121 ;
     122LLOK(X) ;Function to check whether LL ok.
     123 ;return value 1 = ok, 0 = not ok.
     124 Q:'$G(X)
     125 N HLDP,HLDP0,HLPARM4,HLTYPTR
     126 S HLDP=+X,HLDP0=$G(^HLCS(870,HLDP,0)),HLPARM4=$G(^(400)) Q:HLDP0="" 0
     127 ;must be a client
     128 Q:$P(HLPARM4,U,3)'="C" 0
     129 ;
     130 ; patch HL*1.6*123
     131 ;shutdown LLP must be 0
     132 ; Q:$P(HLDP0,U,15)'=0 0
     133 ; change to 1, in case the data is empty
     134 Q:$P(HLDP0,U,15)=1 0
     135 ;
     136 ;must have LLP Type of TCP
     137 S HLTYPTR=+$P(HLDP0,U,3) Q:$P($G(^HLCS(869.1,HLTYPTR,0)),U)'="TCP" 0
     138 Q 1
     139 ;
     140SAVTSK(X) ;
     141 N HLDP,HLJ
     142 S HLDP=X
     143 ;
     144 ;**109**
     145 F  L +^HLCS(870,HLDP,0):2 Q:$T
     146 ;
     147 ;4=status,10=Time Stopped,9=Time Started,11=Task Number,3=Online ?
     148 S X=$NA(HLJ(870,HLDP_",")),@X@(11)=$G(ZTSK)
     149 ;S HLJ(870,HLDP_",",11)=$G(ZTSK)
     150 D FILE^HLDIE("","HLJ","","SAVTSK","HLCSLM") ; HL*1.6*109
     151 S HLTSKCNT(HLDP)=$G(ZTSK)_"^"_$H
     152 ;
     153 ;**109**
     154 L -^HLCS(870,HLDP,0)
     155 ;
     156 Q
     157 ;
     158STRTSTOP ;ENTRY POINT TO START/STOP TCP LINK MANAGER
     159 N DIR,DIRUT,Y
     160 L +^HLCS("HLCSLM"):3 E  D  Q
     161 .W !,*7,"Link Manager already running!"
     162 .W ! S DIR(0)="YO",DIR("A")="Would you like to stop the Link Manager now",DIR("B")="NO" D ^DIR K DIR
     163 .I $D(DIRUT)!'Y Q
     164 .D STOPLM
     165 W !,*7,"Link Manager is NOT currently running!"
     166 W ! S DIR(0)="YO",DIR("A")="Would you like to start the Link Manager now",DIR("B")="YES" D ^DIR K DIR
     167 I '$D(DIRUT)&Y D TASKLM
     168 L -^HLCS("HLCSLM")
     169 Q
     170 ;
     171STOPLM ;ENTRY POINT TO STOP LINK MANAGER
     172 N DIC,X,Y,DTOUT,DUOUT,DLAYGO,DIE,DA,DR
     173 S DIC="^HLCS(869.3,"
     174 S X=1
     175 D ^DIC
     176 S DA=+Y,DIE=DIC
     177 S DR="53////1"
     178 D ^DIE
     179 W !,"Link Manager has been asked to stop"
     180 Q
     181STAT() ;Status of LINK MANAGER--up, down or unable to determine.
     182 N %,DA,X,Y
     183 S DA=1
     184 S X=$$GET1^DIQ(869.3,DA_",",52)
     185 Q:X']"" 0
     186 S X=$$GET1^DIQ(869.3,DA_",",54)
     187 Q:X']"" 0
     188 I $$HDIFF^XLFDT($H,X,2)>500 Q 0
     189 Q 1
     190 ;
     191TASKLSUB(X) ;Task LINK SUB-MANAGER.
     192 ;This may be a place to log the time which the LINK SUBMANAGER is tasked.
     193 N HLDP,HLDP0,HLDAPP,HLTYPTR,HLBGR,HLENV,HLPARM,HLPARM4,HLQUIT,ZTRTN,ZTDESC,ZTCPU,ZTSAVE
     194 ;ZTSK is not Newed here because it will be needed by SAVTSK.
     195 S HLDP=X,HLDP0=$G(^HLCS(870,HLDP,0)),HLPARM4=$G(^(400))
     196 ; Q:"N"'[$P(HLPARM4,U,4)  ; patch HL*1.6*123: comment out
     197 ;quit if no LLP TYPE
     198 S HLDAPP=$P(HLDP0,U),HLTYPTR=$P(HLDP0,U,3) Q:'HLTYPTR
     199 S HLBGR=$G(^HLCS(869.1,HLTYPTR,100)),HLENV=$G(^(200))
     200 I HLENV'="" K HLQUIT X HLENV Q:$D(HLQUIT)
     201 S ZTRTN="^HLCSLSM",HLBGR=$P(HLBGR," ",2)
     202 S ZTDESC=HLDAPP_" Low Level Protocol",ZTSAVE("HLDP")="",ZTSAVE("HLBGR")=""
     203 S ZTIO="",ZTDTH=$H
     204 ;get startup node
     205 I $P(HLPARM4,U,6),$D(^%ZIS(14.7,+$P(HLPARM4,U,6),0)) S ZTCPU=$P(^(0),U)
     206 D ^%ZTLOAD
     207 D MON^HLCSTCP("Tasked") ;HL*1.6*123
     208 Q
     209 ;
     210TASKLM ;Task Link Manager
     211 ;Declare variables
     212 N ZTRTN,ZTDESC,ZTIO,ZTDTH,ZTSK,TMP
     213 S ZTIO=""
     214 S ZTDTH=$H
     215 ;Task Link Manager
     216 S ZTRTN="EN^HLCSLM"
     217 S ZTDESC="HL7 Link Manager"
     218 ;Call TaskMan
     219 D ^%ZTLOAD
     220 I $G(ZTSK) W !,"Link Manager queued as task number ",ZTSK
     221 E  W $C(7),!!,"Unable to start/restart Link Manager"
     222 Q
     223 ;
     224CKLMSTOP() ;Check whether Link Manager should stop
     225 N PTRMAIN,NODE5,STOP
     226 S PTRMAIN=+$O(^HLCS(869.3,0))
     227 L +^HLCS(869.3,PTRMAIN,5):1
     228 I $T L -^HLCS(869.3,PTRMAIN,5)
     229 S NODE5=$G(^HLCS(869.3,PTRMAIN,5))
     230 S STOP=+$P(NODE5,"^",3)
     231 Q:STOP STOP
     232 S STOP=$$S^%ZTLOAD
     233 Q STOP
     234 ;
     235SNDALERT ;Send Alert
     236 N XQA,XQAMSG,XQAOPT,XQAROU,XQAID,Z
     237 S Z=$P($$PARAM^HLCS2,U,8) Q:Z=""
     238 S XQA("G."_Z)="",XQAMSG="HL7 Logical Link "_$P(^HLCS(870,HLDP,0),U)_" shutdown due to TaskMan unable to process task request"
     239 D SETUP^XQALERT
     240 Q
Note: See TracChangeset for help on using the changeset viewer.