ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

Basic — Free extensible resource

Basic is the "escape hatch" resource of the FHIR model: it lets you represent a concept that does not (yet) have a dedicated resource, without breaking standard conformance.

Purpose

Basic exists for two uses: carry data that maps to no standard resource yet must still be exchanged in FHIR, or prototype a future resource before it is normalised. code identifies what the content is; everything else flows through extension.

Basic is deliberately minimal: an extensible anchor rather than a rich structure. Using Basic in production without prior consumer agreement is risky — profiles are private and not interoperable.

Key fields

FieldTypeCardinalityRole
identifierIdentifier[]0..*External identifiers.
codeCodeableConcept1..1Type of concept carried by this Basic resource.
subjectReference(Any)0..1Subject (often Patient).
createddateTime0..1Creation date.
authorReference(Practitioner | PractitionerRole | Patient | RelatedPerson | Organization)0..1Author.

JSON example

Carrying a "referral" concept historically missing from FHIR:

json basic-example.json
{
  "resourceType": "Basic",
  "id": "referral-example",
  "identifier": [{ "system": "http://example.org/referrals", "value": "REF-2026-001" }],
  "code": {
    "coding": [{
      "system": "http://hl7.org/fhir/basic-resource-type",
      "code": "referral",
      "display": "Referral"
    }]
  },
  "subject": { "reference": "Patient/example" },
  "created": "2026-05-16",
  "author": { "reference": "Practitioner/gp-lefevre" }
}

Common pitfalls

  • Basic in production without an implementation guide: no consumer knows what to do. Always document the expected extensions.
  • Generic code: if code is not precise (e.g. just "other"), the content is unusable.
  • Migration to a normalised resource: once a Basic concept becomes a real resource (for example ServiceRequest for referrals), migrate. Keeping Basic indefinitely is tech debt.
  • StructureDefinition — to formalise expected extensions on a given Basic profile.
  • Parameters — another "container" resource for operations.
  • Binary — to carry an untyped payload.

See also: Binary, Parameters.