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

XHDLXM.m

Go to the documentation of this file.
  1. XHDLXM ; SLC/JER - XML Library calls for CM ; 25 Jul 2003 9:42 AM
  1. ;;1.0;HEALTHEVET DESKTOP;;Jul 15, 2003
  1. XMLHDR(XHDY,ROOTEL,XHDI) ; Create XML Header for Mresult pass root element
  1. ; as ROOTEL
  1. S XHDI=+$G(XHDI)+1
  1. S @XHDY@(XHDI)="<?xml version=""1.0"" encoding=""UTF-8"" ?>"
  1. S XHDI=XHDI+1
  1. S @XHDY@(XHDI)="<"_ROOTEL_">"
  1. Q
  1. ;
  1. XMLFOOT(XHDY,ROOTEL,XHDI) ; Appends XML closing tags
  1. S XHDI=+$G(XHDI)+1,@XHDY@(XHDI)="</"_ROOTEL_">"
  1. Q
  1. ;
  1. ESCAPE(DATA) ; Escapes XML special characters in data
  1. N SPEC
  1. S SPEC("<")="<",SPEC(">")=">",SPEC("""")="""
  1. S SPEC("'")="'",SPEC("&")="&"
  1. Q $$REPLACE^XLFSTR(DATA,.SPEC)
  1. ;
  1. FILENTRY(XHDY,FILE,IENS,FLDS,INCID,XHDI) ; Produce XML representation of entry
  1. N XHDF,XHDKI,PCATAG S XHDF=0,XHDI=+$G(XHDI)
  1. I +$G(INCID) D
  1. . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<id>"_+IENS_"</id>"
  1. D GETS^DIQ(FILE,IENS,$$FLDS(.FLDS),"IE",XHDY)
  1. F S XHDF=$O(@XHDY@(FILE,IENS,XHDF)) Q:XHDF'>0 D
  1. . N TAG,VAL
  1. . S TAG=$TR($$FLDNAME(XHDF,FILE)," /","")
  1. . S VAL=$G(@XHDY@(FILE,IENS,XHDF,$S($L(FLDS(XHDF),U)=2:$P(FLDS(XHDF),U,2),1:"E")))
  1. . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<"_TAG_">"_VAL_"</"_TAG_">"
  1. K @XHDY@(FILE)
  1. Q
  1. FLDS(FLDS) ; Iterate through field list, build DR-string
  1. N XHDI,XHDY S XHDI=0,XHDY=""
  1. F S XHDI=$O(FLDS(XHDI)) Q:+XHDI'>0 D
  1. . S XHDY=XHDY_$S(XHDY="":"",1:";")_XHDI
  1. Q XHDY
  1. FLDNAME(XHDFN,FILENUM) ; Resolve field names
  1. Q $$MIXED($P($G(^DD(FILENUM,XHDFN,0)),U))
  1. MIXED(X) ; Return Mixed Case X
  1. N XHDI,WORD,TMP
  1. S TMP="" F XHDI=1:1:$L(X," ") S WORD=$$LOW^XLFSTR($P(X," ",XHDI)),$E(WORD)=$S(XHDI=1:$E(WORD),1:$$UP^XLFSTR($E(WORD))),TMP=$S(TMP="":WORD,1:TMP_WORD)
  1. Q TMP