blue-button / blue-button-plus-pull

Spec for BlueButton+ Pull
http://blue-button.github.io/blue-button-plus-pull/
20 stars 11 forks source link

Make scope definitions more consistent #27

Closed jmandel closed 11 years ago

jmandel commented 11 years ago

Reported by @carloseberhardt via http://wiki.siframework.org/BlueButtonPlus+Pull+API+Documentation+Consensus

I would like to see cleaner scope definitions. Not clear on why one is "single-patient" and the others are urls. Single-patient appears redundant.

jmandel commented 11 years ago

One possibility is to define only two scopes, both structured:

summary:{id}
search:{id}

e.g. search:me summary:me would be a typical scope attached to an authorization token.

(Variation on that theme is using full URLs like http://siframework.org/ABBI/endpoint/search:me and http://siframework.org/ABBI/endpoint/summary:me. I prefer the shorter ones...)

jmandel commented 11 years ago

Joe: make the "patient record pseudonymous identifier" language clearer. Justin: don't explicitly refer to :me, but instead define semantics for an "bare" scoep (sans {id})

jmandel commented 11 years ago

Updating the spec language to define empty summary:{id} and search:{id}. Note that an empty parameter yields a value with a colon -- that is, summary: (and not summary).

jricher commented 11 years ago

I'm not sure I agree with the empty parameter having the colon in it still, but we can try it.

jmandel commented 11 years ago

Yeah, I though you might feel that way :-) (But it seemed like a fair compromise -- avoids magic values while still allowing a single regexp capture to extract the parameter.)

On Tue, Jun 4, 2013 at 10:21 AM, Justin Richer notifications@github.comwrote:

I'm not sure I agree with the empty parameter having the colon in it still, but we can try it.

— Reply to this email directly or view it on GitHubhttps://github.com/blue-button/blue-button-plus-pull/issues/27#issuecomment-18924749 .

jricher commented 11 years ago

I was figuring on parsing with a regex like this:

([^:]+)(:(.*))?

first capture group gets the "bare" scope name, third capture group gets the parameter name, second capture group makes the colon and parameter optional.