-
Notifications
You must be signed in to change notification settings - Fork 49
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
#543: $risk-adjustment operation POC #550
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding tests, there is no state: hist-netnew.
Historic, net-new, and suspected are disjoint. We should probably error if more than one results in true.
Also, Net-new implies Closed (i.e. net-new and open is not a valid state). We should probably error if net-new and Measure Score = 0.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It wasn't included in the original reqs, but we also need to add the following extension:
{
"url": "http://hl7.org/fhir/us/davinci-ra/StructureDefinition/ra-evidenceStatusDate",
"valueDate": "2020-12-15"
}
This will require an update to the Measure so it's currently blocked. Will provide a link when the Measure has been updated.
Also, using Measure Score instead of Numerator is fine. No need to change that. |
One last thing, I'm not sure what the Measure Report should look like in the case of a Denominator Exclusion. Will need to get feedback on that. Maybe nothing changes; maybe there's something we need to do. Probably out of scope for the POC. Just FYI. |
…tions and open net-new... stubbed out function to resolve evidence status date ... cleanup
SDE "Evidence Status Date" has been added to the Measure in order to add the ra-evidenceStatusDate extension. New Measure and Library resources can be found here: https://github.com/HL7/davinci-ra/tree/master/bundles/measure/ConditionCategoryPOC/ConditionCategoryPOC-files. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"risk assessment" => "risk adjustment"
Change "reportType" to "type" and run this report if the type is "report" and throw a "not implemented exception"/OperationOutcome if the type is "response". |
Return a Parameters with a Risk Adjustment Coding Gap Report Bundle (http://build.fhir.org/ig/HL7/davinci-ra/StructureDefinition-ra-measurereport-bundle.html) with Risk Adjustment Measure Report (http://build.fhir.org/ig/HL7/davinci-ra/StructureDefinition-ra-measurereport.html) entries, and evaluatedResource entries. |
No need to make it a Composition or include Detected Issue at this point. |
…o operate on existing MeasureReport ... additional error reporting using OperationOutcome ... resolving evidence status date extension ... updated tests
Applied most of those changes. Still need to package as a Risk Adjustment Coding Gap Report Bundle. Updated the operation to work on existing MeasureReport referencing subject. |
@Operation(name = "$risk-adjustment", idempotent = true, type = MeasureReport.class) | ||
public Parameters riskAdjustment( | ||
@OperationParam(name = "type", min = 1) String type, | ||
@OperationParam(name = "periodStart", min = 1) String periodStart, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These min parameters don't actually do what you would expect.
Care Gaps has an example of enforcing parameter requirements: https://github.com/DBCG/cqf-ruler/blob/de723e8c9504e1311579f2c1bcaaf07fdbafde71/plugin/cr/src/main/java/org/opencds/cqf/ruler/cr/r4/provider/CareGapsProvider.java#L279.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That only works on GET requests... Perfectly valid to call this operation with a POST.
return error; | ||
} | ||
|
||
private void bundleReport() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this needed? Appears to have been moved to the helper class.
return null; | ||
} | ||
|
||
private static OperationOutcome generateIssue(String issue) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This might be useful to move to the parent.
|
||
private String visited; | ||
|
||
@Operation(name = "$risk-adjustment", idempotent = true, type = MeasureReport.class) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be off the Measure class (like $evaluate-measure and $care-gaps).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Builds locally.
Passes all tests.
Passes manual testing.
LGTM
First pass at operation. Still needs a bit of cleanup and some better error reporting. Issuing PR now for feedback and to ensure my grasp of the operation is sound.
Not currently explicitly checking the numerator score to determine gaps. Using the following:
Can add explicit checking as needed.
The test...MeasureReport.json files have the returned MeasureReport resources from the tests. Currently only changing the MeasureReport.group element. Please advise if other elements need to be excluded/changed/updated. I added "suspected" population logic even though it is not covered in the POC just to have it there. Can comment-out/remove/throw or whatever is preferred.