You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are two primary questions regarding the current Implementation Guide (IG):
Person-to-Participant Uniqueness
On the same server, if a Person links to a Participant resource, shoud we ensure that no other Person also link to that same Participant?
Where NCPI Person Lives
In multi-server situations(such as KidsFirst, dbGaP and ImmPort), if NCPI Participant resources reside across multiple servers are actually the same Person, where does the corresponding NCPI Person resource “live”?
Proposal
Every Participant has a Person on the same server
A Person only links to Participants on the same server
Prevents cross-server references from Person to Participant.
A Person only links to Person resources on different servers
Cross-server references occur only between Person resources, not between Person and Participant.
If a Person links to a Participant, then no other Person links to that Participant This is on the same server.
Clarification of "Globally Unique ID"
"ID should be a globally unique identifier associated with the person. This practice is intended to make constructing queries for the same person compatible across different servers (such as QA vs PROD) but also to make the resource URLs more meaningful."
“Globally” refers to the entire NCPI ecosystem (including ANVIL, BDC, CRDC, dbGaP, ImmPort, KidsFirst, etc.), not just QA vs PROD, right?
Globaly ID also has interoperability imact
For Example: We know that ImmPort has people overlapping with dbGaP, for example "actual person X" exists in both. We propose this to be represented as:
a. “dbGaP Person- DG1” links to an “ImmPort Person-IP1" and vice versa.
b. This bi-directional link can be obtained by each server having cron code checking external servers for Person.link to the home server.
Summary of Intended Approach
Within a single server: Person ↔ Participant
Across multiple servers: Person ↔ Person
Each server maintains a list of external servers to identify and establish cross-server Person references.
Please let me know if anything is unclear or if further details are needed. Thank you!
The text was updated successfully, but these errors were encountered:
Regarding the proposal, that makes sense to me. I don't think we have it explicitly stated that Persons on a server should behave this way, but it is the "right" approach in my opinion. We should make this clear in the documentation.
For the cross-server person linkage: there's no guarantee at this time that every Participant is contained within a Person. I think we'd either need to make this true or relax the constraint. I understand why it's helpful to architect it this way, but there are some potential issues. For example, what happens when we merge or split Persons? It's a classic MRN issue that can be challenging. We should discuss more. This also will impact AnVIL / dbGaP as data may be available in both places in the future.
We will need to adjust our NCPI Person profile to allow both NCPI Participants and NCPI Persons- this is in line with the Base Person resource.
Context
There are two primary questions regarding the current Implementation Guide (IG):
Person-to-Participant Uniqueness
Person
links to aParticipant
resource, shoud we ensure that no otherPerson
also link to that sameParticipant
?Where NCPI Person Lives
NCPI Participant
resources reside across multiple servers are actually the same Person, where does the correspondingNCPI Person
resource “live”?Proposal
Person
toParticipant
.Person
resources, not betweenPerson
andParticipant
.Clarification of "Globally Unique ID"
Globaly ID also has interoperability imact
For Example: We know that ImmPort has people overlapping with dbGaP, for example "actual person X" exists in both. We propose this to be represented as:
a. “dbGaP Person- DG1” links to an “ImmPort Person-IP1" and vice versa.
b. This bi-directional link can be obtained by each server having cron code checking external servers for Person.link to the home server.
Summary of Intended Approach
Person
↔Participant
Person
↔Person
Person
references.Please let me know if anything is unclear or if further details are needed. Thank you!
The text was updated successfully, but these errors were encountered: