FHIR Chat · Proposal to drop SearchParameter.xpath and rename xpathUsage · implementers

Stream: implementers

Topic: Proposal to drop SearchParameter.xpath and rename xpathUsage


view this post on Zulip Lloyd McKenzie (Dec 06 2021 at 21:43):

FHIR#32530 proposes dropping both, but we've determined xpathUsage needs to be retained. However, the name is misleading as the element has nothing to do with XPath at all. Obviously, this has been long-implemented, but in practice only a few systems work with SearchParameter at this level. Would we be willing to rename it for clarity long term or do we want xpath to hang around in the name even though xpath is no longer used by anyone?

view this post on Zulip Lloyd McKenzie (Dec 06 2021 at 21:45):

@James Agnew @Alexander Zautke @Paul Church @nicola (RIO/SS) @Lee Surprenant @Peter Jordan @Michael Lawley @Brian Postlethwaite @Grahame Grieve (feel free to add others you think might care.)

view this post on Zulip Paul Church (Dec 06 2021 at 21:59):

I would support renaming it to something generic so if we ever move on from fhirpath expressions to the next shiny object it will still be meaningful.

view this post on Zulip James Agnew (Dec 06 2021 at 22:01):

^ agreed

view this post on Zulip Paul Church (Dec 06 2021 at 22:06):

Also this really doesn't seem like the "kind" of field where backward compatibility is an issue. I assume the registry of search parameters is regenerated per release, and custom search parameters are pretty implementation dependent if they're supported at all.

view this post on Zulip Grahame Grieve (Dec 06 2021 at 23:00):

I'm ok with this change. In general, I agree with Paul that it's not something that particularly matters for backwards compatibility as compared to other fields, and I agree that xPathUsage is quite deceptive a name for what it is

view this post on Zulip Grahame Grieve (Dec 06 2021 at 23:00):

expressionUsage

view this post on Zulip nicola (RIO/SS) (Dec 06 2021 at 23:59):

Absolutely agree, i think, even xml format support is obsolete ;)

view this post on Zulip Peter Jordan (Dec 07 2021 at 02:12):

OK with me.

view this post on Zulip Michael Lawley (Dec 07 2021 at 06:45):

I'm supportive too

view this post on Zulip Lee Surprenant (Dec 07 2021 at 12:50):

