Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ONCSAPIX

ONCSAPIX.m

Go to the documentation of this file.
ONCSAPIX ;Hines OIFO/SG - COLLABORATIVE STAGING (XML TOOLS)  ; 8/11/06 8:11am
 ;;2.2;ONCOLOGY;**1**;Jul 31, 2013;Build 8
 ;
 ; ONCXML -------------- DESCRIPTOR FOR THE XML PARSING
 ;
 ; ONCXML(               Closed root of the destination buffer
 ;
 ;   "ERR")              Number of parsing errors
 ;
 ;   "FAULTCODE")        SOAP error code
 ;   "FAULTSTRING")      SOAP error description
 ;
 ;   "PATH")             Path to the current XML tag
 ;
 ;   "RC")               Error code returned by the web-service
 ;
 ;   "TI")               Number of the current text line of
 ;                       the current tag value
 ;
 ;   "TEXT")             Buffer for the current tag text
 ;
 Q
 ;
 ;***** DUMMY CALLBACKS FOR THE SAX PARSER
DUMMY(DUMMY1,DUMMY2,DUMMY3) ;
DUMMY1 Q
 ;
 ;***** END ELEMENT CALLBACK FOR THE SAX PARSER
 ;
 ; ELMT          Name of the element
 ;
ENDEL(ELMT) ;
 S ONCXML("PATH")=$P(ONCXML("PATH"),",",1,$L(ONCXML("PATH"),",")-1)
 Q
 ;
 ;***** ERROR CALLBACK FOR THE SAX PARSER
 ;
 ; .ERR          Reference to a local variable containing
 ;               informations about the error
 ;
ERROR(ERR) ;
 N ERRCODE,ONCINFO,TMP
 I ERR("SEV")  D
 . S ERRCODE=-4,ONCXML("ERR")=$G(ONCXML("ERR"))+1
 E  S ERRCODE=-3
 ;--- Prepare message details
 S TMP=$P("Warning^Validation Error^Conformance Error",U,ERR("SEV")+1)
 S ONCINFO(1)=TMP_" in line #"_ERR("LIN")_" (position #"_ERR("POS")_")"
 S ONCINFO(2)=$TR(ERR("XML"),$C(9,10,13)," ")
 ;--- Record the error message
 D STORE^ONCSAPIE(ERRCODE_U_$TR(ERR("MSG"),U,"~"),"ONCINFO")
 Q
 ;
 ;***** SETS THE EVENT INTERFACE ENTRY POINTS
 ;
 ; .CBK          Reference to the destination list
 ;
SETCBK(CBK,CBKTBL) ;
 ;;CHARACTERS   ^    TEXT^ONCSAPIX
 ;;COMMENT      ^   DUMMY^ONCSAPIX
 ;;DOCTYPE      ^   DUMMY^ONCSAPIX
 ;;ENDDOCUMENT  ^  DUMMY1^ONCSAPIX
 ;;ENDELEMENT   ^   ENDEL^ONCSAPIX
 ;;ERROR        ^   ERROR^ONCSAPIX
 ;;EXTERNAL     ^   DUMMY^ONCSAPIX
 ;;NOTATION     ^   DUMMY^ONCSAPIX
 ;;PI           ^   DUMMY^ONCSAPIX
 ;;STARTDOCUMENT^STARTDOC^ONCSAPIX
 ;;STARTELEMENT ^ STARTEL^ONCSAPIX
 ;
 N I,NAME,TMP,XGET  K CBK
 D:$G(CBKTBL)'=""
 . S XGET(2)="S TMP=$T("_$P(CBKTBL,"^")_"+I^"_$P(CBKTBL,"^",2)_")"
 S XGET(1)="S TMP=$T(SETCBK+I)"
 ;---
 S XGET=""
 F  S XGET=$O(XGET(XGET))  Q:XGET=""  D
 . F I=1:1  X XGET(XGET)  S TMP=$TR($P(TMP,";;",2)," ")  Q:TMP=""  D
 . . S NAME=$P(TMP,U),CBK(NAME)=$P(TMP,U,2,3)
 Q
 ;
 ;***** START DOCUMENT CALLBACK FOR THE SAX PARSER
STARTDOC ;
 S ONCXML("PATH")="",ONCXML("ERR")=0
 Q
 ;
 ;***** START ELEMENT CALLBACK FOR THE SAX PARSER
 ;
 ; ELMT          Name of the element
 ;
 ; .ATTR         List of attributes and their values
 ;
STARTEL(ELMT,ATTR) ;
 S ONCXML("PATH")=ONCXML("PATH")_$S(ONCXML("PATH")'="":",",1:"")_ELMT
 S ONCXML("TI")=1  K ONCXML("TEXT")
 Q
 ;
 ;***** TEXT CALLBACK FOR THE SAX PARSER
 ;
 ; TXT           Line of unmarked text
 ;
TEXT(TXT) ;
 I ONCXML("PATH")?1.E1"Fault,faultcode"  D  Q
 . S ONCXML("FAULTCODE")=$G(ONCXML("FAULTCODE"))_TXT
 I ONCXML("PATH")?1.E1"Fault,faultstring"  D  Q
 . S ONCXML("FAULTSTRING")=$G(ONCXML("FAULTSTRING"))_TXT
 I ONCXML("PATH")?1.E1"Fault,detail,RC"  D  Q
 . S ONCXML("RC")=$G(ONCXML("RC"))_TXT
 Q