All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Rabbit AMQP 0.9.1 support has been added to allow configuration with a different queue protocol.
- Readme has been updated to include the configuration details for AMQP 0.9.1
- Bug fix: allow tranformations to occur even when encompassingEnounter.effectiveTime.high values are null.
- Upgrade spring boot from 2.6.7 to 2.6.8 to fix vulnerabilities
- Fixed issue when sending a report with boolean attributes. Application was not responding to case sensitive booleans such as
value="True"
. - Compatibility issues when running the adaptor in development mode for Apple Silicon machines. Scripts have been updated to install correct Apple Silicon dependencies when running application on this architecture
- Add new timestamping format to following FHIR response properties:
Bundle.meta.lastUpdated
,Encounter.period
,ReferralRequest.occurrence
,ProcedureRequest.occurrence
,Composition.date
andList.date
- Fixed base64 parsing error when mapping pathway's skill sets, will now default to
Unknown
- Security updates
- Hotfix for Spring vulnerability CVE-2022-22965
- NGINX support for SHA-1 certificates
- Simplified mapping of
component/section/text
toComposition.section.text.div
- preserving original content as escaped XML embedded indiv
- Setting
Questionnaire.contact.telecom.system
property whenQuestionnaire.contact.telecom.value
is set - Adding more messages to integration tests
- Replace dom4j with standard Java xpath library
- Fixed issue with Date/Time parsing
- When handling repeat caller case, mapping only one
ClinicalDocument
with the newest date fromEffectiveTime
property - Mapping
IntendedRecipient.ReceivedOrganization
to FHIROrganization
resource and referencing it inHealthcareService.Location.ManagingOrganization
and inHealthcareService.ProvidedBy
properties - Adding
Device
resource and referencing it inReferralRequest.Requester.Agent
andList.Source
instead of hardcoded 'Device/1' value.Device
resource is populated with:FHIR value model 111 Adaptor version <current_version> - Possibility to override supported ODS codes and DOS IDs set in yaml and retrieve them from endpoint configured in
PEM111_ITK_EXTERNAL_CONFIGURATION_URL
env var. Poll intervals can be set inPEM111_ITK_FETCH_INTERVAL_MIN
env var.
- possibility to switch off SOAP Header validation using env var -
PEM111_SOAP_VALIDATION_ENABLED
- Fixed issues with Date/Time parsing
- Mapping
ClinicalDocument.effectiveTime
[ITK] toMessageHeader.timestamp
[FHIR] - When mapping
EncompassingEncounter.ResponsibleParty
toEncounter.Participant
thentype
is populated with:FHIR value Type.Coding.Code ATND Type.Coding.Display Responsible Party Type.Coding.System http://hl7.org/fhir/ValueSet/encounter-participant-type - When mapping
ClinicalDocument.Author
toEncounter.Participant
thentype
is populated with:FHIR value Type.Coding.Code PPRF Type.Coding.Display Author Type.Coding.System http://hl7.org/fhir/ValueSet/encounter-participant-type - Mapping
ITK ClinicalDocument.Informant.RelatedEntity.Code
toRelatedPerson.Relationship
:ITK FHIR codeSystem relationship.coding.system code relationship.coding.code displayName relationship.coding.display - Creating
RelatedPerson
resource whererelationship
is coded as emergency contact when mapping an entity with Telecom emergency use. - Mapping
EncompassingEncounter.Location.HealthCareFacility.Location
[ITK] toEncounter.location
[FHIR] - Including
typeCode
when mappinginformationRecipient
toOrganization
- Mapping
informationRecipient
only whentypeCode=PRCP
- Mapping
ClinicalDocument.participant
withtypeCode=REFT
toReferralRequest.recipient
instead ofEncounter.participant
- Possibility to reject incorrectly addressed messages by configuring list of supported ODS codes and DOS IDs
- DOS Service ID suffixed to ODS Code and mapped to FHIR MessageHeader/destination/endpoint according to pattern:
ODS_code_value:DOSServiceID:DOS_Service_ID_value, where:
name ITK field ODS_code_value Header/AddressList/Address field with only uri attribute/Uri attribute DOS_Service_ID_value Header/AddressList/Address field with both uri and type attributes/Uri attribute - AdministrativeGenderCode code attribute mapped to FHIR Patient/gender
based on guidance from 'Person Stated Gender Code NHS Data Model and Dictionary':
FHIR ITK AdministrativeGenderCode code FHIR Enumerations.AdministrativeGender 1 MALE 2 FEMALE 9 OTHER any other code UNKNOWN - All present EncompassingEncounter/Id mapped to FHIR using following mapping:
FHIR ITK Identifier[*].system EncompassingEncounter/Id root attribute Identifier[*].value EncompassingEncounter/Id extension attribute - All FHIR resources added id property, set to value from fullUrl property without 'urn:uuid:' prefix.
- Header/A:MessageID mapped to FHIR MessageHeader/fullUrl prefixed with 'urn:uuid:' and to FHIR MessageHeader/id
- Addr use="PHYS" attribute mapped to FHIR Address/type set to 'physical'
- When HandlingSpecification is primary interaction it's mapped to FHIR using following mapping:
FHIR value MessageHeader/event/code referral-1 MessageHeader/event/display Referral Encounter.text 111 Encounter Referral - When HandlingSpecification is copy interaction it's mapped to FHIR using following mapping:
FHIR value MessageHeader/event/code discharge-details-1 MessageHeader/event/display Discharge Details Encounter.text 111 Encounter Copy for Information
- Audit identity validation
- POCD precompiled classes added to repo
- CDA Section nesting preserved in FHIR
- ClinicalDocument versionNumber mapped to FHIR Bundle.identifier
- TLS Mutual authentication
- PractitionerRole resource is mapped to FHIR using following mapping:
FHIR ITK PractitionerRole/code ClinicalDocument/componentOf/encompassingEncounter/responsibleParty/assignedEntity/code PractitionerRole/Practitioner ClinicalDocument/componentOf/encompassingEncounter/responsibleParty/assignedEntity PractitionerRole/Organization ClinicalDocument/componentOf/encompassingEncounter/responsibleParty/representedOrganization
- Populate interaction type in FHIR message
- Author Organisation resource is mapped to FHIR using following mapping:
FHIR ITK Organisation author/representedOrganization - Author Organisation is linked to Composition → Author
- Author PractitionerRole resource is mapped to FHIR using following mapping:
FHIR ITK PractitionerRole.code.system author/assignedAuthor/code/codeSystem PractitionerRole.code.code author/assignedAuthor/code/code PractitionerRole.code.display author/assignedAuthor/code/displayName - Author PractitionerRole is linked to Composition → Author
- ITK address list is populated in FHIR MessageHeader using following mapping:
FHIR ITK MessageHeader/destination/endpoint/ DistributionEnvelope/header/addresslist
- ITK/SOAP Validation
- ITK -> FHIR mapping updates
- First release of 111 PEM Adaptor
- /report endpoint for ITK SOAP -> FHIR mapping