Release 5 Preview #1

This page is part of the FHIR Specification (v4.2.0: R5 Preview #1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

1.3 Patterns Index

FHIR Infrastructure Work GroupMaturity Level: N/AStandards Status: Informative

This specification defines 141 Resources as the primary means for exchange for data. In addition, this specification defines a number of patterns to assist implementers to better understand the relationships between the resources, and also to support the use of abstractions of the resources when implementing common tasks.

There are two different types of patterns:

  • Design Patterns: General patterns that resources may follow to some degree, depending on the requirements of the domain that they represent
  • Interface Patterns: Specific patterns that are intended to be used as operation abstractions for the resources that follow (=implement) them

Design Patterns

These patterns provide general guidelines around the design of the resources that follow them. The resources that follow these patterns indicate how they follow the pattern by mapping elements in the resource to the pattern. In general, resources may:

  • have a matching element, or not (or define an extension for the element)
  • split different possible values between different elements
  • use different types, or codes that have different values
  • have different cardinalities, based on domain analysis

The following Design Patterns are defined:

Interface Patterns

These patterns are intended to provide abstractions for the resources that follow them, for use by implementers. The resources that follow these patterns indicate how they follow the pattern by mapping elements in the resource to the pattern. These patterns are followed more closely, and resources may:

  • use a different name for the element
  • allow for a higher cardinality that the pattern
  • provide a concept map to map between values in the resource and the element values e.g. mapping a set of status codes to a active : boolean
  • use a different type with a defined conversion to the pattern type

The following Interface Patterns are defined:

Pattern Candidates

Patterns are a work in progress. This analysis helps identify candidate patterns:

Participation type Patterns

ResourcesPattern (or candidates)Locations
ActivityDefinition, DeviceDefinition, HealthcareService, Location, MedicationKnowledge, ObservationDefinition, Organization, PlanDefinition, Practitioner, PractitionerRole, SpecimenDefinition, SubstanceCatalogEntry.referencedItem
CareTeam, Device, Endpoint, Group, HealthcareService, Location, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant + [Endpoint]Communication.recipient
CareTeam, Device, Endpoint, Group, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant + [Endpoint] - [Location]CommunicationRequest.recipient
CareTeam, Device, Group, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [HealthcareService, Location]Consent.provision.actor.reference
CareTeam, Device, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Group, Location]CarePlan.activity.detail.performer
DeviceRequest.performer
ImagingStudy.series.performer.actor
MedicationRequest.performer
Procedure.performer.actor
ServiceRequest.performer
Task.owner
CareTeam, Device, Location, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson, SubstanceParticipant + [Substance] - [Group, HealthcareService]Contract.term.action.performer
CareTeam, Device, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Group, HealthcareService, Location]AdverseEvent.participant.actor
CarePlan.author
CarePlan.contributor
ChargeItem.performer.actor
DocumentReference.author
CareTeam, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Group, Device, Location]Consent.performer
CareTeam, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [CareTeam, PractitionerRole] - [Location]
ParticipantLiving + [Organization, CareTeam, PractitionerRole]
CareTeam.participant.member
Observation.performer
CareTeam, Organization, Practitioner, PractitionerRoleDiagnosticReport.performer
DiagnosticReport.resultsInterpreter
Device, Endpoint, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonCommunication.sender
CommunicationRequest.informationProvider
Device, Group, Location, Organization, Patient, Practitioner, PractitionerRole, SpecimenDocumentReference.subject
Device, Group, Location, PatientDeviceRequest.subject
DiagnosticReport.subject
List.subject
Observation.subject
ServiceRequest.subject
Device, Group, Location, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Organization, CareTeam, HealthcareService]MeasureReport.subject
Device, Group, Location, Patient, SubstanceSpecimen.subject
Device, Group, Medication, Patient, Practitioner, PractitionerRole, SubstanceGroup.member.entity
Device, Group, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [CareTeam, HealthcareService, Location]Contract.term.offer.party.reference
Contract.term.action.subject.reference
Contract.term.action.requester
Device, Group, PatientImagingStudy.subject
Device, Group, Patient, PractitionerParticipantLiving + [Group, Device] - [RelatedPerson]DocumentManifest.subject
Device, HealthcareService, Location, Organization, Patient, Practitioner, PractitionerRoleParticipant - [Group, CareTeam, RelatedPerson]Account.subject
Device, HealthcareService, Location, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Group, Organization, CareTeam]Appointment.participant.actor
AppointmentResponse.actor
Schedule.actor
Device, Organization, Patient, Practitioner, PractitionerRoleFlag.author
Device, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [Device, PractitionerRole] - [Location]
ParticipantLiving + [Organization, Device, PractitionerRole]
Signature.who
Signature.onBehalfOf
AuditEvent.agent.who
AuditEvent.source.observer
ChargeItem.enterer
CommunicationRequest.requester
Composition.author
Composition.section.author
DocumentManifest.author
Invoice.participant.actor
MedicationDispense.performer.actor
MedicationRequest.requester
Provenance.agent.who
Provenance.agent.onBehalfOf
QuestionnaireResponse.author
ServiceRequest.requester
SupplyRequest.requester
Task.requester
Device, Organization, Practitioner, PractitionerRoleDeviceRequest.requester
Device, Patient, Practitioner, PractitionerRoleParticipantLiving + [Device, PractitionerRole] - [RelatedPerson]List.source
Device, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantLiving + [Device, PractitionerRole]Condition.asserter
MedicationAdministration.performer.actor
RequestGroup.action.participant
Device, Practitioner, PractitionerRoleDetectedIssue.author
RequestGroup.author
RiskAssessment.performer
Group, Location, Medication, Organization, Patient, PlanDefinition, Practitioner, PractitionerRole, ProcedureFlag.subject
Group, Organization, PatientGoal.subject
Group, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [Group, PractitionerRole] - [Location]
ParticipantLiving + [Group, Organization, PractitionerRole]
Task.restriction.recipient
Group, PatientParticipantLiving + [Group] - [Practitioner, RelatedPerson]CarePlan.subject
CareTeam.subject
ChargeItem.subject
ClinicalImpression.subject
Communication.subject
CommunicationRequest.subject
Condition.subject
DeviceUseStatement.subject
Encounter.subject
GuidanceResponse.subject
Invoice.subject
MedicationAdministration.subject
MedicationDispense.subject
MedicationRequest.subject
MedicationUsage.subject
NutritionIntake.subject
Procedure.subject
RequestGroup.subject
RiskAssessment.subject
Group, Patient, Practitioner, RelatedPersonParticipantContactable + [Group] - [Organization, Location]
ParticipantLiving + [Group]
AdverseEvent.subject
HealthcareService, OrganizationSupplyRequest.supplier
Location, OrganizationParticipantContactable - [Practitioner, Patient, RelatedPerson]CoverageEligibilityRequest.item.facility
Encounter.hospitalization.origin
Encounter.hospitalization.destination
SupplyRequest.deliverFrom
Location, Organization, PatientParticipantContactable - [Practitioner, RelatedPerson]SupplyRequest.deliverTo
Location, Organization, Practitioner, PractitionerRoleParticipantContactable + [PractitionerRole] - [Patient, RelatedPerson]MeasureReport.reporter
Location, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [PractitionerRole] - [Organization]
ParticipantLiving + [PractitionerRole, Location]
MedicationDispense.receiver
Organization, PatientParticipantContactable - [Practitioner, RelatedPerson, Location]
ParticipantLiving + [Organization] - [Practitioner, RelatedPerson]
BiologicallyDerivedProduct.collection.source
Organization, Patient, Practitioner, PractitionerRoleParticipantContactable + [PractitionerRole] - [RelatedPerson, Location]
ParticipantLiving + [Organization, PractitionerRole] - [RelatedPerson]
Contract.author
Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [PractitionerRole] - [Location]
ParticipantLiving + [Organization, PractitionerRole]
Basic.author
Claim.payee.party
Composition.attester.party
Contract.term.asset.valuedItem.responsible
Contract.term.asset.valuedItem.recipient
Contract.signer.party
DocumentManifest.recipient
ExplanationOfBenefit.payee.party
MedicationRequest.informationSource
MedicationUsage.informationSource
NutritionIntake.informationSource
Organization, Patient, Practitioner, RelatedPersonParticipantContactable - [Location]
ParticipantLiving + [Organization]
Annotation.author[x]
Organization, Patient, RelatedPersonParticipantContactable - [Practitioner, Location]
ParticipantLiving + [Organization] - [Practitioner]
Account.guarantor.party
Coverage.policyHolder
Coverage.payor
Invoice.recipient
Organization, Practitioner, PractitionerRoleClaim.provider
Claim.careTeam.provider
ClaimResponse.requestor
ClaimResponse.addItem.provider
Consent.verification.verifiedBy
Contract.contentDefinition.publisher
CoverageEligibilityRequest.provider
CoverageEligibilityResponse.requestor
DocumentReference.authenticator
EnrollmentRequest.provider
EnrollmentResponse.requestProvider
ExplanationOfBenefit.provider
ExplanationOfBenefit.careTeam.provider
ExplanationOfBenefit.addItem.provider
Immunization.performer.actor
Linkage.author
MedicationDispense.substitution.responsibleParty
MessageHeader.destination.receiver
MessageHeader.sender
MessageHeader.responsible
ObservationDefinition.publisher
Patient.generalPractitioner
PaymentNotice.provider
PaymentNotice.payee
PaymentReconciliation.requestor
PaymentReconciliation.detail.submitter
PaymentReconciliation.detail.payee
SpecimenDefinition.publisher
SupplyDelivery.supplier
Topic.publisher
VerificationResult.primarySource.who
VerificationResult.attestation.who
VerificationResult.attestation.onBehalfOf
Organization, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [PractitionerRole] - [Patient, Location]
ParticipantLiving + [Organization, PractitionerRole] - [Patient]
Group.managingEntity
Organization, PractitionerRoleMedicinalProductDefinition.contact.contact
Patient, Person, Practitioner, RelatedPersonParticipantContactable + [Person] - [Organization, Location]
ParticipantLiving + [Person]
Person.link.target
Patient, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [PractitionerRole] - [Organization, Location]
ParticipantLiving + [PractitionerRole]
AdverseEvent.recorder
AdverseEvent.suspectEntity.causality.author
AllergyIntolerance.recorder
AllergyIntolerance.asserter
Condition.recorder
DeviceUseStatement.source
Goal.expressedBy
Procedure.recorder
QuestionnaireResponse.source
Patient, RelatedPersonParticipantContactable - [Practitioner, Organization, Location]
ParticipantLiving - [Practitioner]
Consent.verification.verifiedWith
Coverage.subscriber
Patient.link.other
Practitioner, PractitionerRoleParticipantLiving + [PractitionerRole] - [Patient, RelatedPerson]BiologicallyDerivedProduct.collection.collector
Claim.enterer
ClinicalImpression.performer
CoverageEligibilityRequest.enterer
CoverageEligibilityRequest.item.provider
CoverageEligibilityResponse.insurance.item.provider
DetectedIssue.mitigation.author
EpisodeOfCare.careManager
ExplanationOfBenefit.enterer
ImagingStudy.referrer
ImagingStudy.interpreter
MedicationRequest.recorder
MessageHeader.enterer
MessageHeader.author
NutritionOrder.orderer
ResearchStudy.principalInvestigator
Specimen.collection.collector
SupplyDelivery.receiver
VisionPrescription.prescriber
Practitioner, PractitionerRole, RelatedPersonParticipantLiving + [PractitionerRole] - [Patient]Encounter.participant.individual

