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

Vital Sign Futures? #171

Closed
jeffeastman opened this issue Mar 15, 2017 · 4 comments
Closed

Vital Sign Futures? #171

jeffeastman opened this issue Mar 15, 2017 · 4 comments

Comments

@jeffeastman
Copy link
Collaborator

I notice that there are no instances of the VitalSign state in the current module set. I need to implement a full set of vital signs in order to provide realistic values for the Observations that query them.

Is there a plan to create a module that would set and update the vital signs using this state?

@dehall
Copy link
Contributor

dehall commented Mar 16, 2017

I wish I could say we had a master plan all laid out, but unfortunately we aren't there yet. I do believe it would be ideal to have all Vital Signs set by GMF modules and not in the ruby modules, the reason we haven't gone down that path is that many of the vital sign values are based on formulas which the GMF isn't able to represent.

For instance, to estimate creatinine clearance for diabetes we use the formula Est. Creatinine Clearance = [[140 - age(yr)]*weight(kg)]/[72*serum Cr(mg/dL)] (ref: http://www.mcw.edu/calculators/creatinine.htm)

We're thinking about ways to potentially represent these kinds of formulas within the GMF, and we welcome any community suggestions.

@jeffeastman
Copy link
Collaborator Author

I'm working on a module to initialize the vital signs and then adjust their trajectories on a (monthly) bases. But yeah, we need formulas for that so working on them too.

I'll let you know how it works out.

@jeffeastman
Copy link
Collaborator Author

jeffeastman commented Mar 16, 2017

Here's the start of a module that can be edited to set initial values for all of the vitals. It then iterates monthly to adjust them. Way too simple minded but its a start. I've also added a simple Expression mechanism that is adequate to calculate the creatinine clearance and a new expression field on VitalSign that, if set, will evaluate the expression to set the next value of the vital. This version only adjusts it by - 1.0..1.0 so more work is needed for realism.

vital_signs.json.txt

Here's an Expression that will evaluate the creatinine clearance, just so you can see a bit more about Expressions. For example, Formulas are simple binary operators and Primitives can either be single values, the names of a vital (plus age and gender tests) or a Range.

Hmmm, the "" operators should be *. It seems the wiki is morphing them.

{
"type": "Formula",
"left": {
"type": "Formula",
"left": {
"type": "Formula",
"left": {
"type": "Formula",
"left": {
"type": "Primitive",
"value": 140.0
},
"operator": "-",
"right": {
"type": "Primitive",
"sign": "Age(yr)"
}
},
"operator": "",
"right": {
"type": "Primitive",
"sign": "Weight"
}
},
"operator": "/",
"right": {
"type": "Formula",
"left": {
"type": "Primitive",
"value": 72.0
},
"operator": "
",
"right": {
"type": "Primitive",
"sign": "Creatinine"
}
}
},
"operator": "",
"right": {
"type": "Formula",
"left": {
"type": "Primitive",
"sign": "isMale"
},
"operator": "+",
"right": {
"type": "Formula",
"left": {
"type": "Primitive",
"value": 0.85
},
"operator": "
",
"right": {
"type": "Primitive",
"sign": "isFemale"
}
}
}
}

@jeffeastman
Copy link
Collaborator Author

I've got a more complete vital_signs module and am working with my management to release it. Closing this for now.

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

2 participants