This is the 4th 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  .
Note that a full archive history of everything is available
through the HL7 GitHub archives
.
Note that a full archive history of everything is available
through the HL7 GitHub archives  .
.
 
   | Version | Changes | 
  
	
		| 4.0.1 | Technical Corrections to R4: Oct-30, 2019. Corrections to invariants & generated conformance resources, and add ANSI Normative Status Notes 
        The FHIR Management Group  has reviewed 
        and approved all the changes, and confirmed that there is no substantive impact on the ANSI normative content of FHIR R4. 
        Note, however, that the first set of changes should be reviewed for impact on non-normative aspects of implementations.
       Corrections to the specification - resolving internal conflicts, or correcting definitional errors: 
         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  ]  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 to reassigning OID leaf values without updating the root in the past. This was causing problems for OID based terminology systems [Source  ]  Add new FHIRPath context variable %rootResource, 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, andhttp://varnomen.hgvs.org/->http://varnomen.hgvs.org- these are now corrected back to what they had said in R3 [Task  ]  Fix Binding 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 definitions (fixing problems in validation, no impact on implementations, except for code generators): 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 to 1) [Task  ]  Fix up search parameter table [Task  , 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  , Task  , Task  ]  Add note about markdown and XML signatures (to both XML and Signature pages) [Task  ]  Update language about specification status in summary page [Task  ]  Clarify copyright statement 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  ]  
         Fix the FHIRPath expressions for 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, 
           obs-7, 
           bnd-10 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-errorfor Event, 
         Request and SupplyDelivery
         [Source ]  
         Fix the short descriptions for the following codeelements:
            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 and
            ServiceRequest.intent - they had been listing the wrong codes [Source ]  Fix Implicit SNOMED CT Value sets in example concept maps [Task  ] This technical correction also includes earlier changes made without releasing a new version: | 
	
		| 4.0.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:
       
      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): 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: 
       Mark all content with a standards status - Normative, Trial use, Draft, or externalMany minor & major changes to data types, resources, operationsNew Resources:      
       BiologicallyDerivedProduct,
       CatalogEntry,
       EventDefinition,
       ExampleScenario,
       ImmunizationEvaluation,
       Invoice,
       ItemInstance,
       ObservationDefinition,
       OccupationalData,
       OrganizationAffiliation,
       SpecimenDefinition,
       TerminologyCapabilities,
       UserSession and
       VerificationResult,
       and a new set of resources for medication knowledge management:
       MedicinalProduct,
       MedicinalProductAuthorization,
         MedicinalProductClinicals  ,
         MedicinalProductDeviceSpec  ,
       MedicinalProductIngredient,
       MedicinalProductPackaged,
         MedicinalProductPharmaceutical  ,
       InsurancePlan,
         SubstancePolymer  ,
       SubstanceReferenceInformation and
       SubstanceSpecification.
       Renamed Resources: ProcedureRequest to ServiceRequest & BodySite to BodyStructureRemoved Resources: DataElement, ImagingManifest and ServiceDefinitionNew Pages: Asynchronous Use, Persistence/Data bases, FiveWs Pattern and Multi-language support | 
	
		| 3.2.0 | Release R4 Draft: Dec 21, 2017. R4 draft ballot. Major changes: 
       Ensure that all pages have a standards status, and enforce standards status throughout. Add dependency analysisMany minor changes to data types, resources, operationsNew Resources: CatalogEntry, SpecimenDefinition, ObservationDefinition, 
          ExampleScenario, TerminologyCapabilities, UserSession, Invoice, 
          InsurancePlan, OccupationalData, OrganizationAffiliation, VerificationResult, 
          MedicinalProduct, MedicinalProductAuthorization   MedicinalProductClinicals  , 
          MedicinalProductIngredient, MedicinalProductPackaged, 
            MedicinalProductPharmaceutical     MedicinalProductDeviceSpec  , 
          SubstanceSpecification,   SubstancePolymer  , SubstanceReferenceInformation, 
          BiologicallyDerivedProduct, ItemInstance 
       Add draft support for bulk data (Asynchronous API + nd-json format) | 
	
		| 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   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 3are 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   Publication Changes: 
       Move the US Realm implementation guides out of the specification (see http://www.fhir.org/guides/registry  )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 specificationMove FHIRPath expression language to its long term home  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 parametersDeprecate use of the OPTIONS command to retrieve the CapabilityStatementAdd support for conditional references to the transaction interactionAdd reverse chainingFormats: No change to XML + JSON formats. Add Turtle Format, and related validation toolsFor Data Types and Resources, there is formal difference analysis from DSTU2 (also found throughout the specification), and transforms between DSTU 2 and STU 3are 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:
       
       
       FHIR API and Serialization Format Enhancement
        
         The _sort parameter has been reworkedNew or extended search parameters for read, search or history: _type, _at, _summary, _elementsChange Turtle representation - now ready for trial 
        
       Conformance resources with significant breaking changes and behavior:
        
         StructureDefinition - Type Handling: Changes to how the structure definition types work: baseType replaces constrainedType (now type) & baseDefinition replaces baseCodeSystem now separated out from ValueSet: CodeSystem is now a first class resource type in order to support use throughout the FHIR eco-system, such as to support value set expansion and validation. It is intended to be used for distributing the smaller ad-hoc code systems that are ubiquitously encountered throughout the healthcare process.
       Other resources with significant breaking changes and behavior:
        
        
        
       Add new draft resources:
        
        | 
	
		| 1.2.0 | FHIR Connectathon 11 Snapshot, Dec 11 2015 
      Frozen base for Connectathon 11:
       
       Remove GuidanceRequestAdd new draft resources: MolecularSequence, ExpansionProfileModifications 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 Ballotthat also includes: 
       Various technical corrections to the generated snapshotsPopulate FHIRPath expressions in extensions for all search parameters and invariantsAdd new draft resources: GuidanceRequest,  GuidanceResponse,ModuleMetadata,ModuleDefinition,  Library,DecisionSupportServiceModule,DecisionSupportRule,OrderSet,  MeasureMajor 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 guidesCorrections in the conformance resources that support the specificationsCorrect several erroneous invariantsVarious typos, broken links, and fixes in examplesFor a comprehensive list of corrections, see the Task list for FHIR DSTU2 Technical Correction 1  | 
	
		| 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 versionmade fixes to generated schematronsupdated generated comformance resources (StructureDefinitions and SearchParameters) so they were consistent with the specificationMany 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'  - 158 changes of 1317 total tasks. Below is a list of the most important changes: 
        General: introduced the maturity frameworkRESTful API: add batch, several clarifications around versioning & transactional integrity, changed Bundle URL resolution rulesSearch: changed the way <> etc.works, added _list parameter, changed rules around contained and included resourcesFormats: added a note about whitespace in XML, added code generation schemasData Types:
          
            New data types: markdown, Annotation, changed data types: Coding, Quantity, Signature, Timing, Address, ContactPointchanges to ElementDefinition: add base, make type.profile repeat, remove invariant.name and replace with invariant.requirements, remove binding.name, add min/max valueResources:
          
            New resources: Account, ImplementationGuide, TestScriptrenamed: Contraindication -> DetectedIssue, MedicationPrescription -> MedicationRequest, QuestionnaireAnswers -> QuestionnaireResponseremoved: Supplychanged: almost all resources - too many to list (1317 tasks worth of changes) - add, remove elements, change types, references, definitions & value sets, re-order elements, provide much more documentation and new examplesImplementation Guide:
          
         | 
	
		| 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 removedExtensive content changes not noted here New Data Types Changed Data Types 
        Coding - remove valueSet property  Attachment - add creationIdentifier - replace label with typeTiming - major rework of contentElementDefinition - 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 CarePlanFamilyHistory -> broken up into FamilyMemberHistoryInstitutionalClaim, OralHealthClaim, PharmacyClaim, ProfessionalClaim, VisionClaim -> collapsed into ClaimOther - use Basic insteadPendedRequest,Readjudicate, Reversal, StatusRequest, StatusResponse - use ProcessRequest/Response insteadSupportingDocumentation - use DocumentManifest insteadProcessRequest, ProcessResponse - use Task instead Renamed Resources 
        Alert -> Flag: 'alert' made people think it was an action like an alarmSecurityEvent -> AuditEvent: it wasn't just for security purposesClinicalAssessment -> ClinicalImpression: people got confused with 'assessment' tools like APGAR scoreProfile -> StructureDefinition: 'Profile' is the process, a package of statements Changes Inside Resources 
        Parameters - allow parameter.part to contain a resourceAllergyIntolerance - rename subject to patientAppointment - remove lastModifiedBy/lastModified, add locationAppointmentResponse - remove lastModifiedBy/lastModified, add rename individual to actorAuditEvent - add .event.purposeOfEvent, participant.location, .policy, and .purposeOfUseBundle - major reorganizationCarePlan - pull goal out + other reorganizationClinicalImpression - 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 .codeConformance (now CapabilityStatement) - change identifier to url, add useContext, change telecom to contact, add requirements and copyright, add support for conditional operations, Contract - extensive rewriteCoverage - add bin, subscriberIdDataElement (now StructureDefinition) - total rewrite to use ElementDefinitionDevice - add status, manufactureDateDeviceMetric - rename operationalState to operationalStatus, add measurementMode, rename calibrationInfo to calibration, change color to an enumerationsDeviceRequest/DeviceUseStatement - change to bodySite = code or Reference(BodySite)DiagnosticRequest- change to bodySite = code or Reference(BodySite)DiagnosticReport - add encounterDocumentManifest - 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 relatedEncounter - add incomingReferralRequest, allow reason to repeat, rename diet to dietPreferenceEpisodeOfCare - rename currentStatus to status, allow referralRequest to repeat, Flag - rename subject to patient, change from note to codeGoal - add targetDate, statusDate, author, priorityHealthcareService - extensive rewriteImagingObjectSelection- remove retrieveAETitle, rename retrieveUrl to url, add framesImagingStudy - add laterality, change url to attachmentImmunization - add encounter, rename subject to patient, rename refusedIndicator to wasNotGiven, rename refusalReason to reasonNotGivenImmunizationRecommendation - rename subject to patientList - add title, status, change ordered to orderedBy, add noteLocation - remove statusMedia - remove created (-> Attachment)Medication - add batchMedicationAdministration - add reasonGiven, note, text. remove timing & maxDosePerPeriodMedicationDispense - collapse to a single dispense, add daysSupply, note and substitution, change quantity to allow rangeMedicationRequest - add note, change quantity to allow range, MedicationStatement - add informationSource, status, dateAsserted, replace whenGiven with effective[x], remove device, add dosage.textNamingSystem - add date, publisher, NutritionOrder - extensive rewriteObservation - 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.typeOrderResponse- rename code to orderStatusOrganization - remove location and contact.genderPatient - communication to allow 'preferred'Person - rename other to targetPractitioner - change type of birthDate, allow multiple roles per practitionerProcedure - 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 trackingServiceRequest - change to bodySite = code or Reference(BodySite)Provenance - change integritySignature to signature & make it a type, allow reference by Reference as well as URIQuestionnaire - add telecomSchedule - move lastModifiedSearchParameter - change telecom to contact, add status, experimental, date, Slot - move lastModifiedSpecimen - change source to parent, change to bodySite = code or Reference(BodySite)StructureDefinition - complete rewriteSubscription - 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): 
        Replace atom and taglist with a native Bundle format (3728  , 3558  , 2889  ) (and also Binary)JSON: change how extensions are represented (3471  )RESTful API: change how version specific upgrades work (3451  )DataTypes:
          Rename Schedule to Timing (3536  , 3236  )Rename Contact to ContactPoint (3533  ) and swap order of elements (3108  ))Address - change zip to postCode (2888  )Quantity: Correct schema spelling for "QuantityCompararator" (3531  )Change allowable values for the id type to include capital letters, and allow up to 64 chars (3750  )Restructure Profile - only one structure, and pull ExtensionDefinition out of Profile (3647, 3498), and pull SearchParameter out (3626  )Profile: allow 0..* discriminator (3131  ), and change the way discriminators work across resource boundaries (3124  ) + generate multiple types properly (2856  )remove _validate interaction, and replace with $validate operation (3686  )Patient: separate birth time from birthDate (3731  ), Change Administrative Gender from a CodableConcept to a Code. Also fixed the values as male|female|other|unknown with mappings to v2 and v3 (3070  )DocumentReference: change encoding of Hash to Base64 (3291  )Group: rename header to title (3126  )Condition: split relatedItem into two (3111  )Questionnaire: drop questionnaire.group.question.remarks (3255  ) and move omitReason from extension to base resource (3260  )QuestionnaireResponse: allow multiple answers (3146  )ValueSet: replace  ValueSet.compose.include.code with ValueSet.compose.include.concept (3258  ), added new rules about expansion content (3138  )Media: Rename element 'dateTime' to 'created' (3174  ) and length to duration (2866  )Remove DeviceObservationReport and QueryCollapse AdverseReaction into AllergyIntoleranceAppointment changes - individual field renamed to actor, and added mappings to HL7 v2  and HL7 v3 FamilyMemberHistory combined with List replaces FamilyHistory (with corresponding updates to related profiles)Flag replaces Alert including improved clarification of how it is used and replacement of "note" with "code"CarePlan significantly refactored including splitting Goal out as a distinct resource, moving elements between activity and detail, introduction of several new elements and supported relationship types New Resources: New Implementation Guides (see discussion of status) | 
  
   | 0.3.0 | 
       Renamed Namespace to NamingSystemSplit QuestionnaireResponse from Questionnaire and significantly revamped the
       Questionnaire in response to feedback from the Connectathon.Added DataElement (now StructureDefinition) resource (has been previously discussed as ObservationDefinition)Defined Subscription resource for evaluationAdd time data typeDefine RPC-type operations on the RESTful interface, and add Operation DefinitionDefined operations on several resources including ConceptMap, Questionnaire and ValueSetConformance (now CapabilityStatement): Change Conformance.rest.operation to Conformance.rest.interaction and Conformance.rest.resource.operation to Conformance.rest.resource.interaction, and add Conformance.rest.operation to point to Operation DefinitionProfile: add Profile.url, Profile.structure.snapshot and Profile.structure.differential, and remove query definition (now in OperationDefinition)Add pages for LOINC, RxNorm, and SNOMED CTSignificant rework for ConceptMap so it can be used to map between structures as well as value setsAdd Contraindication and Risk Assessment and added examples to other resources in support of theseAdd Referral RequestAdd supportingInformation to DiagnosticRequestAdd fulfills to EncounterAdd date and age[x] to FamilyHistoryChange cardinality of Location.identifier to 0..*Change cardinality of Practitioner.address to 0..*Add Observation.encounter to 0..*Temporarily added content for the Structured Data Capture implementation guide  , including profiles on several resources, conformance instances, etc.
       This content will be moved to an external specification once the necessary tooling is in place to support that form of publication. | 
 
   | 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 |  |