PractitionerRole provider documented primary

PractitionerRole enrichment of existing provider row. PractitionerRole does NOT create a new provider row; it adds specialty_concept_id, specialty_source_value, and care_site_id to the row created from the underlying Practitioner resource. One provider row per Practitioner; if multiple PractitionerRoles exist, choose the most recent or most specific.

Conversion profile omop-practitionerrole-provider
A FHIR instance converts to provider iff it validates against this profile.
Path Card Type Binding / Fixed Comment
PractitionerRole.practitioner 1..1MS Reference Resolves to the existing provider row enriched by this PractitionerRole.
PractitionerRole.specialty 1..*MS At least one specialty CodeableConcept. First coding maps to provider.specialty_concept_id (SNOMED or NUCC).
PractitionerRole.specialty.coding 1..*MS
PractitionerRole.organization MS Optional. Becomes provider.care_site_id.
ViewDefinition (Stage 1 flattener) omop-practitionerrole-provider
4 columns · resource PractitionerRole
column name FHIRPath type
id PractitionerRole.id id
specialty PractitionerRole.specialty[0].coding[0] CodeableConcept
specialty_text PractitionerRole.specialty[0].coding[0].code string
managing_organization_id PractitionerRole.organization Reference(Organization)
Condition: PractitionerRole.practitioner references an existing Practitioner with a provider row

Fields (4)

Vocabularies

specialty

Source Display Concept ID Concept Name
207Q00000X Family Medicine 38004459 Family Medicine
207R00000X Internal Medicine 38004456 Internal Medicine
207V00000X Obstetrics & Gynecology 38004461 Obstetrics/Gynecology
208D00000X General Practice 38004446 General Practice
208600000X Surgery 38004447 Surgery
(unmapped) Unmapped specialty 0 No matching concept

Edge Cases

Multiple PractitionerRoles for same Practitioner
Single provider row. Use first/most-recent role (by period.end) for specialty and care_site. Log if multiple roles found.
PractitionerRole without Practitioner reference
Cannot create or enrich provider row (no identity). Log and skip.
Specialty system not recognized (not NUCC, not SNOMED)
specialty_concept_id = 0, specialty_source_value = raw code.
PractitionerRole.organization references Organization not in bundle
Deferred resolution. Stub care_site_id; resolve when Organization arrives.

Reference Implementations