Release 5 Ballot

This page is part of the FHIR Specification (v5.0.0-ballot: R5 Ballot - see ballot notes). 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.2 Patterns Index

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

Types Framework Cross Reference: Base Types | Datatypes | Resources | Patterns

This specification defines 153 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, BiologicallyDerivedProduct, DeviceDefinition, Ingredient, Location, ManufacturedItemDefinition, MedicinalProductDefinition, NutritionProduct, ObservationDefinition, Organization, PackagedProductDefinition, PlanDefinition, Practitioner, ResearchStudy, SubstanceDefinitionRegulatedAuthorization.subject
BiologicallyDerivedProduct, Device, Group, Location, Medication, NutritionProduct, Organization, Patient, Practitioner, Procedure, SubstanceDetectedIssue.subject
GenomicStudy.subject
GenomicStudy.analysis.subject
MolecularSequence.subject
Observation.subject
BiologicallyDerivedProduct, Device, Group, Location, Medication, Organization, Patient, Practitioner, Procedure, SubstanceDiagnosticReport.subject
BiologicallyDerivedProduct, Device, Group, Location, Patient, SubstanceSpecimen.subject
BiologicallyDerivedProduct, Device, Group, Medication, Patient, Specimen, SubstanceResearchSubject.subject
CareTeam, Device, DeviceDefinition, Endpoint, Group, HealthcareService, Location, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant + [Endpoint, DeviceDefinition]ActivityDefinition.participant.typeReference
PlanDefinition.actor.option.typeReference
PlanDefinition.action.participant.typeReference
RequestOrchestration.action.participant.typeReference
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, Endpoint, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant + [Endpoint] - [Group, Location]Communication.sender
CareTeam, Device, Group, HealthcareService, Location, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantMeasureReport.subject
CareTeam, Device, Group, HealthcareService, Location, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson, SpecimenParticipant + [Specimen]Group.member.entity
CareTeam, Device, Group, HealthcareService, Location, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Organization]Appointment.participant.actor
CareTeam, Device, Group, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [HealthcareService, Location]Consent.provision.actor.reference
Permission.rule.activity.actor
CareTeam, Device, HealthcareService, Location, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Group, Organization]Schedule.actor
CareTeam, Device, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Group, Location]CarePlan.activity.plannedActivityDetail.performer
ChargeItem.performer.actor
DeviceRequest.performer
ImagingSelection.performer.actor
ImagingStudy.series.performer.actor
Procedure.performer.actor
ServiceRequest.performer
Task.owner
Transport.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]AllergyIntolerance.participant.actor
AuditEvent.agent.who
AuditEvent.source.observer
Basic.author
CarePlan.custodian
CarePlan.contributor
Condition.participant.actor
DeviceDispense.performer.actor
DocumentReference.author
List.source
MedicationDispense.performer.actor
NutritionIntake.performer.actor
Provenance.agent.who
SupplyRequest.requester
CareTeam, Device, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson, ResearchSubjectAdverseEvent.participant.actor
CareTeam, DeviceDefinition, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonMedicationRequest.performer
CareTeam, Group, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Device, HealthcareService, Location]Procedure.focus
CareTeam, Group, Organization, PractitionerRequirements.statement.source
CareTeam, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Group, Device, Location]Consent.grantor
Consent.grantee
Permission.asserter
Subscription.managingEntity
CareTeam, Organization, Patient, Practitioner, PractitionerRoleProvenance.agent.onBehalfOf
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
CareTeam, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantLiving + [CareTeam, PractitionerRole]Goal.source
Device, Endpoint, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonCommunicationRequest.informationProvider
Device, Group, HealthcareService, Location, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Organization, CareTeam]AppointmentResponse.actor
Device, Group, HealthcareService, Patient, Practitioner, PractitionerRole, RelatedPersonParticipant - [Organization, CareTeam, Location]Encounter.participant.actor
Device, Group, Location, Medication, Organization, Patient, Practitioner, Procedure, Specimen, SubstanceImagingSelection.subject
Device, Group, Location, Organization, Patient, PractitionerParticipantContactable + [Group, Device] - [RelatedPerson]List.subject
Procedure.subject
Device, Group, Location, PatientDeviceRequest.subject
ServiceRequest.subject
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, Organization, PersonEvidenceReport.section.author
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, Organization, Patient, Practitioner, PractitionerRoleArtifactAssessment.content.author
Flag.author
Device, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [Device, PractitionerRole] - [Location]
ParticipantLiving + [Organization, Device, PractitionerRole]
Signature.who
Signature.onBehalfOf
ChargeItem.enterer
CommunicationRequest.requester
Composition.author
Composition.section.author
DocumentManifest.author
Invoice.participant.actor
MedicationRequest.requester
QuestionnaireResponse.author
QuestionnaireResponse.source
ServiceRequest.requester
Task.requester
Transport.requester
Device, Organization, Practitioner, PractitionerRoleDeviceRequest.requester
GenomicStudy.analysis.performer.actor
Device, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantLiving + [Device, PractitionerRole]DetectedIssue.author
MedicationAdministration.performer.actor
RiskAssessment.performer
Device, Patient, Practitioner, RelatedPersonParticipantContactable + [Device] - [Organization, Location]
ParticipantLiving + [Device]
InventoryReport.reporter
Device, Practitioner, PractitionerRoleRequestOrchestration.author
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
Transport.restriction.recipient
Group, Organization, Practitioner, PractitionerRoleMeasureReport.reporter
Group, PatientParticipantLiving + [Group] - [Practitioner, RelatedPerson]Appointment.subject
CarePlan.subject
CareTeam.subject
ChargeItem.subject
ClinicalImpression.subject
Communication.subject
CommunicationRequest.subject
Condition.subject
Encounter.subject
GuidanceResponse.subject
Invoice.subject
MedicationAdministration.subject
MedicationDispense.subject
MedicationRequest.subject
MedicationUsage.subject
NutritionIntake.subject
NutritionOrder.subject
RequestOrchestration.subject
RiskAssessment.subject
Group, Patient, PractitionerParticipantLiving + [Group] - [RelatedPerson]Consent.subject
Group, Patient, Practitioner, RelatedPerson, ResearchSubjectParticipantLiving + [Group, ResearchSubject]AdverseEvent.subject
HealthcareService, OrganizationSupplyRequest.supplier
HealthcareService, Organization, Patient, PractitionerParticipantContactable + [HealthcareService] - [RelatedPerson, Location]
ParticipantLiving + [Organization, HealthcareService] - [RelatedPerson]
Consent.manager
Consent.controller
Location, OrganizationParticipantContactable - [Practitioner, Patient, RelatedPerson]Claim.facility
CoverageEligibilityRequest.item.facility
Encounter.admission.origin
Encounter.admission.destination
ExplanationOfBenefit.facility
SupplyRequest.deliverFrom
Location, Organization, PatientParticipantContactable - [Practitioner, RelatedPerson]SupplyRequest.deliverTo
Location, Organization, ResearchStudyResearchStudy.site
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, Person, RelatedPersonParticipantContactable + [Person] - [Practitioner, Location]
ParticipantLiving + [Organization, Person] - [Practitioner]
PaymentReconciliation.paymentIssuer
Organization, Patient, Practitioner, PractitionerRoleParticipantContactable + [PractitionerRole] - [RelatedPerson, Location]
ParticipantLiving + [Organization, PractitionerRole] - [RelatedPerson]
Contract.author
Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [PractitionerRole] - [Location]
ParticipantLiving + [Organization, PractitionerRole]
Annotation.author[x]
Claim.payee.party
Composition.attester.party
Contract.term.asset.valuedItem.responsible
Contract.term.asset.valuedItem.recipient
Contract.signer.party
DeviceUsage.informationSource
DocumentManifest.recipient
DocumentReference.attester.party
ExplanationOfBenefit.payee.party
Immunization.performer.actor
MedicationRequest.informationSource
MedicationUsage.informationSource
Organization, Patient, RelatedPersonParticipantContactable - [Practitioner, Location]
ParticipantLiving + [Organization] - [Practitioner]
Account.guarantor.party
Coverage.paymentBy.party
Coverage.policyHolder
Invoice.recipient
Organization, PractitionerParticipantContactable - [Patient, RelatedPerson, Location]
ParticipantLiving + [Organization] - [Patient, RelatedPerson]
Citation.citedArtifact.contributorship.entry.contributor
Organization, Practitioner, PractitionerRoleClaim.provider
Claim.careTeam.provider
ClaimResponse.requestor
ClaimResponse.addItem.provider
Consent.verification.verifiedBy
Contract.contentDefinition.publisher
CoverageEligibilityRequest.provider
CoverageEligibilityResponse.requestor
EnrollmentRequest.provider
EnrollmentResponse.requestProvider
ExplanationOfBenefit.provider
ExplanationOfBenefit.careTeam.provider
ExplanationOfBenefit.addItem.provider
Linkage.author
MedicationDispense.substitution.responsibleParty
MessageHeader.destination.receiver
MessageHeader.sender
MessageHeader.responsible
ObservationDefinition.publisher
Patient.generalPractitioner
PaymentNotice.provider
PaymentNotice.payee
PaymentReconciliation.enterer
PaymentReconciliation.requestor
PaymentReconciliation.allocation.submitter
PaymentReconciliation.allocation.payee
ResearchStudy.associatedParty.party
SpecimenDefinition.publisher
SupplyDelivery.supplier
VerificationResult.primarySource.who
VerificationResult.attestation.who
VerificationResult.attestation.onBehalfOf
Organization, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [PractitionerRole] - [Patient, Location]
ParticipantLiving + [Organization, PractitionerRole] - [Patient]
Group.managingEntity
Organization, PractitionerRoleCitation.citedArtifact.contributorship.entry.affiliation
MedicinalProductDefinition.contact.contact
Patient, Person, Practitioner, RelatedPersonParticipantContactable + [Person] - [Organization, Location]
ParticipantLiving + [Person]
Person.link.target
Patient, Practitioner, PractitionerRole, RelatedPersonParticipantContactable + [PractitionerRole] - [Organization, Location]
ParticipantLiving + [PractitionerRole]
Claim.enterer
ExplanationOfBenefit.enterer
Procedure.recorder
Specimen.collection.collector
Patient, Practitioner, PractitionerRole, RelatedPerson, ResearchSubjectParticipantLiving + [PractitionerRole, ResearchSubject]AdverseEvent.recorder
AdverseEvent.suspectEntity.causality.author
Patient, Practitioner, RelatedPersonParticipantLivingDevice.operation.operator
Patient, RelatedPersonParticipantContactable - [Practitioner, Organization, Location]
ParticipantLiving - [Practitioner]
Consent.verification.verifiedWith
Coverage.subscriber
Patient.link.other
Practitioner, PractitionerRoleParticipantLiving + [PractitionerRole] - [Patient, RelatedPerson]BiologicallyDerivedProduct.collection.collector
ClinicalImpression.performer
CoverageEligibilityRequest.enterer
CoverageEligibilityRequest.item.provider
CoverageEligibilityResponse.insurance.item.provider
DetectedIssue.mitigation.author
EpisodeOfCare.careManager
GenomicStudy.referrer
GenomicStudy.interpreter
ImagingStudy.referrer
ImagingStudy.interpreter
MedicationRequest.recorder
MessageHeader.enterer
MessageHeader.author
NutritionOrder.orderer
SupplyDelivery.receiver
VisionPrescription.prescriber

