FHIR Chat · MeasureReport · Covid-19 Response

Stream: Covid-19 Response

Topic: MeasureReport


view this post on Zulip Michael Donnelly (Mar 31 2020 at 21:46):

I've got an example of a MeasureReport. Let me know what it's missing.

view this post on Zulip Michael Donnelly (Mar 31 2020 at 21:47):

(I already found a bug. I'll post in a bit.)

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:02):

{
    "resourceType": "MeasureReport",
    "id": "exIpgIZ2KRCpuIrsZ1v5mpBdAwVWrJ77AAAV3tpfplf5Bvzvw41h3M5wjTXNaSq-fkrRiKloO5-wUPxcp0orOxA3",
    "status": "complete",
    "type": "summary",
    "measure": "https://vs-icx.epic.com/Interconnect-CDE/api/FHIR/R4/Measure/e8-H2kvdTuFUBWb2RX967fw3",
    "subject": {
        "reference": "Location/eDvShAeUfxUlbCN1A6OATOQ3",
        "display": "River Hills Hospital System"
    },
    "date": "2020-03-31",
    "reporter": {
        "reference": "Organization/e9OtaUAOSwwwfGDaKD43WbA3",
        "display": "River Hills Hospital System"
    },
    "period": {
        "start": "2020-03-18",
        "end": "2020-03-18"
    },
    "group": [
        {
            "measureScore": {
                "value": 183
            }
        }
    ]
}

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:03):

And that's associated with the Measure:

{
    "resourceType": "Measure",
    "id": "e8-H2kvdTuFUBWb2RX967fw3",
    "name": "ICU Total Ventilators",
    "title": "Total Ventilators",
    "status": "draft",
    "date": "2020-03-30T23:38:55Z",
    "publisher": "Epic",
    "contact": [
        {
            "name": "Michael Donnelly",
            "telecom": [
                {
                    "system": "url",
                    "value": "https://chat.fhir.org/#narrow/stream/226195-Covid-19-Response/topic/Example.20Measure.20definition",
                    "rank": 1
                },
                {
                    "system": "email",
                    "value": "michael.donnelly@epic.com",
                    "rank": 2
                }
            ]
        }
    ],
    "description": "The number of ventilators available for use.",
    "useContext": [
        {
            "code": {
                "system": "http://terminology.hl7.org/CodeSystem/usage-context-type",
                "code": "focus"
            },
            "valueCodeableConcept": {
                "coding": [
                    {
                        "system": "http://snomed.info/sct",
                        "code": "840535000",
                        "display": "COVID-19"
                    }
                ],
                "text": "COVID-19"
            }
        }
    ]
}

view this post on Zulip Keith Boone (Mar 31 2020 at 22:03):

For CDC reports, contact is nhsn@cdc.gov

view this post on Zulip Keith Boone (Mar 31 2020 at 22:03):

See https://www.cdc.gov/nhsn/cms/cms-reporting.html

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:04):

Is someone building the canonical CDC Measure resources?

view this post on Zulip Keith Boone (Mar 31 2020 at 22:05):

I'm about to from the spreadsheet...

view this post on Zulip Keith Boone (Mar 31 2020 at 22:05):

I have updates to it as well, but was working in Excel from a local copy so as not to conflict with other edits.

view this post on Zulip Keith Boone (Mar 31 2020 at 22:06):

The updates are the other data elements going into it.

view this post on Zulip Keith Boone (Mar 31 2020 at 22:06):

About to render a bunch of fsh from csv file I think.

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:11):

Does that MeasureReport look like what you'd expect, @Keith Boone ?

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:23):

@Gino Canessa I think this matches your example; can you eyeball it and see if I did anything weird?

view this post on Zulip Keith Boone (Mar 31 2020 at 22:23):

No, b/c the Measure itself is talking about COVID Virus, not vents. For vents you need a different code.

