DSTU2

This page is part of FHIR DSTU 1 (v0.0.82) 2 (v1.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

See below for version history details.

1.4 1.5 Version History

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 .

1.4.1 1.5.1 How FHIR Versioning works Ongoing releases of the DSTU

This The FHIR version of policy is based on Semantic versioning , but with some differences due to the fact that FHIR is the DSTU , a specification, not a software API.

There is a single development version of FHIR. This undergoes cycles of development as managed by HL7. Each major cycle of development is concluded by a formal ballot, and then a new specification is published. In version control terms, each published on Feb-3 2014. The date at specification is a branch off the foot of development trunk, which may then itself undergo further change as HL7 maintains the pages is more recent because published specification (though such changes are usually extremely minimal).

The following kinds of ongoing releases changes may be made to the FHIR version. Subsequent releases: specification:

  • Sept 29, 2014 0.0.82 : Fix error Non-substantive changes do not cause changes in JSON examples, update to the license and trademark terms , any conformant application. For example, section renumbering, broken links, style corrections, typos, and updated reference implementations. The license has been changed to a Creative Commons license (instead of the one adapted from OMG). There is no clarifications that do not change in the intent or effect of the license. The use meaning. Some corrections may be judged not to create any expectation of the FHIR related trademarks has been clarified change to a conformant application.
  • Java Reference Implementation: Fix major bug in reading/writing JSON instances: Substantive changes that are not breaking. These introduce new functionality - changes to the json equivalent for xml:id is specified as "id" specification that create new capabilities - but the java reference implementation had been using "_id". This is a breaking changed for users of the JSON representation using the Java reference implementation. . Note also would not render existing applications non-conformant if they do not change.
  • Breaking changes would mean that this means previously conformant applications are no longer conformant

Note that all the example JSON instances in following are, by definition, considered non-breaking changes, even though some implementations (including the specification were wrong ; reference implementations) may not be able to handle some consequences of these have also been fixed changes without error:

  • creation of new resources
  • adding new elements in this update. an existing resource
  • Java Reference Implementation: rename primitive defining new data types from X
  • Adding new API operations

Also, the examples are never substantive. Every effort is made to XType (or String_ ensure that FHIR examples are correct, but changes to StringType). Fix bug the examples in parser related to xml whitespace parsing. Add UCUM support. Many improvements to the validation jar (including profile based validation). Link to Maven explicitly specification are not considered substantive.

Each FHIR version is identified by a string composed from 4 parts: publication.major.minor.revision.

publication
  • Incremented when HL7 publishes FHIR as an updated specification, e.g. a DSTU or normative version of FHIR
  • Pascal Reference Implementation: many minor fixes HL7 plans to supporting code, and flip *ST properties do this every 1 to be 2 years
  • The first DSTU was version 0
major
  • Increments every time a breaking change is made
  • When a new publication is made, this is reset to 0 in the main property publication, and use *Object for 1 in the underlying object development branch
  • Since HL7 does not make breaking changes as technical corrections to a published specification, these versions of FHIR always have a version number X.0.n.r
  • May-8 2014 : Change Because the development version to 0.0.81 (from 0.80) to align with new versioning policy , security alert about Narrative, clarify rules around is the status subject of content , ongoing analysis, debate, ballot and reference implementation updates repeated alterations, breaking changes are to be expected
minor
  • DSTU note : Add clarification about what content Increments every time a substantive change is formally part of made
  • Resets to 0 any time the specification, and major version changes
revision
  • Incremented any time a change is made to the status of examples specification
  • Schema: tighten At present, this is the schema SVN version number (this allows anyone to enforce the rules about narrative in reconstruct the specification. Also, reorganize source from which the schema constraint groups version was built)

Additional notes:

  • Changes to a formally published specification (except for DotNet compatibility minor publishing corrections, such as correcting broken links) are only made via announced technical corrections
  • All Reference Implementations: Change the way version numbering works - the The reference implementations have 2 versions - the version of the specification that they implement, and their own version now, in addition to version. Consult the FHIR reference implementation documentation for policy regarding this version number
  • Java: Fix major bug in reading/writing JSON bundles. The specification changed so that there was "resourceType" : "Bundle" instead of a surrounding "feed" object, published by the continuous integration service ( http://build.fhir.org/ ) build may not conform to this version policy, but the Java implementation hadn't versions published on the HL7 web site will (see Directory of published versions )
  • The first DSTU was published prior to these rules being agreed as v0.80-2286. This has been changed. updated to 0.0.81.2382 as a technical correction to align with this policy on 9-May 2014

1.5.2 Version History since DSTU #1

This meant that the java implementation wasn't consistent table lists substantive changes only.

Version Changes
1.0.2

Security Note, May 15, 2015

New security note about risks associated with XML Entities

1.0.2

Technical Correction 1, Oct 24 2015

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

  • Corrections to Extension cardinalities in implementation guides
  • Corrections in the other reference implementations, and it meant conformance resources that support the example JSON bundles specifications
  • Correct several erroneous invariants
  • Various typos, broken links, and fixes in examples
  • For a comprehensive list of corrections, see the specification were wrong Task list for FHIR DSTU2 Technical Correction 1
1.0.1

DSTU 2, Sept 23 2015 ; these have also been fixed

Changes of significance during the QA process:

  • Remove the Clinical Quality Improvement Framework (CQIF) from this published version
  • Java: Enforce FHIR rules about narrative (no active content), various made fixes to the client for history generated schematrons
  • updated generated comformance resources (StructureDefinitions and tags SearchParameters) so they were consistent with the specification
  • Pascal: Change minor error in 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 generation, enforce narrative rules (no active content), better handling of relative references, C#/.Net: Enforce FHIR rules about narrative (no active content), plus many others changes (see http://ewoutkramer.github.io/fhir-net-api/whats-new.html labelled 'breaking change' ) - 158 changes of 1317 total tasks. Below is a list of the most important changes:

  • General: introduced the maturity framework
  • ObjectiveC: rename Resource to BaseResource and ResourceReference to Resource RESTful API : add batch, several clarifications around versioning & transactional integrity, changed Bundle URL resolution rules
  • Javascript: Add Search : changed the Javascript implementation way <> etc.works, added _list parameter, changed rules around contained and included resources
  • Formats: added a note about whitespace in XML , added code generation schemas
  • Apr-3 2014: Fix archive links (below), add link to HIMSS video on home page, and reference platform changes: Data Types:
  • Resources:
  • Implementation Guide:
0.5.0

From the DSTU Ballot, May 2015

This version going forward, this page will track had extensive change as a result of the important changes to January 2015 Draft ballot, ongoing testing, and the specification. Note that an absolute full version history open change proposals (over 800 gForge tasks). The list below is available from a summary of the FHIR SVN major changes to resource content. It shows only a limited number of the overall changes.

1.4.1 Enumerations From DSTU ballot (v0.11) to the full DSTU (0.50?)

  • All spaces removed
  • Extensive content changes not noted here

New Data Types

Changed Data Types

  • Resource References : Coding - remove valueSet
  • Attachment - add creation
  • make a rule that any contained resources must be explicitly referred to from other content in the resource Identifier - replace label with type
  • remove "type" element Timing - it had no actual function 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 Bundles :

  • add the "fhir-base" link that SHALL be present if relative references are found in the bundle BodySite
  • Documents & Messages: document that these are marked with tags to identify them Claim
  • Tags : ProcessRequest Add defined security tags (labels), including some common security labels
  • Added Profile tags, and explained how they are used for validatio ProcessResponse

Extensions : Removed Resources

  • make rules around obligations for exchange CarePlan2 -> collapsed into CarePlan
  • Split out extensions and modifierExtensions 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

JSON : Renamed Resources

  • rename "_id" to "id" Alert -> Flag: 'alert' made people think it was an action like an alarm
  • change the way that primitive types are represented (split id and extension out into _[name]) SecurityEvent -> AuditEvent: it wasn't just for security purposes
  • change the way bundles and resources are represented at ClinicalAssessment -> ClinicalImpression: people got confused with 'assessment' tools like APGAR score
  • Profile -> StructureDefinition: 'Profile' is the base ("resourceType" property) process, a package of statements

Changes Inside Resources REST API :

  • The syntax of the URLs has changed (remove @ from the ids) Parameters - allow parameter.part to contain a resource
  • resources are no longer returned on create/update/transaction AllergyIntolerance - rename subject to patient
  • rules around the transction response have changed Appointment - remove lastModifiedBy/lastModified, add location
  • CORS AppointmentResponse is now recommended (and in the conformance resource) - remove lastModifiedBy/lastModified, add rename individual to actor
  • AuditEvent - add .event.purposeOfEvent, participant.location, .policy, and .purposeOfUse
  • Bundle - major reorganization
  • Searching : CarePlan - pull goal out + other reorganization
  • ClinicalImpression - add status, replace careplan & referral with trigger, rename diagnosis to finding, make plan 0..*,
  • clarify that searching is Composition - change .section.content to refer to List only, not just for rest any
  • Extend _sort parameter ConceptMap - change identifier to url, add useContext, change telecom to contact,
  • Add relevance score, and sorting by that Condition - rename subject to patient, rename status to clinicalStatus, change to bodySite = code or Reference(BodySite), rename .codeableConcept to .code
  • Remove the text parameter type, and Conformance - change identifier to url, add search parameters _text useContext, change telecom to contact, add requirements and _content copyright, add support for conditional operations,
  • Add _profile parameter Contract - extensive rewrite
  • Remove token modifiers :code and :anyns, and update documentation Coverage - add bin, subscriberId
  • Remove date modifiers and DataElement - total rewrite to use < etc. Define escaping for search parameters ElementDefinition
  • Change "integer" type Device - add status, manufactureDate
  • DeviceMetric - rename operationalState to "number" operationalStatus, add measurementMode, rename calibrationInfo to calibration, change color to an enumerations
  • DeviceUseRequest / DeviceUseStatement - change to bodySite = code or Reference(BodySite)
  • DiagnosticOrder - change to bodySite = code or Reference(BodySite)
  • /mailbox: allowed queries as well as messages and documents DiagnosticReport - add encounter
  • Terminologies : added several new terminologies, and changed the URI DocumentManifest - add options for SNOMED CT at the request of IHTSDO how content is referred to
  • The following pages have been rewritten (Editorial changes only): " Resource Definitions ", " Using codes DocumentReference " - add format, remove policyManager, make content : Attachment, and the overview page 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,
  • Data Types : Flag - rename subject to patient, change from note to code
  • Goal - add targetDate, statusDate, author, priority
  • Choice: HealthcareService - extensive rewrite
  • ImagingObjectSelection - remove choice and retrieveAETitle, rename retrieveUrl to url, add Coding.valueset frames
  • CodeableConcept: move primary ImagingStudy - add laterality, change url to Coding.primary attachment
  • Coding: Immunization - add primary, valueset and version & align code system version rules with core principles encounter, rename subject to patient, rename refusedIndicator to wasNotGiven, rename refusalReason to reasonNotGiven
  • Narrative: Changed the styles that can be used by authoring systems, and the obligations on rendering systems ImmunizationRecommendation - rename subject to patient
  • List - add title, status, change ordered to orderedBy, add note
  • Location - remove status
  • 1.4.1.2 Media - remove created (-> Attachment)
  • Conformance Related Changes 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 - add note, change quantity to allow range,
  • Document conformance rules MedicationStatement more extensively - add informationSource, status, dateAsserted, replace whenGiven with effective[x], remove device, add dosage.text
  • Conformance : NamingSystem - add date, publisher,
  • NutritionOrder - extensive rewrite
  • Add Conformance.profile 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,
  • Move system operations OperationDefinition - change identifier to rest.operations from rest.resource.operations, & url, add updateCreate and versionSpecificUpdates flags useContext, change telecom to contact, change name to title, add reuqirements, idempotent,
  • Add note about Content-Location header OperationOutcome - change type of .issue.type
  • Add mailbox for documents profiles OrderResponse - rename code to orderStatus
  • Organization - remove location and contact.gender
  • Patient - communication to allow 'preferred'
  • ValueSet : Person - rename other to target
  • Practitioner - change type of birthDate, allow multiple roles per practitioner
  • Procedure - add define.version 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
  • a new constraint that codes must be unique in the definition space ProcedureRequest - change to bodySite = code or Reference(BodySite)
  • tighten up publication (maps and cross links, expansions, deal with poly-heirarchies Provenance - change integritySignature to signature & deprecated codes, publish all v3 code systems, map the data types) make it a type, allow reference by Reference as well as URI
  • Questionnaire - add more uniqueness variants telecom
  • tighten notes around imported value sets Schedule - move lastModified
  • SearchParameter - change telecom to contact, add status, experimental, date,
  • Slot - move lastModified
  • Profile : Specimen - change source to parent, change to bodySite = code or Reference(BodySite)
  • StructureDefinition - complete rewrite
  • Remove the concept Subscription - change type of re-useable bindings, and collapse binding in line tag, reanme url to element definition endPoint,
  • Change definition.type.bundled ValueSet - change identifier to definition.type.aggregation, and url, add more invariants about uniqueness 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):

  • Introduce Replace atom and taglist with a Map declaration element native Bundle format ( 3728 , 3558 , 2889 ) (and also Binary )
  • JSON: change how extensions are represented ( 3471 ConceptMap : added Informative ConceptMap resource )
  • Also, harmonize the search parameters for the metadata parts of Conformance, Profile, ValueSet, and ConceptMap RESTful API: change how version specific upgrades work ( 3451 )
  • DataTypes:
  • Rename Schedule to Timing ( 3536 , 3236 1.4.1.3 )
  • Rename Contact to ContactPoint ( 3533 Resources ) and swap order of elements ( 3108 ))
  • Address - change zip to postCode ( 2888 )
  • General Changes: Standardized identifiers: AdverseReaction, AllergyIntolerance, CarePlan, Condition, FamilyHistory, Procedure, Questionnaire all have identifier 0..* Quantity : Correct schema spelling for "QuantityCompararator" ( 3531 )
  • Change allowable values for the following fields from string|CodeableConcept id type to just CodeableConcept: Encounter.reason, MedicationDispense.dispense.dosage.additionalInstructions, MedicationPrescription.reasonForPrescribing, MedicationPrescription.dosageInstruction.additionalInstructions 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 )
  • Alert Profile : allow 0..* discriminator ( 3131 improved ), and change the definitional documentation way discriminators work across resource boundaries ( 3124 ) + generate multiple types properly ( 2856 )
  • remove _validate interaction, and replace with $validate operation ( 3686 )
  • CarePlan Patient : separate birth time from birthDate ( 3731 made patient optional reworked ), Change Administrative Gender from a CodableConcept to link activities a Code. Also fixed the values as male|female|other|unknown with mappings to goals v2 and goals v3 ( 3070 )
  • DocumentReference : change encoding of Hash to concerns, and allow other resource kinds for activities Base64 ( 3291 )
  • Group : rename header to title ( 3126 )
  • Condition : several changes around split relatedItem into two ( 3111 )
  • Coverage: Questionnaire : drop questionnaire.group.question.remarks ( 3255 ) and move omitReason from extension to base resource has been removed ( 3260 )
  • QuestionnaireResponse : allow multiple answers ( 3146 )
  • Document ValueSet : replace ValueSet.compose.include.code with ValueSet.compose.include.concept ( 3258 ), added new rules about expansion content ( 3138 )
  • Renamed the Document resource Media : Rename element 'dateTime' to "Composition" 'created' ( 3174 ) and length to duration ( 2866 )
  • revised status list per o-o analysis of reporting cycles Remove DeviceObservationReport and Query
  • Collapse AdverseReaction into AllergyIntolerance
  • Appointment changes - individual field renamed sub-Type to "class" actor, and updated definitions accordingly added mappings to HL7 v2 and HL7 v3
  • changed the value set for confidentiality FamilyMemberHistory combined with List replaces FamilyHistory (with corresponding updates to related profiles)
  • changed the type Flag replaces Alert including improved clarification of .replaces, how it is used and the code set for Document.status has changed replacement of "note" with "code"
  • CarePlan significantly refactored including splitting Goal out as a distinct resource, moving elements between activity and made obligations around the handling detail, introduction of retracted documents more clear several new elements and supported relationship types

