Exercise - Create data maps for Dataverse Healthcare APIs

Completed

In the previous exercises, you constructed the Dataverse tables, columns, and relationships that represent a relational version of the ServiceRequest Fast Healthcare Interoperability Resource (FHIR) resource. The exercise includes the expansion tables and multi-table lookups.

The next step is to create data maps for the new tables so that they're made available to the Dataverse Healthcare APIs, the tool for data ingestion into the Healthcare data model for Dataverse. The Dataverse Healthcare APIs is a custom API accessible from your instance that accepts FHIR bundles for data ingestion into Dataverse.

In this exercise, you create new data maps, providing the rules for ingesting FHIR bundles into your new tables.

Prerequisites

You need to meet the following prerequisites:

  • Microsoft Cloud for Healthcare trial with the Data integration toolkit is installed.

  • Sample Data is deployed in your instance.

  • Access to the developer tools that allow you to call the REST API endpoints.

  • System Administrator rights are granted for the user on a Microsoft Dataverse instance. For more information, see Microsoft Cloud for Healthcare training environment preparation.

Entity and attribute maps

The rules for transforming FHIR resources into Dataverse are included in the Data Integration Toolkit as editable records. These records map FHIR resources to Dataverse tables as Entity map records. For each Entity map, there's a series of related attribute map records that capture the individual FHIR resource element values.

The Data Integration Toolkit provides a large number of existing Entity and Attribute maps, however as the Service Request tables are new, you need to create extra maps. For more information on Entity and Attribute maps, see Manage FHIR data using data integration toolkit. For details and examples on the process to create Entity and Attribute maps, see Configure entity maps and Configure attribute maps.

Create entity maps

You can create new Entity maps for the Service Request and related expansion tables as follows:

  1. Sign in to your Dataverse instance and open the Data Integration Toolkit application.

  2. In the left navigation, select Map Setup > Entity Maps.

  3. Select New from the toolbar.

  4. In the New Update Service Entity Map page, enter the following details:

    Property Value
    Disable No
    Enable Write Back to FHIR No
    EntityName Service Request (fhir_servicerequest)
    Azure FHIR Resource ServiceRequest
    Expand No
  5. Select Save & Close.

  6. Select New from the toolbar.

  7. In the New Update Service Entity Map page, fill in the following details:

    Property Value
    Disable No
    Enable Write Back to FHIR No
    EntityName Service Request Replaces (fhir_servicerequestreplaces)
    Azure FHIR Resource ServiceRequest
    Expand Yes
    Parent Link Attribute Service Request (fhir_servicerequestid)
  8. Select Save & Close.

  9. Similarly add the following entity maps by repeating steps 6 to 8.

    Service Request Category

    Property Value
    Disable No
    Enable Write Back to FHIR No
    EntityName Service Request Category (fhir_servicerequestcategory)
    Azure FHIR Resource ServiceRequest
    Expand Yes
    Parent Link Attribute Service Request (fhir_servicerequestid)

    Service Request Location Code

    Property Value
    Disable No
    Enable Write Back to FHIR No
    EntityName Service Request Location Code (fhir_servicerequestlocationcode)
    Azure FHIR Resource ServiceRequest
    Expand Yes
    Parent Link Attribute Service Request (fhir_servicerequestid)

    Service Request Location Reference

    Property Value
    Disable No
    Enable Write Back to FHIR No
    EntityName Service Request Location Reference (fhir_servicerequestlocationreference)
    Azure FHIR Resource ServiceRequest
    Expand Yes
    Parent Link Attribute Service Request (fhir_servicerequestid)

    Service Request Reason Code

    Property Value
    Disable No
    Enable Write Back to FHIR No
    EntityName Service Request Reason Code (fhir_servicerequestreasoncode)
    Azure FHIR Resource ServiceRequest
    Expand Yes
    Parent Link Attribute Service Request (fhir_servicerequestid)

    Identifier

    Property Value
    Disable No
    Enable Write Back to FHIR No
    EntityName Identifier (msemr_identifier)
    Azure FHIR Resource ServiceRequest
    Expand Yes
    Parent Link Attribute Parent Resource (msemr_parentresourceid)
  10. Verify that you created a new Entity map for the Service Request table and related Expansion tables.

    Screenshot shows the newly created Entity map.

You created all the entity maps that align the FHIR resource and its child elements with the Dataverse tables. Next you can begin adding the related Attribute maps.

