| 1 | HLOCVU ;DAOU/ALA-Conversion Utility ;03/15/2007
 | 
|---|
| 2 |  ;;1.6;HEALTH LEVEL SEVEN;**126,132,134**;Oct 13, 1995;Build 30
 | 
|---|
| 3 |  ;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  Q
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | APAR(HLOEID,APARMS,WHO,WHOTO,HLP,HLL) ;  Set up PPARMS array from Protocols
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ;  Input Parameter
 | 
|---|
| 10 |  ;   HLOEID = IEN of the event protocol
 | 
|---|
| 11 |  ;   HLP - "EXCLUDE SUBSCRIBER" subscript used to ignore specific subscribers
 | 
|---|
| 12 |  ;   HLL - dynamic addressing
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ;  Output
 | 
|---|
| 15 |  ;    APARMS array
 | 
|---|
| 16 |  ;    WHO - correlates to WHOTO, providing <subscriber protocol ien>,<link ien> (pass by reference)
 | 
|---|
| 17 |  ;    WHOTO array
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  N CT,NODE,I
 | 
|---|
| 20 |  K APARMS,WHO,WHOTO
 | 
|---|
| 21 |  S CT=0
 | 
|---|
| 22 |  Q:'$G(HLOEID)
 | 
|---|
| 23 |  S NODE=$G(^ORD(101,HLOEID,770))
 | 
|---|
| 24 |  S APARMS("EVENT")=$P(NODE,"^",4),APARMS("EVENT")=$S(APARMS("EVENT"):$P($G(^HL(779.001,APARMS("EVENT"),0)),"^"),1:"")
 | 
|---|
| 25 |  S APARMS("MESSAGE TYPE")=$P(NODE,"^",3),APARMS("MESSAGE TYPE")=$S(APARMS("MESSAGE TYPE"):$P($G(^HL(771.2,APARMS("MESSAGE TYPE"),0)),"^"),1:"")
 | 
|---|
| 26 |  S APARMS("APP ACK TYPE")=$P(NODE,"^",9),APARMS("APP ACK TYPE")=$S(APARMS("APP ACK TYPE"):$P($G(^HL(779.003,APARMS("APP ACK TYPE"),0)),"^"),1:"")
 | 
|---|
| 27 |  S APARMS("ACCEPT ACK TYPE")=$P(NODE,"^",8),APARMS("ACCEPT ACK TYPE")=$S(APARMS("ACCEPT ACK TYPE"):$P($G(^HL(779.003,APARMS("ACCEPT ACK TYPE"),0)),"^"),1:"")
 | 
|---|
| 28 |  S APARMS("VERSION")=$P(NODE,"^",10),APARMS("VERSION")=$S(APARMS("VERSION"):$P($G(^HL(771.5,APARMS("VERSION"),0)),"^"),1:"")
 | 
|---|
| 29 |  S APARMS("SENDING APPLICATION")=$P(NODE,"^")
 | 
|---|
| 30 |  I APARMS("SENDING APPLICATION") D
 | 
|---|
| 31 |  .S APARMS("FIELD SEPARATOR")=$E($G(^HL(771,APARMS("SENDING APPLICATION"),"FS")),1)
 | 
|---|
| 32 |  .S:APARMS("FIELD SEPARATOR")="" APARMS("FIELD SEPARATOR")="^"
 | 
|---|
| 33 |  .S APARMS("ENCODING CHARACTERS")=$E($G(^HL(771,APARMS("SENDING APPLICATION"),"EC")),1,4)
 | 
|---|
| 34 |  .S:APARMS("ENCODING CHARACTERS")="" APARMS("ENCODING CHARACTERS")="~|\&"
 | 
|---|
| 35 |  .S APARMS("SENDING APPLICATION")=$P($G(^HL(771,APARMS("SENDING APPLICATION"),0)),"^")
 | 
|---|
| 36 |  .I APARMS("SENDING APPLICATION")'="",'$O(^HLD(779.2,"C",APARMS("SENDING APPLICATION"),0)) D
 | 
|---|
| 37 |  ..;add the sending applcation to the registry
 | 
|---|
| 38 |  ..N DATA,ERROR
 | 
|---|
| 39 |  ..S DATA(.01)=APARMS("SENDING APPLICATION")
 | 
|---|
| 40 |  ..S DATA(2)=$P($G(^ORD(101,HLOEID,0)),"^",12)
 | 