view this post on Zulip Hans Buitendijk (Mar 31 2020 at 22:26):

Agreed, but both use a limited starter set of Measure fields, which seems sufficient, but per prior comment, would at least include .guidance given additional guidance they are issuing.

view this post on Zulip Keith Boone (Mar 31 2020 at 22:27):

Michael Donnelly said:

Does that MeasureReport look like what you'd expect, Keith Boone ?

Would still like to see code being right "measure-population".

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:31):

Ah. So putting the number of ventilators in group.population.count instead of group.measureScore?

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:32):

I don't have a strong opinion about that.

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:32):

I was just going off @Gino Canessa 's example: https://chat.fhir.org/#narrow/stream/226195-Covid-19-Response/topic/Example.20Measure.20definition/near/192452917

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:33):

But measure-population makes sense.

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:33):

I'll be back shortly.

view this post on Zulip Michael Donnelly (Mar 31 2020 at 22:36):

Like this?

{
    "resourceType": "MeasureReport",
    "id": "exIpgIZ2KRCpuIrsZ1v5mpBdAwVWrJ77AAAV3tpfplf5Bvzvw41h3M5wjTXNaSq-fkrRiKloO5-wUPxcp0orOxA3",
    "status": "complete",
    "type": "summary",
    "measure": "https://vs-icx.epic.com/Interconnect-CDE/api/FHIR/R4/Measure/e8-H2kvdTuFUBWb2RX967fw3",
    "subject": {
        "reference": "Location/eDvShAeUfxUlbCN1A6OATOQ3",
        "display": "River Hills Hospital System"
    },
    "date": "2020-03-31",
    "reporter": {
        "reference": "Organization/e9OtaUAOSwwwfGDaKD43WbA3",
        "display": "River Hills Hospital System"
    },
    "period": {
        "start": "2020-03-18",
        "end": "2020-03-18"
    },
    "group": [
        {
            "population": [
                {
                    "code": {
                        "coding": [
                            {
                                "code": "measure-population",
                                "display": "Measure Population"
                            }
                        ]
                    },
                    "count": 183
                }
            ]
        }
    ]
}

view this post on Zulip Gino Canessa (Mar 31 2020 at 22:38):

@Michael Donnelly Looks good to my untrained eye :-)

@Keith Boone The discussion we had is that if we are using the CDC measures (for example), those fields are defined in the context of the COVID Patient Module.

For both, I was working off what I thought the last idea today was (from Hans?) that we wanted the absolute barest minimum. I figured these would be a good starting point if nothing else. I'm happy to generate more (this format exported on GH already).

Happy to adjust/update from feedback, but will be away for a few.

view this post on Zulip Hans Buitendijk (Mar 31 2020 at 22:52):

And I believe there is also some mixing between what is in MeasureReport vs. Measure. Within Measure is where I'm looking to minimize to start, and that's where it appears .group is not essential initially. @Gino Canessa 's and @Michael Donnelly 's examples do not seem to include that either.

view this post on Zulip Eric Haas (Apr 01 2020 at 01:51):

The DEQM and QM IGs cover all this and a lot more complex cases and have lots of examples. You can substitute beds, vents or whatever for patients and use summary reporting like discussed here. @Bryn Rhodes is the the best resource for these questions too.

view this post on Zulip Keith Boone (Apr 01 2020 at 02:22):

I just took a quick look at it, what we have so far seems to be aligned. There are some requirements in DEQM (e.g., Certification stuff) that simply aren't applicable in the SANER Case, but could certainly be applied without breaking anything.

view this post on Zulip Bryn Rhodes (Apr 01 2020 at 02:22):

@Michael Donnelly these examples look great! One minor quibble is the measure element on MeasureReport is actually a canonical, so it should be referencing by the url of the Measure. Because Measure is a definition resource, that patterns allows version-specific or version-independent referencing, and also allows the Measure reference to be specified independent of the FHIR server on which the Measure appears. Just like profile urls.