Create attribute maps

In this section, you create the individual attribute maps for the new entity maps. This means creating a map for each Dataverse table column or related expansion map.

The underlying Dataverse metadata mostly drives the attribute map information collected. The available values in the form inputs are based on the related entity map and some fields are auto populated based on the selected column details. For example, you're able to select the column from a list of columns for the related entity map table and when selected, the Configuration Details section details are auto populated.

However, a critical piece of each Attribute map is the FHIR Element Map column. You provide a JSON snippet containing details on how to select the value from the FHIR JSON as it is being transformed. This JSON snippet uses JPath to selectively retrieve values from the FHIR JSON elements.

More details and examples on this syntax and other Attribute metadata settings can be found in the article Configure attribute maps: FHIR element map and examples can be found at Attribute map examples.

Service Request

Standard Attribute Maps
  1. In the left navigation, select Map Setup > Entity Maps.

  2. Open the entity map for fhir_servicerequest.

  3. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

    Screenshot shows the selection of New Update Service Attribute Map from the subgrid toolbar.

  4. In the New Update Service Attribute Map page, fill in the following details:

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Azure FHIR ID
    Action Type Copy Data
    FHIR Element Map { "s":"$.id" }
    FHIR Element Type string

    Screenshot shows the properties and values of Attribute Azure FHIR ID (msemr_azurefhirid) entered in the New Update Service Attribute Map page.

  5. Select Save & Close.

    Similarly add the following service attribute maps.

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Encounter (fhir_encounter)
    Action Type FK Reference
    FHIR Element Map {"s":"$.encounter.reference","c":{"p":"encounter","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string

    Screenshot shows the properties and values of Attribute Encounter (fhir_encounter) entered in the New Update Service Attribute Map page.

  6. Repeat these steps for the following Service Request columns. For each Attribute Map in list, assume:

    Property Value
    Disable No
    Action Type Copy Data
    FHIR Element Type string
    FHIR Required Attribute Attribute Name FHIR Element Map
    Yes Azure FHIR Last Updated On {"s":"$.meta.lastUpdated"}
    Yes Azure FHIR Version {"s":"$.meta.versionId"}
    No Do Not Perform {"s":"$.doNotPerform"}
    No Authored On {"s":"$.authoredOn"}
    No Patient Instruction {"s":"$.patientInstruction"}
    No As Needed Boolean {"s":"$. asNeededBoolean"}
    No Performer Type
    No Quantity Code {"s":"$.quantityQuantity.code","c":{"p":"quantityQuantity","a":[{"value":"x"},{"comparator":"x"},{"unit":"x"},{"system":"x"},{"code":"%"}]}}
    No Quantity Value {"s":"$.quantityQuantity.value","c":{"p":"quantityQuantity","a":[{"value":"%"},{"comparator":"x"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    No Quantity Comparator {"s":"$.quantityQuantity.comparator","c":{"p":"quantityQuantity","a":[{"value":"x"},{"comparator":"%"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    No Quantity Unit {"s":"$.quantityQuantity.unit","c":{"p":"quantityQuantity","a":[{"value":"x"},{"comparator":"x"},{"unit":"%"},{"system":"x"},{"code":"x"}]}}
    No Quantity Uri {"s":"$.quantityQuantity.system","c":{"p":"quantityQuantity","a":[{"value":"x"},{"comparator":"x"},{"unit":"x"},{"system":"%"},{"code":"x"}]}}
    No Quantity Ratio Numerator Code {"s":"$.quantityRatio.numerator.code","c":{"p":"quantityRatio.numerator","a":[{"value":"x"},{"comparator":"x"},{"unit":"x"},{"system":"x"},{"code":"%"}]}}
    No Quantity Ratio Numerator Value {"s":"$.quantityRatio.numerator.value","c":{"p":"quantityRatio.numerator","a":[{"value":"%"},{"comparator":"x"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    No Quantity Ratio Numerator Comparator {"s":"$.quantityRatio.numerator.comparator","c":{"p":"quantityRatio.numerator","a":[{"value":"x"},{"comparator":"%"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    No Quantity Ratio Numerator Unit {"s":"$.quantityRatio.numerator.unit","c":{"p":"quantityRatio.numerator","a":[{"value":"x"},{"comparator":"x"},{"unit":"%"},{"system":"x"},{"code":"x"}]}}
    No Quantity Ratio Numerator Uri {"s":"$.quantityRatio.numerator.system","c":{"p":"quantityRatio.numerator","a":[{"value":"x"},{"comparator":"x"},{"unit":"x"},{"system":"%"},{"code":"x"}]}}
    No Quantity Ratio Denominator Code {"s":"$.quantityRatio.denominator.code","c":{"p":"quantityRatio.denominator","a":[{"value":"x"},{"comparator":"x"},{"unit":"x"},{"system":"x"},{"code":"%"}]}}
    No Quantity Ratio Denominator Value {"s":"$.quantityRatio.denominator.value","c":{"p":"quantityRatio.denominator","a":[{"value":"%"},{"comparator":"x"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    No Quantity Ratio Denominator Comparator {"s":"$.quantityRatio.denominator.comparator","c":{"p":"quantityRatio.denominator","a":[{"value":"x"},{"comparator":"%"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    No Quantity Ratio Denominator Unit {"s":"$.quantityRatio.denominator.unit","c":{"p":"quantityRatio.denominator","a":[{"value":"x"},{"comparator":"x"},{"unit":"%"},{"system":"x"},{"code":"x"}]}}
    No Quantity Ratio Denominator Uri {"s":"$.quantityRatio.denominator.system","c":{"p":"quantityRatio.denominator","a":[{"value":"x"},{"comparator":"x"},{"unit":"x"},{"system":"%"},{"code":"x"}]}}
    No Quantity Range Low Value {"s":"$.quantityRange.low.value","c":{"p":"quantityRange.low","a":[{"value":"%"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    No Quantity Range Low Unit {"s":"$.quantityRange.low.unit","c":{"p":"quantityRange.low","a":[{"value":"x"},{"unit":"%"},{"system":"x"},{"code":"x"}]}}

Attribute maps for Lookup columns that reference Codeable

FHIR Required Attribute Attribute Name FHIR Element Map
No Quantity Range Low Uri {"s":"$.quantityRange.low.system","c":{"p":"quantityRange.low","a":[{"value":"x"},{"unit":"x"},{"system":"%"},{"code":"x"}]}}
No Quantity Range Low Code {"s":"$.quantityRange.low.code","c":{"p":"quantityRange.low","a":[{"value":"x"},{"unit":"x"},{"system":"x"},{"code":"%"}]}}
No Quantity Range High Value {"s":"$.quantityRange.high.value","c":{"p":"quantityRange.high","a":[{"value":"%"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
No Quantity Range High Unit {"s":"$.quantityRange.high.unit","c":{"p":"quantityRange.high","a":[{"value":"x"},{"unit":"%"},{"system":"x"},{"code":"x"}]}}
No Quantity Range High Uri {"s":"$.quantityRange.high.system","c":{"p":"quantityRange.high","a":[{"value":"x"},{"unit":"x"},{"system":"%"},{"code":"x"}]}}
No Quantity Range High Code {"s":"$.quantityRange.high.code","c":{"p":"quantityRange.high","a":[{"value":"x"},{"unit":"x"},{"system":"x"},{"code":"%"}]}}
Codeable Concept Attribute Maps

Concepts require an extra step to the standard Lookup maps. You need to select the related Codeable Concept Type value. This value is derived from the global Choice named Codeable Concept Types.

  1. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  2. In the New Update Service Attribute Map page, fill in the following details:

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name As Needed Codeable Concept (fhir_asneededcodeableconcept)
    Action Type FK Reference
    FHIR Element Map {"s": "$.asNeededCodeableConcept.coding[0].code", "c": {"p": "asNeededCodeableConcept.coding[0]", "a": [{"system": "http://snomed.info/sct"}, {"code": "%"}]} }
    FHIR Element Type string
    Codeable Concept Type Service Request As Needed
  3. Select Save & Close.

  4. Similarly add the attribute map for the following attribute map:

    Performer Type

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name Code (fhir_code)
    Action Type FK Reference
    FHIR Element Map {"s": "$.code.coding[0].code", "c": {"p": "code.coding[0]", "a": [{"system": "http://snomed.info/sct"}, {"code": "%"}]} }
    FHIR Element Type string
    Codeable Concept Type Procedure Code
Choice Attribute Maps

Service Request columns with data type as Choice require extra steps to set up the attribute value maps. Attribute value maps are records related to an attribute map that maps each inbound value to a corresponding choice value. For example, the Comparator data type in FHIR includes the possible values of <,<=,>=,and >, all of which are represented by a Choice value.

Once you save the new Attribute map record, you enter the related Attribute value map records. The Data Integration Toolkit created a new attribute value map record for each possible value in the choice reference by the column.

  1. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  2. In the New Update Service Attribute Map page, enter the following details:

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name Encounter (fhir_encounter)
    Action Type Copy Data
    FHIR Element Map {"s":"$.quantityQuantity.comparator","c":{"p":"quantityQuantity","a":[{"value":"x"},{"comparator":"%"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    FHIR Element Type string
  3. Select Save.

  4. Once saved, a new set of Attribute value map records is available in the Value Maps section.

    Screenshot shows a new set of Attribute value map records in the Value Maps section.

  5. In the Value Maps section, enter the following values for each Attribute value map Attribute FHIR Value column. These values are included in the FHIR resource JSON.

    Note

    The Value column depends on the prefix you select when you set up your Publisher, and the labels depend on how you decide to represent the Choice label.

    OptionSet Label Attribute FHIR Value
    < <
    <= <=
    >= >=
    > >
  6. Repeat these steps for the remaining Choice attribute maps.

    FHIR Required Attribute Attribute Name FHIR Element Map
    No Quantity Ratio Numerator Comparator {"s":"$.quantityRatio.numerator.comparator","c":{"p":"quantityRatio.numerator","a":[{"value":"x"},{"comparator":"%"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    OptionSet Label Attribute FHIR Value
    < <
    <= <=
    >= >=
    > >
    FHIR Required Attribute Attribute Name FHIR Element Map
    No Quantity Ratio Denominator Comparator {"s":"$.quantityRatio.denominator.comparator","c":{"p":"quantityRatio.denominator","a":[{"value":"x"},{"comparator":"%"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    OptionSet Label Attribute FHIR Value
    < <
    <= <=
    >= >=
    > >
    FHIR Required Attribute Attribute Name FHIR Element Map
    No Quantity Ratio Denominator Comparator {"s":"$.quantityRatio.denominator.comparator","c":{"p":"quantityRatio.denominator","a":[{"value":"x"},{"comparator":"%"},{"unit":"x"},{"system":"x"},{"code":"x"}]}}
    OptionSet Label Attribute FHIR Value
    < <
    <= <=
    >= >=
    > >
    FHIR Required Attribute Attribute Name FHIR Element Map
    Yes Status {"s":"$.status"}
    OptionSet Label Attribute FHIR Value
    Draft draft
    Active active
    On hold on-hold
    Revoked Revoked
    Completed Completed
    Entered in error entered-in-error
    Unknown Unknown
    FHIR Required Attribute Attribute Name FHIR Element Map
    Yes Intent {"s":"$.intent"}
    OptionSet Label Attribute FHIR Value
    Proposal proposal
    Plan plan
    Directive directive
    Order order
    Original order original-order
    Reflex order reflex-order
    Filler order filler-order
    Instance order instance-order
    Option option
    FHIR Required Attribute Attribute Name FHIR Element Map
    No Priority {"s":"$.priority"}
    OptionSet Label Attribute FHIR Value
    Routine routine
    Urgent urgent
    ASAP asap
    Stat stat
Multi-table Attribute Maps

Multi-table attribute maps are configured as Lookups. Because the lookups reference multiple tables, you must set up a new Attribute map for each option. For example, the Subject multi-table lookup references Contact, Location, Device, and Group.

When you create the new Attribute map select the lookup column for Attribute Name, you need the extra step to update the Configuration Details section to specify the correct Entity Reference and FHIR Resource Reference.

  1. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  2. In the New Update Service Attribute Map page, enter the following details:

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Subject (fhir_subject)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference contact
    FHIR Resource Reference Patient
  3. Select Save.

    Screenshot shows the Map Configuration details of Attribute Subject (fhir_subject).

  4. Repeat these steps to add the following multi-table lookup columns.

    Subject and Device

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Subject (fhir_subject)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference msemr_device
    FHIR Resource Reference Device

    Subject and Group

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Subject (fhir_subject)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference msemr_group
    FHIR Resource Reference Group

    Subject and Location

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Subject (fhir_subject)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference msemr_location
    FHIR Resource Reference Location

    Requester and Device

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Requester (fhir_requester)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference msemr_device
    FHIR Resource Reference Device

    Requester and Account

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Requester (fhir_requester)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference account
    FHIR Resource Reference Organization

    Requester and Patient

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Requester (fhir_requester)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference contact
    FHIR Resource Reference Patient

    Requester and Practitioner

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Requester (fhir_requester)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference contact
    FHIR Resource Reference Practitioner

    Requester and PractitionerRole

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Requester (fhir_requester)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference msemr_practitionerrole
    FHIR Resource Reference PractitionerRole

    Requester and RelatedPerson

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Requester (fhir_requester)
    Action Type FK Reference
    FHIR Element Map {"s":"$.subject.reference","c":{"p":"subject","a":[{"reference":"%%%"},{"type":"%%"}]}}
    FHIR Element Type string
    Configuration Details
    Entity Reference msemr_relatedperson
    FHIR Resource Reference RelatedPerson
Expansion Attribute Maps

Attribute maps for Expansion tables link a FHIR resource array element to their corresponding expansion tables in Dataverse. The Attribute maps require a slightly different configuration and FHIR Element Map value. Rather than a JSON snippet, the FHIR Element Map should contain the name of the FHIR element. For example, the expansion table Service Request Category represents the FHIR element replaces:

| replaces | Σ | 0..* | Reference(ServiceRequest) | What request replaces |

When you select the Attribute Name, select Not Applicable because the map represents a relationship rather than a column on the table.

  1. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  2. In the New Update Service Attribute Map page, enter the following details:

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name Not Applicable
    Action Type Expand
    Expansion Entity Map fhir_servicerequestcategory <-> ServiceRequest
    FHIR Element Map category
    FHIR Element Type string
    Configuration Details Note: these values should be auto populated and read only
    Entity Name fhir_servicerequestcategory
    Azure FHIR Resource ServiceRequest
  3. Select Save.

    Screenshot shows the Map Configuration details of Attribute Not Applicable.

  4. Repeat these steps for the following Expansion maps.

    Service Request Location Code

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name Not Applicable
    Action Type Expand
    Expansion Entity Map fhir_servicerequestlocationcode <-> ServiceRequest
    FHIR Element Map locationCode
    FHIR Element Type string
    Configuration Details Note: These values should be auto populated and read only
    Entity Name fhir_servicerequestlocationcode
    Azure FHIR Resource ServiceRequest

    Service Request Location Reference

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name Not Applicable
    Action Type Expand
    Expansion Entity Map fhir_servicerequestlocationreference <-> ServiceRequest
    FHIR Element Map locationReference
    FHIR Element Type string
    Configuration Details Note: These values should be auto populated and read only
    Entity Name fhir_servicerequestlocationreference
    Azure FHIR Resource ServiceRequest

    Service Request Reason Code

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name Not Applicable
    Action Type Expand
    Expansion Entity Map fhir_servicerequestreasoncode <-> ServiceRequest
    FHIR Element Map reasonCode
    FHIR Element Type string
    Configuration Details Note: These values should be auto populated and read only
    Entity Name fhir_servicerequestreasoncode
    Azure FHIR Resource ServiceRequest

    Service Request Replaces

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name Not Applicable
    Action Type Expand
    Expansion Entity Map fhir_servicerequestreplaces <-> ServiceRequest
    FHIR Element Map replaces
    FHIR Element Type string
    Configuration Details Note: These values should be auto populated and read only
    Entity Name fhir_servicerequestreplaces
    Azure FHIR Resource ServiceRequest

You must create all Attribute maps for the Service Request table and fhir_servicerequest Entity map.

Next you set up the Attribute maps for the Expansion maps.

Service Request Category

  1. In the left navigation, select Map Setup > Entity Maps.

  2. Open the Entity map for fhir_servicerequestcategory.

  3. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  4. Enter the following details.

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Category (fhir_category)
    Action Type FK Reference
    FHIR Element Map {"s": "$.coding[0].code", "c": {"p": "coding[0]", "a": [{"system": "http://snomed.info/sct"}, {"code": "%"}]} }
    FHIR Element Type string
    Codeable Concept Type Service Request Category Codes
    Used in Record Matching Yes
  5. Select Save.

Service Request Location Code

  1. In the left navigation under Map Setup, select Entity Maps.

  2. Open the Entity map for fhir_servicerequestcategory.

  3. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  4. In the New Update Service Attribute Map page, fill in the following details:

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name As Needed Codeable Concept (fhir_asneededcodeableconcept)
    Action Type FK Reference
    FHIR Element Map {"s": "$.coding[0].code", "c": {"p": "coding[0]", "a": [{"system": "http://snomed.info/sct"}, {"code": "%"}]} }
    FHIR Element Type string
    Codeable Concept Type Service Delivery Location Role Type
    Used in Record Matching Yes
  5. Select Save.

Service Request Location Reference

  1. In the left navigation under Map Setup, select Entity Maps.

  2. Open the Entity map for fhir_servicerequestlocationreference.

  3. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  4. In the New Update Service Attribute Map page, fill in the following details:

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Location (msemr_location)
    Action Type FK Reference
    FHIR Element Map {"s":"$.reference","c":{"p":"$","a":[{"reference":"%"}]}}
    FHIR Element Type string
    Used in Record Matching Yes

Service Request Reason Code

  1. In the left navigation under Map Setup, select Entity Maps.

  2. Open the Entity map for fhir_servicerequestreasoncode.

  3. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  4. In the New Update Service Attribute Map page, fill in the following details:

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name As Needed Codeable Concept (fhir_asneededcodeableconcept)
    Action Type FK Reference
    FHIR Element Map {"s": "$.coding[0].code", "c": {"p": "coding[0]", "a": [{"system": "http://snomed.info/sct"}, {"code": "%"}]} }
    FHIR Element Type string
    Codeable Concept Type Procedure Reason Code
    Used in Record Matching Yes

Service Request Replaces

  1. In the left navigation under Map Setup, select Entity Maps.

  2. Open the Entity map for fhir_servicerequestreplaces.

  3. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  4. In the New Update Service Attribute Map page, fill in the following details:

    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name Location (fhir_servicerequest)
    Action Type FK Reference
    FHIR Element Map {"s":"$.reference","c":{"p":"$","a":[{"reference":"%"}]}}
    FHIR Element Type string
    Used in Record Matching Yes

Identifier

  1. In the left navigation under Map Setup, select Entity Maps.

  2. Open the Entity map for msemr_identifier with Azure FHIR resource selection of ServiceRequest.

  3. In the Related Attribute Maps section, select New Update Service Attribute Map from the subgrid toolbar.

  4. In the New Update Service Attribute Map page, fill in the following details:

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name msemr_use
    Attribute Type Picklist
    FHIR Element Map {"s":"$.use"}
    FHIR Element Type string
    Used in Record Matching No
    Action Type Mapped Value
  5. Repeat the steps for the following Attribute maps.

    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name msemr_type
    Attribute Type Lookup
    FHIR Element Map {"s":"$.type.coding[0].code", "c":{"p":"type.coding[0]", "a":[{"system":"http://terminology.hl7.org/CodeSystem/v2-0203"}, {"code":"%"}]}}
    FHIR Element Type string
    Used in Record Matching No
    Action Type Codeable Concept
    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name msemr_system
    Attribute Type String
    FHIR Element Map {"s":"$.system"}
    FHIR Element Type string
    Used in Record Matching No
    Action Type Copy Data
    Property Value
    Disable No
    FHIR Required Attribute Yes
    Attribute Name msemr_value
    Attribute Type String
    FHIR Element Map {"s":"$.value"}
    FHIR Element Type string
    Used in Record Matching Yes
    Action Type Copy Data
    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name msemr_periodstart
    Attribute Type DateTime
    FHIR Element Map {"s":"$.period.start", "c":{"p":"period","a":[{"start":"%"},{"end":"x"}]}}
    EFHIR Element Type string
    Used in Record Matching No
    Action Type Copy Data
    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name msemr_periodend
    Attribute Type DateTime
    FHIR Element Map {"s":"$.period.end", "c":{"p":"period","a":[{"start":"x"},{"end":"%"}]}}
    EFHIR Element Type string
    Used in Record Matching No
    Action Type Copy Data
    Property Value
    Disable No
    FHIR Required Attribute No
    Attribute Name msemr_assigner
    Attribute Type Lookup
    FHIR Element Map {"s":"$.assigner.reference", "c":{"p":"assigner", "a":[{"reference":"%%%"}, {"type":"%%"}]}}
    EFHIR Element Type string
    Used in Record Matching No
    Action Type FK Reference

Up Next

You updated the data model with the new Service Request tables and added Entity and Attribute maps to the environment. In the next exercise, you'll send sample FHIR messages to the Dataverse Healthcare APIs and test the updated data model and maps.