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.

Substance — Physical material in healthcare

A concrete material present in a pharmaceutical supply chain, a laboratory or a health facility: batch, expiry, quantity.

Purpose of the resource

Substance represents a concrete material: a batch of paracetamol stocked in a pharmacy, a blood fraction, an allergen listed on a patient chart. It can be either a physical instance (instance=true) or a type described for referencing (instance=false, without batch or expiry).

Substance is referenced by AllergyIntolerance, Specimen, Medication (composition), AdverseEvent (cause), Group (cohort) and any other resource that needs to point at a material.

Key fields

FieldTypeCardinalityRole
identifierIdentifier[]0..*Business identifiers (batch, UDI, GTIN).
instanceboolean1..1true = physical batch; false = abstract type.
statuscode0..1active | inactive | entered-in-error.
categoryCodeableConcept[]0..*Category (drug, food, allergen, biological…).
codeCodeableReference(SubstanceDefinition)1..1Substance type (often a reference to SubstanceDefinition).
descriptionmarkdown0..1Free-text description.
expirydateTime0..1Expiry date.
quantityQuantity0..1Available quantity.
ingredientBackboneElement[]0..*Detailed components (substance + quantity).

JSON example

json substance-example.json
{
  "resourceType": "Substance",
  "id": "amoxicillin-lot",
  "identifier": [{
    "system": "http://example.org/pharmacy/lot",
    "value": "AMX-2026-042"
  }],
  "instance": true,
  "status": "active",
  "category": [{
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/substance-category",
      "code": "drug",
      "display": "Drug or Medicament"
    }]
  }],
  "code": {
    "concept": {
      "coding": [{
        "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
        "code": "723",
        "display": "Amoxicillin"
      }]
    }
  },
  "expiry": "2027-08-31",
  "quantity": {
    "value": 250,
    "unit": "mg"
  }
}

Substance vs SubstanceDefinition

AspectSubstanceSubstanceDefinition
GranularityInstance or typeDictionary
BatchYesNo
ExpiryYesNo
Physical-chemical propertiesNoYes (structure, MW)
Use caseHospital pharmacy, allergologyIDMP reference, research

Common pitfalls

  • Misset instance — without this flag, it is unclear whether a batch or a type is meant.
  • No reference to SubstanceDefinition — loses semantic consistency.
  • Substance used for badly named allergens — prefer AllergyIntolerance + Substance.