view this post on Zulip Bryn Rhodes (Apr 01 2020 at 02:24):

So the url for the Measure might be 'http://epic.com/Measure/icu-hospital-beds' or something like that.

view this post on Zulip Bryn Rhodes (Apr 01 2020 at 02:27):

I would think the Measure should specify the subjectType as well, Location? or Organization?

view this post on Zulip Michael Donnelly (Apr 01 2020 at 03:20):

Thanks @Bryn Rhodes , that's just the sort of stuff I'm looking for. I'll update it tomorrow and let you know.

view this post on Zulip Michael Donnelly (Apr 01 2020 at 15:04):

Updated MeasureReport based on @Bryn Rhodes 's feedback:

{
    "resourceType": "MeasureReport",
    "id": "exIpgIZ2KRCpuIrsZ1v5mpBdAwVWrJ77AAAV3tpfplf5Bvzvw41h3M5wjTXNaSq-fkrRiKloO5-wUPxcp0orOxA3",
    "status": "complete",
    "type": "summary",
    "measure": "http://open.epic.com/Measure/ICU-Total-Ventilators-Facility",
    "subject": {
        "reference": "Location/eDvShAeUfxUlbCN1A6OATOQ3",
        "display": "River Hills Hospital System"
    },
    "date": "2020-04-01",
    "reporter": {
        "reference": "Organization/e9OtaUAOSwwwfGDaKD43WbA3",
        "display": "River Hills Hospital System"
    },
    "period": {
        "start": "2020-03-18",
        "end": "2020-03-18"
    },
    "group": [
        {
            "population": [
                {
                    "code": {
                        "coding": [
                            {
                                "code": "measure-population",
                                "display": "Measure Population"
                            }
                        ]
                    },
                    "count": 183
                }
            ]
        }
    ]
}

view this post on Zulip Bryn Rhodes (Apr 01 2020 at 15:09):

@Michael Donnelly , looks great

view this post on Zulip Michael Donnelly (Apr 01 2020 at 15:10):

Excellent. I should have an updated Measure presently.

view this post on Zulip Gino Canessa (Apr 01 2020 at 15:55):

I've updated the generator and pushed to GH - it should match your style from 10:04 this morning.
Links:

  • Bundle with Measure resources: here
  • The rest of the folder has files by org, grabbing one for example:
    • Bundle with Organization and Location (with geo coords) here
    • Bundle with MeasureReport resources matching the Measure bundle here

I need to update the URLs to be SANER per Keith's last round (that has them), but wanted to get the examples pushed before today's call.

view this post on Zulip Michael Donnelly (Apr 02 2020 at 11:04):

Bryn Rhodes said:

Michael Donnelly , based on the discussion on this thread, I updated the last example you posted:

{
    "resourceType": "MeasureReport",
    "id": "exIpgIZ2KRCpuIrsZ1v5mpBdAwVWrJ77AAAV3tpfplf5Bvzvw41h3M5wjTXNaSq-fkrRiKloO5-wUPxcp0orOxA3",
    "status": "complete",
    "type": "individual",
    "measure": "http://open.epic.com/Measure/ICU-Total-Ventilators-Facility",
    "subject": {
        "reference": "Location/eDvShAeUfxUlbCN1A6OATOQ3",
        "display": "River Hills Hospital System"
    },
    "date": "2020-04-01",
    "reporter": {
        "reference": "Organization/e9OtaUAOSwwwfGDaKD43WbA3",
        "display": "River Hills Hospital System"
    },
    "period": {
        "start": "2020-03-18",
        "end": "2020-03-18"
    },
    "group": [
        {
            "population": [
                {
                    "code": {
                        "coding": [
                            {
                                "code": "measure-population",
                                "display": "Measure Population"
                            }
                        ]
                    },
                    "count": 1
                }
            ],
            "measureScore": {
              "value": 183
            }
        }
    ]
}

