Date: Fri, 29 Mar 2024 13:35:25 +0000 (UTC)
Message-ID: <1417095454.8033.1711719325777@ip-10-10-7-29.ec2.internal>
Subject: Exported From Confluence
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_8032_946628524.1711719325776"
------=_Part_8032_946628524.1711719325776
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/exported.html
Demographic / contact data update
Demographic / contact data update
An employee has a change in demographic and contact information from an =
institutional source system.
- The institutional source system invokes the Person Registration and Update service either via a REST A=
PI (synchronous method) or by placing a Person Update message in the Person=
Update queue (asynchronous method).
- The Person Registration and Update Service invokes the Person Match ser=
vice to determine if the change to demographic information results in a mat=
ch with another person in the Entity Registry.
- If not, the update proceeds without an attempt to link.
- If the demographic update triggers a match, a message is placed in the =
Person Verification queue, and an institutionally defined workflow is invok=
ed to resolve the link. Once the institutionally defined workflow completes=
and a link has been performed (if needed), the update will continue.
- The Person Registration and Update Service stores the updated demograph=
ic and contact data in the Master Person Store.
- The Person Registration and Update Service places a message in the Pers=
on Update queue to indicate to downstream systems that this person's data h=
as been updated.
function Registry.handleUpdate(incomingAttributes) {
var matches =3D PersonMatchService.findMatchesByAttributes(incomingAttr=
ibutes);
if(matches.size() =3D=3D 1) {
currentPerson =3D matches.getNext();
currentPerson.replaceAttributes(incomingAttributes);
return currentPerson;
=20
} else if(matches.size() > 1) {
var matchResolutionTicket =3D MatchResolutionQueue.enqueue(new WorkIt=
em(matches, incomingAttributes))
return matchResolutionTicket;
=20
} else if(matches.isEmpty()) {
/* TODO: what do we want to do here? Create a new person, or throw an=
error? */
throw NoMatchingPerson_Exception;
}
=20
}
}
------=_Part_8032_946628524.1711719325776--