source: WorldVistAEHR/trunk/r/HEALTH_DATA_AND_INFORMATICS-HDI/HDISVS00.m@ 823

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

initial load of WorldVistAEHR

File size: 2.0 KB
Line 
1HDISVS00 ;BPFO/JRP - PROCESS XML DOCS ON CENTRAL SERVER;1/4/2005
2 ;;1.0;HEALTH DATA & INFORMATICS;;Feb 22, 2005
3 ;
4MAIN(PRSARR,ERRARR) ;Main entry point for processing XML document
5 ; Input : PRSARR - Array containing parsed XML document (closed root)
6 ; This is the output of SAX^HDISVM01
7 ; ERRARR - Array to output errors in (closed root)
8 ;Output : None
9 ; @ERRARR@(x) = Error text (if applicable)
10 ; Notes : ERRARR is initialized (KILLed) on input
11 N ROOT,TMP,OOPS,CODE,DESC
12 ;Check input
13 I $G(PRSARR)="" D Q
14 .S TMP="MAIN^HDISVS00: Input parameter PRSARR was not passed"
15 .D ADDERR^HDISVC00(TMP,ERRARR)
16 I '$D(@PRSARR) D Q
17 .S TMP="MAIN^HDISVS00: Input array "_PRSARR_" (PRSARR) does not exist"
18 .D ADDERR^HDISVC00(TMP,ERRARR)
19 ;Make sure data structure of parsed document exists
20 S OOPS=0
21 F X=1:1 S TMP=$P($T(SUBS+X),";;",2) Q:TMP="" D
22 .I $D(@PRSARR@(TMP)) Q
23 .S TMP="MAIN^HDISVS00: Subscript "_TMP_" missing from input array "_PRSARR_" (PRSARR)"
24 .D ADDERR^HDISVC00(TMP,ERRARR)
25 .S OOPS=1
26 I OOPS Q
27 ;Get root element name
28 S ROOT=$G(@PRSARR@("ESUBS",1))
29 I ROOT="" D Q
30 .S TMP="Root element of XML document could not be determined"
31 .D ADDERR^HDISVC00(TMP,ERRARR)
32 ;Check for supported root element
33 S OOPS=1
34 F X=1:1 S TMP=$P($T(ROOTS+X),";;",2) Q:TMP="" D Q:'OOPS
35 .I $P(TMP,"~",1)'=ROOT Q
36 .S CODE=$P(TMP,"~",2)
37 .S DESC=$P(TMP,"~",3)
38 .S OOPS=0
39 ;Unsupported root element
40 I OOPS D Q
41 .S TMP="'"_ROOT_"' is not a supported root element (don't know how to process it)"
42 .D ADDERR^HDISVC00(TMP,ERRARR)
43 ;Code to process document not set
44 I CODE="" D Q
45 .S TMP="Code to process root element '"_ROOT_"' has not been established"
46 .D ADDERR^HDISVC00(TMP,ERRARR)
47 ;Process XML document
48 X CODE
49 ;Done
50 Q
51 ;
52SUBS ;Required subscripts in parse array (attributes aren't required)
53 ;;EINDX
54 ;;ESUBS
55 ;;DATA
56 ;;
57 ;
58ROOTS ;Root element name~Processing code for root element~Description
59 ;;Domain~D VUID^HDISVS01(PRSARR,ERRARR)~Request for VUID data from VistA system
60 ;;HDISParameters~D STATUS^HDISVS03(PRSARR,ERRARR)~Status update from VistA system
61 ;;
Note: See TracBrowser for help on using the repository browser.