Excellent, thanks @Bryn Rhodes . I'll update it and let you know.

view this post on Zulip Michael Donnelly (Apr 02 2020 at 12:54):

I actually parsed this now. Is the population actually necessary in this case? Seems like it could be inferred.

view this post on Zulip Michael Donnelly (Apr 02 2020 at 12:55):

{
    "resourceType": "MeasureReport",
    "id": "exIpgIZ2KRCpuIrsZ1v5mpBdAwVWrJ77AAAV3tpfplf5Bvzvw41h3M5wjTXNaSq-fkrRiKloO5-wUPxcp0orOxA3",
    "status": "complete",
    "type": "summary",
    "measure": "http://cdc.gov/Measure/numVent",
    "subject": {
        "reference": "Location/eDvShAeUfxUlbCN1A6OATOQ3",
        "display": "River Hills Hospital System"
    },
    "date": "2020-04-02",
    "reporter": {
        "reference": "Organization/e9OtaUAOSwwwfGDaKD43WbA3",
        "display": "River Hills Hospital System"
    },
    "period": {
        "start": "2020-03-18",
        "end": "2020-03-18"
    },
    "group": [
        {
            "measureScore": {
                "value": 183
            }
        }
    ]
}

view this post on Zulip Michael Donnelly (Apr 02 2020 at 13:37):

@Bryn Rhodes is the population necessary here?

view this post on Zulip Bryn Rhodes (Apr 02 2020 at 13:43):

Based on the currently defined continuous-variable profile, it is.

view this post on Zulip Michael Donnelly (Apr 02 2020 at 13:43):

Okay.

view this post on Zulip Bryn Rhodes (Apr 02 2020 at 13:44):

But the profiles there are heavily focused on patient-based measures, and I'm wondering whether the same set of requirements are appropriate. We don't have a lot of experience with structure measures, and it may be that the pattern of defining initial population/measure population isn't useful in the structure measure space. It's worth a conversation for sure.

view this post on Zulip Bryn Rhodes (Apr 02 2020 at 13:45):

In the structure measures you support in Epic, do you have a group of measures that all use the same initial population, and then vary aspects of the measure population and measure observation?

view this post on Zulip Michael Donnelly (Apr 02 2020 at 13:47):

I'm far from expert in this area, so I'm not confident I'll interpret the terms correctly.

view this post on Zulip Michael Donnelly (Apr 02 2020 at 13:47):

My gut say the answer to your question is "no."

view this post on Zulip Michael Donnelly (Apr 02 2020 at 13:48):

I think it's worth having that conversation. In the short run, do you think it'd be better to include the measure-population or leave it out? It's trivial for me to do either.

view this post on Zulip Bryn Rhodes (Apr 02 2020 at 13:50):