Other Patterns

ResourcesPattern (or candidates)Locations
ActivityDefinition, Device, DeviceDefinition, Medication, MedicinalProductDefinition, PlanDefinition, SubstanceClinicalUseIssue.subject
ActivityDefinition, DeviceDefinition, MedicinalProductDefinition, ObservationDefinition, PackagedProductDefinition, PlanDefinition, ResearchStudyRegulatedAuthorization.subject
AllergyIntolerance, ConditionClinicalImpression.problem
AllergyIntolerance, Condition, DocumentReference, FamilyMemberHistory, Immunization, Observation, ProcedureAdverseEvent.contributingFactor.item[x]
AdverseEvent.supportingInfo.item[x]
Appointment, AppointmentResponse, CarePlan, ServiceRequest, TaskImagingStudy.basedOn
Appointment, CommunicationRequest, DeviceRequest, ImmunizationRecommendation, MedicationRequest, NutritionOrder, RequestGroup, ServiceRequest, Task, VisionPrescriptionCarePlan.activity.reference
CarePlan, DeviceRequest, ImmunizationRecommendation, MedicationRequest, NutritionOrder, ServiceRequestObservation.basedOn
CarePlan, ImmunizationRecommendation, MedicationRequest, NutritionOrder, ServiceRequestDiagnosticReport.basedOn
CarePlan, ImmunizationRecommendation, MedicationRequest, ServiceRequestMedicationRequest.basedOn
CarePlan, MedicationRequest, ServiceRequestMedicationUsage.basedOn
ServiceRequest.basedOn
CarePlan, NutritionOrder, ServiceRequestNutritionIntake.basedOn
CarePlan, RequestGroupGuidanceResponse.result
CarePlan, ServiceRequestDocumentReference.context.basedOn
Procedure.basedOn
QuestionnaireResponse.basedOn
Claim, DocumentReference, Observation, Procedure, QuestionnaireResponse, ServiceRequestDeviceUseStatement.derivedFrom
ClaimResponse, CoverageDeviceRequest.insurance
MedicationRequest.insurance
ServiceRequest.insurance
Task.insurance
ClinicalImpression, DiagnosticReport, ObservationCondition.stage.assessment
Composition, DiagnosticReport, DocumentReferenceProcedure.report
Condition, MedicationRequest, MedicationUsage, NutritionOrder, Observation, RiskAssessment, ServiceRequestGoal.addresses
Condition, ProcedureEncounter.diagnosis.condition
Consent, Contract, DocumentReference, QuestionnaireResponseConsent.sourceReference
Contract, SupplyDeliverySupplyDelivery.partOf
Device, DeviceMetricEvidenceVariable.characteristic.device
Observation.device
Device, Medication, SubstanceChargeItem.product[x]
ChargeItemDefinition.instance
Device, PersonCatalogEntry.updatedBy
DeviceDefinition, ManufacturedItemDefinitionPackagedProductDefinition.package.containedItem.item
DeviceRequest, MedicationRequest, VisionPrescriptionClaim.prescription
Claim.originalPrescription
DiagnosticReport, ImagingStudy, Immunization, MedicationAdministration, MedicationDispense, Observation, Procedure, SupplyDeliveryChargeItem.service
DocumentReference, ImagingStudy, MolecularSequence, Observation, QuestionnaireResponseObservation.derivedFrom
DocumentReference, Immunization, MedicationAdministration, MedicationRequest, ProcedureAdverseEvent.preventiveAction.item[x]
DocumentReference, MedicationAdministration, MedicationRequest, ProcedureAdverseEvent.mitigatingAction.item[x]
Encounter, EpisodeOfCareChargeItem.context
Contract.term.action.context
ImagingStudy, Immunization, MedicationAdministration, MedicationDispense, MedicationUsage, ProcedureObservation.partOf
Immunization, ImmunizationEvaluationImmunizationRecommendation.recommendation.supportingImmunization
Medication, MedicinalProductDefinition, ObservationDefinition, SubstanceClinicalUseIssue.interaction.interactant.item[x]
Medication, SubstanceActivityDefinition.product[x]
MedicationAdministration, MedicationDispense, MedicationUsage, Observation, ProcedureMedicationUsage.partOf
MedicationAdministration, Observation, ProcedureProcedure.partOf
MedicationAdministration, ProcedureMedicationAdministration.partOf
MedicationRequest, VisionPrescriptionExplanationOfBenefit.prescription
MolecularSequence, Observation, QuestionnaireResponseObservation.hasMember
NutritionIntake, Observation, ProcedureNutritionIntake.partOf
Observation, ProcedureQuestionnaireResponse.partOf
ObservationDefinition, QuestionnaireObservationDefinition.hasMember
Substance, SubstanceDefinitionSubstanceDefinition.property.definingSubstance[x]