A submitted Bundle maps into BirthTracks’ canonical spine — a small set of
entities shared by every input path (FHIR push, CSV import, structured web
form). This is the common shape that downstream filing and benchmarking read
from.
A course of care is one Submission with one Mother, one Encounter,
one or more Children, and zero or more Transfers of care.
Zero or more per course of care — the community-birth differentiator. Captured
via the structured web form (0..n), the CSV importer (one per row, gated on
transfer_type), and the FHIR push (see below). In the CSV template the columns
are prefixed transfer_.
Field
Type
Provenance
Notes
transfer_type
string
long-tail
One of antepartum, intrapartum, postpartum_maternal, neonatal. Marks a transfer present.
A transfer of care has no dedicated BFDR profile, so the push lane reads it from
a FHIR R4 Encounter in the course-of-care Bundle. The transfer type is the
gate — an Encounter that names no recognized transfer type (e.g. the birth
Encounter) records no transfer, mirroring the CSV/web “transfer_type marks a
transfer present” rule. Map each transfer Encounter as:
Canonical field
FHIR source
transfer_type
Encounter.type[].coding[].code ∈ {antepartum, intrapartum, postpartum_maternal, neonatal} (recommended system https://laravel-sandbox.twosportday.com/fhir/CodeSystem/transfer-type; matched on code, case-insensitive, regardless of system)
reason_code
Encounter.reasonCode[0].coding[0].code (SNOMED)
reason_text
Encounter.reasonCode[0].text, falling back to the coding display
Providers named in a course of care are stored as their own canonical entity, so
attendant-level benchmarking works. Provider attribution is not patient PHI, so
unlike the mother and child, a provider’s name and credentials are retained.
Canonical field
FHIR source
external_provider_id
The first non-NPIPractitioner.identifier.value, falling back to Practitioner.id. The stable identity key — a Practitioner without one is skipped.
npi
The identifier whose system names US-NPI. A discovery signal only; deliberately never the key, because doulas and CPMs frequently have none.
role
Keyword-matched from the practitioner’s qualification text/display: midwife (also CNM/CPM/LM), doula, nurse (also RN), assistant, else other.
display_name
Practitioner.name[0].text, falling back to the assembled human name.
credentials
The practitioner’s qualification text/display.
The attending provider is the participant an Encounter marks with the HL7 v3
ParticipationType ATND; nothing else promotes a practitioner to attendant.