31.22.0

Consumers 31.22.0, HIEBus 31.13.0

More restrictive conversion of internal values to Observation.valueQuantity

Breaking change

Internal observation values like series of numbers (e.g 12,35,398) were incorrectly rendered as Observation.valueQuantity (e.g. with a numeric value of 1235398) instead of a string. Better checks have been added to ensure that such values are returned as valueString.

The change can be disabled by system administrators to maintain backward compatibility.

(H/da7565cf)

Mapped more internal values (4/4)

(H/e3cd28db)

31.21.0

Consumers 31.21.0, HIEBus 31.12.0

Mapped more internal values (3/4)

(H/a456ef52)

Mapped more internal values (2/4)

(H/36dcc11a)

Mapped more internal values (1/4)

(H/07535b7a)

31.20.0

Consumers 31.20.0, HIEBus 31.11.0
Consumers 31.19.0, HIEBus 31.11.0

Various fixes

(H/5eccb47b)

Dropped type modifier requirement for chained search parameter

Reference search parameters that can reference multiple resource types in the base FHIR specifications required a resource type modifier when used chained - so for example

    [base]/ExplanationOfBenefit?provider.family=Smith

failed with an '. . . requires a valid URL value . . . or a resource type modifier' error - even if provider only references Practitioner in HIEBus. Now fixed, so the above search works.

(H/eb9902f7)

DiagnosticReport effective[x] and issued are no longer required when POSTing

(H/514bb11d)

31.18.0

Consumers 31.18.1, HIEBus 31.9.4
Consumers 31.18.0, HIEBus 31.11.0

Various fixes

(H/5eccb47b)

Dropped type modifier requirement for chained search parameter

Reference search parameters that can reference multiple resource types in the base FHIR specifications required a resource type modifier when used chained - so for example

    [base]/ExplanationOfBenefit?provider.family=Smith

failed with an '. . . requires a valid URL value . . . or a resource type modifier' error - even if provider only references Practitioner in HIEBus. Now fixed, so the above search works.

(H/eb9902f7)

DiagnosticReport effective[x] and issued are no longer required when POSTing

(H/514bb11d)

31.17.0

Consumers 31.17.0, HIEBus 31.9.1
Consumers 31.16.0, HIEBus 31.8.0

Added the DiagnosticReport.based-on search parameter

The system already had a non-standard DiagnosticReport.basedon search parameter, that still exists for backward compatibility.

(H/6b17865a)

Fix possible crash when getting the Provenance of Immunization resources

Getting the Provenance of certain Immunization resources - either using a search or the $everything operation - caused a crash - now fixed.

(H/42ec5d6a)

31.15.0

Consumers 31.15.0, HIEBus 31.7.0
Consumers 31.14.0, HIEBus 31.7.0

Fix some required elements handling in the Coverage, ExplanationOfBenefit, Claim and Condition resources

Coverage

ExplanationOfBenefit

Claim

Condition

(H/62191129)

Fixed output of ExplanationOfBenefit.supportingInfo.timing[x]

In some cases it was output as a timingDateTime, that is non-compliant - now fixed to always use either timingPeriod or timingDate.

(H/d6d40bc7)

Removed extra exensions to Code elements

Code elements had both a http://careevolution.com/fhirextensions#term and one or more http://careevolution.com/fhirextensions#coding extensions listing the same underlying data. Now only the http://careevolution.com/fhirextensions#term is generated.

(H/fe0778b7)

31.13.0

Consumers 31.13.0, HIEBus 31.6.0
Consumers 31.12.0, HIEBus 31.6.0
Consumers 31.11.0, HIEBus 31.6.0

Added system configuration to suppress duplicated claim data.

The exact same claim-derived data is available in the ExplanationOfBenefit / Claim resources and in claim-derived Condition, Procedure, Immunization and MedicationDispense resources - that is handy for clients that request only specific resources or that ignore ExplanationOfBenefit but it is duplicative for clients that get everything. A FHIR endpoint can now be configured to suppress duplicated claim data - so that there won't be any claim-derived Condition, Procedure, Immunization and MedicationDispense resources.

(H/673d2bba)

Observation.effective[x] can now be also a Period

HIEBus underlying data model changed with the addition of an (optional) end-date for an observation - that translates in an Observation.effectivePeriod. Previously there was only one date, so it was always effectiveDateTime.

(H/ab3c98f5)

31.10.0

