source: FOIAVistA/trunk/r/HEALTH_DATA_AND_INFORMATICS-HDI/HDISVM02.m@ 1250

Last change on this file since 1250 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 3.1 KB
Line 
1HDISVM02 ;;CT/GRR SEND MESSAGE ; 02 Mar 2005 4:25 PM
2 ;;1.0;HEALTH DATA & INFORMATICS;**6**;Feb 22, 2005
3 ;
4SNDXML(ARRY,SRVR,HDISINP,SYSPTR) ;Send XML document to server
5 ; Input: ARRY - Array containing XML document (closed root)
6 ; SRVR - 1 = VUID Server, 2 = Status Update Server
7 ; HDISINP - Array containing additional info (closed root) (optional)
8 ; @HDISINP@(variable) = Value
9 ; @HDISINP@(array,subscript) = Value
10 ; @HDISINP@(array,subscript_1,subscript_2,...) = Value
11 ;
12 ; Example:
13 ; @HDISINP@("TEST1")=1
14 ; @HDISINP@("TEST2")=2
15 ; @HDISINP@("TEST2","SUB1")="2A"
16 ; @HDISINP@("TEST3","SUB1","SUB2")="3B"
17 ;
18 ; Results in the following variables/arrays being set:
19 ; TEST1=1
20 ; TEST2=2
21 ; TEST2("SUB1")="2A"
22 ; TEST3("SUB1","SUB2")="3B"
23 ; SYSPTR - Pointer to HDIS System file (optional)
24 ; If passed, the destination information is obtained
25 ; from the HDIS Parameter file entry for the referenced
26 ; system. By default, the destination information is
27 ; pulled from the HDIS Parameter entry for the current
28 ; system (which contains the destination information for
29 ; the centrally located server)
30 ;Output: None
31 ; XML document sent to Data Standardization server option
32 ; at given MailMan domain
33 ;
34 I ARRY=""!(SRVR="") Q "0^Required parameter missing"
35 I SRVR'=1&(SRVR'=2) Q "0^SRVR Parameter invalid"
36 N SUBJECT,HDITO,HDINSTR,HDIXMZ,SERVER,SRVTYP,MAXLIN,SRVROPT
37 S SYSPTR=+$G(SYSPTR)
38 I 'SYSPTR K SYSPTR I '$$CURSYS^HDISVF07(.SYSPTR) Q "0^Unable to determine current system"
39 ;Get location information for VUID Server
40 I SRVR=1 D
41 .S SERVER=$$GETVLOC^HDISVF02(SYSPTR)
42 .S SRVTYP=$$GETVCON^HDISVF02(SYSPTR)
43 .S SRVROPT=$$GETVSRV^HDISVF02(SYSPTR)
44 ;Get location information for Status Server
45 I SRVR=2 D
46 .S SERVER=$$GETSLOC^HDISVF03(SYSPTR)
47 .S SRVTYP=$$GETSCON^HDISVF03(SYSPTR)
48 .S SRVROPT=$$GETSSRV^HDISVF03(SYSPTR)
49 ;Instantiate variables included in input array
50 I $G(HDISINP)]"" D
51 .N ROOT,RSCNT,NODE,NSCNT,TROOT
52 .S ROOT=$$OREF^DILF(HDISINP)
53 .S RSCNT=$QL(HDISINP)
54 .S NODE=HDISINP
55 .F S NODE=$Q(@NODE) Q:(NODE="")!(NODE'[ROOT) I $D(@NODE)#2 D
56 ..S NSCNT=$QL(NODE)
57 ..I (NSCNT-RSCNT)=1 S @$QS(NODE,NSCNT)=$G(@NODE) Q
58 ..S TROOT=$QS(NODE,RSCNT+1)_"("_$P(NODE,",",RSCNT+2,NSCNT)
59 ..S @TROOT=$G(@NODE)
60 ;Set message subject
61 I $G(SUBJECT)="" S SUBJECT="XML FORMATTED DATA FROM "_$P($$SITE^VASITE(),"^",2)
62 ;Set message sender
63 S HDINSTR("FROM")="Data Standardization Toolset"
64 ;Set recipient list (includes server option on target server)
65 N HDITO
66 I SERVER="" S HDITO("S."_SRVROPT)=""
67 I SERVER'="" S HDITO("S."_SRVROPT_"@"_SERVER)=""
68 ;Send message to target server
69 D SENDMSG^XMXAPI(DUZ,SUBJECT,ARRY,.HDITO,.HDINSTR,.HDIXMZ)
70 I $G(XMERR) D
71 .;Error sending message - log error text
72 .D ERR2XTMP^HDISVU01("HDI-XM","Message sending",$NA(^TMP("XMERR",$J)))
73 .K XMERR,^TMP("XMERR",$J)
74 Q 1
75 ;
Note: See TracBrowser for help on using the repository browser.