Stream: implementers
Topic: Paging, sorting, filtering of patients by custom property
Shlomy Reinstein (Sep 03 2017 at 11:57):
When our (web) application is launched, its first screen shows the list of patients in the FHIR server. Since this list may be large, the list should support paging, as well as sorting and filtering (by various properties).
Shlomy Reinstein (Sep 03 2017 at 12:03):
Some of these properties are taken from the Patient resource itself (e.g. name, identifier), and some are taken from other resources linked to the Patient resource. For now, we don't yet support these features of paging, sorting and filtering, but need to implement them. It is clear, for performance reasons, that we'll need to have this support from the FHIR server; pulling all patients from FHIR and then having the UI manage these features is not scalable.
One of the properties of each patient is the date in which a team of doctors will discuss the status of the patient and provide treatment recommendations (in the Oncology domain, this is the MDT - multi-disciplinary tumor board meeting). We need to assign each patient a date for the MDT, on which the user of the application can sort and filter. What is the right way to model this date in FHIR, so that we can use FHIR's query mechanism to do the paging, sorting and filtering?
Shlomy Reinstein (Sep 03 2017 at 12:03):
Thanks!
Lloyd McKenzie (Sep 03 2017 at 13:25):
From a purist perspective, that would be the date of the next scheduled appointment of type MDT. You could define it as an extension on Patient, but it's not really a piece of Patient demographics. And the notion of "next" is somewhat fickle as it would change as soon as the meeting was completed. You could also define it as an extension on EpisodeOfCare. That would have the benefit that if the patient was unlucky enough to be suffering from two independent forms of cancer, you could track MDTs for each separately - though I don't know if that's a thing. And you'd still have the same issue around "next". If you do use appointments to track it, I can't find anything that stops you from defining a custom SearchParameter on Patient that involves derivation of information from other resources, other than performance and the fact that some reference implementations might not support that well. But if your server can handle it, you ought to be able to define the SearchParameter and declare support for it - which would then let you filter and sort.
Last updated: Apr 12 2022 at 19:14 UTC