Comments (7)
A few things. <participant>
is mapped to device
, from your earlier suggestion. This is what I have in bb.js:
// participant => device
el = entry.tag('participant').tag('code');
var device_name = el.attr('displayName'),
device_code = el.attr('code'),
device_code_system = el.attr('codeSystem');
Designed to parse:
<participant typeCode="LOC">
<participantRole classCode="SDLOC">
<templateId root="2.16.840.1.113883.10.20.22.4.32"/>
<!-- Service Delivery Location template -->
<code code="GACH" codeSystem="2.16.840.1.113883.5.111" codeSystemName="HL7 RoleCode" displayName="General Acute Care Hospital"/>
Instead of grabbing the participant
tag, I should grab by templateId
? That would look something like this (a snippet from problems):
el = entry.template('2.16.840.1.113883.10.20.22.4.4').tag('code');
var name = el.attr('displayName'),
code = el.attr('code'),
code_system = el.attr('codeSystem');
from bluebutton.js.
Yes -- going on participant is picking up not only devices, but also service delivery locations. (Ideally you'd define the entire path segment, e.g. participant/participantRole/templateId[@root="..."]/../code"
which could make the behavior more predictable.)
from bluebutton.js.
FWIW we already do something similar to this in the C32 results parser: https://github.com/blue-button/bluebutton.js/blob/master/lib/parsers/c32/results.js#L36:
...
// sometimes results organizers contain non-results. we only want tests
if (observation.template('2.16.840.1.113883.10.20.1.31').val()) {
var date = parseDate(observation.tag('effectiveTime').attr('value'));
...
So some sorta kinda precedent exists.
from bluebutton.js.
Yep, I have a fix for this on https://github.com/blue-button/bluebutton.js/pull/127/files#diff-e8efe13f6db4f401b317888b6d6cc9f4R39. Working on getting that PR ready for merge.
from bluebutton.js.
Was this merged into master? I still see the above code with "participant => device".
Is the example @jmandel mentioned just a data problem in the official example ccda?
from bluebutton.js.
@norlowski The code on master looks like this:
// participant => device
el = entry.template('2.16.840.1.113883.10.20.22.4.37').tag('code');
var device_name = el.attr('displayName'),
device_code = el.attr('code'),
device_code_system = el.attr('codeSystem');
So it now looks specifically for a tag that identifies a device. This should mean that only actual devices get parsed as devices. You can see in 79042f5#diff-46f39fe99505a71da1d296e1f8f3969eR640 that Josh's specific example is no longer parsed as a device (or technically that the tests, which pass, had to adjust for that expectation)
from bluebutton.js.
Thanks for the updates!
from bluebutton.js.
Related Issues (20)
- Patient Address - Street/Apt HOT 4
- Past Medical History - "History of Past Illness" HOT 4
- Encounter Provider HOT 1
- Procedure Specimen always null HOT 1
- Relies on <?xml to choose parser HOT 1
- insurance HOT 2
- 'encounterParticipant' is missing from parser under 'encompassingEncounter'
- TypeError: undefined is not a function HOT 2
- Seeing sample CCDA observation not picking up text HOT 3
- Multiple template Id's (C32 & CCDA) in header cause parsing to fail
- <patientRole> ID and SSN should have real data elements not fake values HOT 1
- Question: Removing hard-coded OIDs in entry population functions HOT 3
- Enhancement: Generalized "code" capture with translations HOT 2
- bluebuttonjs.com has expired HOT 1
- CCD Generator does not work at all HOT 4
- CCD Generator does not work at all
- Providing document type by hand
- religiousAffiliationCode does not work without displayName HOT 1
- Blue-Button doesn't parse through all of the Telecom use cases HOT 5
- In Document Author section the assigned person and representedOrganization is not handled
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bluebutton.js.