|---|
| 41 |  ..I $$ADD^HLOASUB1(779.2,,.DATA,.ERROR) ;then will not generate an error
 | 
|---|
| 42 |  E  D
 | 
|---|
| 43 |  .S APARMS("SENDING APPLICATION")=""
 | 
|---|
| 44 |  .S APARMS("FIELD SEPARATOR")="^"
 | 
|---|
| 45 |  .S APARMS("ENCODING CHARACTERS")="~|\&"
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  S APARMS("COUNTRY")="USA"
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  ;get the subscribers
 | 
|---|
| 50 |  D
 | 
|---|
| 51 |  .N SUBIEN,HLOSID
 | 
|---|
| 52 |  .S SUBIEN=0
 | 
|---|
| 53 |  .F  S SUBIEN=$O(^ORD(101,HLOEID,775,SUBIEN)) Q:'SUBIEN  D
 | 
|---|
| 54 |  ..N NODE,APP,LINK,EXCLUDE
 | 
|---|
| 55 |  ..S NODE=$G(^ORD(101,HLOEID,775,SUBIEN,0))
 | 
|---|
| 56 |  ..S HLOSID=$P(NODE,"^")
 | 
|---|
| 57 |  ..Q:'HLOSID
 | 
|---|
| 58 |  ..S NODE=$G(^ORD(101,HLOSID,770))
 | 
|---|
| 59 |  ..S APP=$P(NODE,"^",2)
 | 
|---|
| 60 |  ..Q:'APP
 | 
|---|
| 61 |  ..S LINK=$P(NODE,"^",7)
 | 
|---|
| 62 |  ..Q:'LINK
 | 
|---|
| 63 |  ..;
 | 
|---|
| 64 |  ..;excluded?
 | 
|---|
| 65 |  ..S (EXCLUDE,I)=0
 | 
|---|
| 66 |  ..F  S I=$O(HLP("EXCLUDE SUBSCRIBER",I)) Q:'I  I $G(HLP("EXCLUDE SUBSCRIBER",I))=HLOSID S EXCLUDE=1 Q
 | 
|---|
| 67 |  ..Q:EXCLUDE
 | 
|---|
| 68 |  ..;
 | 
|---|
| 69 |  ..S CT=CT+1
 | 
|---|
| 70 |  ..S WHO(CT)=HLOSID_"^"_LINK
 | 
|---|
| 71 |  ..S WHOTO(CT,"RECEIVING APPLICATION")=$P($G(^HL(771,APP,0)),"^")
 | 
|---|
| 72 |  ..S WHOTO(CT,"FACILITY LINK NAME")=$P($G(^HLCS(870,LINK,0)),"^")
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 |  S I=0
 | 
|---|
| 75 |  F  S I=$O(HLL("LINKS",I)) Q:'I  D
 | 
|---|
| 76 |  .N LINK,PROTOCOL
 | 
|---|
| 77 |  .S CT=CT+1
 | 
|---|
| 78 |  .S PROTOCOL=$P(HLL("LINKS",I),"^")
 | 
|---|
| 79 |  .S LINK=$P(HLL("LINKS",I),"^",2)
 | 
|---|
| 80 |  .I PROTOCOL=+PROTOCOL D
 | 
|---|
| 81 |  ..S WHO(CT)=PROTOCOL
 | 
|---|
| 82 |  ..S PROTOCOL=$P($G(^ORD(101,PROTOCOL,0)),"^")
 | 
|---|
| 83 |  .E  D
 | 
|---|
| 84 |  ..S WHO(CT)=$O(^ORD(101,"B",PROTOCOL,0))
 | 
|---|
| 85 |  .I LINK=+LINK D
 | 
|---|
| 86 |  ..S $P(WHO(CT),"^",2)=LINK
 | 
|---|
| 87 |  ..S LINK=$P($G(^HLCS(870,LINK,0)),"^")
 | 
|---|
| 88 |  .E  D
 | 
|---|
| 89 |  ..S $P(WHO(CT),"^",2)=$O(^HLCS(870,"B",LINK,0))
 | 
|---|
| 90 |  .S WHOTO(CT,"RECEIVING APPLICATION")=PROTOCOL
 | 
|---|
| 91 |  .S WHOTO(CT,"FACILITY LINK NAME")=LINK
 | 
|---|
| 92 |  Q
 | 
|---|