-
Notifications
You must be signed in to change notification settings - Fork 4
Support Location, Organization, Practitioner, and PractitionerRole #447
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
Conversation
e7c3ac5 to
6b47cef
Compare
6b47cef to
8a110d7
Compare
| class BaseCovidCtakesTask(tasks.BaseNlpTask): | ||
| """Covid Symptom study task, to generate symptom lists from ED notes using cTAKES + a polarity check""" | ||
|
|
||
| tags: ClassVar = {"covid_symptom", "gpu"} |
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 tags cleanup is unrelated - I just noticed it while adding new tasks.
I had made these tags obsolete when I added the nlp subtask and took out the no-longer-needed --task-filter support. So this is just some cleanup around that.
|
|
||
| ARG ETL_VERSION | ||
| RUN [ -z "$ETL_VERSION" ] || sed -i "s/0\.0\.0/$ETL_VERSION/" /app/cumulus_etl/__init__.py | ||
| RUN [ -z "$ETL_VERSION" ] || sed -i "s/1\!0\.0\.0/$ETL_VERSION/" /app/cumulus_etl/__init__.py |
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.
The 1! prefix was slipping into the Docker releases, so this just updates the regex to chop that off.
|
|
||
| // ** Location: https://www.hl7.org/fhir/R4/location.html ** | ||
| // This is not a patient-linked resource, so we aren't as worried about PHI here. | ||
| {"path": "Location.identifier.where(system='http://hl7.org/fhir/sid/us-npi')", "method": "keep"}, |
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.
One interesting thing to call out here - normally, we don't include identifier at all in resources, since it can have business-identifiers that could be PHI. Famously MRNs would qualify, but we do it for all patient-linked resources out of an abundance of caution.
But for these new resources, there's less risk of that. But still, in my sample Epic export, there are tax IDs in there and other Epic-internal IDs. While I guess that's not exactly secret intel either, I figured the standard NPI identifiers would be (should be?) good enough. And even that is a big deal, privacy wise - because for Practitioners below, you can get name etc from that. But practitioners have a different level of privacy expectation here. And matching by NPI could be useful for a study / internal QA / is sometimes the only useful identifier left after we strip out name, telephone, and address.
Open to tweak this, but that's my initial pitch 🤷
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.
i think we should kick this conversation up the chain - i buy it, but who knows about edge cases
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.
For posterity, our team talked about this internally - we figured this approach is fine. 👍
| // keep just the year for privacy (note: 90+ HIPAA grouping is done downstream in SQL | ||
| "cases": {"true": "$this.toString().replaceMatches('^(?<year>\\\\d+).*', '${year}')"}}, | ||
| // Skip Practitioner.photo | ||
| {"path": "Practitioner.qualification.identifier", "method": "keep"}, |
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.
Another identifier callout - this is identifying the qualification, not a human. So I figured, just allow all identifiers, no filtering here.
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.
Same thought - i buy it, let's check.
8a110d7 to
6a9e242
Compare
☂️ Python Coverage
Overall Coverage
New FilesNo new covered files... Modified Files
|
|
|
||
| // ** Location: https://www.hl7.org/fhir/R4/location.html ** | ||
| // This is not a patient-linked resource, so we aren't as worried about PHI here. | ||
| {"path": "Location.identifier.where(system='http://hl7.org/fhir/sid/us-npi')", "method": "keep"}, |
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.
i think we should kick this conversation up the chain - i buy it, but who knows about edge cases
| // keep just the year for privacy (note: 90+ HIPAA grouping is done downstream in SQL | ||
| "cases": {"true": "$this.toString().replaceMatches('^(?<year>\\\\d+).*', '${year}')"}}, | ||
| // Skip Practitioner.photo | ||
| {"path": "Practitioner.qualification.identifier", "method": "keep"}, |
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.
Same thought - i buy it, let's check.
fa685ed to
c9185ef
Compare
Checklist
docs/) needs to be updated