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

XHDPDEF.m

Go to the documentation of this file.
  1. XHDPDEF ; SLC/JER - Parameter Definition Calls ; 25 Jul 2003 9:42 AM
  1. ;;1.0;HEALTHEVET DESKTOP;;Jul 15, 2003
  1. LIST(XHDY,FROM,DIR,SIZE) ; Get next SIZE definitions in DIR direction
  1. N XHDI,XHDCNT S XHDCNT=0,SIZE=$G(SIZE,44),DIR=$G(DIR,"+1")
  1. S XHDI=FROM ;$S(FROM="":FROM,1:$O(^XTV(8989.51,"B",FROM),-DIR))
  1. F S XHDI=$O(^XTV(8989.51,"B",XHDI),DIR) Q:XHDI']""!(XHDCNT'<SIZE) D
  1. . N XHDDA S XHDDA=0
  1. . F S XHDDA=$O(^XTV(8989.51,"B",XHDI,XHDDA)) Q:+XHDDA'>0!(XHDCNT'<SIZE) D
  1. . . S XHDCNT=XHDCNT+1,XHDY(XHDCNT)=XHDDA_U_$P($G(^XTV(8989.51,+XHDDA,0)),U,1,2)_U_$$ENTSTR(XHDDA)
  1. Q
  1. GETALL(XHDY) ; Gets all parameter definitions in ^TMP("XHDPDEF",$J)
  1. N XHDI,XHDCNT S XHDI="",XHDCNT=0 S XHDY=$NA(^TMP("XHDPDEF",$J))
  1. F S XHDI=$O(^XTV(8989.51,"B",XHDI)) Q:XHDI']"" D
  1. . N XHDDA S XHDDA=0
  1. . F S XHDDA=$O(^XTV(8989.51,"B",XHDI,XHDDA)) Q:+XHDDA'>0 D
  1. . . S XHDCNT=XHDCNT+1
  1. . . S @XHDY@(XHDCNT)=XHDDA_U_$P($G(^XTV(8989.51,XHDDA,0)),U,1,2)_U_$$ENTSTR(XHDDA)
  1. Q
  1. ENTSTR(XHDDA) ; Get applicable entities
  1. N XHDI,ENTSTR,ENTCNT S ENTSTR="",(ENTCNT,XHDI)=0
  1. F S XHDI=$O(^XTV(8989.51,XHDDA,30,XHDI)) Q:XHDI'>0 D
  1. . N ENT0 S ENT0=$G(^XTV(8989.51,XHDDA,30,XHDI,0)) Q:+ENT0'>0
  1. . S ENTSTR=ENTSTR_$S(ENTCNT=0:"",1:";")_+ENT0_"|"_$$ENTFILE($P(ENT0,U,2))
  1. . S ENTCNT=ENTCNT+1
  1. Q ENTSTR
  1. ENTFILE(ENTDA) ; Resolve entity name
  1. Q $P($G(^XTV(8989.518,ENTDA,0)),U)
  1. GETXML(XHDY,XHDDA) ; Control Branching
  1. N XHDI,XHDJ,X S X="ONERROR^XHDPDEF",@^%ZOSF("TRAP")
  1. S XHDI=0,XHDJ=""
  1. S XHDY=$NA(^TMP("XHDPDEF",$J)) K @XHDY
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<?xml version=""1.0"" encoding=""UTF-8""?>"
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<getParameterDefinitionsCallResult>"
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<parameterDefinitionList>"
  1. I +$G(XHDDA) D
  1. . D GETDEF(XHDY,XHDDA,.XHDI)
  1. E D
  1. . F S XHDJ=$O(^XTV(8989.51,"B",XHDJ)) Q:XHDJ="" D
  1. . . N XHDDA S XHDDA=0
  1. . . F S XHDDA=$O(^XTV(8989.51,"B",XHDJ,XHDDA)) Q:+XHDDA'>0 D
  1. . . . D GETDEF(XHDY,XHDDA,.XHDI)
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</parameterDefinitionList>"
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</getParameterDefinitionsCallResult>"
  1. S XHDY=$NA(^TMP("XHDPDEF",$J,"XMLDOC"))
  1. M ^XTMP("XHDPDEF",$J,"XMLDOC")=@XHDY
  1. Q
  1. FLDS() ; Get field string
  1. Q ".01:8"
  1. GETDEF(XHDY,XHDDA,XHDI) ; Loads Top-level Fields
  1. N XHDF,XHDDI S XHDF=0
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<parameterDefinition>"
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<id>"_XHDDA_"</id>"
  1. D GETS^DIQ(8989.51,XHDDA_",",$$FLDS,"E",XHDY)
  1. F S XHDF=$O(@XHDY@(8989.51,XHDDA_",",XHDF)) Q:XHDF'>0 D
  1. . N TAG,VAL
  1. . S TAG=$TR($$FLDNAME(XHDF,8989.51)," /","")
  1. . S VAL=$G(@XHDY@(8989.51,XHDDA_",",XHDF,"E"))
  1. . I $S(XHDF=.03:1,XHDF=.06:1,1:0) S VAL=$S(VAL="Yes":"true",1:"false")
  1. . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<"_TAG_">"_$$ESCAPE^XHDLXM(VAL)_"</"_TAG_">"
  1. K @XHDY@(8989.51)
  1. ;** get description **
  1. S XHDDI=0
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<description>"
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<![CDATA["
  1. F S XHDDI=$O(^XTV(8989.51,XHDDA,20,XHDDI)) Q:+XHDDI'>0 D
  1. . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)=$G(^XTV(8989.51,XHDDA,20,XHDDI,0))
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="]]>"
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</description>"
  1. ;** get entities **
  1. D GETENTS(XHDY,XHDDA,.XHDI)
  1. ;** get keywords **
  1. D KEYWORDS(XHDY,XHDDA,.XHDI)
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</parameterDefinition>"
  1. Q
  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
  1. GETENTS(XHDY,XHDDA,XHDI) ; Get allowable entities
  1. N XHDSDA S XHDSDA=0,FLDS=".01:.02"
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<entities>"
  1. F S XHDSDA=$O(^XTV(8989.51,XHDDA,30,XHDSDA)) Q:+XHDSDA'>0 D
  1. . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<entity>"
  1. . D GETS^DIQ(8989.513,XHDSDA_","_XHDDA_",",FLDS,"E",XHDY)
  1. . F S XHDF=$O(@XHDY@(8989.513,XHDSDA_","_XHDDA_",",XHDF)) Q:XHDF'>0 D
  1. . . N TAG,VAL
  1. . . S TAG=$TR($$FLDNAME(XHDF,8989.513)," /","")
  1. . . S VAL=$G(@XHDY@(8989.513,XHDSDA_","_XHDDA_",",XHDF,"E"))
  1. . . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<"_TAG_">"_$$ESCAPE^XHDLXM(VAL)_"</"_TAG_">"
  1. . K @XHDY@(8989.513)
  1. . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</entity>"
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</entities>"
  1. Q
  1. KEYWORDS(XHDY,XHDDA,XHDI) ; Get Keywords
  1. N XHDSDA S XHDSDA=0,FLDS=".01"
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<keywords>"
  1. F S XHDSDA=$O(^XTV(8989.51,XHDDA,4,XHDSDA)) Q:+XHDSDA'>0 D
  1. . D GETS^DIQ(8989.514,XHDSDA_","_XHDDA_",",FLDS,"E",XHDY)
  1. . F S XHDF=$O(@XHDY@(8989.514,XHDSDA_","_XHDDA_",",XHDF)) Q:XHDF'>0 D
  1. . . N TAG,VAL
  1. . . S TAG=$TR($$FLDNAME(XHDF,8989.514)," /","")
  1. . . S VAL=$G(@XHDY@(8989.514,XHDSDA_","_XHDDA_",",XHDF,"E"))
  1. . . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<"_TAG_">"_$$ESCAPE^XHDLXM(VAL)_"</"_TAG_">"
  1. . K @XHDY@(8989.514)
  1. S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</keywords>"
  1. Q
  1. ONERROR ; Trap errors
  1. N XHDCI S XHDCI=4
  1. ; remove remnant of DIQ1 call result
  1. K @XHDCY@(8989.51),@XHDCY@(8989.513)
  1. ; remove partial configTree node
  1. F S XHDCI=$O(@XHDCY@("XMLDOC",XHDCI)) Q:+XHDCI'>0 K @XHDCY@("XMLDOC",XHDCI)
  1. ; append error node to call result
  1. S XHDCI=4
  1. S XHDCI=XHDCI+1,@XHDCY@("XMLDOC",XHDCI)="<error>"
  1. S XHDCI=XHDCI+1,@XHDCY@("XMLDOC",XHDCI)="<![CDATA["_$$EC^%ZOSV_"]]>"
  1. S XHDCI=XHDCI+1,@XHDCY@("XMLDOC",XHDCI)="</error>"
  1. S XHDCI=XHDCI+1,@XHDCY@("XMLDOC",XHDCI)="</getConfigurationCallResult>"
  1. S XHDCY=$NA(^TMP("XHDPTREE",$J,"XMLDOC"))
  1. D ^%ZTER
  1. Q