-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Constrain Search based on SearchParameters and CapabilityStatements #1351
Comments
Today had an Inferno search fail which was using "identifier" vs "id". There is no enforcement of unique identifiers so in this situation, data for multiple patients was being retrieved by the search. Search fails as unauthorized. Not sure if there is anything programmatic that can be done here but this could be a very confusing. Just something to consider when finalizing any interceptor behaviors. |
HI Karen, I think that's a data quality issue. Is there anything you need Troy or I to look at with regards to data retrieval and constraining the retrieval? Thanks, Paul |
@prb112
Based on the description, am I correct that the idea is to have the Search interceptor (which gets registered by being put in the userlib directory?) that would read the registered search parameters and check the multipleOr, multipleAnd, accepted comparators and chains? Shouldn't that be something handled by the actual search when the SearchParameter is looked up? Or is the idea for this to be represented in fhir-server-config.json?
For this part, we talked about adding configuration info to the fhir-server-config.json to support having a restricted list of Supported Searches, Supported _includes, and Supported _revincludes. This configuration would be read by the Search interceptor to enforce the restricted searches. |
I think we can hook on without a full interceptor or registered Service Loader. Exactly, when the SearchParameter is looked up, and backed by either the fhir-server-config.json or the CapabilityStatement to verify.
Right. |
What do you mean by this part? |
If I understood correctly, you are suggesting at the time of looking up the SearchParameter confirming the combination of search parameters from the fhir-server-config.json or CapabilityStatement. Which makes sense to me. |
Yeah, I think that sounded like a good approach.
Is adding support to enforce the values of specifically the 4 fields of: "multipleOr", "multipleAnd", accepted "comparators" and "chains" what this part of the requirement is really saying? I wasn't clear if this was a requirement or just related info. |
Oh - sorry - I didn't cover this... yes - we should look at each SearchParameter too. and see if there are conditions for use for multipleOr, multipleAnd, and prefixes supported. This is pretty detailed. |
ok, we should probably meet again tomorrow morning, then. Sounds like there's more to this one. Some parts having to do with a Search interceptor (if any), some not, etc. We'll get it ironed out. |
Sure - let's meet right after DSU |
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
After further discussion, instead of discovering the valid list of search parameters, includes, and revIncludes from the CapabilityStatement, they with be discovered by looking at the FHIR configuration (fhir-server-config.json). Issue #1449 is also in need of changes to the fhir-server-config.json, so a "resources" section will be added to the fhir-server-config to support both of these issues. Here's an example:
|
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Initially we made each searchParameter its own object so that we could add additional properties for issue #1351. However, now we don't think that any additional fields are needed and so we can simplify the config to be a simple map of SearchParameter code -> SearchParameter.url This format will give us the flexibility of overriding a SearchParameter code for a given resource type for a given deploy. However, currently the code from the config is not used...it will only use the url and it will auto-resolve any conflicting codes. Signed-off-by: Lee Surprenant <lmsurpre@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Initially we made each searchParameter its own object so that we could add additional properties for issue #1351. However, now we don't think that any additional fields are needed and so we can simplify the config to be a simple map of SearchParameter code -> SearchParameter.url This format will give us the flexibility of overriding a SearchParameter code for a given resource type for a given deploy. However, currently the code from the config is not used...it will only use the url and it will auto-resolve any conflicting codes. Signed-off-by: Lee Surprenant <lmsurpre@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Updated fhir-server-config.json example:
|
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
Signed-off-by: Troy Biesterfeld <tbieste@us.ibm.com>
issue #1351 - Check _include and _revinclude values are supported
Is your feature request related to a problem? Please describe.
In the FHIR Search specification, there are complicating conditions for each SearchParameter where multipleOr, multipleAnd, accepted comparators and chains.
Also, one must consider profile specific constraints which limit the usage of particular codes and combinations of codes https://build.fhir.org/ig/HL7/carin-bb/search.html
Describe the solution you'd like
Describe alternatives you've considered
Controlling these restrictions from fhir-server-config.json. That can be done as follow-on work to this, in another GitHub issue, to amend the search restrictions enforced by this issue.
Additional context
None
The text was updated successfully, but these errors were encountered: