FHIR Chat · patient vs subject · implementers

Stream: implementers

Topic: patient vs subject


view this post on Zulip Jenni Syed (May 10 2016 at 16:02):

I know subject queries allow for the "type" of subject to be specified since it can vary. What should servers accept for the "patient" parameter? So far, our server expects just the id, since it's clear what type of resource patient references. Should servers also accept/parse for patient:Patient=123 and patient=Patient/123?

If so, this goes back to some earlier questions around why we have 3 different ways for doing this simple query...

view this post on Zulip Sean Moore (May 10 2016 at 16:07):

Hey Jenni, I can't for sure speak to what we should do, but we support the modifier and the Relative URL (we support receiving a full URL too). We do this for compatibility with clients, since we often receive the modifier even though it is not needed.

view this post on Zulip Sean Moore (May 10 2016 at 16:07):

I think we're too far gone with client support of modifiers and URLs to constrain this at this point, but I would love to constrain it further if possible.

view this post on Zulip Michael Donnelly (May 10 2016 at 16:09):

And not make it worse in the future.

view this post on Zulip Michael Donnelly (May 10 2016 at 16:09):

The problem with "options" is that they're not really optional for servers.

view this post on Zulip Jenni Syed (May 10 2016 at 16:14):

Correct. And for urls, you start getting into validating that it's "equivalent" to your server... It feels like a server should be able to generally say "I allow references to external FHIR servers" or not.

view this post on Zulip Grahame Grieve (May 10 2016 at 16:15):

we knew these were not optional or serversr

view this post on Zulip Grahame Grieve (May 10 2016 at 16:16):

I'm pretty sure we dsicussed these variations on the argonaut mailing list and come to agreement

view this post on Zulip Sean Moore (May 10 2016 at 16:17):

Jenni Syed I agree with you. External linking to FHIR servers is somethign we likely won't support. Do we need a way to formalize that in the conformance statement (or profile)?

view this post on Zulip Grahame Grieve (May 10 2016 at 16:18):

we haven't considered that before

view this post on Zulip Sean Moore (May 10 2016 at 16:19):

I don't see that as a requirement necessarily, provided we're okay with the behavior of servers to reject such a thing. Is cross server FHIR references something others are trying to do?

view this post on Zulip Grahame Grieve (May 10 2016 at 16:21):

it's allowed and I've seen a little of it in prototypes in distributed systems. I wouldn't think it would apply in the argonaut context or similar

view this post on Zulip Jenni Syed (May 10 2016 at 16:25):

Grahame - I assume for the "settled" aspect, you're referring to this: https://groups.google.com/d/topic/argonaut-project/srjnfhNBQbk/discussion. There was a mention of banning the Paitient/ side. But I'm not sure if we discussed beyond that

view this post on Zulip James Agnew (May 10 2016 at 16:26):

I expect that there will be lots of servers that don't allow cross-server references, and lots that do. Both are valid ways of using FHIR.

view this post on Zulip Jenni Syed (May 10 2016 at 16:26):

Which, if we did that, would remove the patient=Patient/123

view this post on Zulip Jenni Syed (May 10 2016 at 16:26):

(If i understood your intent correctly)

view this post on Zulip Jenni Syed (May 10 2016 at 16:26):

For some reason, I thought there was a longer thread on this as well, but can't find it.

view this post on Zulip Jenni Syed (May 10 2016 at 16:31):

As to external server references, I assume many of the ref impls and some FHIR servers that keep track of HIE-type info may do this. But as @James Agnew mentions, I think there will be large contingents that don't allow that as well

view this post on Zulip Grahame Grieve (May 10 2016 at 16:35):

That's the one I had in mind, but I thought we closed that out.

view this post on Zulip Grahame Grieve (May 10 2016 at 16:35):

we should ;-)

view this post on Zulip Sean Moore (May 10 2016 at 18:35):

I will respond to that chain with two proposals:

view this post on Zulip Sean Moore (May 10 2016 at 18:36):

1. that we should remove the compartment syntax from Argonaut server support (/Patient/[id]/resource)

view this post on Zulip Sean Moore (May 10 2016 at 18:36):

2. That argonaut servers will not provide support for resolving external resource references outside of their server.

view this post on Zulip Sean Moore (May 10 2016 at 18:36):

Any concerns?

view this post on Zulip Sean Moore (May 10 2016 at 18:37):

I think the IG should also include bestpractices for how to construct a query as a client - i.e. support patient=foo above patient:patient=Patient/foo

view this post on Zulip Jenni Syed (May 10 2016 at 18:39):

agree. I think we did agree that compartment searches weren't required

view this post on Zulip Jenni Syed (May 10 2016 at 18:39):

but it would be good to have a wrap up/conclusion

view this post on Zulip Josh Mandel (May 11 2016 at 00:09):

Agreed we need to wrap this discussion up in a neat package!

I'm fine saying in Argonaut that we remove compartment syntax. I do think we need server support for all of the legal FHIR ways to filter on "patient=123" (I agree it's a bit of optionality but my assessment is that it's not hard for servers to get this right, and like it or not, client libraries have diverse behavior here.) @Sean Moore That leaves me with your point #2, which I don't understand: given that the current Argonaut focus is on read APIs, when would an Argonaut server need to "resolve external resource references"?

view this post on Zulip Jenni Syed (May 11 2016 at 14:32):

@Josh Mandel You're correct that implementing read-only helps alleviate that concern (though I think some of our servers either already enable write or are considering that). However, the patient param can be set to a full URL as well. http://hl7.org/fhir/dstu2/search.html#reference

view this post on Zulip Jenni Syed (May 11 2016 at 14:33):

So, they can technically search for a resource on your server that references a patient on another. Our server wouldn't allow it - either on the read/query nor write

view this post on Zulip Josh Mandel (May 11 2016 at 14:34):

That seems fine... Or, I mean, you could "allow it" but it would return no results.

view this post on Zulip Grahame Grieve (May 11 2016 at 15:48):

ah yes. well, I agree that argonaut should not allow full url in search. sorry for missing that point

view this post on Zulip Eric Haas (May 11 2016 at 19:40):

I will go ahead and document as a resolved issue in Argo and add to the General Argo Guidance and in Patient IG.

view this post on Zulip Grahame Grieve (May 11 2016 at 19:42):

thx Eric

view this post on Zulip Brian Postlethwaite (Jun 06 2016 at 09:44):

I think you will still want to be able to support subject=Patient/123, as in some cases search parameters can be more than 1 type of reference.

view this post on Zulip Brian Postlethwaite (Jun 06 2016 at 09:45):

e.g. SearchParam: appointment.actor

view this post on Zulip Brian Postlethwaite (Jun 06 2016 at 09:46):

/Appointment?actor=Patient/43
/Appointment?actor=Practitioner/43
/Appointment?actor=43 (what would you do with this? search both patients and practitioners - and the other valid types - for the id 43


Last updated: Apr 12 2022 at 19:14 UTC