| 1 | LA7VLL ;DALOI\JMC - Setup HL7 v1.6 Logical Link for Consolidation ; 12/3/1997
 | 
|---|
| 2 |  ;;5.2;AUTOMATED LAB INSTRUMENTS;**27,51,55,64**;Sep 27, 1994
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; Reference to HL LOGICAL LINK file (#870) supported by DBIA #1495, 1496, 2063
 | 
|---|
| 5 |  ; Reference to PROTOCOL file (#101) supported by DBIA #872
 | 
|---|
| 6 |  ; Reference to MAIL GROUP file (#3.8) supported by DBIA #2061
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 | MAIL(LRI) ;
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  Q:LRI=""
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  N DA,DIC,DIE,DLAYGO,DR,FDA,LA7DIE,LA7IENS,LA7LINK,LA7VMGP,LA7VX,LA7X,LA7Y,X
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  S LA7VMGP="LA7V "_$P(LRI,"^") D MAILGRP
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  W !!,"Updating HL LOGICAL LINK file (#870)."
 | 
|---|
| 17 |  S LA7X="LA7V"_$P(LRI,"^"),LA7Y=+$$FIND1^DIC(870,"","OX",LA7X)
 | 
|---|
| 18 |  I LA7Y S LA7LINK(LA7Y)=LA7X
 | 
|---|
| 19 |  ; Check for old spelling using 'space' in name
 | 
|---|
| 20 |  I LA7Y<1 D
 | 
|---|
| 21 |  . S LA7Y=+$$FIND1^DIC(870,"","OX","LA7V "_$P(LRI,U))
 | 
|---|
| 22 |  . I LA7Y>0 S LA7LINK(LA7Y)=LA7X,FDA(1,870,LA7Y_",",.01)=LA7X
 | 
|---|
| 23 |  I LA7Y<1 D
 | 
|---|
| 24 |  . W !,?5,"Adding LA7V"_$P(LRI,"^")
 | 
|---|
| 25 |  . S X="LA7V"_$P(LRI,"^"),DIC="^HLCS(870,",DIC(0)="L",DLAYGO=870
 | 
|---|
| 26 |  . D ^DIC
 | 
|---|
| 27 |  . I Y>0 S LA7Y=+Y,LA7LINK(LA7Y)=$P(Y,U,2)
 | 
|---|
| 28 |  I LA7Y<1 D  Q
 | 
|---|
| 29 |  . W !!,"Failure LA7V"_$P(LRI,"^")_" was not created in file #870."
 | 
|---|
| 30 |  S LA7IENS=LA7Y_","
 | 
|---|
| 31 |  S FDA(1,870,LA7IENS,2)="MAILMAN"
 | 
|---|
| 32 |  S FDA(1,870,LA7IENS,100.01)=LA7VMGP
 | 
|---|
| 33 |  D FILE^DIE("E","FDA(1)","LA7DIE(1)")
 | 
|---|
| 34 |  D CLEAN^DILF
 | 
|---|
| 35 |  D LL
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | MAILGRP ; Create mail group for HL7 protocol logical link
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  N DA,DIC,DLAYGO,DOMAIN,LA738,LA7VDESC,LA7VXMY
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  W !!,"Creating mail group "_LA7VMGP_" for use by the"
 | 
|---|
| 44 |  W !,"HL7 v1.6 Logical Link "_LA7VMGP_"."
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  S LA7VXMY=""
 | 
|---|
| 47 |  S LA7VDESC(1)="This mail group is used by the HL7 Logical Link file for "
 | 
|---|
| 48 |  S LA7VDESC(2)="transmitting Lab data to site "_$P(LRI,"^",2)_"."
 | 
|---|
| 49 |  S LA738=$$MG^XMBGRP(LA7VMGP,0,DUZ,1,.LA7VXMY,.LA7VDESC,1)
 | 
|---|
| 50 |  I LA738<0 D  Q
 | 
|---|
| 51 |  . W !!,"Failure: mail group ",LA7VMGP," was not created in file #3.8."
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  S DOMAIN=$$GET1^DIQ(4,+$P(LRI,"^",4)_",",60)
 | 
|---|
| 54 |  I $G(DOMAIN)="" D ERROR Q
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  ; Add remote member to mail group
 | 
|---|
| 57 |  S DA(1)=LA738,DIC("P")=$P(^DD(3.8,12,0),U,2),DIC="^XMB(3.8,"_DA(1)_",6,",DIC(0)="L",DLAYGO=3.812
 | 
|---|
| 58 |  S X="S.HL V16 SERVER@"_DOMAIN
 | 
|---|
| 59 |  D ^DIC
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | ERROR ; Error creating domain
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 |  W !!,"The INSTITUTION file (#4) entry for "_$P(LRI,"^",2)_" does not contain a domain."
 | 
|---|
| 65 |  W !,"Unable to create the COLLECTION system link for mail group ",$G(LA7VMGP),"."
 | 
|---|
| 66 |  W !,"The REMOTE MEMBER, S.HL V16 SERVER@domain name will need to be manually"
 | 
|---|
| 67 |  W !,"added to the mail group "_$G(LA7VMGP),"."
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 | TCP(LRI,PRIMARY) ;
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 |  N DIC,DA,DIE,DR,DLAYGO,FDA,LA7DIE,LA7IENS,LA7LINK,LA7P,LA7VX,LA7X,LA7Y,X
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 |  Q:LRI=""!PRIMARY=""
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  ; Setup client logical link if one not associated with this institution
 | 
|---|
| 78 |  D LINK^HLUTIL3($P(LRI,"^",4),.LA7LINK,"")
 | 
|---|
| 79 |  I '$O(LA7LINK(0)) D
 | 
|---|
| 80 |  . W !!,"Updating HL LOGICAL LINK file (#870)."
 | 
|---|
| 81 |  . S LA7X="LA7V"_$P(LRI,U),LA7Y=+$$FIND1^DIC(870,"","OX",LA7X)
 | 
|---|
| 82 |  . I LA7Y>0 S LA7LINK(LA7Y)=LA7X
 | 
|---|
| 83 |  . ; Check for old spelling using 'space' in name
 | 
|---|
| 84 |  . I LA7Y<1 D
 | 
|---|
| 85 |  . . S LA7Y=+$$FIND1^DIC(870,"","OX","LA7V "_$P(LRI,U))
 | 
|---|
| 86 |  . . I LA7Y>0 S LA7LINK(LA7Y)=LA7X,FDA(1,870,LA7Y_",",.01)=LA7X
 | 
|---|
| 87 |  . I LA7Y<1 D
 | 
|---|
| 88 |  . . W !,?5,"Adding "_LA7X
 | 
|---|
| 89 |  . . S X=LA7X,DIC="^HLCS(870,",DIC(0)="L",DLAYGO=870
 | 
|---|
| 90 |  . . D ^DIC
 | 
|---|
| 91 |  . . I Y>0 S LA7Y=+Y,LA7LINK(LA7Y)=$P(Y,U,2)
 | 
|---|
| 92 |  . I LA7Y<1 D  Q
 | 
|---|
| 93 |  . . W !!,"Failure "_LA7X_" was not created in file #870."
 | 
|---|
| 94 |  . S LA7IENS=LA7Y_","
 | 
|---|
| 95 |  . S FDA(1,870,LA7IENS,2)="TCP"
 | 
|---|
| 96 |  . S FDA(1,870,LA7IENS,100.01)="@"
 | 
|---|
| 97 |  . D FILE^DIE("E","FDA(1)","LA7DIE(1)")
 | 
|---|
| 98 |  . D CLEAN^DILF
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 |  ; Setup server logical link if one not associated with this institution
 | 
|---|
| 101 |  D LINK^HLUTIL3($P(PRIMARY,"^"),.LA7P,"")
 | 
|---|
| 102 |  I '$O(LA7P(0)) D
 | 
|---|
| 103 |  . S LA7X="LA7V"_$P(PRIMARY,U,3),LA7Y=+$$FIND1^DIC(870,"","OX",LA7X)
 | 
|---|
| 104 |  . ; Check for old spelling using 'space' in name
 | 
|---|
| 105 |  . I LA7Y<1 D
 | 
|---|
| 106 |  . . S LA7Y=+$$FIND1^DIC(870,"","OX","LA7V "_$P(PRIMARY,U,3))
 | 
|---|
| 107 |  . . I LA7Y>0 S FDA(2,870,LA7Y_",",.01)=LA7X
 | 
|---|
| 108 |  . I LA7Y<1 D
 | 
|---|
| 109 |  . . W !,?5,"Adding "_LA7X
 | 
|---|
| 110 |  . . S X=LA7X,DIC="^HLCS(870,",DIC(0)="L",DLAYGO=870
 | 
|---|
| 111 |  . . D ^DIC
 | 
|---|
| 112 |  . . I Y>0 S LA7Y=+Y
 | 
|---|
| 113 |  . I LA7Y<1 D  Q
 | 
|---|
| 114 |  . . W !!,"Failure "_LA7X_" was not created in file #870."
 | 
|---|
| 115 |  . K LA7IENS
 | 
|---|
| 116 |  . S LA7IENS=LA7Y_","
 | 
|---|
| 117 |  . S FDA(2,870,LA7IENS,2)="TCP"
 | 
|---|
| 118 |  . S FDA(2,870,LA7IENS,100.01)="@"
 | 
|---|
| 119 |  . D FILE^DIE("E","FDA(2)","LA7DIE(2)")
 | 
|---|
| 120 |  . D CLEAN^DILF
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 |  D LL
 | 
|---|
| 123 |  Q
 | 
|---|
| 124 |  ;
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 | LL ;
 | 
|---|
| 127 |  N DIR,DIRUT,DIROUT,DUOUT,DTOUT,LA7X,LINK,X
 | 
|---|
| 128 |  W !,"Updating the PROTOCOL file (#101)."
 | 
|---|
| 129 |  ;
 | 
|---|
| 130 |  S X=$O(LA7LINK(0)),LINK=LA7LINK(X)
 | 
|---|
| 131 |  I $O(HOST(0)) D
 | 
|---|
| 132 |  . S LA7X="LA7V Process Results from "_$P(LRI,"^")
 | 
|---|
| 133 |  . D SETPRO(LA7X,"770.7///"_LINK)
 | 
|---|
| 134 |  . S LA7X="LA7V Send Order to "_$P(LRI,"^")
 | 
|---|
| 135 |  . D SETPRO(LA7X,"770.7///"_LINK)
 | 
|---|
| 136 |  ;
 | 
|---|
| 137 |  I $O(REMOTE(0)) D
 | 
|---|
| 138 |  . S LA7X="LA7V Send Results to "_$P(LRI,"^")
 | 
|---|
| 139 |  . D SETPRO(LA7X,"770.7///"_LINK)
 | 
|---|
| 140 |  . S LA7X="LA7V Process Order from "_$P(LRI,"^")
 | 
|---|
| 141 |  . D SETPRO(LA7X,"770.7///"_LINK)
 | 
|---|
| 142 |  ;
 | 
|---|
| 143 |  S DIR(0)="E" D ^DIR
 | 
|---|
| 144 |  Q
 | 
|---|
| 145 |  ;
 | 
|---|
| 146 |  ;
 | 
|---|
| 147 | SETPRO(LA7X,LA7FLDS) ;
 | 
|---|
| 148 |  ;
 | 
|---|
| 149 |  N DA,DIC,DIE,DLAYGO,DR,D0,X,Y
 | 
|---|
| 150 |  ;
 | 
|---|
| 151 |  S X=$G(LA7X),DIC="^ORD(101,",DLAYGO=101,DIC(0)="LM"
 | 
|---|
| 152 |  D ^DIC
 | 
|---|
| 153 |  I +Y<1 Q
 | 
|---|
| 154 |  ;
 | 
|---|
| 155 |  S DA=+Y,DR=LA7FLDS,DIE=DIC
 | 
|---|
| 156 |  D ^DIE
 | 
|---|
| 157 |  ;
 | 
|---|
| 158 |  Q
 | 
|---|