+1 from me. probably stating the obvious, but we'd also want to update the definition for other to remove the xpath reference:
other Other The interpretation of the xpath statement is unknown (and can't be automated).

view this post on Zulip Alexander Zautke (Dec 07 2021 at 13:28):

Agree, no issue from our side.

view this post on Zulip Grahame Grieve (Dec 14 2021 at 23:30):

some analysis of all published IGs:

view this post on Zulip Grahame Grieve (Dec 14 2021 at 23:30):

-- v1.0---------------------
          distance  n/a       nearby    normal    phonetic
reference 0 / 0     0 / 0     0 / 0     284 / 0   0 / 0
date      0 / 0     0 / 0     0 / 0     81 / 0    0 / 0
number    0 / 0     0 / 0     0 / 0     6 / 0     0 / 0
quantity  0 / 0     0 / 0     0 / 0     4 / 0     0 / 0
string    0 / 0     2 / 0     0 / 0     117 / 0   4 / 0
composite 0 / 0     8 / 0     0 / 0     0 / 0     0 / 0
uri       0 / 0     0 / 0     0 / 0     33 / 0    0 / 0
token     1 / 0     1 / 0     1 / 0     363 / 2   0 / 0

-- v3.0---------------------
          distance  n/a       nearby    normal    phonetic
reference 0 / 0     0 / 3     0 / 0     425 / 5   0 / 0
date      0 / 0     0 / 0     0 / 0     112 / 2   0 / 0
number    0 / 0     0 / 0     0 / 0     9 / 0     0 / 0
quantity  1 / 0     0 / 0     0 / 0     9 / 0     0 / 0
string    0 / 0     0 / 0     0 / 0     163 / 2   2 / 0
composite 0 / 0     0 / 0     0 / 0     12 / 1    0 / 0
uri       0 / 0     0 / 0     0 / 0     47 / 0    0 / 0
token     0 / 0     0 / 0     1 / 0     464 / 6   0 / 0

-- v4.0---------------------
          n/a       nearby    normal    phonetic
date      0 / 11    0 / 0     113 / 18  0 / 0
reference 0 / 36    0 / 0     476 / 41  0 / 0
special   1 / 0     1 / 0     0 / 0     0 / 0
number    0 / 0     0 / 0     7 / 0     0 / 0
quantity  0 / 0     0 / 0     27 / 0    0 / 0
string    0 / 18    0 / 0     139 / 12  3 / 0
composite 0 / 0     0 / 0     46 / 0    0 / 0
uri       0 / 0     0 / 0     45 / 0    0 / 0
token     0 / 37    0 / 0     542 / 53  0 / 0

view this post on Zulip Grahame Grieve (Dec 14 2021 at 23:30):

first number is core, second number is IG

view this post on Zulip Grahame Grieve (Dec 14 2021 at 23:31):

.. something wrong there... there is some specials...

view this post on Zulip Josh Mandel (Dec 14 2021 at 23:37):

"n/a" means SearchParameter.xpathUsage is not set? Interesting that IGs are lax about this where the core spec is not --- suggests we're applying stricter editorial checks in Core?

view this post on Zulip Josh Mandel (Dec 14 2021 at 23:39):

All the IG "N/A" are presumably all "normal" (unless something extra interesting is being done in IGs).

view this post on Zulip Grahame Grieve (Dec 15 2021 at 01:25):

oh - I know. I missed lots of resources - I'll try again

view this post on Zulip Grahame Grieve (Dec 16 2021 at 18:01):

so, I have redone the analysis, and considered a number of issues with packages. Details on that in the #tooling stream

view this post on Zulip Grahame Grieve (Dec 16 2021 at 19:00):

this is correct as far as I can tell:

view this post on Zulip Grahame Grieve (Dec 16 2021 at 19:00):

-- v1.0---------------------
          distance  n/a       nearby    normal    phonetic
reference 0 / 0     0 / 0     0 / 0     284 / 0   0 / 0
date      0 / 0     0 / 0     0 / 0     81 / 0    0 / 0
number    0 / 0     0 / 0     0 / 0     6 / 0     0 / 0
quantity  0 / 0     0 / 0     0 / 0     4 / 0     0 / 0
string    0 / 0     2 / 0     0 / 0     117 / 0   4 / 0
composite 0 / 0     8 / 0     0 / 0     0 / 0     0 / 0
uri       0 / 0     0 / 0     0 / 0     33 / 0    0 / 0
token     1 / 0     1 / 0     1 / 0     363 / 2   0 / 0

-- v3.0---------------------
          distance  n/a       nearby    normal    phonetic
reference 0 / 0     0 / 3     0 / 0     425 / 5   0 / 0
date      0 / 0     0 / 0     0 / 0     112 / 2   0 / 0
number    0 / 0     0 / 0     0 / 0     9 / 0     0 / 0
quantity  1 / 0     0 / 0     0 / 0     9 / 0     0 / 0
string    0 / 0     0 / 0     0 / 0     163 / 2   2 / 0
composite 0 / 0     0 / 0     0 / 0     12 / 1    0 / 0
uri       0 / 0     0 / 0     0 / 0     47 / 0    0 / 0
token     0 / 0     0 / 0     1 / 0     464 / 6   0 / 0

-- v4.0---------------------
          n/a       nearby    normal    phonetic
reference 0 / 32    0 / 0     476 / 41  0 / 0
date      0 / 6     0 / 0     113 / 18  0 / 0
special   1 / 0     1 / 0     0 / 0     0 / 0
number    0 / 0     0 / 0     7 / 0     0 / 0
quantity  0 / 0     0 / 0     27 / 0    0 / 0
string    0 / 16    0 / 0     139 / 12  3 / 0
composite 0 / 0     0 / 0     46 / 0    0 / 0
uri       0 / 0     0 / 0     45 / 0    0 / 0
token     0 / 25    0 / 0     542 / 53  0 / 0

view this post on Zulip Grahame Grieve (Dec 16 2021 at 19:03):

distance appears to be a candidate for being toasted

view this post on Zulip Grahame Grieve (Dec 16 2021 at 19:06):

as does other? But I thought we used that for _filter and similar. Turns out that they don't have a stated value for usage... so maybe we should toast other?

view this post on Zulip Lloyd McKenzie (Dec 16 2021 at 19:39):

I think 'other' is still relevant - the element is required if expression is present, which means if it's not "normal" or "phonetic", you need to specify something. "other" essentially says "custom code it". Alternative is to remove the invariant, but then people might forget to populate it when 'normal' or 'phonetic' apply.

view this post on Zulip Brian Postlethwaite (Feb 03 2022 at 06:34):

For this one, I'd be happy with phonetic and special only (and normal usage is just missing altogether) where special means hard coding, which nearby/distance are. And phonetic kinda fits that, buts it's general enough that no real problem to implement.
+1 to rename.

view this post on Zulip Grahame Grieve (Feb 03 2022 at 21:08):

@Yunwei Wang I think it's time to put this back on FHIR-I agenda

view this post on Zulip Lloyd McKenzie (Feb 08 2022 at 00:12):

Created FHIR#35974 based on follow-up discussion


Last updated: Apr 12 2022 at 19:14 UTC