Other Patterns

ResourcesPattern (or candidates)Locations
Account, ChargeItem, Claim, Contract, Encounter, InvoicePaymentReconciliation.allocation.target
ActivityDefinition, Device, DeviceDefinition, HealthcareService, Medication, PlanDefinition, SubstanceChargeItemDefinition.instance
ActivityDefinition, Device, DeviceDefinition, Medication, MedicinalProductDefinition, PlanDefinition, SubstanceClinicalUseDefinition.subject
AdministrableProductDefinition, ManufacturedItemDefinition, MedicinalProductDefinitionIngredient.for
AllergyIntolerance, ConditionClinicalImpression.problem
AllergyIntolerance, Condition, Device, DocumentReference, FamilyMemberHistory, Immunization, MedicationAdministration, MedicationUsage, Observation, ProcedureAdverseEvent.contributingFactor.item[x]
AllergyIntolerance, Condition, DocumentReference, FamilyMemberHistory, Immunization, MedicationAdministration, MedicationUsage, Observation, ProcedureAdverseEvent.supportingInfo.item[x]
Appointment, AppointmentResponse, CarePlan, Claim, CommunicationRequest, Contract, CoverageEligibilityRequest, DeviceRequest, EnrollmentRequest, EpisodeOfCare, ImmunizationRecommendation, MedicationRequest, NutritionOrder, RequestOrchestration, ServiceRequest, SupplyRequest, VisionPrescriptionRequest + [EpisodeOfCare]DocumentReference.basedOn
Appointment, AppointmentResponse, CarePlan, ServiceRequest, TaskImagingSelection.basedOn
ImagingStudy.basedOn
Appointment, CommunicationRequest, DeviceRequest, ImmunizationRecommendation, MedicationRequest, NutritionOrder, RequestOrchestration, ServiceRequest, Task, VisionPrescriptionCarePlan.activity.plannedActivityReference
Appointment, Encounter, EpisodeOfCareDocumentReference.context
CarePlan, DeviceRequestDeviceDispense.basedOn
CarePlan, DeviceRequest, ImmunizationRecommendation, MedicationRequest, NutritionOrder, ServiceRequestObservation.basedOn
CarePlan, DeviceRequest, ImmunizationRecommendation, MedicationRequest, NutritionOrder, ServiceRequest, TaskAuditEvent.basedOn
Provenance.basedOn
CarePlan, DeviceRequest, MedicationRequest, ServiceRequestAppointment.basedOn
Encounter.basedOn
CarePlan, ImmunizationRecommendation, MedicationRequest, NutritionOrder, ServiceRequestDiagnosticReport.basedOn
CarePlan, ImmunizationRecommendation, MedicationRequest, ServiceRequestImmunization.basedOn
MedicationRequest.basedOn
CarePlan, MedicationRequest, ServiceRequestServiceRequest.basedOn
CarePlan, NutritionOrder, ServiceRequestNutritionIntake.basedOn
NutritionOrder.basedOn
CarePlan, RequestOrchestrationGuidanceResponse.result
CarePlan, ServiceRequestProcedure.basedOn
QuestionnaireResponse.basedOn
Citation, DiagnosticReport, EvidenceReportResearchStudy.result
Citation, DiagnosticReport, Observation, ProcedureDiagnosticReport.supportingInfo.reference
Claim, DocumentReference, Observation, Procedure, QuestionnaireResponse, ServiceRequestDeviceUsage.derivedFrom
ClaimResponse, CoverageDeviceRequest.insurance
MedicationRequest.insurance
ServiceRequest.insurance
Task.insurance
Transport.insurance
ClinicalImpression, DiagnosticReport, ObservationCondition.stage.assessment
Composition, DiagnosticReport, DocumentReferenceProcedure.report
Condition, MedicationRequest, MedicationUsage, NutritionOrder, Observation, RiskAssessment, ServiceRequestGoal.addresses
Condition, ObservationMedicationUsage.relatedClinicalInformation
Condition, ProcedureEncounter.diagnosis.condition
Consent, Contract, DocumentReference, QuestionnaireResponseConsent.sourceReference
Contract, SupplyDeliverySupplyDelivery.partOf
Contract, TransportTransport.partOf
Device, DeviceDefinitionObservationDefinition.device
Device, DeviceMetricEvidenceVariable.characteristic.definitionByTypeAndValue.device
Observation.device
DeviceDefinition, ManufacturedItemDefinitionMedicinalProductDefinition.comprisedOf
DeviceRequest, MedicationRequest, VisionPrescriptionClaim.prescription
Claim.originalPrescription
DocumentReference, GenomicStudy, ImagingSelection, ImagingStudy, MolecularSequence, Observation, QuestionnaireResponseObservation.derivedFrom
DocumentReference, Immunization, MedicationAdministration, MedicationRequest, ProcedureAdverseEvent.preventiveAction.item[x]
DocumentReference, MedicationAdministration, MedicationRequest, ProcedureAdverseEvent.mitigatingAction.item[x]
DocumentReference, ObservationGenomicStudy.analysis.regionsStudied
GenomicStudy.analysis.regionsCalled
Encounter, EpisodeOfCareContract.term.action.context
DeviceUsage.context
Evidence, EvidenceVariable, GroupEvidenceVariable.characteristic.definitionReference
EvidenceVariable, GroupEvidence.variableDefinition.observed
Evidence.variableDefinition.intended
Evidence.statistic.modelCharacteristic.variable.variableDefinition
ResearchStudy.recruitment.eligibility
GenomicStudy, ImagingStudyDiagnosticReport.study
GenomicStudy, ImagingStudy, Immunization, MedicationAdministration, MedicationDispense, MedicationUsage, ProcedureObservation.partOf
Group, SpecimenObservation.specimen
Immunization, ImmunizationEvaluationImmunizationRecommendation.recommendation.supportingImmunization
Ingredient, Medication, SubstanceActivityDefinition.product[x]
Medication, MedicinalProductDefinition, ObservationDefinition, SubstanceClinicalUseDefinition.interaction.interactant.item[x]
MedicationAdministration, Observation, ProcedureProcedure.partOf
MedicationAdministration, ProcedureMedicationAdministration.partOf
MedicationDispense.partOf
MedicationRequest, VisionPrescriptionExplanationOfBenefit.prescription
MolecularSequence, Observation, QuestionnaireResponseObservation.hasMember
NutritionIntake, Observation, ProcedureNutritionIntake.partOf
Observation, ProcedureQuestionnaireResponse.partOf
ObservationDefinition, QuestionnaireObservationDefinition.hasMember
Procedure, TaskGenomicStudy.analysis.protocolPerformed
ServiceRequest, TaskGenomicStudy.basedOn