anonymizer/data/DCR_mappings_ALL.md

10 KiB

The /dcr API serves as a canonical interface for initiating data change requests. The JSON payload sent to this endpoint contains a standardized representation of the desired changes. The MDM HUB is then responsible for validating this request and mapping its attributes to the distinct models of the target systems.


/dcr API to Target System Attribute Mapping

The following sections break down the mapping from the attributes in the /dcr request payload to their corresponding fields in OneKey and Veeva.


1. Request-Level Attributes

These attributes are defined at the top level of each object within the DCRRequests array in the JSON payload.

HUB /dcr Attribute OneKey Mapping Veeva OpenData (VOD) Mapping Notes / Description
extDCRRequestId Used to populate the DCRID in the Reltio DCR tracking entity. OneKey's validation.clientRequestId is typically a HUB-generated internal ID, but extDCRRequestId is the primary key for client-side tracking. dcr_key (in all CSV files: change_request.csv, change_request_hco.csv, etc.) This is the primary external identifier for the entire DCR. It is crucial for clients like PforceRx to track the request's status and is used as the main correlation ID across all systems and files.
extDCRComment validation.requestComment description (in change_request.csv) A free-text field for the requester to provide context or justification for the DCR. For OneKey, it has a special function: due to API limitations, requests to remove an attribute are specified in this comment field (e.g., "Please remove attributes: [Address: ...]").
country isoCod2 primary_country__v (in change_request_hcp.csv and change_request_hco.csv) and country__v (in change_request_address.csv) The mandatory two-letter ISO country code. This is a critical routing attribute that determines which validator instance to use and, for Veeva, which S3/SFTP directory the DCR files are placed in.
action (within HCP/HCO object) This determines the logic. update and insert map to a submitVR call. An update requires a valid individual.individualEid or workplace.workplaceEid. delete is handled by updating the entity's end date in Reltio. change_request_type (in change_request.csv). Mapped to ADD_REQUEST for an insert action, and CHANGE_REQUEST for an update action. This defines the fundamental operation being performed on the entity.
refId (within HCP/HCO object) Used to query Reltio to find the OneKey crosswalk (individual.individualEid or workplace.workplaceEid) which is mandatory for update operations. Used to query Reltio to find the Veeva crosswalk (vid__v), which is mandatory for update operations. The Reltio URI from the refId is also used to populate the entity_key field in the VOD CSVs. This object contains the necessary identifiers (CrosswalkTargetObjectId, EntityURITargetObjectId, etc.) to locate the target entity in Reltio for an update or delete operation.

2. Healthcare Professional (HCP) Attributes

These attributes are provided within the HCP object of a DCR request.

HUB /dcr Attribute OneKey Mapping Veeva OpenData (VOD) Mapping Notes / Description
firstName individual.firstName first_name__v HCP's first name.
lastName individual.lastName last_name__v HCP's last name. Mandatory for creating a new HCP in OneKey.
middleName individual.middleName middle_name__v HCP's middle name.
prefix individual.prefixNameCode prefix__v Name prefix (e.g., Mr., Dr.). Requires a lookup from the canonical code (HCPPrefix) to the target system's specific code.
title individual.titleCode professional_title__v Professional title. Requires a lookup from the canonical code (HCPTitle or HCPProfessionalTitle) to the target system's specific code.
gender individual.genderCode gender__v HCP's gender. Requires a lookup to map the canonical value (e.g., M, F) to the target system's code.
subTypeCode individual.typeCode hcp_type__v The professional subtype of the HCP (e.g., Physician, Nurse). Requires a lookup from the canonical code (HCPSubTypeCode or HCPType).
specialties (List) individual.speciality1, individual.speciality2, individual.speciality3 specialty_1__v through specialty_10__v The list of specialties is flattened. OneKey accepts up to 3 ranked specialties. Veeva accepts up to 10. A lookup is required to map the canonical HCPSpecialty code to the target system's value.
emails (List) individual.email email_1__v, email_2__v The list of emails is flattened. OneKey typically takes the highest-ranked email. Veeva takes the top two.
phones (List) individual.mobilePhone phone_1__v to phone_3__v (for office), fax_1__v to fax_2__v (for fax) The list is filtered by type and ranked. OneKey maps the highest-ranked to mobilePhone. Veeva separates numbers into distinct phone and fax columns based on the Reltio phone type.

3. Healthcare Organization (HCO) Attributes

These attributes are provided within the HCO object of a DCR request.

HUB /dcr Attribute OneKey Mapping Veeva OpenData (VOD) Mapping Notes / Description
name workplace.usualName / workplace.officialName corporate_name__v The primary, official name of the organization.
otherNames (List) workplace.usualName2 alternate_name_1__v The list of alternative names is flattened. Both systems typically take the first or highest-ranked alternative name.
subTypeCode workplace.typeCode major_class_of_trade__v The HCO's subtype, often representing facility type. Requires a lookup from the canonical code (COTFacilityType).
typeCode Not Mapped hco_type__v Maps to the HCO Type. Requires a lookup (HCOType). The OneKey mapping document indicates this is not used for their system.
websiteURL workplace.website URL_1__v The official website of the organization.
specialties (List) workplace.speciality1 to speciality3 specialty_1__v to specialty_10__v Similar to HCPs, the list of specialties is flattened and ranked. A lookup from the canonical COTSpecialty code is required.
emails (List) workplace.email email_1__v, email_2__v List of emails is flattened, with the highest-ranked ones being used.
phones (List) workplace.telephone, workplace.fax phone_1__v to phone_3__v, fax_1__v to fax_2__v Similar to HCPs, the list is filtered by type (TEL.OFFICE vs. TEL.FAX) and ranked before mapping.

4. Nested Object Mapping: Addresses

Address information is provided as a list of objects within the HCP or HCO DCR payload.

HUB /dcr addresses Attribute OneKey Mapping Veeva OpenData (VOD) Mapping Notes / Description
(Address Object) Mapped to a single address complex object in the JSON request. Only the primary address is sent. Each address object is mapped to a separate row in the change_request_address.csv file. OneKey's API takes a single address per DCR, while Veeva's file-based approach can handle multiple address changes in one DCR.
refId Used to match and update an existing address. address_key This is the PfizerAddressID, a unique identifier for the address record in Reltio.
addressLine1 address.longLabel or address.addressLine1 address_line_1__v The first line of the street address.
addressLine2 address.longLabel2 or address.addressLine2 address_line_2__v The second line of the street address.
city address.city locality__v The city name.
stateProvince address.countyCode administrative_area__v The state or province. Requires a lookup from the canonical value to the target system's code.
zip address.longPostalCode or address.Zip5 postal_code__v The postal or ZIP code.
addressType Not explicitly mapped in submitVR request, but used in logic. address_type__v The type of address (e.g., Office, Home). Requires a lookup (AddressType).

5. Nested Object Mapping: Affiliations

Affiliations are provided as a list of objects (contactAffiliations for HCP, otherHCOAffiliations for HCO) in the DCR payload.

HUB /dcr affiliations Attribute OneKey Mapping Veeva OpenData (VOD) Mapping Notes / Description
(Affiliation Object) The refId of the target HCO is used to find its workplace.workplaceEid, which is then sent as part of the HCP or parent HCO record. Each affiliation object is mapped to a separate row in the change_request_parenthco.csv file. The mapping for affiliations is fundamentally different. OneKey handles it as an attribute of the child entity, while Veeva treats it as a distinct relationship record.
Relation refId The workplace.workplaceEid of the target (parent) HCO is populated in the request. parenthco_key (populated with the Reltio relationUri) Veeva requires a unique key for the relationship itself.
Start/Child Object The main body of the request contains the child's details (e.g., the HCP). child_entity_key This field is populated with the entity_key of the child entity (e.g., the HCP).
End/Parent Object The workplace.workplaceEid of the parent HCO is sent. parent_entity_key This field is populated with the entity_key of the parent entity (e.g., the HCO).
type activity.role (requires lookup, e.g., TIH.W.*) relationship_type__v (requires lookup from RelationType) The type or role of the affiliation (e.g., Employed, Manages).
primary Not explicitly mapped. is_primary_relationship__v A boolean flag (Y/N) indicating if this is the primary affiliation.