Organization care_site documented primary

Each FHIR Organization maps to one OMOP care_site row representing a healthcare facility or department. Organization.name becomes care_site_name, Organization.type maps to place_of_service_concept_id via OrganizationType vocabulary, and Organization.address resolves to a location row linked via location_id. FHIR Location can also contribute care_site rows in some implementations (see Location__care_site edge). FHIR Organization.partOf hierarchy is flattened -- each level becomes a separate care_site row with no parent linkage.

Conversion profile omop-organization-care-site
A FHIR instance converts to care_site iff it validates against this profile.
Path Card Type Binding / Fixed Comment
Organization.identifier 1..*MS At least one identifier required. Used as care_site.care_site_source_value.
Organization.name 1..1MS Required. Becomes care_site.care_site_name.
Organization.type MS Optional. First coding maps to care_site.place_of_service_concept_id via OMOP Place of Service vocabulary.
Organization.address MS Optional. Drives care_site.location_id via the location table.
ViewDefinition (Stage 1 flattener) omop-organization-care-site
6 columns · resource Organization
column name FHIRPath type
id Organization.id id
care_site_name Organization.name string
place_of_service Organization.type[0].coding[0] CodeableConcept
address_id Organization.address Address
managing_organization_identifier Organization.identifier[0].value string
place_of_service_text Organization.type[0] string

Fields (6)

Vocabularies

organization_type

Source Display Concept ID Concept Name
prov Healthcare Provider 4107295 Healthcare Provider
dept Hospital Department 4318944 Department
team Organizational Team 4217012 Team
govt Government 4195901 Government
ins Insurance Company 8844 Other Place of Service
edu Educational Institute 4030303 Educational Institution
reli Religious Institution 8844 Other Place of Service
crs Clinical Research Sponsor 8844 Other Place of Service
cg Community Group 4127377 Community Health Care
bus Non-Healthcare Business 8844 Other Place of Service
other Other 8844 Other Place of Service
(absent) Absent 8844 Other Place of Service

Edge Cases

Missing Organization.name
care_site_name = null. OMOP allows null. Use care_site_source_value (identifier) for traceability.
No Organization.type
place_of_service_concept_id = 0, place_of_service_source_value = null. omoponfhir catches FHIRException silently, leaving field unset.
Organization.partOf hierarchy
Flat mapping -- each level becomes a separate care_site row. No parent linkage preserved in OMOP.
Duplicate organizations (same identifier, different resources)
Deduplicate by care_site_source_value. omoponfhir searches by careSiteSourceValue before creating new rows. fhir-to-omop-demo does not deduplicate.
Multiple Organization.type[] entries
OMOP supports only one place_of_service_concept_id per care_site. Pick the most specific or first entry.
Organization referenced but not in bundle
Deferred resolution. Create a stub care_site row with care_site_source_value = reference string. NACHC creates a single dummy care_site (id=1) for all unresolved references.
Organization.address has multiple addresses
OMOP supports one location per care_site. Pick the primary/first address. omoponfhir breaks after the first address.
Organization.identifier absent
care_site_source_value may be null. Use Organization.name or Organization.id as fallback to avoid NullPointerException.
Organization.active = false
Most implementations ignore this flag and map inactive organizations. OMOP has no 'active' concept for care_site. Consider filtering in ETL preprocessing.
Very long care_site_name (>255 chars)
Truncate to 255 characters. care_site_name is varchar(255).
FHIR Location resource references Organization
Some implementations create an additional care_site row from the Location resource. Reconciliation needed. See Location__care_site edge.

Reference Implementations