New Resources:

New Implementation Guides (see discussion of status )

0.3.0
  • Renamed Namespace to NamingSystem
  • Split QuestionnaireResponse from Questionnaire : and significantly revamped the Questionnaire in response to feedback from the Connectathon.
  • Added support for nested questions DataElement resource (has been previously discussed as ObservationDefinition)
  • new status codes Defined Subscription resource for evaluation
  • support for ordered answer values Add time data type
  • Define RPC-type operations on the RESTful interface, and add Operation Definition
  • Defined operations on several resources including ConceptMap , Questionnaire 1.4.1.4 and ValueSet Reference implementations
  • Conformance : 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 Definition
  • Profile : add Profile.url, Profile.structure.snapshot and Profile.structure.differential, and remove query definition (now in OperationDefinition)
  • Add pages for LOINC , RxNorm , and SNOMED CT
  • Java: all changes Significant rework for ConceptMap so it can be used to map between structures as implied by above changes, well as value sets
  • Add Contraindication and Risk Assessment and added examples to other resources in support of these
  • todo Add Referral Request
  • Add supportingInformation to DiagnosticOrder
  • C#: all changes as implied by above changes, Add fulfills to Encounter
  • Add date and age[x] to FamilyHistory
  • Additional metadata attributes Change cardinality of Location .identifier to facilitate validation, parsing and dynamic client/server behavior 0..*
  • Hl7.Fhir.Model dll now only contains Change cardinality of Practitioner .address to 0..*
  • Add Observation .encounter to 0..*
  • Temporarily added content for the generated model classes. Parsing, serialization and client support has been Structured Data Capture implementation guide , including profiles on several resources, conformance instances, etc. This content will be moved out to a separate open-source library at http://github.com/ewoutkramer/fhir-net-api an external specification once the necessary tooling is in place to support that form of publication.
0.2.1
  • Pascal: Minor new optional elements on value set for metadata, new extensions for all changes as implied by above changes, and the rest of the VSD project metadata, formal profile to express basic minimum metadata for value set
0.2.0
  • Fill out download with all dependent libraries 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 .

var disqus_shortname = 'fhirdstu';(function() {var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); Please enable JavaScript to view the comments powered by Disqus. comments powered by Disqus