Skip to content
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

MeasureGroupComponent Codes Don't Reflect Multiple Populations #28

Closed
jeffeastman opened this issue Dec 20, 2017 · 7 comments
Closed

MeasureGroupComponent Codes Don't Reflect Multiple Populations #28

jeffeastman opened this issue Dec 20, 2017 · 7 comments

Comments

@jeffeastman
Copy link

The odd numerator and denominator counts in my tests are due to a defect in the FhirMeasureEvaluator that does not properly code the MeasureReportGroupComponents to handle multiple numerators, denominators, etc. For example, DMS measure has 3 numerators and 3 denominators that aren't being coded correctly. Here's a snippet from a successful MeasureReport:

  "type": "individual",
  "measure": {
    "reference": "Measure/measure-dms"
  },
  "patient": {
    "reference": "Patient/Patient-2517"
  },
  "period": {
    "start": "2017-01-01T00:00:00-05:00",
    "end": "2017-12-31T00:00:00-05:00"
  },
  "group": [
    {
      "population": [
        {
          "code": {
            "coding": [
              {
                "code": "initial-population"
              }
            ]
          },
          "count": 1
        },
        {
          "code": {
            "coding": [
              {
                "code": "numerator"
              }
            ]
          },
          "count": 1
        },
        {
          "code": {
            "coding": [
              {
                "code": "denominator"
              }
            ]
          },
          "count": 1
        },
        {
          "code": {
            "coding": [
              {
                "code": "numerator"
              }
            ]
          },
          "count": 1
        },
        {
          "code": {
            "coding": [
              {
                "code": "denominator"
              }
            ]
          },
          "count": 1
        },
        {
          "code": {
            "coding": [
              {
                "code": "numerator"
              }
            ]
          },
          "count": 1
        },
        {
          "code": {
            "coding": [
              {
                "code": "denominator"
              }
            ]
          },
          "count": 1
        }
      ]
    }
  ],
  "evaluatedResources": {
    "reference": "#cd3c4385-e2bb-4218-89c0-d044c99c68e9"
  }
}
Aaron Kelly Peters [75] is in initial-population
Aaron Kelly Peters [75] is in numerator
Aaron Kelly Peters [75] is in denominator
Aaron Kelly Peters [75] is in numerator
Aaron Kelly Peters [75] is in denominator
Aaron Kelly Peters [75] is in numerator
Aaron Kelly Peters [75] is in denominator

This was referenced Dec 20, 2017
@jeffeastman
Copy link
Author

Adding the population's identifier to the populationReport in FhirMeasureEvaluator.resolveGroupings gives the client more information on the details of the classification.

				MeasureReport.MeasureReportGroupPopulationComponent populationReport = new MeasureReport.MeasureReportGroupPopulationComponent();
				populationReport.setCount(count);
				populationReport.setCode(population.getCode());
				populationReport.setIdentifier(population.getIdentifier());

and yields MeasureReports that can be classified like this:

http://localhost:8080/cqf-ruler/baseDstu3/Patient/Patient-1121/_history/1
	patient is in initial-population
	patient is in numerator 1
	patient is in denominator 1
	patient is in numerator 2
	patient is in denominator 2
http://localhost:8080/cqf-ruler/baseDstu3/Patient/Patient-1128/_history/1
	patient is in initial-population
	patient is in denominator 1
http://localhost:8080/cqf-ruler/baseDstu3/Patient/Patient-1122/_history/1
	patient is in initial-population
	patient is in denominator 1

@jeffeastman
Copy link
Author

And lets me produce Cat-3 statistics for the population (albeit slowly);

	denominator 1 = 81
	denominator 2 = 36
	initial-population = 81
	numerator 1 = 36
	numerator 2 = 6

I forked a branch with this fix but evidently don't have karma to push it for a pull request.

@jeffeastman
Copy link
Author

I haven't figured out where, but the identifier seems to already be set. So this is just pilot error on my part. Closing...

@jeffeastman
Copy link
Author

jeffeastman commented Jan 26, 2018

Reopening because, for some reason I don't yet understand (maybe in the hot-code replacement during debugging?), the identifiers are no longer being set. Checking the codes still yields codes that don't distinguish between numbered numerators, denominators etc.

@jeffeastman jeffeastman reopened this Jan 26, 2018
@jeffeastman
Copy link
Author

With more digging, I've located why I thought the identifier was already being set and it did have to do with hot code replacement while I was debugging, so the patch really needs to be made.

@jeffeastman
Copy link
Author

I don't see the above patch in the latest checkout. Is there a better way included or is there a reason why it is not?

@jeffeastman
Copy link
Author

Closing, thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant