anonymizer/data/DCR_mappings_OK_VOD.md

156 lines
14 KiB
Markdown

***
### **Attribute Mapping to IQVIA OneKey**
The following mappings are used when creating or updating entities in OneKey via the `submitVR` operation. The data is compiled from the direct mapping table and the comparator rules for Data Steward-suggested changes.
#### **1. Common Validation Attributes (HCP & HCO)**
These attributes are part of the `validation` block in the OneKey request and are mandatory for all DCRs.
| OneKey Attribute | Value/Source | Description |
| :--- | :--- | :--- |
| `validation.clientRequestId` | HUB\_GENERATED\_ID | A unique identifier generated by the MDM HUB to trace the request. |
| `validation.process` | "Q" | A static value indicating the processing type. |
| `validation.requestDate` | Current Timestamp | The date the DCR was created. |
| `validation.callDate` | Current Timestamp | The date the API call was made. |
| `validation.requestProcess` | "I" | A static value indicating an "Insert" or "Update" process. |
| `validation.requestComment` | `extDCRComment` | A free-text comment provided in the initial DCR, often used for context or to specify removals. |
| `isoCod2` | `Country` from DCR | The two-letter ISO country code, which is mandatory for all requests. |
---
#### **2. Healthcare Organization (HCO) Attribute Mapping**
| Reltio / HUB Attribute | OneKey Attribute | Mandatory | Description & Notes |
| :--- | :--- | :--- | :--- |
| **Entity Type** | `entityType` | **Yes** | Static value set to **`WORKPLACE`** to identify the entity as an HCO. |
| **OneKey ID** | `workplace.workplaceEid` | **Yes (for updates)** | The unique OneKey identifier for the HCO. It is sourced from the `ONEKEY` crosswalk on the Reltio entity. This is mandatory for any update operation. |
| **Name** | `workplace.usualName` / `workplace.officialName` | Optional | The primary name of the HCO. Both `usualName` and `officialName` are typically populated with the same value from the Reltio `Name` attribute. |
| **Other Names** | `workplace.usualName2` | Optional | Sourced from the `OtherNames.Name` nested attribute in Reltio. |
| **Type Code** | `workplace.typeCode` | Optional | Maps the HCO's `subTypeCode` from the HUB model. This requires a lookup from a canonical code (e.g., `COTFacilityType`, `TET.W.*`) to the OneKey specific code. |
| **Website** | `workplace.website` | Optional | The official website URL of the HCO, sourced from `WebsiteURL`. |
| **Parent HCO Affiliation** | `workplace.parentWorkplaceEid` | Optional | The OneKey ID of the parent HCO. This is sourced by looking up the `otherHCOAffiliations` relation in Reltio and finding the OneKey crosswalk of the referenced parent entity. |
| **Addresses** | `address.*` fields | **Yes** | A complex object representing the HCO's primary address. It is mandatory for creating a new HCO. <br> - `address.country` <br> - `address.city` <br> - `address.addressLine1` (from `addressLine1`) <br> - `address.addressLine2` (from `addressLine2`) <br> - `address.Zip5` (from `zip`) <br> - `address.countyCode` (from `stateProvince`, requires lookup) |
| **Specialties** | `workplace.speciality1` / `2` / `3` | Optional | Reltio's list of `Specialities` is flattened into three separate fields in the OneKey request, ranked by priority. |
| **Phone (Telephone)** | `workplace.telephone` | Optional | The primary telephone number. Sourced from the `Phone` list in Reltio where the type is **not** FAX. The number with the highest rank is chosen. |
| **Phone (Fax)** | `workplace.fax` | Optional | The primary fax number. Sourced from the `Phone` list where the type **is** FAX. The number with the highest rank is chosen. |
| **Email** | `workplace.email` | Optional | The primary email address of the HCO. The email with the highest rank from Reltio's `Email` list is used. |
---
#### **3. Healthcare Professional (HCP) Attribute Mapping**
| Reltio / HUB Attribute | OneKey Attribute | Mandatory | Description & Notes |
| :--- | :--- | :--- | :--- |
| **Entity Type** | `entityType` | **Yes** | Static value set to **`ACTIVITY`** to identify the entity as an HCP. |
| **OneKey ID** | `individual.individualEid` | **Yes (for updates)** | The unique OneKey identifier for the HCP, sourced from the `ONEKEY` crosswalk on the Reltio entity. Mandatory for updates. |
| **Last Name** | `individual.lastName` | **Yes** | The HCP's last name. This is a mandatory field for creating an HCP. |
| **First Name** | `individual.firstName` | Optional | The HCP's first name. |
| **Middle Name** | `individual.middleName` | Optional | The HCP's middle name. |
| **Type Code** | `individual.typeCode` | Optional | The HCP's subtype (e.g., Physician, Nurse). This is sourced from `subTypeCode` in the HUB model and requires a lookup (`HCPSubTypeCode`, `TYP..*`). |
| **Title** | `individual.titleCode` | Optional | The HCP's professional title (e.g., Dr.). Requires lookup (`HCPTitle`, `TIT.*`). |
| **Prefix** | `individual.prefixNameCode` | Optional | The HCP's name prefix (e.g., Mr., Mrs.). Requires lookup (`HCPPrefix`, `APP.*`). |
| **Gender** | `individual.genderCode` | Optional | The HCP's gender. Requires a lookup to map the Reltio value to the OneKey code. |
| **Year of Birth** | `individual.birthYear` | Optional | The four-digit year of birth of the HCP. |
| **Day of Birth** | `individual.birthDay` | Optional | The day of birth of the HCP. |
| **Language** | `individual.languageEid` | Optional | The preferred language of the HCP. |
| **Website** | `individual.website` | Optional | The personal or professional website of the HCP. |
| **Identifiers** | `individual.externalId1` / `externalId2` | Optional | Mapped from Reltio's `Identifier` values. |
| **Affiliation** | `workplace.workplaceEid` | Optional | The OneKey ID of the HCO to which the HCP is affiliated. This is sourced from the `contactAffiliations` relation in Reltio by finding the OneKey crosswalk of the referenced HCO. |
| **Addresses** | `address.*` fields | **Yes** | A complex object representing the HCP's primary address (often a workplace address). See HCO section for field details. |
| **Specialties** | `individual.speciality1` / `2` / `3` | Optional | Reltio's list of `Specialities` is flattened into three separate fields, ranked by priority. A lookup is required to map the canonical code (`HCPSpecialty`, `SP.W.*`) to the OneKey code. |
| **Phone (Mobile)** | `individual.mobilePhone` | Optional | The primary mobile phone number, sourced from the `Phone` list in Reltio. |
| **Email** | `individual.email` | Optional | The primary email address of the HCP. |
***
### **Attribute Mapping to Veeva OpenData (VOD)**
DCRs for Veeva are processed asynchronously. The HUB maps the DCR data into a series of CSV file lines, which are then zipped and sent to Veeva via S3/SFTP. The mapping connects Reltio/HUB concepts to specific columns in different Veeva CSV files.
#### **1. `change_request.csv` - Manifest File**
This file contains metadata for each DCR. A single line is created for each DCR.
| Veeva Field Name | Source / Logic | Required | Description |
| :--- | :--- | :--- | :--- |
| `dcr_key` | Mongo Generated DCR ID | **Yes** | A unique ID generated by the HUB for the DCR. This key is used to link all related records across the different CSV files. |
| `description` | `extDCRComment` | **Yes** | Free-text comments from the requester explaining the purpose of the DCR. |
| `created_by` | `createdBy` from DCR | **Yes** | Identifies the user or system that initiated the DCR. |
| `change_request_type` | Inferred | **Yes** | Set to **`ADD_REQUEST`** if a new profile is being created (no Veeva crosswalk exists) or **`CHANGE_REQUEST`** if an existing profile is being updated. |
| `entity_type` | Main DCR object type | **Yes** | Set to **`HCP`** or **`HCO`** depending on the primary subject of the DCR. |
#### **2. `change_request_hco.csv` - HCO Details**
This file contains the specific attribute changes for an HCO.
| Veeva Field Name | Reltio / HUB Attribute | Required (Add) | Description & Notes |
| :--- | :--- | :--- | :--- |
| `dcr_key` | Mongo Generated DCR ID | **Yes** | Links this record back to the manifest file. |
| `entity_key` | `refId.entityURI` or Reltio Crosswalk | **Yes** | The unique identifier for the HCO in the source system (Reltio). It is a concatenation of the source name and value (e.g., `Reltio:rvu44dm`). |
| `vid__v` | VEEVA Crosswalk Value | No (Yes for Change) | The unique Veeva ID for the HCO. This is required for `CHANGE_REQUEST` types to identify which Veeva profile to update. |
| `corporate_name__v` | `Name` | No | The official name of the HCO. |
| `alternate_name_1__v` | `OtherNames.Name` (first element) | Yes | An alternative name for the HCO. |
| `major_class_of_trade__v` | `HCO.subTypeCode` | No | Maps to Reltio's `FacilityType`. This requires a lookup from the `COTFacilityType` canonical code to the Veeva source code. |
| `hco_type__v` | `typecode` | No | The type of the HCO. Requires lookup from `HCOType`. |
| `hco_status__v` | `StatusDetail` | No | The operational status of the HCO. Requires lookup from `HCOStatus`. |
| `specialty_1__v` to `specialty_10__v` | `specialties` | No | Reltio's list of HCO specialties is flattened into 10 separate columns, ranked by priority. |
| `email_1__v`, `email_2__v` | `emails` | No | The top two ranked email addresses from the Reltio `Email` list. |
| `phone_1__v`, `phone_2__v`, `phone_3__v` | `phones` | No | Top-ranked phone numbers where type is `TEL.OFFICE`. |
| `fax_1__v`, `fax_2__v` | `phones` | No | Top-ranked fax numbers where type is `TEL.FAX`. |
| `primary_country__v` | `DCRRequest.country` | No | The two-letter ISO country code. |
#### **3. `change_request_hcp.csv` - HCP Details**
This file contains the specific attribute changes for an HCP.
| Veeva Field Name | Reltio / HUB Attribute | Required (Add) | Description & Notes |
| :--- | :--- | :--- | :--- |
| `dcr_key` | Mongo Generated DCR ID | **Yes** | Links this record back to the manifest file. |
| `entity_key` | `refId.entityURI` or Reltio Crosswalk | **Yes** | The unique identifier for the HCP in Reltio. |
| `vid__v` | VEEVA Crosswalk Value | No (Yes for Change) | The unique Veeva ID for the HCP. Required for `CHANGE_REQUEST` types. |
| `first_name__v` | `firstName` | **Yes** | The HCP's first name. |
| `last_name__v` | `lastName` | **Yes** | The HCP's last name. |
| `middle_name__v` | `middleName` | No | The HCP's middle name. |
| `prefix__v` | `prefix` | No | Name prefix. Requires lookup (`HCPPrefix`). |
| `professional_title__v` | `title` | No | Professional title. Requires lookup (`HCPProfessionalTitle`). |
| `hcp_type__v` | `subTypeCode` | **Yes** | HCP subtype. Requires lookup (`HCPType`). |
| `hcp_status__v` | `StatusDetail` | No | Operational status of the HCP. Requires lookup (`HCPStatus`). |
| `gender__v` | `gender` | No | HCP's gender. Requires lookup (`HCPGender`). |
| `specialty_1__v` to `specialty_10__v` | `specialties` | **Yes (at least 1)** | Reltio's list of HCP specialties is flattened into 10 columns. At least one specialty is required for an `ADD_REQUEST`. |
| `medical_degree_1__v`, `medical_degree_2__v` | Not specified | No | HCP's medical degrees. Requires lookup (`HCPMedicalDegree`). |
| `primary_country__v` | `DCRRequest.country` | **Yes** | The two-letter ISO country code. |
#### **4. `change_request_address.csv` - Address Details**
This file contains address information, linked to either an HCP or an HCO.
| Veeva Field Name | Reltio / HUB Attribute | Required (Add) | Description & Notes |
| :--- | :--- | :--- | :--- |
| `dcr_key` | Mongo Generated DCR ID | **Yes** | Links this record back to the manifest file. |
| `entity_key` | `refId.entityURI` of HCP/HCO | **Yes** | The Reltio identifier of the parent HCP or HCO to which this address belongs. |
| `address_key` | `address.refId` (`PfizerAddressID`) | **Yes** | A unique identifier for the address itself within Reltio. |
| `address_line_1__v` | `addressLine1` | **Yes** | The first line of the street address. |
| `address_line_2__v` | `addressLine2` | No | The second line of the street address. |
| `locality__v` | `city` | **Yes** | The city. |
| `administrative_area__v` | `stateProvince` | **Yes** | The state or province. Requires lookup (`AddressAdminArea`). |
| `postal_code__v` | `zip` | **Yes** | The postal code. |
| `country__v` | `country` | **Yes** | The two-letter ISO country code. |
| `address_type__v` | `addressType` | **Yes** | The type of address (e.g., Office, Home). Requires lookup (`AddressType`). |
| `address_status__v` | Static "A" | No | The status of the address, typically set to "A" for Active. |
| `vid__v` | VEEVA `SourceAddressID` | No (Yes for Change) | The unique Veeva ID for an existing address being updated. |
#### **5. `change_request_parenthco.csv` - Affiliation/Relation Details**
This file is used to define or update relationships between entities (HCP-HCO or HCO-HCO).
| Veeva Field Name | Reltio / HUB Attribute | Required (Add) | Description & Notes |
| :--- | :--- | :--- | :--- |
| `dcr_key` | Mongo Generated DCR ID | **Yes** | Links this record back to the manifest file. |
| `parenthco_key` | Relation URI (`relationUri`) | **Yes** | The unique identifier for the relationship object in Reltio. |
| `child_entity_key` | Start Object's `entity_key` | **Yes** | The `entity_key` of the child entity in the relationship (e.g., the HCP). |
| `parent_entity_key` | End Object's `entity_key` | **Yes** | The `entity_key` of the parent entity in the relationship (e.g., the HCO). |
| `relationship_type__v` | Affiliation `type` | **Yes** | The type of relationship. This requires a lookup from the `RelationType` canonical values. |
| `is_primary_relationship__v` | Affiliation `primary` flag | No | A boolean flag indicating if this is the primary affiliation. |
| `vid__v` | VEEVA Relation ID | No (Yes for Change) | The unique Veeva ID for an existing relationship being updated. |