FHIR Chat · patient roster · implementers

Stream: implementers

Topic: patient roster


view this post on Zulip Josh Mandel (Jul 06 2018 at 16:13):

I've been noodling on approaches to representing a "roster" of patients for a given practitioner or organization. I'm considering just defining GET /Practitioner/:id/$roster to handle this, because Group search and List search and List/$find don't seem to cover this use case. Some surprising things I noticed:

  • Group doesn't have a clear way to say "the common characteristic of this group is that all patients are associated with a specific practitioner or organization"

  • List doesn't have a clear place to indicate a specific practitioner or organization that is the common link between the members

view this post on Zulip John Moehrke (Jul 06 2018 at 16:19):

Is this just the other perspective on Patient.generalPractitioner and/or .managingOrganization? Thus a query on Patient ?general-practitioner or ?organization?

view this post on Zulip Lloyd McKenzie (Jul 06 2018 at 18:15):

Could the roster ever be the focus of an action? If so, Group is probably a better fit. We could extend the criteria to allow valueReference

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:08):

@Lloyd McKenzie Yes, the roster could be the focus of an action. (I mean, honestly what couldn't?). I'll add a tracker for valueReference

@John Moehrke it's not as straightforward as Patient.generalPractitioner because it won't always be someone in a 1:1 relationship, or someone directly serialized within the Patient resource. This kind of "has on roster" relationship is more fluid/functional, less static.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:09):

why doesn

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:09):

why doesn't list search work?

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:12):

Re: List Search... How do you say GET Listfor Practitioner 123}}? The practitioner can't be the subject, and it doesn't semantically fit as the source.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:13):

it would work if you knew the list, yes? The problem is knowing the list? you certainly need tighter semantics than subject or source

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:14):

If you knew the list (or Group) Id you wouldn't need search, just read.

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:14):

Exactly.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:14):

so I don't find it surprising that list doesn't have this, it would be extension - that seems ok to me. I agree that Group would be good to characterise users by their relationships of various kinds.

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:15):

Yeah, I added GF#17456 for this.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:16):

what reference would this be though?

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:16):

I think it would be a reference to the practitioner.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:16):

I'm not following.

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:16):

With Group.characteristic.code meaning "roster for".

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:16):

Group would work: the practitioner lists all the patients on their roster.

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:17):

Sorry, here's an example. If we wanted to represent the patients like "Dr Smith's Hypertension Panel"...

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:17):

I don't know where else "roster of patient" is represented ; group would be the primary source. So I don't understand what reference gives you

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:18):

{
  "resourceType": "Group",
  "characteristic": [{
    "code": {"text": "On Hypertension Roster For"},
    "valueReference": {
      "display": "Dr. Smith"
      "reference": "Practitioner/123"
    }
  }],
  "member": [
    // enumerated here
  ]
}

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:19):

but no, the group is the roster, and you list patients in there. characteristic can't help you

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:20):

It helps me by enabling a search like

GET /Group?characteristic={}&value=Practitioner/123

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:21):

I think you're thinking about it wrong; characteristic is what makes things a member of the group, not a description of the characteristics of the group itself - and you're trying to express the latter

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:24):

I understand what you're saying; I'm not sure it's what the spec says or what should be true though. In particular, we agree that you can expresscharacteristic and member in a single Group, right?

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:25):

When I provide a characteristic like the one above, why is this not "what makes [patients] a member of the group"? That's precisely how I'm using it, I believe.

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:25):

As in

"What makes patients a member of Group 456 is the fact that they are on Practitioner 123's roster".

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:26):

ok so yes but I was getting at 'prospective'or 'descriptive'. I understand that you have either member or characteristic based on "The Group resource is used in one of two ways:" in scope.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:26):

if you specify a characteristic, it is used to computationally determine the membership

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:27):

I think you are understanding it descriptively

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:27):

I'm thinking about a scenario where groups are read-only data. So it might as well be both; it's hard to say how you'd disentangle them.

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:28):

In any case, the solution I have right now is GET /Practition/123/$roster, which avoids some of the philosophical grey area :-)

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:29):

"groups are read only"?

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:29):

The use case I'm trying to address is "A financial system wants to let clients ask 'who is on the roster for Practitioner 123?'"

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:29):

$roster like that is legal, but substitutes implicit knowledge in the place of explicit knowledge so it would be good to sort that out

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:30):

right. so in that case, who actually provides the information that a patient is on the roster, and how?

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:30):

Quite -- which is why we're having this conversation in parallel :-)

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:30):

The source financial system provides the information, based on its own internal know-how. Business logic, historical records, attribution algorithms, whatever.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:30):

in the real world, who does?

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:31):

Does that make sense?

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:32):

I think that in some cases it makes sense that the server would already know the answer, but in lots of other cases, some system other than the server knows the list, but wants the server to know the list too

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:32):

btw @Lloyd McKenzie do you know the answer about specifying both characteristics and members?

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:33):

Sure -- most definitely. https://github.com/smart-on-fhir/smart-on-fhir.github.io/wiki/Bulk-data:-thoughts-on-rosters-and-groups includes that use case, too.

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:33):

Re: characteristics + members, there's no invariant prohibiting it, at least.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:34):

no but no information about what it would mean

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:34):

in other similar cases where you can list or provide rules, we've spent years arguing about the relationship between them

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:34):

I assumed it'd mean: here are some people + here's what they have in common :-)

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:35):

I assumed it would mean, here's some people, and here's some more people

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:35):

or here's some rules for the people, and here's what I think the correct list for the rules is right now.

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:35):

Yeah, so specifying this stuff this abstractly is hard!

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:36):

Your last one also works for me in this use case :p

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:36):

