Release 4B 5 Ballot

This page is part of the FHIR Specification (v4.3.0: R4B (v5.0.0-ballot: R5 Ballot - STU 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 . Page versions: R5 R4B R4 R3 R2

FHIR Infrastructure icon Work Group Maturity Level : N/A Standards Status : Informative

For background to this version history, see FHIR Version Management Policy .

Major Milestones:

May 28, 2022 4.3.0 Release 4B Trial Use - Limited changes to Release 4 (see the explanation about R4B ) Dec 27, 2018 icon 4.0.1 Release 4 (1 st Normative Content + Trial Use Developments)
Feb 21, 2017 icon 3.0.1 3.0.2 Release 3 (STU - Standard for Trial Use)
Oct 24, 2015 icon 1.0.2 DSTU2 (Second Draft Standard for Trial Use)
Sept 30, 2014 icon 0.0.82 DSTU1 (First Draft Standard for Trial Use)

This is the B version of preview work for the 4th 5th milestone release of FHIR. The only changes tracked here are the changes made after the publication of the first DSTU release. For earlier changes, see the DSTU #1 Version History icon . Note that a full archive history of everything is available through the HL7 GitHub archives icon .

See also the Known Issues that are not yet addressed.
Version Changes
4.3.0 5.0.0-ballot Release R4B : May 28, 2022: R5 Ballot - Sept/Oct 2022 Ballot. This ballot has 1000s of changes. Some particularly significant changes:
4.0.1 4.6.0 Technical Corrections to R4 : Oct-30, 2019. Corrections to invariants & generated conformance resources, and add ANSI Normative Status Notes This list of changes is farily long for a technical correction. The first set of changes should be reviewed Draft Ballot for impact on implementations. Corrections to the specification R5 - resolving internal conflicts, or correcting definitional errors: May 2021 Ballot (Apr 14-20 2021). Significant changes:
  • Add Meta as a Special Type for Open Type Element list, allowing it to be used as a Parameter in Parameters.parameter , and in other places. The $meta operations required their use, but the design did not allow for this. [ Task RatioRange ] datatype
  • Change all code system OIDs to use the root 2.16.840.1.113883.4.642.4. instead of 2.16.840.1.113883.4.642.1. due Rename DeviceUseStatement to reassigning OID leaf values without updating the root in the past. This was causing problems for OID based terminology systems [ Source DeviceUsage ]
  • Add new FHIRPath context variable %rootResource New resources InventoryReport , and use it in ref-1 constraint - FHIRPath engines will need to support the new context variable [ Task ] Fix genomics canonical URLS: http://www.ncbi.nlm.nih.gov/refseq/ -> http://www.ncbi.nlm.nih.gov/refseq , http://www.ncbi.nlm.nih.gov/clinvar/ -> http://www.ncbi.nlm.nih.gov/clinvar , and http://varnomen.hgvs.org/ -> http://varnomen.hgvs.org - these are now corrected back to what they had said in R3 [ Task ] Citation , EvidenceReport , ClinicalUseIssue
  • Fix Binding Updates for FamilyMemberHistory.sex - it had a reference to the administrative gender value set, but it wrongly referred to the one on http://build.fhir.org; corrected to reference the one in the specification [ Task ] Changes to Constraints and generated subscriptions , medication definitions (fixing problems in validation, no impact on implementations, except for code generators): Fix expressions for Search parameters SubstanceSpecification-code , and StructureDefinition-ext-context [ Task evidence based medicine ]
  • Fix the definition Ongoing development of the Mother's Maiden name search parameter from extension(http://hl7.org/fhir/SearchParameter/patient-extensions-Patient-mothersMaidenName) to extension('http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName') [ Task ] other resources
  • Fix the extension context for iso21090-nullFlavor and iso21090-preferred to any Element, not any Resource [ Task
4.5.0 ] 3rd Milestone for R5 - September 2020 Virtual Connectathon Stable Version (Aug-20 2020). Significant changes:
  • Remove MultipleAnd/MultipleOr/Modifiers from generated Search Parameters [ Task ] Ongoing development of less mature resources
  • Add "ge" as a comparator Finish removing content moved to generated search parameters [ Task ] http://terminology.hl7.org
  • Add extension operationdefinition-allowed-type , and use it to capture the definition of the property.value parameter is captured in the OperationDefinition that describes it [ Task
4.4.0 ] 2nd Milestone for R5 - May 2020 Virtual Connectathon Stable Version. Significant changes:
  • Fix how the type Further Development of Element.id and Extension.url is defined in the generated StructureDefinitions [ Task ] Fix up the definition of ElementDefinition.type.code for special elements (Element.id, Extension.url, [Primitive].value) [ Task ] Regenerate StructureDefinition snapshots to fix various snapshot and id issues [ Task Subscription framework ( SubjectStatus , Task ] Documentation Corrections and Clarifications (no implementer impact): Add ANSI notes Fix FMM levels for Device (0 to 2), DeviceRequest (0 to 1), ResearchStudy (0 to 1), and ResearchSubject (0 rename Topic to 1) [ Task ] SubscriptionTopic)
  • Fix up search parameter table [ Task Add new Resources Permission , Task ] Fix definition of IssueType.exception [ Task ] Remove Erroneous Normative Marker on message-events value set [ Task ] Fix various broken internal links & R3 Comparison links + JSON Schema link in downloads [ Task NutritionProduct , Task Citation , Task ] Add note about markdown and XML signatures (to both XML and Signature pages) [ Task EvidenceReport ]
  • Update language about specification status in summary page [ Task
4.2.0 ] Clarify copyright statement 1st Milestone for NUBC derived codes ( here and here ) Remove spurious paragraph about R3 version status [ Task ] Add note about FHIRPath Quantity usage [ Task ] Fix profiling examples [ Task ] R5 - Sydney Connectathon Stable Version. Significant changes:
  • Fix the FHIRPath expressions for Rework the following invariants: sdf-8, sdf-8a, sdf-9, sdf-15, sdf-17, sdf-16 , con-3 , eld-4, eld-18 , ait-1, ait-2 abstact datatypes (new types Base , obs-7 DataType , bnd-10 BackboneType ), and vs-2 + fix the description for eld-8 [ Task , Task , Task , Task , Task , Task , Task , Task , Task , Task ] Fix the XPath invariant for dom-3 [ Source ] Fix the definition for entered-in-error for Event , Request introduce CanonicalResource and SupplyDelivery [ Source MetadataResource ] interfaces
  • Fix the short descriptions for the following code elements: ActivityDefinition.intent , AppointmentResponse.participantStatus , CarePlan.status , CarePlan.activity.detail.kind , ClinicalImpression.status , CodeSystem.filter.operator , Communication.status , Communication.priority , CommunicationRequest.status , CommunicationRequest.priority , Contract.status , Contract.contentDefinition.publicationStatus , DeviceRequest.status , DeviceRequest.intent , DeviceRequest.priority , DocumentReference.docStatus , GraphDefinition.link.target.compartment.code , Media.status , MedicationDispense.status , MedicationRequest.intent , NutritionOrder.status , NutritionOrder.intent , Procedure.status , RequestGroup.status , RequestGroup.intent , ServiceRequest.status Major upgrade to Subscription resource and ServiceRequest.intent - they had been listing the wrong codes [ Source ] Fix Implicit SNOMED CT Value sets in example concept maps [ Task ] pub/sub patterns
This technical correction also includes earlier changes made without releasing a new version: Fix external links for the Implementation Guide Registry and the FHIR Registry [ Task
4.1.0 ] Current build after 4.1.0 release
4.0.0 4.1.0

R4 : Dec 27, 2018. First Normative content, with many significant changes

Note that between R3 and R4, nearly 3000 change proposals were applied to the specification, including >1000 substantive changes, of which 339 were labeled 'non-compatible'. As such, providing a comprehensive list of changes between specifications is not appropriate. To help see and understand the differences between the specification releases, implementers can can:

To help implementers, the more significant changes are listed here:

3.6.0 Current build after 3.5.0 release
3.5.0

Release R4 Ballot #1 : Sept 20, 2018. R4 ballot #2

Major changes from R4 Ballot 1 (3.3.0):

Description Committee + Tasks Pages
All Ballots
Change the canonical URL for all v2 and v3 CodeSystems and ValueSets (and some FHIR ones too), to
http://terminology.hl7.org (from the Unified Terminology Process) Breaking change!
(no task: Vocab committee decision) todo
Normative / Infrastructure
Added reference.type FHIR-I: GF#13543 icon References between Resources ΔB
Clarify definition of is-modifier + impacts on modifier extensions. Note: this lead to breaking changes
on a few extensions (changed from modifierExtension to normal extension)
FHIR-I: GF#16188 icon Conformance Rules ΔB , Extensibility ΔB
Add mode parameter to /metadata FHIR-I: GF#14444 icon RESTful API ΔB
Enhance/extend rules around changes between versions FHIR-I: GF#13089 icon Version Management Policy ΔB
Add fhirVersion parameter to application/fhir mime type FHIR-I: GF#16165 icon RESTful API ΔB
Add the $versions operation FHIR-I: GF#17009 icon Capability Statement Operations ΔB
Allow exponential form for decimals (with corresponding consequences for precision) FHIR-I: GF#16874 icon Data Types Datatypes ΔB , XML ΔB
Describe use of exponential form when searching numbers (+ clarifications for precision) FHIR-I: GF#16369 icon Search ΔB
Remove support for operations on historical resources Breaking change! FHIR-I: GF#17258 icon Operations ΔB
Change Money Type to make it simpler Breaking change! FHIR-I: GF#16297 icon Data Types Datatypes ΔB
Change ElementDefinition.binding.valueSet to only be of type canonical Breaking change! FHIR-I: GF#16055 icon Element Definition ΔB
Remove restriction on Bundle containing multiple versions of the same resource Breaking change! FHIR-I: GF#17085 icon Bundle ΔB
Rename Binary.content to Binary.data and exclude it from summary (which makes it optional) Breaking change! FHIR-I: GF#16998 icon , GF#16898 icon Binary Resource ΔB
Normative / Conformance + Terminology
Remove ValueSet.$expand profile parameter, and add parameters from ExpansionProfile Breaking change! Vocab: GF#16337 icon & GF#16490 icon ValueSet.$expand ΔB
Remove ValueSet.$expand.limitedExpansion parameter, and document how to use count instead Breaking change! Vocab: GF#16449 icon ValueSet $expand operation ΔB
Move Valueset.extensible to an extension Vocab: GF#16427 icon ValueSet ΔB
Add CapabilityStatement.implementation.custodian FHIR-I: GF#16342 icon CapabilityStatement ΔB
Add CapabilityStatement.imports FHIR-I: GF#14299 icon CapabilityStatement ΔB
Normative / Observation
Update definition of subject and add note safety page the focus element OO: GF#16136 icon Observation ΔB
Changed cardinality of Observation.interpretation and
Observation.component.interpretation from 0..1 to 0..*
OO: GF#16231 icon Observation ΔB
Changed Observation.context to Observation.encounter with type Reference(Encounter) . Breaking change! OO: GF#17661 icon Observation ΔB

This is only the major changes . More comprehensive lists can be found in the ballot introduction (later removed).

Major changes in the other parts of the specification:

3.4.0 Current build after 3.3.0 release
3.3.0

Release R4 Ballot #1 : Apr 3, 2018. R4 ballot #1. Major changes from R3:

3.2.0

Release R4 Draft : Dec 21, 2017. R4 draft ballot. Major changes:

3.1.0 R4 development begins
3.0.0

Release 3 : Mar 21, 2017. STU3

This is the full FHIR Release 3 (R3). R3 is a complete overhaul of the specification from R2, with over 2400 change proposals process, and applied in R3. Of those changes, 380+ are labeled as a breaking change. Given this level of change, there is no useful way to present a single change list. Users can use the R2/R3 difference comparison, the R2 <-> R3 transforms, or the "Compare to R2" link at the foot of every page to help visualise the differences between R2 and R3.

Many of the changes made in this release (since 1.8.0) are in response to Quality Assurance processes in HL7, with a goal of readying the specification for Normative processes in R4:

Roll up: Of all the many changes (thousands) between R2 and R3, these are the most significant:

1.9.0

FHIR Rolling Build, 2016 Dec onwards

1.8.0

FHIR QA Release, Dec 6, 2016

STU 3 Candidate, and also the basis for several implementation guide ballots and the San Antonio Jan 2017 Connectathon icon

Breaking Changes Summary:

These are only the more significant changes, there were many 100s of changes made in response to ballot comments and ongoing implementation experience. These include breaking changes to may resources. Structural changes are summarized here , and Transforms between DSTU 2 and STU 3 are provided for many resources.

1.6.0

FHIR STU3 ballot, Aug 11, 2016

STU 3 ballot version, and also the basis for the Baltimore Sept 2016 Connectathon icon

Publication Changes:

  • Move the US Realm implementation guides out of the specification (see http://www.fhir.org/guides/registry icon )
  • Rework the home page, and introduce modules as a way to navigate the specification + add significant new implementer advice (e.g. " Getting Started ")
  • Change the Navigation menu to focus on indexes to the content in the specification
  • Move FHIRPath expression language to its long term home icon

Technical Changes:

  • RESTful API
    • Change the FHIR mime type to application/fhir+xml|json instead of application/xml|json+fhir ( breaking change , for conformance to W3C+IETF rules)
    • Add new uses for the Prefer header (return OperationOutcome, and manage behavior related to unknown / unsupported search parameters
    • Deprecate use of the OPTIONS command to retrieve the CapabilityStatement
    • Add support for conditional references to the transaction interaction
    • Add reverse chaining
  • Formats: No change to XML + JSON formats. Add Turtle Format , and related validation tools
  • For Data Types Datatypes and Resources, there is formal difference analysis from DSTU2 (also found throughout the specification), and transforms between DSTU 2 and STU 3 are provided for many resources
1.5.0

FHIR Current Build Update, July 8 2016

Update current version to 1.5 to prevent confusion with implementations still running the May 2016 version.

  • There are many changes in this version from 1.4.0, but no formal list is provided. A formal list will be provided for 1.6 (as a diff to 1.4)
1.4.0

FHIR Connectathon 12 Snapshot, Mar 30 2016

Frozen base for Connectathon 12 & For Comment ballots:

1.2.0

FHIR Connectathon 11 Snapshot, Dec 11 2015

Frozen base for Connectathon 11:

  • Remove GuidanceRequest
  • Add new draft resources: MolecularSequence , ExpansionProfile
  • Modifications to Financial Resource & TestScript resource

Note: this version is temporary, and was removed after Connectathon 11 was complete

1.1.0

GAO Ballot + technical corrections, Dec 2 2015

A ballot publication for the GAO Ballot that also includes:

  • Various technical corrections to the generated snapshots
  • Populate FHIRPath expressions in extensions for all search parameters and invariants
  • Add new draft resources: GuidanceRequest , GuidanceResponse , ModuleMetadata , ModuleDefinition , Library , DecisionSupportServiceModule , DecisionSupportRule , OrderSet , Measure
  • Major restructure of Questionnaire
1.0.2

Technical Correction 1, Oct 24 2015

A series of technical corrections to the specification following extensive review:

  • Corrections to Extension cardinalities in implementation guides
  • Corrections in the conformance resources that support the specifications
  • Correct several erroneous invariants
  • Various typos, broken links, and fixes in examples
  • For a comprehensive list of corrections, see the Task list for FHIR DSTU2 Technical Correction 1 icon
1.0.1

DSTU 2, Sept 23 2015

Changes of significance during the QA process:

  • Remove the Clinical Quality Improvement Framework (CQIF) from this published version
  • made fixes to generated schematrons
  • updated generated comformance resources (StructureDefinitions and SearchParameters) so they were consistent with the specification
  • Many spelling / grammar / broken link fixes
1.0.0

DSTU 2 QA Preview, Aug 31 2015

This version had extensive change as a result of the May 2015 DSTU ballot, ongoing testing, and the open change proposals (1317 tasks). The extent of the changes is best illustrated by the number of the list of changes labeled 'breaking change' icon - 158 changes of 1317 total tasks. Below is a list of the most important changes:

0.5.0

DSTU Ballot, May 2015

This version had extensive change as a result of the January 2015 Draft ballot, ongoing testing, and the open change proposals (over 800 tasks). The list below is a summary of the major changes to resource content. It shows only a limited number of the overall changes.

Enumerations

  • All spaces removed
  • Extensive content changes not noted here

New Data Types Datatypes

Changed Data Types Datatypes

  • Coding - remove valueSet property
  • Attachment - add creation
  • Identifier - replace label with type
  • Timing - major rework of content
  • ElementDefinition - add label, code, rename 'formal' to definition, rename synonym to alias, add language to mapping, remove conformance and isExtensible and replace with strength

New Resources

Removed Resources

  • CarePlan2 -> collapsed into CarePlan
  • FamilyHistory -> broken up into FamilyMemberHistory
  • InstitutionalClaim, OralHealthClaim, PharmacyClaim, ProfessionalClaim, VisionClaim -> collapsed into Claim
  • Other - use Basic instead
  • PendedRequest,Readjudicate, Reversal, StatusRequest, StatusResponse - use ProcessRequest/Response instead
  • SupportingDocumentation - use DocumentManifest instead
  • ProcessRequest, ProcessResponse - use Task instead

Renamed Resources

  • Alert -> Flag: 'alert' made people think it was an action like an alarm
  • SecurityEvent -> AuditEvent: it wasn't just for security purposes
  • ClinicalAssessment -> ClinicalImpression: people got confused with 'assessment' tools like APGAR score
  • Profile -> StructureDefinition: 'Profile' is the process, a package of statements

Changes Inside Resources

  • Parameters - allow parameter.part to contain a resource
  • AllergyIntolerance - rename subject to patient
  • Appointment - remove lastModifiedBy/lastModified, add location
  • AppointmentResponse - remove lastModifiedBy/lastModified, add rename individual to actor
  • AuditEvent - add .event.purposeOfEvent, participant.location, .policy, and .purposeOfUse
  • Bundle - major reorganization
  • CarePlan - pull goal out + other reorganization
  • ClinicalImpression - add status, replace careplan & referral with trigger, rename diagnosis to finding, make plan 0..*,
  • Composition - change .section.content to refer to List only, not any
  • ConceptMap - change identifier to url, add useContext, change telecom to contact,
  • Condition - rename subject to patient, rename status to clinicalStatus, change to bodySite = code or Reference(BodySite), rename .codeableConcept to .code
  • Conformance (now CapabilityStatement) - change identifier to url, add useContext, change telecom to contact, add requirements and copyright, add support for conditional operations,
  • Contract - extensive rewrite
  • Coverage - add bin, subscriberId
  • DataElement (now StructureDefinition ) - total rewrite to use ElementDefinition
  • Device - add status, manufactureDate
  • DeviceMetric - rename operationalState to operationalStatus, add measurementMode, rename calibrationInfo to calibration, change color to an enumerations
  • DeviceRequest / DeviceUseStatement DeviceUsage - change to bodySite = code or Reference(BodySite)
  • DiagnosticRequest- change to bodySite = code or Reference(BodySite)
  • DiagnosticReport - add encounter
  • DocumentManifest - add options for how content is referred to
  • DocumentReference - add format, remove policyManager, make content : Attachment, and remove several related attributes, remove service reference and add context.practiceSetting, sourcePatientInfo, and related
  • Encounter - add incomingReferralRequest, allow reason to repeat, rename diet to dietPreference
  • EpisodeOfCare - rename currentStatus to status, allow referralRequest to repeat,
  • Flag - rename subject to patient, change from note to code
  • Goal - add targetDate, statusDate, author, priority
  • HealthcareService - extensive rewrite
  • ImagingObjectSelection - remove retrieveAETitle, rename retrieveUrl to url, add frames
  • ImagingStudy - add laterality, change url to attachment
  • Immunization - add encounter, rename subject to patient, rename refusedIndicator to wasNotGiven, rename refusalReason to reasonNotGiven
  • ImmunizationRecommendation - rename subject to patient
  • List - add title, status, change ordered to orderedBy, add note
  • Location - remove status
  • Media - remove created (-> Attachment) Medication - add batch
  • MedicationAdministration - add reasonGiven, note, text. remove timing & maxDosePerPeriod
  • MedicationDispense - collapse to a single dispense, add daysSupply, note and substitution, change quantity to allow range
  • MedicationRequest - add note, change quantity to allow range,
  • MedicationStatement - add informationSource, status, dateAsserted, replace whenGiven with effective[x], remove device, add dosage.text
  • NamingSystem - add date, publisher,
  • NutritionOrder - extensive rewrite
  • Observation - change name to code, allow more types of value[x], change type of dataAbsentReason, change to bodySite = code or Reference(BodySite), allow identifier to repeat, add device,
  • OperationDefinition - change identifier to url, add useContext, change telecom to contact, change name to title, add reuqirements, idempotent,
  • OperationOutcome - change type of .issue.type
  • OrderResponse - rename code to orderStatus
  • Organization - remove location and contact.gender
  • Patient - communication to allow 'preferred'
  • Person - rename other to target
  • Practitioner - change type of birthDate, allow multiple roles per practitioner
  • Procedure - add status and category, change to bodySite = code or Reference(BodySite), allow date to be period too, add location, change followUp to code 0..*, add device tracking
  • ServiceRequest - change to bodySite = code or Reference(BodySite)
  • Provenance - change integritySignature to signature & make it a type, allow reference by Reference as well as URI
  • Questionnaire - add telecom
  • Schedule - move lastModified
  • SearchParameter - change telecom to contact, add status, experimental, date,
  • Slot - move lastModified
  • Specimen - change source to parent, change to bodySite = code or Reference(BodySite)
  • StructureDefinition - complete rewrite
  • Subscription - change type of tag, reanme url to endPoint,
  • ValueSet - change identifier to url, add useContext, change telecom to contact, replace purpose with useContext, add requirements, rename stableDate to lockedDate, change type of expansion.identifier, add expansion parameters
0.4.0

Draft For Comment, January 2015 Ballot

Breaking Changes (full list):

New Resources:

New Implementation Guides (see discussion of status )

  • Argonaut Project
  • Data Access Framework
  • Structured Data Capture & Structured Data Capture - Data Element Exchange
  • US Laboratory Order , Report & Report to Public Health
  • EHRS Functional model - Record Lifecycle Events
0.3.0
0.2.1
  • Minor new optional elements on value set for metadata, new extensions for all the rest of the VSD project metadata, formal profile to express basic minimum metadata for value set
0.2.0
  • Namespace: adjustments based on Grahame's feedback
0.1.0

Note: a useful tool for displaying the differences between pages is the W3C HTML Diff engine icon .