DSTU2 FHIR Release 3 (STU)

This page is part of FHIR DSTU 2 (v1.0.2) STU 3 (v3.0.2) in it's permanent home (it will always be available at this URL). It has been superceded by R4 . For a full list of available versions, see the Directory of published versions .. Page versions: R5 R4B R4 R3 R2 R3 See below R2 for version history details.

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

Major Milestones:

Feb 21, 2017 3.0.2 Release 3 (STU - Standard for Trial Use)
Oct 24, 2015 1.0.2 DSTU2 (Second Draft Standard for Trial Use)
Sept 30, 2014 0.0.82 DSTU1 (First Draft Standard for Trial Use)

This table lists substantive changes only.

This is the developmental version 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 gForge SVN archives .

publication minor revision
1.5.1 How FHIR Versioning works Version Changes
3.0.2

The FHIR version policy is based on Semantic versioning , but with some differences due 2nd Technical Corection to STU3 : Oct 24, 2019

Technical fixes to supporting collatoral. Specifically, the fact that FHIR is a specification, not a software API. following things were changed:

  • Fix Invariants on StructureDefinition - sdf-8,12,15,20
  • Fix XPath for Invariant Condition on con-4
  • Fix Invariant for Observation(obs-7)
  • Remove ElementDefinition Invariant eld-10
  • Fix date time & instant regexes
  • Fix Invariant on Vital Signs Profile vs-2
3.0.1

There is a single development version of FHIR. This undergoes cycles of development as managed Technical Corections to STU3 : April 19, 2017

Technical fixes to supporting collatoral, fixing wrong links, and correcting some erroneous documentation. Specifically, the following things were changed:

3.0.0

Release 3 : Mar 21, 2017. STU3

This is published. In version control terms, each published specification the full FHIR Release 3 (R3). R3 is a branch off complete overhaul of the development trunk, which may then itself undergo further specification from R2, with over 2400 change proposals process, and applied in R3. Of those changes, 380+ are labelled as HL7 maintains a breaking change. Given this level of change, there is no useful way to present a single change list. Users can use the published specification (though such changes are usually extremely minimal). 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.

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

Roll up: Of all the meaning. Some corrections may be judged not many changes (thousands) between R2 and R3, these are the most significant:

  • Change the FHIR mime type to create any expectation application/fhir+xml|json instead of application/xml|json+fhir ( breaking change , for conformance to a conformant application. W3C+IETF rules)
  • Substantive changes that are not breaking. These introduce new functionality - changes Rename the "Conformance" resource to " CapabilityStatement " and Deprecate use of the specification that create new capabilities - but would not render existing applications non-conformant if they do not change. OPTIONS command to retrieve the CapabilityStatement
  • Breaking changes would mean that previously conformant applications are no longer conformant Search Changes around errors in search parameters , missing data , sorting
  • Change HumanName .family from 0..* to 0..1
  • CodeSystem now separated out from ValueSet
1.9.0

Note that FHIR Rolling Build, 2016 Dec onwards

1.8.0

FHIR QA Release, Dec 6, 2016

STU 3 Candidate, and also the following are, by definition, considered non-breaking changes, even though some implementations (including basis for several implementation guide ballots and the reference implementations) may not be able to handle some consequences of these changes without error: San Antonio Jan 2017 Connectathon

Breaking Changes Summary:

Also, the examples These are never substantive. Every effort is only the more significant changes, there were many 100s of changes made in response to ensure that FHIR examples are correct, but ballot comments and ongoing implementation experience. These include breaking changes to the examples in the specification may resources. Structural changes are not considered substantive. Each FHIR version is identified by a string composed from 4 parts: publication.major.minor.revision. summarised 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

Publication Changes:

  • Incremented when HL7 publishes FHIR 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 an updated specification, e.g. a DSTU or normative version of FHIR way to navigate the specification + add significant new implementer advice (e.g. " Getting Started ")
  • HL7 plans Change the Navigation menu to do this every 1 focus on indexes to 2 years the content in the specification
  • The first DSTU was version 0 Move FHIRPath expression language to its long term home
major

Technical Changes:

  • Increments every time a RESTful API
    • Change the FHIR mime type to application/fhir+xml|json instead of application/xml|json+fhir ( breaking change is made , for conformance to W3C+IETF rules)
    • When a Add new publication is made, this is reset to 0 in uses for the publication, Prefer header (return OperationOutcome, and 1 in the development branch manage behavior related to unknown / unsupported search parameters
    • Since HL7 does not make breaking changes as technical corrections to a published specification, these versions Deprecate use of FHIR always have a version number X.0.n.r the OPTIONS command to retrieve the CapabilityStatement
    • Because Add support for conditional references to the development version transaction interaction
    • Add reverse chaining
  • Formats: No change to XML + JSON formats. Add Turtle Format , and related validation tools
  • For Data Types and Resources, there is formal difference analysis from DSTU2 (also found throughout the subject of ongoing analysis, debate, ballot specification), and repeated alterations, breaking changes transforms between DSTU 2 and STU 3 are to be expected 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.

  • Increments every time a substantive change There are many changes in this version from 1.4.0, but no formal list is made Resets provided. A formal list will be provided for 1.6 (as a diff to 0 any time the major version changes 1.4)
1.4.0

FHIR Connectathon 12 Snapshot, Mar 30 2016

Frozen base for Connectathon 12 & For Comment ballots:

1.2.0

Version FHIR Connectathon 11 Snapshot, Dec 11 2015

Frozen base for Connectathon 11:

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

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

1.0.2 1.1.0

Security Note, May 15, GAO Ballot + technical corrections, Dec 2 2015

New security note about risks associated with XML Entities 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
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 gForge tasks). The extent of the changes is best illustrated by the number of the list of changes labelled labeled 'breaking change' - 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 gForge 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

Changed Data Types

  • 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

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 - 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
  • DeviceUseRequest DeviceRequest / DeviceUseStatement - change to bodySite = code or Reference(BodySite)
  • DiagnosticOrder - 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
  • MedicationOrder 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
  • ProcedureRequest - 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 )

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 .