FQM-313, FQM-314: Unresolved patient and unresolved coverage tests#113
Merged
Conversation
Contributor
Author
|
Base branch to be updated to |
Jammjammjamm
left a comment
Contributor
There was a problem hiding this comment.
I think this is good, but it (and the upcoming one for resp-45) should use a custom invoke hook job that only makes a single hook request and doesn't do all of the special case requests.
It override the perform method exactly like the custom job in #109. That custom job could then inherit from this one to add the other change it needs.
6c2a6aa to
960f5fa
Compare
Contributor
Author
|
@Jammjammjamm I separated out coverage-not-found and no-active-coverage into separate groups as discussed. In the process I decided to reduce duplication by refactoring the specific coverage response groups to use a single configurable test, including the technical issues group |
Jammjammjamm
approved these changes
Jun 22, 2026
arscan
approved these changes
Jun 22, 2026
Contributor
Author
|
Docs update: e5d626a |
karlnaden
approved these changes
Jun 23, 2026
5040ed9 to
43cba75
Compare
Contributor
Author
|
@karlnaden rebased |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This adds a test to the group for specific coverage info responses that checks that the server responds with
not-coveredcoverage withno-member-foundreason code when it cannot resolve the patient.In order to force a scenario where the server should not be able to resolve the patient, the test modifies all Patient ids and identifiers and Patient references. The biggest question here is whether we think that's sufficient to force the desired scenario, or if we think servers will fallback to any other data elements or contextual information to resolve the patient.EDIT: the question has been answered. I removed all request modifcation, because we can't confidently make any assertions about how the server resolves patients.
I also included a preset value for the request body which
already contains the made-up Patientcontains a made-up Patient.The new server group will not pass against the client suite without using a custom tester-provided response template. I could investigate the feasibility of updating the simulated server logic to account for the unresolved patient scenario, but opted not to for now.
***UPDATE:***
I added FQM-314 to this PR, because it's extremely similar to FQM-313 and they share code. FQM-314 adds a group for specific coverage info responses that checks that the server responds with
not-coveredcoverage withcoverage-not-foundorno-active-coveragereason code when it cannot resolve to a single coverage.Testing Guidance
Run the server suite against client suite, using the order-sign group and the usual suite presets.
covered- If you don't want to rely on the preset and isolate testing to the request modification, you can copy the first hook request body from the regular order-sign group preset.{ "cards": [], "systemActions": [ { "type": "update", "description": "Added no-member-found coverage information to the draft order.", "resource": { "extension": [ { "url": "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information", "extension": [ { "url": "covered", "valueCode": "not-covered" }, { "url": "reason", "valueCodeableConcept": { "coding": [ { "system": "http://hl7.org/fhir/us/davinci-crd/CodeSystem/temp", "code": "no-member-found" } ], "text": "No member was found for the submitted patient." } }, { "url": "date", "valueDate": "{{today()}}" }, { "url": "coverage-assertion-id", "valueString": "inferno-no-member-found" } ] } ] }, "extension": { "com.inferno.resourceSelectionCriteria": "context.draftOrders.entry.resource" } } ] }{ "cards": [], "systemActions": [ { "type": "update", "description": "Add unresolved coverage information to the submitted order.", "resource": { "extension": [ { "url": "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information", "extension": [ { "url": "coverage", "valueReference": { "reference": "Coverage/crd221-demo-unmatched-coverage" } }, { "url": "covered", "valueCode": "not-covered" }, { "url": "reason", "valueCodeableConcept": { "coding": [ { "code": "coverage-not-found" } ] } } ] } ] }, "extension": { "com.inferno.resourceSelectionCriteria": "context.draftOrders.entry.resource" } } ] }Anticipated Provider-side Test Impact
None