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

VBECA3C.m

Go to the documentation of this file.
  1. VBECA3C ;HIOFO/BNT - VBECS Utility to parse XML for CPRS ;12/19/2003 01:00
  1. ;;2.0;VBEC;;Jun 05, 2015;Build 4
  1. ;
  1. ; Note: This routine supports data exchange with an FDA registered
  1. ; medical device. As such, it may not be changed in any way without
  1. ; prior written approval from the medical device manufacturer.
  1. ;
  1. ; Integration Agreements:
  1. ; Reference DBIA 4149 - M XML Parser
  1. ; Reference to EN^MXMLPRSE supported by IA #4149
  1. ; Reference to CHKNAME^XQ5 supported by IA #????
  1. ;
  1. ;
  1. QUIT
  1. ;
  1. EN(ARR,DOC) ;
  1. N CBK,CNT
  1. ;W !!!,"Invoking XML Parser...",!!!
  1. S OPTION=""
  1. S VBECRES=$NA(^TMP("VBEC_OE_DATA",$J))
  1. K @VBECRES
  1. S (VBECTRHC,VBECTREQ,VBECABHC,VBECTSTC,VBECMSBC,VBECSRC)=0
  1. ; Unit Type counters
  1. SET (VBECUNC,VBECUNS,VBECUNA,VBECUND)=0
  1. D SET(.CBK)
  1. D EN^MXMLPRSE(DOC,.CBK,.OPTION)
  1. M ARR=@VBECRES
  1. ;S CNT=""
  1. ;W !!!,"Parser Summary:",!!
  1. ;F S CNT=$O(CNT(CNT)) Q:CNT="" W CNT,":",?25,CNT(CNT),!
  1. Q
  1. ; Direct entry of XML text from keyboard
  1. ; Terminate text entry with a solitary '^'
  1. PASTE(OPTION) ;
  1. N X,Y,GBL
  1. S GBL=$NA(^TMP("VBEC_OE_XML",$J))
  1. K @GBL
  1. F X=1:1 D Q:Y="^"
  1. .W X,"> "
  1. .R Y:$G(DTIME,600),!
  1. .E S Y="^"
  1. .S:Y'="^" @GBL@(X)=Y
  1. D EN(GBL,.OPTION)
  1. K @GBL
  1. Q
  1. ; Set the event interface entry points
  1. SET(CBK) ;
  1. K CBK
  1. ;F X=0:1 S Y=$P($T(SETX+X),";;",2) Q:Y="" D
  1. ;.S CBK(Y)=$E(Y,1,8)_"^VBECA3C"
  1. S CBK("STARTELEMENT")="STELE^VBECA3C"
  1. S CBK("ENDELEMENT")="ENELE^VBECA3C"
  1. S CBK("CHARACTERS")="CHAR^VBECA3C"
  1. Q
  1. ;
  1. STELE(ELE,ATR) ; -- element start event handler
  1. SET VBECELE=ELE
  1. IF ELE="Patient" DO
  1. . SET @VBECRES@("PATIENT")=$G(ATR("dfn"))_"^"_$G(ATR("firstName"))_"^"_$G(ATR("lastName"))_"^"_$G(ATR("ssn"))
  1. . SET @VBECRES@("ABORH")=$G(ATR("abo"))_"^"_$G(ATR("rh"))
  1. . QUIT
  1. IF ELE="TransfusionReaction" DO
  1. . SET VBECTRHC=VBECTRHC+1
  1. . SET @VBECRES@("TRHX",VBECTRHC)=$G(ATR("type"))_"^"_$G(ATR("date"))
  1. . QUIT
  1. IF ELE="TransfusionRequirement" DO
  1. . SET VBECTREQ=VBECTREQ+1
  1. . SET @VBECRES@("TRREQ",VBECTREQ)=$G(ATR("modifier"))
  1. . QUIT
  1. IF ELE="Antibody" DO
  1. . SET VBECABHC=VBECABHC+1
  1. . SET @VBECRES@("ABHIS",VBECABHC)=$G(ATR("name"))
  1. . QUIT
  1. IF ELE="Unit" DO
  1. . IF $G(ATR("status"))="C" DO
  1. . . SET VBECUNC=VBECUNC+1
  1. . . SET @VBECRES@("UNIT","C",VBECUNC)=$G(ATR("id"))_"^"_$G(ATR("product"))_"^"_$G(ATR("location"))_"^"_$G(ATR("expDate"))
  1. . IF $G(ATR("status"))="S" DO
  1. . . SET VBECUNS=VBECUNS+1
  1. . . SET @VBECRES@("UNIT","S",VBECUNS)=$G(ATR("id"))_"^"_$G(ATR("product"))_"^"_$G(ATR("location"))_"^"_$G(ATR("expDate"))
  1. . IF $G(ATR("status"))="A" DO
  1. . . SET VBECUNA=VBECUNA+1
  1. . . SET @VBECRES@("UNIT","A",VBECUNA)=$G(ATR("id"))_"^"_$G(ATR("product"))_"^"_$G(ATR("location"))_"^"_$G(ATR("expDate"))
  1. . IF $G(ATR("status"))="D" DO
  1. . . SET VBECUND=VBECUND+1
  1. . . SET @VBECRES@("UNIT","D",VBECUND)=$G(ATR("id"))_"^"_$G(ATR("product"))_"^"_$G(ATR("location"))_"^"_$G(ATR("expDate"))
  1. . QUIT
  1. IF ELE="Specimen" DO
  1. . SET @VBECRES@("SPECIMEN")=$G(ATR("expDate"))_"^"_$G(ATR("uid"))
  1. . QUIT
  1. IF ELE="Component" DO
  1. . SET VBECOMP=$G(ATR("id"))
  1. . SET VBECMSBC=0
  1. . SET @VBECRES@(VBECOMP,"SPECIMEN")=$G(ATR("specimen"))
  1. . QUIT
  1. IF ELE="LabTest" DO
  1. . SET VBECTSTC=VBECTSTC+1
  1. . SET @VBECRES@(VBECOMP,"TEST",VBECTSTC)=$G(ATR("id"))_"^"_$G(ATR("name"))
  1. . QUIT
  1. IF ELE="Msbos" DO
  1. . SET VBECMSBC=VBECMSBC+1
  1. . SET @VBECRES@(VBECOMP,"MSBOS",VBECMSBC)=$G(ATR("name"))_"^"_$G(ATR("threshold"))
  1. . QUIT
  1. IF ELE="Surgery" DO
  1. . SET VBECSRC=VBECSRC+1
  1. . SET @VBECRES@("SURGERY",VBECSRC)=$G(ATR("name"))_"^"_$G(ATR("noBloodRequiredIndicator"))
  1. QUIT
  1. ENELE(ELE) ; -- element end event handler
  1. KILL VBECNT
  1. QUIT
  1. ;
  1. CHAR(TEXT) ;
  1. Q