1 | XHDPDEF ; SLC/JER - Parameter Definition Calls ; 25 Jul 2003 9:42 AM
|
---|
2 | ;;1.0;HEALTHEVET DESKTOP;;Jul 15, 2003
|
---|
3 | LIST(XHDY,FROM,DIR,SIZE) ; Get next SIZE definitions in DIR direction
|
---|
4 | N XHDI,XHDCNT S XHDCNT=0,SIZE=$G(SIZE,44),DIR=$G(DIR,"+1")
|
---|
5 | S XHDI=FROM ;$S(FROM="":FROM,1:$O(^XTV(8989.51,"B",FROM),-DIR))
|
---|
6 | F S XHDI=$O(^XTV(8989.51,"B",XHDI),DIR) Q:XHDI']""!(XHDCNT'<SIZE) D
|
---|
7 | . N XHDDA S XHDDA=0
|
---|
8 | . F S XHDDA=$O(^XTV(8989.51,"B",XHDI,XHDDA)) Q:+XHDDA'>0!(XHDCNT'<SIZE) D
|
---|
9 | . . S XHDCNT=XHDCNT+1,XHDY(XHDCNT)=XHDDA_U_$P($G(^XTV(8989.51,+XHDDA,0)),U,1,2)_U_$$ENTSTR(XHDDA)
|
---|
10 | Q
|
---|
11 | GETALL(XHDY) ; Gets all parameter definitions in ^TMP("XHDPDEF",$J)
|
---|
12 | N XHDI,XHDCNT S XHDI="",XHDCNT=0 S XHDY=$NA(^TMP("XHDPDEF",$J))
|
---|
13 | F S XHDI=$O(^XTV(8989.51,"B",XHDI)) Q:XHDI']"" D
|
---|
14 | . N XHDDA S XHDDA=0
|
---|
15 | . F S XHDDA=$O(^XTV(8989.51,"B",XHDI,XHDDA)) Q:+XHDDA'>0 D
|
---|
16 | . . S XHDCNT=XHDCNT+1
|
---|
17 | . . S @XHDY@(XHDCNT)=XHDDA_U_$P($G(^XTV(8989.51,XHDDA,0)),U,1,2)_U_$$ENTSTR(XHDDA)
|
---|
18 | Q
|
---|
19 | ENTSTR(XHDDA) ; Get applicable entities
|
---|
20 | N XHDI,ENTSTR,ENTCNT S ENTSTR="",(ENTCNT,XHDI)=0
|
---|
21 | F S XHDI=$O(^XTV(8989.51,XHDDA,30,XHDI)) Q:XHDI'>0 D
|
---|
22 | . N ENT0 S ENT0=$G(^XTV(8989.51,XHDDA,30,XHDI,0)) Q:+ENT0'>0
|
---|
23 | . S ENTSTR=ENTSTR_$S(ENTCNT=0:"",1:";")_+ENT0_"|"_$$ENTFILE($P(ENT0,U,2))
|
---|
24 | . S ENTCNT=ENTCNT+1
|
---|
25 | Q ENTSTR
|
---|
26 | ENTFILE(ENTDA) ; Resolve entity name
|
---|
27 | Q $P($G(^XTV(8989.518,ENTDA,0)),U)
|
---|
28 | GETXML(XHDY,XHDDA) ; Control Branching
|
---|
29 | N XHDI,XHDJ,X S X="ONERROR^XHDPDEF",@^%ZOSF("TRAP")
|
---|
30 | S XHDI=0,XHDJ=""
|
---|
31 | S XHDY=$NA(^TMP("XHDPDEF",$J)) K @XHDY
|
---|
32 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<?xml version=""1.0"" encoding=""UTF-8""?>"
|
---|
33 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<getParameterDefinitionsCallResult>"
|
---|
34 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<parameterDefinitionList>"
|
---|
35 | I +$G(XHDDA) D
|
---|
36 | . D GETDEF(XHDY,XHDDA,.XHDI)
|
---|
37 | E D
|
---|
38 | . F S XHDJ=$O(^XTV(8989.51,"B",XHDJ)) Q:XHDJ="" D
|
---|
39 | . . N XHDDA S XHDDA=0
|
---|
40 | . . F S XHDDA=$O(^XTV(8989.51,"B",XHDJ,XHDDA)) Q:+XHDDA'>0 D
|
---|
41 | . . . D GETDEF(XHDY,XHDDA,.XHDI)
|
---|
42 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</parameterDefinitionList>"
|
---|
43 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</getParameterDefinitionsCallResult>"
|
---|
44 | S XHDY=$NA(^TMP("XHDPDEF",$J,"XMLDOC"))
|
---|
45 | M ^XTMP("XHDPDEF",$J,"XMLDOC")=@XHDY
|
---|
46 | Q
|
---|
47 | FLDS() ; Get field string
|
---|
48 | Q ".01:8"
|
---|
49 | GETDEF(XHDY,XHDDA,XHDI) ; Loads Top-level Fields
|
---|
50 | N XHDF,XHDDI S XHDF=0
|
---|
51 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<parameterDefinition>"
|
---|
52 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<id>"_XHDDA_"</id>"
|
---|
53 | D GETS^DIQ(8989.51,XHDDA_",",$$FLDS,"E",XHDY)
|
---|
54 | F S XHDF=$O(@XHDY@(8989.51,XHDDA_",",XHDF)) Q:XHDF'>0 D
|
---|
55 | . N TAG,VAL
|
---|
56 | . S TAG=$TR($$FLDNAME(XHDF,8989.51)," /","")
|
---|
57 | . S VAL=$G(@XHDY@(8989.51,XHDDA_",",XHDF,"E"))
|
---|
58 | . I $S(XHDF=.03:1,XHDF=.06:1,1:0) S VAL=$S(VAL="Yes":"true",1:"false")
|
---|
59 | . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<"_TAG_">"_$$ESCAPE^XHDLXM(VAL)_"</"_TAG_">"
|
---|
60 | K @XHDY@(8989.51)
|
---|
61 | ;** get description **
|
---|
62 | S XHDDI=0
|
---|
63 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<description>"
|
---|
64 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<![CDATA["
|
---|
65 | F S XHDDI=$O(^XTV(8989.51,XHDDA,20,XHDDI)) Q:+XHDDI'>0 D
|
---|
66 | . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)=$G(^XTV(8989.51,XHDDA,20,XHDDI,0))
|
---|
67 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="]]>"
|
---|
68 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</description>"
|
---|
69 | ;** get entities **
|
---|
70 | D GETENTS(XHDY,XHDDA,.XHDI)
|
---|
71 | ;** get keywords **
|
---|
72 | D KEYWORDS(XHDY,XHDDA,.XHDI)
|
---|
73 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</parameterDefinition>"
|
---|
74 | Q
|
---|
75 | FLDNAME(XHDFN,FILENUM) ; Resolve field names
|
---|
76 | Q $$MIXED($P($G(^DD(FILENUM,XHDFN,0)),U))
|
---|
77 | MIXED(X) ; Return Mixed Case X
|
---|
78 | N XHDI,WORD,TMP
|
---|
79 | 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)
|
---|
80 | Q TMP
|
---|
81 | GETENTS(XHDY,XHDDA,XHDI) ; Get allowable entities
|
---|
82 | N XHDSDA S XHDSDA=0,FLDS=".01:.02"
|
---|
83 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<entities>"
|
---|
84 | F S XHDSDA=$O(^XTV(8989.51,XHDDA,30,XHDSDA)) Q:+XHDSDA'>0 D
|
---|
85 | . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<entity>"
|
---|
86 | . D GETS^DIQ(8989.513,XHDSDA_","_XHDDA_",",FLDS,"E",XHDY)
|
---|
87 | . F S XHDF=$O(@XHDY@(8989.513,XHDSDA_","_XHDDA_",",XHDF)) Q:XHDF'>0 D
|
---|
88 | . . N TAG,VAL
|
---|
89 | . . S TAG=$TR($$FLDNAME(XHDF,8989.513)," /","")
|
---|
90 | . . S VAL=$G(@XHDY@(8989.513,XHDSDA_","_XHDDA_",",XHDF,"E"))
|
---|
91 | . . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<"_TAG_">"_$$ESCAPE^XHDLXM(VAL)_"</"_TAG_">"
|
---|
92 | . K @XHDY@(8989.513)
|
---|
93 | . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</entity>"
|
---|
94 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</entities>"
|
---|
95 | Q
|
---|
96 | KEYWORDS(XHDY,XHDDA,XHDI) ; Get Keywords
|
---|
97 | N XHDSDA S XHDSDA=0,FLDS=".01"
|
---|
98 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<keywords>"
|
---|
99 | F S XHDSDA=$O(^XTV(8989.51,XHDDA,4,XHDSDA)) Q:+XHDSDA'>0 D
|
---|
100 | . D GETS^DIQ(8989.514,XHDSDA_","_XHDDA_",",FLDS,"E",XHDY)
|
---|
101 | . F S XHDF=$O(@XHDY@(8989.514,XHDSDA_","_XHDDA_",",XHDF)) Q:XHDF'>0 D
|
---|
102 | . . N TAG,VAL
|
---|
103 | . . S TAG=$TR($$FLDNAME(XHDF,8989.514)," /","")
|
---|
104 | . . S VAL=$G(@XHDY@(8989.514,XHDSDA_","_XHDDA_",",XHDF,"E"))
|
---|
105 | . . S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="<"_TAG_">"_$$ESCAPE^XHDLXM(VAL)_"</"_TAG_">"
|
---|
106 | . K @XHDY@(8989.514)
|
---|
107 | S XHDI=XHDI+1,@XHDY@("XMLDOC",XHDI)="</keywords>"
|
---|
108 | Q
|
---|
109 | ONERROR ; Trap errors
|
---|
110 | N XHDCI S XHDCI=4
|
---|
111 | ; remove remnant of DIQ1 call result
|
---|
112 | K @XHDCY@(8989.51),@XHDCY@(8989.513)
|
---|
113 | ; remove partial configTree node
|
---|
114 | F S XHDCI=$O(@XHDCY@("XMLDOC",XHDCI)) Q:+XHDCI'>0 K @XHDCY@("XMLDOC",XHDCI)
|
---|
115 | ; append error node to call result
|
---|
116 | S XHDCI=4
|
---|
117 | S XHDCI=XHDCI+1,@XHDCY@("XMLDOC",XHDCI)="<error>"
|
---|
118 | S XHDCI=XHDCI+1,@XHDCY@("XMLDOC",XHDCI)="<![CDATA["_$$EC^%ZOSV_"]]>"
|
---|
119 | S XHDCI=XHDCI+1,@XHDCY@("XMLDOC",XHDCI)="</error>"
|
---|
120 | S XHDCI=XHDCI+1,@XHDCY@("XMLDOC",XHDCI)="</getConfigurationCallResult>"
|
---|
121 | S XHDCY=$NA(^TMP("XHDPTREE",$J,"XMLDOC"))
|
---|
122 | D ^%ZTER
|
---|
123 | Q
|
---|