The middle one though, "people + more people" not so much.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 20:36):

no. so we definitely need to clarify this.. can you make another task?

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:36):

Of course. Coming right up.

view this post on Zulip Josh Mandel (Jul 06 2018 at 20:40):

GF#17457

view this post on Zulip Lloyd McKenzie (Jul 06 2018 at 20:45):

You're allowed to specify both characteristics and members. If you do, then the members are the set of individuals you found who met the characteristics.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 21:01):

which is not quite the same as 'this is the set of individuals and this is their common characteristics'

view this post on Zulip Lloyd McKenzie (Jul 06 2018 at 21:51):

Agree. Group characteristics are definitional, not incidental

view this post on Zulip Grahame Grieve (Jul 06 2018 at 22:02):

there's use cases for both, though

view this post on Zulip Lloyd McKenzie (Jul 06 2018 at 22:04):

I'm not really understanding the use-case for "incidental". Josh's would be definitional - these are the people that are part of Practitioner X's roster.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 22:35):

if I remove the members, and then rebuild them, will I get the same list? If no, then it's not definitional

view this post on Zulip Lloyd McKenzie (Jul 06 2018 at 22:39):

If I say "all females age 15-60 in a 5 mile radius of x" and build the list, then wipe it, then build it again, it's possible there might be a change, but it's still definitional. Or if I define a list of criteria for a clinical study and I enroll a set of subjects, that doesn't mean the subjects are all of the people who met the criteria, it's those who happened to get enrolled. But they can't be enrolled if they don't meet the criteria. And the criteria weren't developed by looking at the characteristics of the members.

view this post on Zulip Grahame Grieve (Jul 06 2018 at 22:40):

but if build a list of members, and then say - this list, it's the set of people who have y - then the relationship is reversed. And that's what Josh is trying to do

view this post on Zulip Lloyd McKenzie (Jul 07 2018 at 00:03):

I thought he was defining the type of roster, then adding people to it?

view this post on Zulip Lloyd McKenzie (Jul 07 2018 at 00:04):

I wasn't familiar with a situation where you'd compile a list of patients and then say "oh, turns out all of these people have diabetes". Is that what's happening?

view this post on Zulip Grahame Grieve (Jul 07 2018 at 01:26):

the group is defining the membership - it's saying 'this list members have this property because I say so' not 'you use this property to figure out who are members'

view this post on Zulip Lloyd McKenzie (Jul 07 2018 at 01:48):

I thought you were defining the group as "These are the patients of Dr. X" - and then adding the patients.

view this post on Zulip John Silva (Jul 07 2018 at 11:51):

Trying to follow this discussion to learn ... I noticed that there is a property, actual ( https://www.hl7.org/fhir/group-definitions.html#Group.actual ) which seems to imply that a Group can be either 'real' (i.e. that has the list in members[] or definitional, to me this implies that the list is dynamically generated by a search based on the characteristic(s) ) , it doesn't seem to allow for a Group to be both --- at least reading the spec page that what it seems to imply. [If the spec isn't clear enough on this then maybe something, like some examples, could help clarify this distinction.]

view this post on Zulip Brian Postlethwaite (Jul 11 2018 at 11:34):

This is the first time I've ever thought of making a practitioners roster a group, that just seems totally not appropriate, unless we're really just trying to flesh out uses of group and fabricating a theoretical one with a roster.
Depending on the context of a roster, and the type of services being applied, these could be a few different things.

view this post on Zulip Brian Postlethwaite (Jul 11 2018 at 11:36):

Were you really referring to the list of patients that a practitoner might do on his rounds of a hostpital? Or the list that a general practitioner is expecting to appear in their office, or a community care practitioner that has to go out into the field?
Most of these are related to appointments and encounters, and nothing to do with list or group at all.

view this post on Zulip Brian Postlethwaite (Jul 11 2018 at 11:38):

(not to forget schedule and slot for the availability side of the practitioners roster)

view this post on Zulip Grahame Grieve (Jul 11 2018 at 11:45):

I think that we're assuming that all these groups are associated with some kind of workflow, but the workflow is maintained on some other system, and that the 'patient roster' is just a denormalization of that onto a different system

view this post on Zulip Josh Mandel (Jul 12 2018 at 14:07):

The use case here is really: how can a healthcare payer communicate to a provider "these are the patients we currently attribute to you as a provider organization" (or "to you as an individual provider"). It's important for managing populations effectively.

@Brian Postlethwaite Can you say more about why Group is "totally not appropriate"? It seemed like the best fit; what would you recommend instead?

view this post on Zulip Brian Postlethwaite (Jul 13 2018 at 01:05):

Thanks, not really a roster (from a scheduling perspective), its the patient list. That now makes sense.
MHIN have done some stuff with this in their state based directory.

view this post on Zulip Brian Postlethwaite (Jul 16 2018 at 05:21):

@Josh Mandel , looking at that smart on fhir page
https://github.com/smart-on-fhir/smart-on-fhir.github.io/wiki/Bulk-data:-thoughts-on-rosters-and-groups
Think that you should be more clear that this is not a roster from a scheduling perspective...

view this post on Zulip Josh Mandel (Jul 16 2018 at 12:04):

Thanks Brian -- definitely. I think we can call this an "attribution list".

view this post on Zulip Isaac Vetter (Jul 17 2018 at 22:26):

Hey @Paul Knapp - How would you expect a payer to represent the provider organization that it was attributing a specific patient to, in FHIR? The current suggestion is that a Group of Patients have Group. characteristic as a reference to a Practitioner or Organization resource.

Would it be reasonable for a Contract.topic to be a reference to a Group ?


Last updated: Apr 12 2022 at 19:14 UTC