Skip to content

Commit 5e87ba7

Browse files
committed
Allow to limit filter search by related filters.
POST /Filters { "DataSource":"PATIENTS.cube", "Values": 1, "Search":"", "RelatedFilters": [ { "Filter": "[HomeD].[H1].[ZIP]", "Value": "{&[32006],&[32007]}" }, { "Filter":"[PatGrpD].[H1].[Patient Group]", "Value":"&[Group B]" } ] }
1 parent 5940580 commit 5e87ba7

3 files changed

Lines changed: 13 additions & 5 deletions

File tree

MDX2JSON/REST.cls.xml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,16 @@ Wrapper for ##class(MDX2JSON.Utils).WriteFiltersForDataSource(pDataSource, pValu
247247
set DataSource = $$$R("DataSource")
248248
set Values = $$$R("Values")
249249
set Search = $$$R("Search")
250+
251+
#dim RelatedFiltersList As %ListOfObjects = $$$R("RelatedFilters")
252+
if $IsObject(RelatedFiltersList) {
253+
for i=1:1:RelatedFiltersList.Count() {
254+
set RelatedFilter = RelatedFiltersList.GetAt(i)
255+
set RelatedFilters(RelatedFilter.Filter) = RelatedFilter.Value
256+
}
257+
}
250258
251-
set st = ##class(MDX2JSON.Utils).WriteFiltersForDataSource(DataSource,Values,Search)
259+
set st = ##class(MDX2JSON.Utils).WriteFiltersForDataSource(DataSource, Values, Search, .RelatedFilters)
252260
return st
253261
]]></Implementation>
254262
</Method>

MDX2JSON/Tests.cls.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ Classes with support methods for testing MDX2JSON</Description>
88

99
<Parameter name="LastCommit">
1010
<Type>%String</Type>
11-
<Default>4dd1d0e9693fcdd7e5e3a59a87634ac65d018baf</Default>
11+
<Default>59405809c417efdfde954019d21f0f219ec1bb02</Default>
1212
</Parameter>
1313

1414
<Parameter name="LastCommitTS">
1515
<Type>%TimeStamp</Type>
16-
<Default>2017-03-01 16:36:01.224</Default>
16+
<Default>2017-04-06 13:10:45.708</Default>
1717
</Parameter>
1818

1919
<Method name="ProjectLength">

MDX2JSON/Utils.cls.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ Get all filters for DeepSee DataSource in JSON format.<br>
142142
<b>pDataSource</b> - name of DeepSee datasource (cube, pivot, kpi, metric).<br>
143143
<b>pValues</b> - write all filters' values. Takes time.]]></Description>
144144
<ClassMethod>1</ClassMethod>
145-
<FormalSpec>pDataSource:%String,pValues:%Boolean=0,pSearchKey:%String=""</FormalSpec>
145+
<FormalSpec><![CDATA[pDataSource:%String,pValues:%Boolean=0,pSearchKey:%String="",&pRelatedFilters]]></FormalSpec>
146146
<ReturnType>%Status</ReturnType>
147147
<Implementation><![CDATA[
148148
set st = ##class(%DeepSee.Dashboard.Utils).%GetFiltersForDataSource(pDataSource,.tFilters)
@@ -152,7 +152,7 @@ Get all filters for DeepSee DataSource in JSON format.<br>
152152
if (pValues=1) {
153153
set key = $order(tFilters(""))
154154
while (key '= "") {
155-
set st = ##class(%DeepSee.Dashboard.Utils).%GetMembersForFilter(pDataSource,$lg(tFilters(key),2),.tMembers,.tDefaultFilterValue,pSearchKey,.tRelatedFilters,0,,.tValueList)
155+
set st = ##class(%DeepSee.Dashboard.Utils).%GetMembersForFilter(pDataSource,$lg(tFilters(key),2),.tMembers,.tDefaultFilterValue,pSearchKey,.pRelatedFilters,0,,.tValueList)
156156
return:$$$ISERR(st) st
157157
merge tFilters(key) = tMembers // merge filter values
158158
set key = $order(tFilters(key))

0 commit comments

Comments
 (0)