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