| 1 | ONCSAPIX ;Hines OIFO/SG - COLLABORATIVE STAGING (XML TOOLS) ; 8/11/06 8:11am
|
---|
| 2 | ;;2.11;ONCOLOGY;**40,47**;Mar 07, 1995;Build 19
|
---|
| 3 | ;
|
---|
| 4 | ; ONCXML -------------- DESCRIPTOR FOR THE XML PARSING
|
---|
| 5 | ;
|
---|
| 6 | ; ONCXML( Closed root of the destination buffer
|
---|
| 7 | ;
|
---|
| 8 | ; "ERR") Number of parsing errors
|
---|
| 9 | ;
|
---|
| 10 | ; "FAULTCODE") SOAP error code
|
---|
| 11 | ; "FAULTSTRING") SOAP error description
|
---|
| 12 | ;
|
---|
| 13 | ; "PATH") Path to the current XML tag
|
---|
| 14 | ;
|
---|
| 15 | ; "RC") Error code returned by the web-service
|
---|
| 16 | ;
|
---|
| 17 | ; "TI") Number of the current text line of
|
---|
| 18 | ; the current tag value
|
---|
| 19 | ;
|
---|
| 20 | ; "TEXT") Buffer for the current tag text
|
---|
| 21 | ;
|
---|
| 22 | Q
|
---|
| 23 | ;
|
---|
| 24 | ;***** DUMMY CALLBACKS FOR THE SAX PARSER
|
---|
| 25 | DUMMY(DUMMY1,DUMMY2,DUMMY3) ;
|
---|
| 26 | DUMMY1 Q
|
---|
| 27 | ;
|
---|
| 28 | ;***** END ELEMENT CALLBACK FOR THE SAX PARSER
|
---|
| 29 | ;
|
---|
| 30 | ; ELMT Name of the element
|
---|
| 31 | ;
|
---|
| 32 | ENDEL(ELMT) ;
|
---|
| 33 | S ONCXML("PATH")=$P(ONCXML("PATH"),",",1,$L(ONCXML("PATH"),",")-1)
|
---|
| 34 | Q
|
---|
| 35 | ;
|
---|
| 36 | ;***** ERROR CALLBACK FOR THE SAX PARSER
|
---|
| 37 | ;
|
---|
| 38 | ; .ERR Reference to a local variable containing
|
---|
| 39 | ; informations about the error
|
---|
| 40 | ;
|
---|
| 41 | ERROR(ERR) ;
|
---|
| 42 | N ERRCODE,ONCINFO,TMP
|
---|
| 43 | I ERR("SEV") D
|
---|
| 44 | . S ERRCODE=-4,ONCXML("ERR")=$G(ONCXML("ERR"))+1
|
---|
| 45 | E S ERRCODE=-3
|
---|
| 46 | ;--- Prepare message details
|
---|
| 47 | S TMP=$P("Warning^Validation Error^Conformance Error",U,ERR("SEV")+1)
|
---|
| 48 | S ONCINFO(1)=TMP_" in line #"_ERR("LIN")_" (position #"_ERR("POS")_")"
|
---|
| 49 | S ONCINFO(2)=$TR(ERR("XML"),$C(9,10,13)," ")
|
---|
| 50 | ;--- Record the error message
|
---|
| 51 | D STORE^ONCSAPIE(ERRCODE_U_$TR(ERR("MSG"),U,"~"),"ONCINFO")
|
---|
| 52 | Q
|
---|
| 53 | ;
|
---|
| 54 | ;***** SETS THE EVENT INTERFACE ENTRY POINTS
|
---|
| 55 | ;
|
---|
| 56 | ; .CBK Reference to the destination list
|
---|
| 57 | ;
|
---|
| 58 | SETCBK(CBK,CBKTBL) ;
|
---|
| 59 | ;;CHARACTERS ^ TEXT^ONCSAPIX
|
---|
| 60 | ;;COMMENT ^ DUMMY^ONCSAPIX
|
---|
| 61 | ;;DOCTYPE ^ DUMMY^ONCSAPIX
|
---|
| 62 | ;;ENDDOCUMENT ^ DUMMY1^ONCSAPIX
|
---|
| 63 | ;;ENDELEMENT ^ ENDEL^ONCSAPIX
|
---|
| 64 | ;;ERROR ^ ERROR^ONCSAPIX
|
---|
| 65 | ;;EXTERNAL ^ DUMMY^ONCSAPIX
|
---|
| 66 | ;;NOTATION ^ DUMMY^ONCSAPIX
|
---|
| 67 | ;;PI ^ DUMMY^ONCSAPIX
|
---|
| 68 | ;;STARTDOCUMENT^STARTDOC^ONCSAPIX
|
---|
| 69 | ;;STARTELEMENT ^ STARTEL^ONCSAPIX
|
---|
| 70 | ;
|
---|
| 71 | N I,NAME,TMP,XGET K CBK
|
---|
| 72 | D:$G(CBKTBL)'=""
|
---|
| 73 | . S XGET(2)="S TMP=$T("_$P(CBKTBL,"^")_"+I^"_$P(CBKTBL,"^",2)_")"
|
---|
| 74 | S XGET(1)="S TMP=$T(SETCBK+I)"
|
---|
| 75 | ;---
|
---|
| 76 | S XGET=""
|
---|
| 77 | F S XGET=$O(XGET(XGET)) Q:XGET="" D
|
---|
| 78 | . F I=1:1 X XGET(XGET) S TMP=$TR($P(TMP,";;",2)," ") Q:TMP="" D
|
---|
| 79 | . . S NAME=$P(TMP,U),CBK(NAME)=$P(TMP,U,2,3)
|
---|
| 80 | Q
|
---|
| 81 | ;
|
---|
| 82 | ;***** START DOCUMENT CALLBACK FOR THE SAX PARSER
|
---|
| 83 | STARTDOC ;
|
---|
| 84 | S ONCXML("PATH")="",ONCXML("ERR")=0
|
---|
| 85 | Q
|
---|
| 86 | ;
|
---|
| 87 | ;***** START ELEMENT CALLBACK FOR THE SAX PARSER
|
---|
| 88 | ;
|
---|
| 89 | ; ELMT Name of the element
|
---|
| 90 | ;
|
---|
| 91 | ; .ATTR List of attributes and their values
|
---|
| 92 | ;
|
---|
| 93 | STARTEL(ELMT,ATTR) ;
|
---|
| 94 | S ONCXML("PATH")=ONCXML("PATH")_$S(ONCXML("PATH")'="":",",1:"")_ELMT
|
---|
| 95 | S ONCXML("TI")=1 K ONCXML("TEXT")
|
---|
| 96 | Q
|
---|
| 97 | ;
|
---|
| 98 | ;***** TEXT CALLBACK FOR THE SAX PARSER
|
---|
| 99 | ;
|
---|
| 100 | ; TXT Line of unmarked text
|
---|
| 101 | ;
|
---|
| 102 | TEXT(TXT) ;
|
---|
| 103 | I ONCXML("PATH")?1.E1"Fault,faultcode" D Q
|
---|
| 104 | . S ONCXML("FAULTCODE")=$G(ONCXML("FAULTCODE"))_TXT
|
---|
| 105 | I ONCXML("PATH")?1.E1"Fault,faultstring" D Q
|
---|
| 106 | . S ONCXML("FAULTSTRING")=$G(ONCXML("FAULTSTRING"))_TXT
|
---|
| 107 | I ONCXML("PATH")?1.E1"Fault,detail,RC" D Q
|
---|
| 108 | . S ONCXML("RC")=$G(ONCXML("RC"))_TXT
|
---|
| 109 | Q
|
---|