Consumers 31.10.0, HIEBus 31.4.0
Consumers 31.9.4, HIEBus 31.4.0
Consumers 31.8.3, HIEBus 31.4.0
Consumers 31.8.2, HIEBus 31.4.0
Consumers 31.8.1, HIEBus 31.4.0
Consumers 31.8.0, HIEBus 31.4.0

Wrong OperationOutcome returned on internal server errors.

The error message was in issue.code and the issue type was in issue.details.text - now fixed swapping them.

(H/38ef4624)

Fix Patient.gender value on subsetted resurces

When searching Patients using _summary or _elements so that Patient.gender was not requested (subsetted resource) it was returned always as unknown (even if the underlying Patient did have a different value). Now fixed not populating Patient.gender when it is not requested.

(H/fd75198a)

Fix possible crash or wrong list of institutions in patients search results

The recent change that added the list of institutitons to the Patient resource (in the http://careevolution.com/fhirextensions#patientInstitutions custom extension) introduced a bug that could cause Patient searches either to crash (i.e. fail with error 500) or to return Patient resource listing more institutions than actually associated with the patient. Both issue applied only to non-merged endpoints - i.e. those returning a Patient resource for each underlying HIEBus patient record. Merged endpoints - i.e. returning a Patient resource for each HIEBus patient record group (that are the default) - did not present those issues.

(H/81619e4c, H/72bc710d)

31.7.0

Consumers 31.7.0, HIEBus 31.3.2
Consumers 31.6.1, HIEBus 31.3.2
Consumers 31.6.0, HIEBus 31.3.2

Search screen: remove unnecessary target type from chain search parameters

(C/c8ce7078)

31.5.2

Consumers 31.5.2, HIEBus 31.3.2

Fix possible crash or wrong list of institutions in patients search results

The recent change that added the list of institutitons to the Patient resource (in the http://careevolution.com/fhirextensions#patientInstitutions custom extension) introduced a bug that could cause Patient searches either to crash (i.e. fail with error 500) or to return Patient resource listing more institutions than actually associated with the patient. Both issue applied only to non-merged endpoints - i.e. those returning a Patient resource for each underlying HIEBus patient record. Merged endpoints - i.e. returning a Patient resource for each HIEBus patient record group (that are the default) - did not present those issues.

(H/81619e4c, H/72bc710d)

31.5.0

Consumers 31.5.1, HIEBus 31.3.0
Consumers 31.5.0, HIEBus 31.3.0

Add the data source custom extension to the CarePlan, Goal and Task resources

The data source has been added to the underlying data model for those three resources, new data might have it populated and reflected in the http://careevolution.com/fhirextensions#dataSource custom extension.

The change applies to all FHIR versions: DSTU2, STU3, R4.

(H/aa9a5ab6)

Add the data source custom extension to the FamilyMemberHistory resource

The data source has been added to the family member history data model, new data might have it populated and reflected in the http://careevolution.com/fhirextensions#dataSource custom extension.

The change applies only to FHIR R4, that is the only version that has the FamilyMemberHistory resource.

(H/187d1c82)

Fix ExplanationOfBenefit.created search parameter

Consider the adjudication date if the creation date is missing in the underlying data.

(H/e7e9a0aa)

Fill ExplanationOfBenefit.created with the adjudication date if there is no explicit creation date in the underlying data.

The adjudication date is a good proxy for when the explanation of benefit has been created

(H/c47435de)

Add the sequence custom extension to the MedicationDispense resource

The new http://careevolution.com/fhirextensions#medicationDispense-sequence custom extension contains the sequence number of the medication dispense within the claim (or ExplanationOfBenefit) it comes from.

(H/3fb48fdd)

Add contact type custom extension to the RelatedPerson resource

The RelatedPerson resource (DSTU2, STU3, R3) has a new CodeableConcept custom extension http://careevolution.com/fhirextensions#patientAssociatedParty-contactType indicating the type of contact represented by the RelatedPerson resource - e.g. if it is the emergency contact for the patient.

(H/bf2f8144)

Add access policies and patient institutions to FHIR output.

HIEBus has an internal 'access policy' concept associated to patients and encounters - controlling which users can see those resources and their associated data. Access policies are now mapped to security tags (meta.security elements) in the Patient and Encounter resources (all version). The tags have a fixed system http://careevolution.com/accesspolicyname and a value that is the access policy name.

HIEBus has an internal 'institution' concept - roughly corresponding to a health system or hospital. Each patient can be associated with one or more institutions - roughly the health systems or hospitals where they received care. This list is now mapped to the Patient custom extension http://careevolution.com/fhirextensions#patientInstitutions - each extension instance contains the code and (optional) name of the associated institution as a Coding element (with the code in code and the name in display).

(H/a84550bb)

Map new feed concept to the Endpoint resource

HIEBus version 31 introduces a new 'feed' concept, indicating a source of data - that can be POSTing FHIR resources, an HL7v2 feed, importing C-CDAs, a custom driver reading a database etc. etc. Feeds are associated with the (pre-exisitng) 'record authority' concept, that is mapped to FHIR Organization resources.

Feeds are now mapped to the Endpoint R4 resource, and the record authority - feed reference is mapped to the Organization.endpoint element. There is also a new endpoint Organization search parameter, allowing associated endpoints (feeds) to be included in an Organization (record authorities) search.

(H/29f51dd1)

Fix ExplanationOfBenefit.item.sequence so that it is never 0

In some cases pharmacy ExplanationOfBenefit.item.sequence was 0, that is not conformant - now fixed.

(H/c04b10e5, H/4d380d88)

Add the US Core birthsex extension to the Patient resource

It was not present in Patient resources returned by 'merged' endpoints - i.e. those returning a Patient resource for each HIEBus person - aka record group (as opposed to 'non merged' endpoints returning a Patient resource for each HIEBus patient).

(H/ba29b636)

31.3.0

Consumers 31.4.2, HIEBus 31.2.2
Consumers 31.4.1, HIEBus 31.2.1
Consumers 31.3.0, HIEBus 31.2.1

Fix crash in bulk export

Bulk export of some resource type (MedicationAdministration, Specimen) resulted in a crash, now fixed.

(H/957d79a3)

31.2.0

Consumers 31.2.0, HIEBus 31.2.0

Do not omit codings with same code but different systems in the coding extension

Coding elements can have custom extensions http://careevolution.com/fhirextensions#coding listing all the other corresponding codings known to the system (via mappings or because the underlying data supports more than one value), these extensions omitted codings that had the same code but different systems, this has now been fixed - all available codings are listed.

(H/d6653f0b)

Accept more reference search parameters without a type modifier

Some reference search parameter can reference multiple different resource types - e.g. ExplanationOfBenefit.provider can reference Organization or Practitioner or PractitionerRole. In these cases it was necessary to specify a type modifier or use a URL when searching - e.g. [base]/ExplanationOfBenefit?provider=[id] failed, it was necessary to use [base]/ExplanationOfBenefit?provider:Practitioner=[id] or [base]/ExplanationOfBenefit?provider=Practitioner/[id].

This restriction no longer applies now to all search parameters for which there is only one possible implemented resource - so in the example above even if there are three possible reference resource types in the specification in our implementation only Practitioner references are possible, and so now a request like [base]/ExplanationOfBenefit?provider=[id] is accepted and [id] is automatically interpreted as a Practitioner id.

(H/dff6ac7a)

Add the FamilyMemberHistory resources

R4 only.

The underlying data model is new as well, so only new data (or data that has been migrated to the new data model) will show up in the resource.

(H/3a99e88f)

Fix crash when posting twice the same CarePlan with an associated Goal

(H/e1fcc8f4)

Add more encounter class values

The underlying data model now support multiple coded values and also a free text for the encounter class. These extra value are mapped to the http://careevolution.com/fhirextensions#coding (pre-existing) and http://careevolution.com/fhirextensions#text (new) extensions of Encounter.class element.

(H/abf2d37c, H/b1d77aec)

31.1.0

Consumers 31.1.0, HIEBus 31.0.0
Consumers 31.0.7, HIEBus 31.0.2
Consumers 31.0.6, HIEBus 31.0.2
Consumers 31.0.5, HIEBus 31.0.2
Consumers 31.0.4, HIEBus 31.0.2
Consumers 31.0.3, HIEBus 31.0.2
Consumers 31.0.2, HIEBus 31.0.2

Fix ExplanationOfBenefit.item.sequence so that it is never 0

In some cases pharmacy ExplanationOfBenefit.item.sequence was 0, that is not conformant - now fixed.

(H/c04b10e5, H/4d380d88)

31.0.0

Consumers 31.0.1, HIEBus 31.0.0
Consumers 31.0.0, HIEBus 31.0.0

Display profile-specific mappings in the auto-generated documentation

ExplanationOfBenefit has different mapping depending on the target profile that are now displayed separately in its documentation page.

Also, resource documentation pages now include an index to their sections at the beginning (they can be quite long so that helps navigating them).

(C/0c2fd5bb)

Different mapping of Encounter.reasonCode

Breaking change

Encounter.reasonCode is mapped to/from a new internal EncounterReasons table instead than to/from problems associated with the encounter.

The change can be disabled by system administrators to maintain compatibility if needed.

(H/1d8ecf7c)

Do not output default code values different from unknown

Breaking change

When there was no available underlying value a number of required code elements were populated with a default value even if the value-set did not have an available unknown value to use - so for example Encounter.class was set to AMB if there was no available class. Now these codes are left empty with a DataAbsentReason unknown extension.

The affected elements are AllergyIntolerance.verificationStatus, CarePlan.activity.detail.status, CarePlan.intent, Goal.status, Task.status, ExplanationOfBenefit.type, ExplanationOfBenefit.status, Condition.category, Condition.verificationStatus, Claim.type, Encounter.class, Coverage.status, Coverage.relationship.

The change can be disabled by system administrators to maintain compatibility if needed.

(H/36c14651)

Remove the Measure, MeasureReport and RiskAssesment resources

Breaking change

They all got their data from Galileo, that is no longer used.

(H/fa4eb533)

Observation.valueQuantity with large values fix

Attempts to POST Observations with a valueQuantity.value greater than 999,999,999 used to fail, now it is accepted.

(H/e82fa8d8)

Coverage resource: map insured details to/from a contained Patient

The insured name, address, contact information etc. are now rendered in a contained Patient resource that is referenced by Coverage.subscriber. Previously they were rendered as custom extension, using a contained Patient is more standard. The custom extensions are preserved for backward compatibility.

When POSTing Coverage resource the system now also looks for a referenced contained Patient to get the insured details.

(H/1298a182)

ExplanationOfBenefit Carin BB STU2 mapping fixes

(H/713e2590)

Update Carin BB profiles URLs to 2.0

. . . for Coverage, Patient, Practitioner and Organization

(H/75d558c2)

Bulk export optimization to use less memory

This fixes potential out of memory errors when exporting lots of big DiagnosticReports or DocumentReferences

(H/4f73ef24)

ExplanationOfBenefit mapping changes to conform to version 2.0 of the Carin BB implementation guide

The ExplanationOfBenefit mapping is now profile-specific, i.e. the underlying claim data is mapped to/from ExplanationOfBenefit differently depending on which of the Carin BB profile it corresponds to (inpatient, oral, outpatient, pharmacy, professional)

Update the care team codes in valueset http://hl7.org/fhir/us/carin-bb/STU2/ValueSet-C4BBClaimInstitutionalCareTeamRole.html. Add new rendering which replaces performing. Left rendering for backward compatibility.

Add service-start-date search parameter

supportingInfo updates:

adjudication updates:

Documentation Updates:

In the Practitioner and (contained) Organization resources the npi identifier type system uri is now http://terminology.hl7.org/CodeSystem/v2-0203. Keeping also the old type system uri for backward compatibilty.

(H/97f43c0a)

Bulk export: reduce disk usage

Output files are created directly compressed instead of being first created uncompressed and then compressed.

(H/3edca3e2)

Fix mapping to a Coding with an extensible binding

When the binding is extensible (for example R4 Encounter.class) if the underlying data cannot be mapped to the bound value set the Coding is now set to the available data as-is - previously it was not set. This mimics the existing behavior for CodeableConcepts bound to an extensible value set.

(H/a46f6900)

Faster JSON parsing

Breaking change

POSTed JSON data is processed with a new JSON parser that is around 8 times faster than the old.

The new parser is more restrictive (and more secure...) than the old one:

(H/07512f0a)

Resources with missing required properties with a DataAbsentReason extension are US Core compliant

Previously such resources where (wrongly) considered non-complaint and so not tagged with their US Core profile URL (and removed if the endpoint is in 'strict compliance' mode)

(H/49bf5546)

Add the performer standard search parameter to the Observation resource

(H/68198b5b)

Support iterative includes

Support the :iterate modifier for the _include parameter - see the specifications.

(H/412a9f29)

Add the _lastUpdated standard search parameter to the DocumentReference resource

(H/18c63cd4, H/daf037e6)

Add versions to US Core and CarinBB profile URLs

The profile URLs placed in the meta.profile elements now include the version number - e.g. http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance|3.1.1 instead of http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance.

(H/e83bdc13)

Renamed the ValueSet reference search parameter to reference-concept

Breaking change

ValueSet reference is defined in the base specs to search by the code system, whereas what we search for is the entire system + code

(H/42087ee2)