Current Build

1.3 Patterns Index

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

This specification defines Resources as the primary means for exchange for data. This specification also defines a number of patterns to assist implementers to better understand the relationships between the resources, and also to use 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
  • 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:

ResourcesPatternRIM ClassesLocations
ActivityDefinition, DeviceDefinition, HealthcareService, Location, MedicationKnowledge, ObservationDefinition, Organization, PlanDefinition, Practitioner, PractitionerRole, SpecimenDefinition, Substance??, Role, Entity, ActCatalogEntry.referencedItem
CareTeam, Device, Group, HealthcareService, Location, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonParticipantRole, ??, Entity, ActCommunication.recipient
CareTeam, Device, Group, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonRole, ??, Entity, ActCommunicationRequest.recipient
CareTeam, Device, Group, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonRole, ??, EntityConsent.provision.actor.reference
CareTeam, Device, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonRole, ??, Entity, ActCarePlan.activity.detail.performer
DeviceRequest.performer
ServiceRequest.performer
Task.owner
CareTeam, Device, Location, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson, SubstanceRole, ??, EntityContract.term.action.performer
CareTeam, Device, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonRole, ??, EntityCarePlan.author
CarePlan.contributor
ChargeItem.performer.actor
ImagingStudy.series.performer.actor
Media.operator
MedicationRequest.performer
CareTeam, Organization, Patient, Practitioner, PractitionerRole, RelatedPersonRole, ??CareTeam.participant.member
Observation.performer
CareTeam, Organization, Practitioner, PractitionerRoleRole, ??DiagnosticReport.performer
DiagnosticReport.resultsInterpreter
Device, Group, Location, PatientRole, EntityDeviceRequest.subject
DiagnosticReport.subject
List.subject
Observation.subject
ServiceRequest.subject
Device, Group, Location, Patient, Practitioner, PractitionerRole, RelatedPersonRole, ??, EntityMeasureReport.subject
Device, Group, Location, Patient, Practitioner, PractitionerRole, SpecimenRole, EntityMedia.subject
Device, Group, Location, Patient, SubstanceRole, EntitySpecimen.subject
Device, Group, Medication, Patient, Practitioner, PractitionerRole, SubstanceRole, EntityGroup.member.entity
Device, Group, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson??, Role, EntityContract.term.offer.party.reference
Contract.term.action.subject.reference
Contract.term.action.requester
Device, Group, PatientRole, EntityImagingStudy.subject
Device, Group, Patient, PractitionerRole, EntityDocumentManifest.subject
DocumentReference.subject
Device, HealthcareService, Location, Organization, Patient, Practitioner, PractitionerRoleRole, ??, Entity, ActAccount.subject
Device, HealthcareService, Location, Patient, Practitioner, PractitionerRole, RelatedPersonRole, ??, Entity, ActAppointment.participant.actor
AppointmentResponse.actor
Schedule.actor
Device, HealthcareService, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson??, Role, Entity, ActCommunication.sender
CommunicationRequest.sender
Device, Organization, Patient, Practitioner, PractitionerRole??, Role, EntityFlag.author
Device, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson??, Role, EntitySignature.who
Signature.onBehalfOf
AuditEvent.agent.who
AuditEvent.source.observer
ChargeItem.enterer
CommunicationRequest.requester
Composition.author
Composition.section.author
DocumentManifest.author
DocumentReference.author
Invoice.participant.actor
MedicationDispense.performer.actor
MedicationRequest.requester
Procedure.performer.actor
Provenance.agent.who
Provenance.agent.onBehalfOf
QuestionnaireResponse.author
ServiceRequest.requester
SupplyRequest.requester
Task.requester
Device, Organization, Practitioner, PractitionerRole??, Role, EntityDeviceRequest.requester
Device, Patient, Practitioner, PractitionerRoleRole, EntityList.source
Device, Patient, Practitioner, PractitionerRole, RelatedPersonRole, ??, EntityAdverseEvent.detector
MedicationAdministration.performer.actor
RequestGroup.action.participant
Device, Practitioner, PractitionerRoleRole, EntityAdverseEvent.contributor
DetectedIssue.author
RequestGroup.author
RiskAssessment.performer
Group, Location, Medication, Organization, Patient, PlanDefinition, Practitioner, PractitionerRole, ProcedureRole, ??, Entity, ActFlag.subject
Group, Organization, Patient??, Role, EntityGoal.subject
Group, Organization, Patient, Practitioner, PractitionerRole, RelatedPerson??, Role, EntityTask.restriction.recipient
Group, PatientRole, EntityCarePlan.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
Procedure.subject
RequestGroup.subject
RiskAssessment.subject
Group, Patient, Practitioner, RelatedPersonRole, ??, EntityAdverseEvent.subject
HealthcareService, Organization??, ActSupplyRequest.supplier
Location, OrganizationRole, ??CoverageEligibilityRequest.item.facility
Encounter.hospitalization.origin
Encounter.hospitalization.destination
SupplyRequest.deliverFrom
Location, Organization, PatientRole, ??SupplyRequest.deliverTo
Location, Organization, Practitioner, PractitionerRoleRole, ??MeasureReport.reporter
Location, Patient, Practitioner, RelatedPersonRole, ??MedicationDispense.receiver
Organization, Patient??, RoleBiologicallyDerivedProduct.collection.source
Organization, Patient, Practitioner, PractitionerRole??, RoleContract.author
Organization, Patient, Practitioner, PractitionerRole, RelatedPerson??, RoleBasic.author
Claim.payee.party
Composition.attester.party
Consent.performer
Contract.term.asset.valuedItem.responsible
Contract.term.asset.valuedItem.recipient
Contract.signer.party
DocumentManifest.recipient
ExplanationOfBenefit.payee.party
MedicationRequest.informationSource
MedicationUsage.informationSource
Organization, Patient, Practitioner, RelatedPerson??, RoleAnnotation.author[x]
Organization, Patient, RelatedPerson??, RoleAccount.guarantor.party
Coverage.policyHolder
Coverage.payor
Invoice.recipient
Organization, Practitioner, PractitionerRole??, RoleClaim.provider
Claim.careTeam.provider
ClaimResponse.requestor
ClaimResponse.addItem.provider
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
Patient.generalPractitioner
PaymentNotice.provider
PaymentNotice.payee
PaymentReconciliation.requestor
PaymentReconciliation.detail.submitter
PaymentReconciliation.detail.payee
SupplyDelivery.supplier
VerificationResult.primarySource.who
VerificationResult.attestation.who
VerificationResult.attestation.onBehalfOf
Organization, Practitioner, PractitionerRole, RelatedPerson??, RoleGroup.managingEntity
Organization, PractitionerRole??, RoleRegulatedMedicinalProduct.contact.contact
Patient, Person, Practitioner, RelatedPersonRole, ??Person.link.target
Patient, Practitioner, PractitionerRole, RelatedPersonRole, ??AdverseEvent.recorder
AdverseEvent.suspectEntity.causality.author
AllergyIntolerance.recorder
AllergyIntolerance.asserter
Condition.recorder
Condition.asserter
DeviceUseStatement.source
Goal.expressedBy
Procedure.recorder
QuestionnaireResponse.source
Patient, RelatedPersonRole, ??Consent.verification.verifiedWith
Coverage.subscriber
Patient.link.other
Practitioner, PractitionerRoleRoleBiologicallyDerivedProduct.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, RelatedPersonRole, ??Encounter.participant.individual
ResourcesPatternRIM ClassesLocations
ActivityDefinition, Device, DeviceDefinition, Medication, PlanDefinition, RegulatedMedicinalProduct, Substance??, Entity, ActClinicalUseIssue.subject
AllergyIntolerance, ConditionActClinicalImpression.problem
AllergyIntolerance, Condition, DiagnosticReport, DocumentReference, Observation, QuestionnaireResponseActFamilyMemberHistory.reasonReference
AllergyIntolerance, Condition, DocumentReference, FamilyMemberHistory, Immunization, Media, Observation, ProcedureActAdverseEvent.supportingInfo.item
Appointment, AppointmentResponse, CarePlan, ServiceRequest, TaskActImagingStudy.basedOn
Appointment, CommunicationRequest, DeviceRequest, ImmunizationRecommendation, MedicationRequest, NutritionOrder, RequestGroup, ServiceRequest, Task, VisionPrescription??, ActCarePlan.activity.reference
CarePlan, DeviceRequest, ImmunizationRecommendation, MedicationRequest, NutritionOrder, ServiceRequest??, ActObservation.basedOn
CarePlan, ImmunizationRecommendation, MedicationRequest, NutritionOrder, ServiceRequest??, ActDiagnosticReport.basedOn
CarePlan, ImmunizationRecommendation, MedicationRequest, ServiceRequest??, ActMedicationRequest.basedOn
CarePlan, MedicationRequest, ServiceRequest??, ActMedicationUsage.basedOn
ServiceRequest.basedOn
CarePlan, RequestGroup??, ActGuidanceResponse.result
CarePlan, ServiceRequestActMedia.basedOn
Procedure.basedOn
QuestionnaireResponse.basedOn
Claim, DocumentReference, Observation, Procedure, QuestionnaireResponse, ServiceRequest??, ActDeviceUseStatement.derivedFrom
ClaimResponse, Coverage??, ActDeviceRequest.insurance
MedicationRequest.insurance
ServiceRequest.insurance
Task.insurance
ClinicalImpression, DiagnosticReport, Observation??, ActCondition.stage.assessment
Composition, DiagnosticReport, DocumentReferenceActProcedure.report
Condition, DiagnosticReport, DocumentReference, Media, ObservationActDeviceUseStatement.reasonReference
ImagingStudy.reasonReference
Condition, DiagnosticReport, DocumentReference, ObservationActCarePlan.activity.detail.reasonReference
DeviceRequest.reasonReference
GuidanceResponse.reasonReference
RequestGroup.reasonReference
RiskAssessment.reasonReference
ServiceRequest.reasonReference
SupplyRequest.reasonReference
Condition, DiagnosticReport, DocumentReference, Observation, ProcedureActProcedure.reasonReference
Condition, DiagnosticReport, DocumentReference, Observation, Questionnaire, QuestionnaireResponseActContract.term.action.reasonReference
Condition, DiagnosticReport, ObservationActImmunization.reasonReference
MedicationAdministration.reasonReference
MedicationUsage.reasonReference
Condition, ImmunizationRecommendation, Observation, ProcedureActAppointment.reasonReference
Encounter.reasonReference
Condition, Media, ObservationActClinicalImpression.finding.itemReference
Condition, MedicationRequest, MedicationUsage, NutritionOrder, Observation, RiskAssessment, ServiceRequest??, ActGoal.addresses
Condition, ObservationActMedicationRequest.reasonReference
Condition, ProcedureActEncounter.diagnosis.condition
Contract, SupplyDeliveryActSupplyDelivery.partOf
Device, Device, DeviceMetric??, EntityMedia.device
Device, DeviceMetric??, EntityObservation.device
Device, Medication, SubstanceEntityChargeItem.product[x]
ChargeItemDefinition.instance
Procedure.usedReference
Device, Person??, EntityCatalogEntry.updatedBy
DeviceRequest, MedicationRequest, VisionPrescription??, ActClaim.prescription
Claim.originalPrescription
DiagnosticReport, ImagingStudy, Immunization, MedicationAdministration, MedicationDispense, Observation, Procedure, SupplyDeliveryActChargeItem.service
DocumentReference, ImagingStudy, Media, MolecularSequence, Observation, QuestionnaireResponse??, ActObservation.derivedFrom
DocumentReference, MediaActMedicationKnowledge.monograph.source
Encounter, EpisodeOfCareAct, (special)ChargeItem.context
Contract.term.action.context
DocumentReference.context.encounter
ImagingStudy, Immunization, MedicationAdministration, MedicationDispense, MedicationUsage, ProcedureActObservation.partOf
Immunization, ImmunizationEvaluation??, ActImmunizationRecommendation.recommendation.supportingImmunization
Medication, ObservationDefinition, RegulatedMedicinalProduct, Substance??, Entity, ActClinicalUseIssue.interaction.interactant.item[x]
Medication, SubstanceEntityActivityDefinition.product[x]
MedicationAdministration, MedicationDispense, MedicationUsage, Observation, ProcedureActMedicationUsage.partOf
MedicationAdministration, Observation, ProcedureActProcedure.partOf
MedicationAdministration, ProcedureActMedicationAdministration.partOf
MedicationRequest, VisionPrescription??ExplanationOfBenefit.prescription
MolecularSequence, Observation, QuestionnaireResponse??, ActObservation.hasMember
Observation, ProcedureActQuestionnaireResponse.partOf
RegulatedMedicinalProduct, RegulatedPackagedProduct??RegulatedAuthorization.subject
Substance, SubstanceDefinition??, EntitySubstanceDefinition.property.definingSubstance[x]