Go to file
markiantorno d36d030076 Release: v6.3.11
## Validator Changes

* Find value sets on tx server if not tx.fhir.org
* Do not send Content-Type header with GET requests for tx servers
* Fix npe validating code system
* Support discriminator by position
* Don't check type characteristics for unknown types

## WHO I18n Project

* Fix typos in phrases, and fix up handling of apostrophes in messages without parameters
* Test and fix for single quote escapes in I18n
* Create and test transifex configuration

## Rendering Changes

* Fix contact rendering to work properly
* Fix issue resolving contained resource rendering DiagnosticReports etc
* Handle case where Contact.value has extensions instead of a string value
* Render Parameterised types
* Fix bug with LOINC Code row showing wrongly in Profile Details view
* Partial implementation of type parameters
* Fixed rendering of actor-specific obligations, added elementIds to obligation narrative rendering
* Corrected ObligationsRenderer to handle multiple actors and multiple codes.  Also got obligations with elements to render properly (which means knowing whether you're on a table page or definitions page, what tab you're on, and whether the element for the obligation is in-scope for that tab (so you know whether to hyperlink or not).  Had to make links on the tables point to definitions because table anchors are not unique.

## Other code changes

* split out Base.canHavePrimitiveValue() from Base.hasPrimitiveValue()
* Refactor how observation profiles are registered in order to generalise management of extra profiles
  * Use validation policy to implement Observation profile rules
  * Rework validation policy management in standalone validator
* Try deploying javadoc with SNAPSHOT
* Add utility to unpack the spec.internals file
* v2 in FHIR tests
* Fix bug loading language pack NPMs
***NO_CI***
2024-06-06 22:46:44 +00:00
.azure/i18n-coverage-table Adjust table formatting and title 2024-04-23 11:46:41 -04:00
.github Update bidi-check with new png 2024-04-23 15:01:40 -04:00
.mvn/wrapper start moving file access to all go through ManagedFileAccess 2024-04-03 20:11:16 +11:00
org.hl7.fhir.convertors Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.core.generator start moving file access to all go through ManagedFileAccess 2024-04-03 20:11:16 +11:00
org.hl7.fhir.dstu2 Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.dstu3 Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.dstu2016may Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.r4 Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.r4b Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.r5 Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.report Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.utilities Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.validation Release: v6.3.11 2024-06-06 22:46:44 +00:00
org.hl7.fhir.validation.cli Release: v6.3.11 2024-06-06 22:46:44 +00:00
.codeql-config.yml Restore CodeQL regex queries (#1422) 2023-09-01 12:47:59 -04:00
.editorconfig Get this test working (#4) 2019-01-31 13:41:05 -05:00
.gitignore base line 2024-05-25 04:26:00 -05:00
LICENSE.txt Externalized code now committed 2019-01-13 14:33:14 -06:00
README.md Update README.md (#1610) 2024-05-07 12:09:38 -04:00
RELEASE_NOTES.md fix bug loading language pack NPMs 2024-06-06 22:18:31 +10:00
RELEASE_NOTES.template.md Create release notes template 2022-02-03 16:46:54 -05:00
cache-target-tasks-template.yml Refactor Master Pipeline (#1278) 2023-05-26 09:32:13 -04:00
checkstyle.xml Add basic checkstyle plugin config (#1122) 2023-02-24 15:05:49 -05:00
checkstyle_suppressions.xml Bump HAPI to 6.4.1 (#1237) 2023-04-27 18:11:25 -04:00
codecov.yml PR Build Refactor 2 (#1137) 2023-02-24 22:11:43 -05:00
compare updated code.bat generated patterns + improved package cache errors 2019-05-10 00:08:18 +10:00
cve-suppression.xml Add OWASP dependency check (#1347) 2023-07-14 10:56:40 -04:00
i18n-coverage-table.png Updating i18n-coverage csv and png table ***NO_CI*** 2024-05-30 07:28:27 +00:00
i18n-coverage.csv Updating i18n-coverage csv and png table ***NO_CI*** 2024-05-30 07:28:27 +00:00
master-branch-pipeline.yml Move i18n coverage png table to job in master pipeline (#1612) 2024-05-06 14:18:52 -04:00
mvnw Enable bulk -snapshot and -convert on multiple/wildcard -source (#945) 2022-10-17 10:51:00 -04:00
mvnw.cmd Enable bulk -snapshot and -convert on multiple/wildcard -source (#945) 2022-10-17 10:51:00 -04:00
owasp-suppression-file.xml Add OWASP suppression (#1377) 2023-08-01 14:03:40 -04:00
pom.xml Release: v6.3.11 2024-06-06 22:46:44 +00:00
pull-request-pipeline.yml Refactor Pull Request Pipeline (#1273) 2023-05-24 13:09:13 -04:00
r4 test resources.lnk fix bug validating unknown code system 2019-01-29 21:46:02 +11:00
release-branch-pipeline.yml For maven 3.9.0 plus, use wagon resolution (has retries) (#1205) 2023-04-04 21:09:48 -04:00
security.md more security doco 2024-05-18 08:03:27 -05:00
setup-and-cache-job-template.yml Refactor Master Pipeline (#1278) 2023-05-26 09:32:13 -04:00
setup-signing-tasks-template.yml Refactor Master Pipeline (#1278) 2023-05-26 09:32:13 -04:00
test-cli-exec-job-template.yml Refactor Pull Request Pipeline (#1273) 2023-05-24 13:09:13 -04:00
test-unit-jobs-template.yml Refactor Pull Request Pipeline (#1273) 2023-05-24 13:09:13 -04:00
transifex.yml fix typo 2024-05-29 10:04:01 +10:00
validation test resources.lnk fix bug validating unknown code system 2019-01-29 21:46:02 +11:00

README.md

HAPI FHIR - HL7 FHIR Core Artifacts

CI Status (master)
Build Status

This is the java core object handling code, with utilities (including validator), for the FHIR specification. included in this repo:

  • org.fhir.fhir.utilities: Shared code used by all the other projects - including the internationalization code
  • org.fhir.fhir.r5: Object models and utilities for R5 candidate (will change regularly as new R5 candidates are released)
  • org.fhir.fhir.r4b: Object models and utilities for R4B
  • org.fhir.fhir.r4: Object models and utilities for R4
  • org.fhir.fhir.dstu3: Object models and utilities for STU3
  • org.fhir.fhir.dstu2: Object models and utilities for STU2
  • org.fhir.fhir.dstu2016may: Object models and utilities for an early STU3 candidate still used by some implementers
  • org.fhir.fhir.convertors: Code to convert between versions, and other version independence code - uses all the above projects
  • org.fhir.fhir.validation: The FHIR Java validator (note: based on R5 internally, but validates all the above versions)
  • org.fhir.fhir.validation.cli: Holder project for releasing the FHIR validator as as single fat jar (will be removed in the future)

This code is used in all HAPI servers and clients, and also is the HL7 maintained FHIR Validator. In addition, this is the core code for the HL7 maintained IG publisher and FHIR main build publisher. As such, this code is considered an authoritatively correct implementation of the core FHIR specification that it implements.

Building this Project

Prerequisites

This project uses Java (minumum version 11), Apache Maven, and Lombok to build. You can find detailed instructions on setting up this project in your IDE here.

Build Commands

To build and add artifacts to your local Maven repository:

mvn install

To skip unit tests:

mvn -Dmaven.test.skip install

To clean and rebuild the terminology server caches:

clean

mvn clean -Dfhir.txcache.clean=true   

rebuild

mvn test -Dfhir.txcache.rebuild=true

The source contains cached terminology server responses for testing. If the expected responses have changed in any way, this cache should be cleaned and rebuilt with the above so that subsequent mvn test calls will have the most current responses cached.

To build only the validator_cli jar locally:

mvn clean package -Dmaven.test.skip=true --projects org.hl7.fhir.validation.cli --no-transfer-progress
cp org.hl7.fhir.validation.cli/target/org.hl7.fhir.validation.cli*-SNAPSHOT.jar ./validator_cli.jar

This will produce ./validator_cli.jar in the project root directory.

Releases

The built binary for the FHIR command-line validator is released through GitHub releases and can be downloaded directly here. For instructions on using this validator visit the FHIR Validator Confluence page.

All build artifacts are published on OSS Sonatype.

Current Versions

Project Current Release Latest SNAPSHOT
org.hl7.fhir.validation.cli Release Artifacts Snapshot Artifact
org.hl7.fhir.validation Release Artifacts Snapshot Artifact
org.hl7.fhir.dstu2 Release Artifacts Snapshot Artifact
org.hl7.fhir.dstu2016may Release Artifacts Snapshot Artifact
org.hl7.fhir.dstu3 Release Artifacts Snapshot Artifact
org.hl7.fhir.r4 Release Artifacts Snapshot Artifact
org.hl7.fhir.r5 Release Artifacts Snapshot Artifact

To use these artifacts in your project will need to add the proper dependency to your pom.xml file, or your build.gradle.kts file.

pom.xml
<repositories>
    <repository>
        <id>oss-snapshot</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
    </repository>
    <repository>
        <id>oss-releases</id>
        <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
</repositories> 
build.gradle.kts
repositories {
    maven {
        url = uri("https://oss.sonatype.org/content/repositories/snapshots")
    }
    maven {
        url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
    }
}

After adding the necessary repositories, you can include the libraries as follows:

org.hl7.fhir.validation.cli
Maven
<dependency>
    <groupId>ca.uhn.hapi.fhir</groupId>
    <artifactId>org.hl7.fhir.validation.cli</artifactId>
    <version>(latest version)</version>
</dependency>
Gradle
compile group: 'ca.uhn.hapi.fhir', name: 'org.hl7.fhir.validation.cli', version: '(latest version)'
org.hl7.fhir.dstu2
Maven
<dependency>
    <groupId>ca.uhn.hapi.fhir</groupId>
    <artifactId>hapi-fhir-structures-dstu2</artifactId>
    <version>(latest version)</version>
</dependency>
Gradle
compile group: 'ca.uhn.hapi.fhir', name: 'hapi-fhir-structures-dstu2', version: '(latest version)'
org.hl7.fhir.dstu3
Maven
<dependency>
    <groupId>ca.uhn.hapi.fhir</groupId>
    <artifactId>hapi-fhir-structures-dstu3</artifactId>
    <version>(latest version)</version>
</dependency>
Gradle
compile group: 'ca.uhn.hapi.fhir', name: 'hapi-fhir-structures-dstu3', version: '(latest version)'
org.hl7.fhir.r4
Maven
<dependency>
    <groupId>ca.uhn.hapi.fhir</groupId>
    <artifactId>hapi-fhir-structures-r4</artifactId>
    <version>(latest version)</version>
</dependency>
Gradle
compile group: 'ca.uhn.hapi.fhir', name: 'hapi-fhir-structures-r4', version: '(latest version)'
org.hl7.fhir.r5
Maven
<dependency>
    <groupId>ca.uhn.hapi.fhir</groupId>
    <artifactId>hapi-fhir-structures-r5</artifactId>
    <version>(latest version)</version>
</dependency>
Gradle
compile group: 'ca.uhn.hapi.fhir', name: 'hapi-fhir-structures-r5', version: '(latest version)'

Internationalization

This project implements internationalization for its user tools and utilities for several locales using a combination of GNU PO and Java Properties files.

Translation from the core library's original English locale to other supported locales is an ongoing process. The current level of coverage is calculated by the number of translated phrases, and can be viewed in the following figure:

Table of Internationalization Coverage

CI/CD

All integration and delivery done on Azure pipelines. Azure project can be viewed here.

  • Pull Request Pipeline is automatically run for every Pull Request to ensure that the project can be built via maven. [Azure Pipeline] [source]
  • Master Branch Pipeline is automatically run whenever code is merged to the master branch and builds the SNAPSHOT binaries distributed to OSSRH [Azure Pipeline][source]
  • Release Branch Pipeline is run manually whenever a release is ready to be made. It builds the release binaries, distributes them to artifact repositories and sends release notifications. [Azure Pipeline][source]

A brief overview of our publishing process is here.

For more detailed instructions on cutting a release, please read the wiki

Maintenance

Have you found an issue? Do you have a feature request? Great! Submit it here and we'll try to fix it as soon as possible.

This project is maintained by Grahame Grieve, James Agnew, David Otasek and Mark Iantorno on behalf of the FHIR community.