source: WorldVistAEHR/trunk/r/ONCOLOGY-ONC/ONCSED02.m@ 1800

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

initial load of WorldVistAEHR

File size: 4.3 KB
RevLine 
[613]1ONCSED02 ;Hines OIFO/SG - EDITS 'RUN BATCH' (PARSER) ; 8/16/06 1:07pm
2 ;;2.11;ONCOLOGY;**47**;Mar 07, 1995;Build 19
3 ;
4 ;--- SOAP RESPONSE FROM THE ONCOLOGY WEB SERVICE
5 ;
6 ; <?xml version="1.0" encoding="utf-8"?>
7 ; <soap:Envelope
8 ; xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
9 ; soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
10 ; <soap:Body>
11 ; <ED-RESPONSE xmlns="http://vista.med.va.gov/oncology">
12 ; <EDIT-SET NAME="..." ECNT="...">
13 ; <EDIT INDEX="..." NAME="..." ECNT="..." WCNT="...">
14 ; <FLD NAME="..." POS="..."> ... </FLD>
15 ; ...
16 ; <MSG CODE="..." TYPE="..."> ... </MSG>
17 ; ...
18 ; </EDIT>
19 ; </EDIT-SET>
20 ; <METAVER> ... </METAVER>
21 ; <VERSION> ... </VERSION>
22 ; </ED-RESPONSE>
23 ; <soap:Fault>
24 ; <faultcode> ... </faultcode>
25 ; <faultstring> ... </faultstring>
26 ; <detail>
27 ; <RC> ... </RC>
28 ; </detail>
29 ; </soap:Fault>
30 ; </soap:Body >
31 ; </soap:Envelope>
32 ;
33 ;--- ATTRIBUTES
34 ;
35 ; TYPE E - Error, W - Warning, M - Message
36 ;
37 Q
38 ;
39 ;***** END ELEMENT CALLBACK FOR THE SAX PARSER
40 ;
41 ; ELMT Name of the element
42 ;
43ENDEL(ELMT) ;
44 N L,LAST2
45 S L=$L(ONCXML("PATH"),","),LAST2=$P(ONCXML("PATH"),",",L-1,L)
46 D ENDEL^ONCSAPIX(ELMT)
47 ;---
48 I LAST2="EDIT,FLD" D Q
49 . S @ONCXML@(ONCESIEN,"E",ONCEDIEN,"F",ONCFIEN,2)=$G(ONCXML("TEXT"))
50 ;---
51 I LAST2="EDIT,MSG" D Q
52 . S @ONCXML@(ONCESIEN,"E",ONCEDIEN,"M",ONCMIEN,1)=$G(ONCXML("TEXT"))
53 ;---
54 I LAST2="ED-RESPONSE,METAVER" D Q
55 . S $P(@ONCXML@(0),U,4)=$G(ONCXML("TEXT"))
56 ;---
57 I LAST2="ED-RESPONSE,VERSION" D Q
58 . S $P(@ONCXML@(0),U,3)=$G(ONCXML("TEXT"))
59 Q
60 ;
61 ;***** PARSES THE RESPONSE FROM THE EDITS API
62 ;
63 ; [.ONCSAPI] Reference to the API descriptor (see ^ONCSAPI)
64 ;
65 ; ONC8RDAT Closed root of the XML response
66 ;
67 ; ONCXML Closed root of the output buffer.
68 ;
69PARSE(ONCSAPI,ONC8RDAT,ONCXML) ;
70 N ONCEDIEN ; Current edit IEN
71 N ONCESIEN ; Current edit set IEN
72 N ONCFIEN ; Current field IEN
73 N ONCMIEN ; Current message IEN
74 ;
75 N CBK,EDIEN,ESIEN,ESTOTALS,I,RC,TMP,TOTALS
76 D SETCBK(.CBK),EN^MXMLPRSE(ONC8RDAT,.CBK,"W")
77 D:$G(ONCSAPI("DEBUG"))
78 . D ZW^ONCSAPIU(ONCXML,"*** PARSED 'RUN BATCH' RESPONSE ***")
79 ;--- Calculate the totals
80 S ESIEN=0
81 F S ESIEN=$O(@ONCXML@(ESIEN)) Q:ESIEN'>0 D
82 . S EDIEN=0 K ESTOTALS
83 . F S EDIEN=$O(@ONCXML@(ESIEN,"E",EDIEN)) Q:EDIEN'>0 D
84 . . S TMP=$G(@ONCXML@(ESIEN,"E",EDIEN,0))
85 . . F I=1,2 S ESTOTALS(I)=$G(ESTOTALS(I))+$P(TMP,U,I)
86 . F I=1,2 S TOTALS(I)=$G(TOTALS(I))+$G(ESTOTALS(I))
87 . S $P(@ONCXML@(ESIEN,0),U,1,2)=$G(ESTOTALS(1),0)_U_$G(ESTOTALS(2),0)
88 S $P(@ONCXML@(0),U,1,2)=$G(TOTALS(1),0)_U_$G(TOTALS(2),0)
89 ;--- Check for parsing and web-service errors
90 Q $$CHKERR^ONCSAPIR(.ONCXML)
91 ;
92 ;***** SETS THE EVENT INTERFACE ENTRY POINTS
93SETCBK(CBK) ;
94 ;;CHARACTERS ^ TEXT^ONCSED02
95 ;;ENDELEMENT ^ ENDEL^ONCSED02
96 ;;STARTELEMENT^STARTEL^ONCSED02
97 ;
98 D SETCBK^ONCSAPIX(.CBK,"SETCBK^ONCSED02")
99 Q
100 ;
101 ;***** START ELEMENT CALLBACK FOR THE SAX PARSER
102 ;
103 ; ELMT Name of the element
104 ;
105 ; .ATTR List of attributes and their values
106 ;
107STARTEL(ELMT,ATTR) ;
108 N L,LAST2,TMP
109 D STARTEL^ONCSAPIX(ELMT,.ATTR)
110 S L=$L(ONCXML("PATH"),","),LAST2=$P(ONCXML("PATH"),",",L-1,L)
111 ;--- Field
112 I LAST2="EDIT,FLD" D Q
113 . S ONCFIEN=$G(ONCFIEN)+1
114 . S @ONCXML@(ONCESIEN,"E",ONCEDIEN,"F",ONCFIEN,0)=$G(ATTR("POS"))
115 . S @ONCXML@(ONCESIEN,"E",ONCEDIEN,"F",ONCFIEN,1)=$G(ATTR("NAME"))
116 ;--- Message
117 I LAST2="EDIT,MSG" D Q
118 . S ONCMIEN=$G(ONCMIEN)+1
119 . S TMP=$G(ATTR("CODE"))_U_$G(ATTR("TYPE"))
120 . S @ONCXML@(ONCESIEN,"E",ONCEDIEN,"M",ONCMIEN,0)=TMP
121 ;--- Edit
122 I LAST2="EDIT-SET,EDIT" D Q
123 . S ONCEDIEN=$G(ONCEDIEN)+1,(ONCFIEN,ONCMIEN)=0
124 . S TMP=$G(ATTR("ECNT"))_U_$G(ATTR("WCNT"))_U_$G(ATTR("INDEX"))
125 . S @ONCXML@(ONCESIEN,"E",ONCEDIEN,0)=TMP
126 . S @ONCXML@(ONCESIEN,"E",ONCEDIEN,1)=$G(ATTR("NAME"))
127 . S @ONCXML@("ES",ONCEDIEN)=ONCESIEN
128 ;--- Edit Set
129 I LAST2="ED-RESPONSE,EDIT-SET" D Q
130 . S ONCESIEN=$G(ONCESIEN)+1
131 . S @ONCXML@(ONCESIEN,0)=$G(ATTR("ECNT"))_U_$G(ATTR("WCNT"))
132 . S @ONCXML@(ONCESIEN,1)=$G(ATTR("NAME"))
133 Q
134 ;
135 ;***** TEXT CALLBACK FOR THE SAX PARSER
136 ;
137 ; TXT Line of unmarked text
138 ;
139TEXT(TXT) ;
140 S ONCXML("TEXT")=$G(ONCXML("TEXT"))_TXT
141 ;--- Default processing
142 D TEXT^ONCSAPIX(TXT)
143 Q
Note: See TracBrowser for help on using the repository browser.