In the short run I think leaving it in. You need at least something to specify the population count. (Even if it is technically always 1 in this case, receiving systems don't necessarily know that).

view this post on Zulip Michael Donnelly (Apr 02 2020 at 13:51):

Here you go:

{
    "resourceType": "MeasureReport",
    "id": "exIpgIZ2KRCpuIrsZ1v5mpBdAwVWrJ77AAAV3tpfplf5Bvzvw41h3M5wjTXNaSq-fkrRiKloO5-wUPxcp0orOxA3",
    "status": "complete",
    "type": "summary",
    "measure": "http://cdc.gov/Measure/numVent",
    "subject": {
        "reference": "Location/eDvShAeUfxUlbCN1A6OATOQ3",
        "display": "River Hills Hospital System"
    },
    "date": "2020-04-02",
    "reporter": {
        "reference": "Organization/e9OtaUAOSwwwfGDaKD43WbA3",
        "display": "River Hills Hospital System"
    },
    "period": {
        "start": "2020-03-18",
        "end": "2020-03-18"
    },
    "group": [
        {
            "population": [
                {
                    "code": {
                        "coding": [
                            {
                                "code": "measure-population",
                                "display": "Measure Population"
                            }
                        ]
                    },
                    "count": 1
                }
            ],
            "measureScore": {
                "value": 183
            }
        }
    ]
}

view this post on Zulip Bryn Rhodes (Apr 02 2020 at 13:54):

Fantastic! Can you get a system on the population coding? http://terminology.hl7.org/CodeSystem/measure-population

view this post on Zulip Michael Donnelly (Apr 02 2020 at 13:54):

Looking now...

view this post on Zulip Josh Mandel (Apr 02 2020 at 13:57):

Also the reporting organization appears to be a hospital system, but presumably the location represents a single facility within that system. I believe at least that the CDC NHSN reporting system is based on facilities. So it might be good to just update the display name for the location being reported on to indicate that it is one facility rather than the entire system.

view this post on Zulip Michael Donnelly (Apr 02 2020 at 13:58):

Oh, good catch Josh. I was going off the set of Epic metrics, but we really need the CDC ones.

view this post on Zulip Michael Donnelly (Apr 02 2020 at 13:58):

I need to change a couple of things....

view this post on Zulip Michael Donnelly (Apr 02 2020 at 14:01):

{
    "resourceType": "MeasureReport",
    "id": "exIpgIZ2KRCpuIrsZ1v5mpBdAwVWrJ77AAAV3tpfplf5YQVcuwKy9h1D5C4QM1hAxywBT99ikIvHeLM9IlMMAEQ3",
    "status": "complete",
    "type": "summary",
    "measure": "http://cdc.gov/Measure/numVent",
    "subject": {
        "reference": "Location/eay3aH0PD8WDkN.dRKzOlAA3",
        "display": "IPQA HOSPITAL"
    },
    "date": "2020-04-02",
    "reporter": {
        "reference": "Organization/e9OtaUAOSwwwfGDaKD43WbA3",
        "display": "River Hills Hospital System"
    },
    "period": {
        "start": "2020-03-18",
        "end": "2020-03-18"
    },
    "group": [
        {
            "population": [
                {
                    "code": {
                        "coding": [
                            {
                                "system": "http://terminology.hl7.org/CodeSystem/measure-population",
                                "code": "measure-population",
                                "display": "Measure Population"
                            }
                        ]
                    },
                    "count": 1
                }
            ],
            "measureScore": {
                "value": 33
            }
        }
    ]
}

view this post on Zulip Michael Donnelly (Apr 02 2020 at 14:01):

Kind of goofy name for the hospital since this is our dev system.

view this post on Zulip Michael Donnelly (Apr 02 2020 at 14:01):

So don't put this one as is into the IG, Keith.

view this post on Zulip Michael Donnelly (Apr 02 2020 at 14:04):

Josh, note the lower MeasureReport.group.measureScore.value since this is just for one hospital.

view this post on Zulip Keith Boone (Apr 02 2020 at 14:35):

Michael Donnelly said:

So don't put this one as is into the IG, Keith.

You should be contributing resources to the IG!

view this post on Zulip Michael Donnelly (Apr 02 2020 at 14:44):

I will when one is good enough. :) I want to get a canonical URL I didn't make up.

view this post on Zulip Gino Canessa (Apr 02 2020 at 15:37):

Think I'm mostly caught up - question though. The Measure definition now has two populations (a measure-population and a measure-observation), but the MeasureReport only has one (measure-population). Is this correct?

view this post on Zulip Bryn Rhodes (Apr 02 2020 at 15:52):

Yes, and this is something that isn't stated clearly in the documentation, a measure-observation population definition is required (to say what is being counted), but it is redundant with the score for a continuous-variable measure and so doesn't need to be in the output. I'm submitting a tracker to state that exception to the rule that every population definition in a Measure has a corresponding population in the MeasureReport.


Last updated: Apr 12 2022 at 19:14 UTC