Go to file
Grahame Grieve 8c610c1a01 Regenerate R4B code 2022-04-22 11:56:24 +10:00
.github Create bidi-checker.yml 2021-11-24 16:39:41 -05:00
.mvn/wrapper Add maven wrapper 2019-01-13 15:55:51 -06:00
org.hl7.fhir.convertors Merge remote-tracking branch 'origin/master' 2022-04-22 07:36:53 +10:00
org.hl7.fhir.core.generator Regenerate R4B code 2022-04-22 11:56:24 +10:00
org.hl7.fhir.dstu2 Merge remote-tracking branch 'origin/master' 2022-04-22 07:36:53 +10:00
org.hl7.fhir.dstu3 Merge remote-tracking branch 'origin/master' 2022-04-22 07:36:53 +10:00
org.hl7.fhir.dstu2016may Merge remote-tracking branch 'origin/master' 2022-04-22 07:36:53 +10:00
org.hl7.fhir.r4 Merge remote-tracking branch 'origin/master' 2022-04-22 07:36:53 +10:00
org.hl7.fhir.r4b Regenerate R4B code 2022-04-22 11:56:24 +10:00
org.hl7.fhir.r5 Merge remote-tracking branch 'origin/master' 2022-04-22 07:36:53 +10:00
org.hl7.fhir.report Updating version to: 5.6.42-SNAPSHOT and incrementing test cases dependency. 2022-04-12 04:03:54 +00:00
org.hl7.fhir.utilities Merge remote-tracking branch 'origin/master' 2022-04-22 07:36:53 +10:00
org.hl7.fhir.validation Merge remote-tracking branch 'origin/master' 2022-04-22 07:36:53 +10:00
org.hl7.fhir.validation.cli Updating version to: 5.6.42-SNAPSHOT and incrementing test cases dependency. 2022-04-12 04:03:54 +00:00
.editorconfig Get this test working (#4) 2019-01-31 13:41:05 -05:00
.gitignore fix r4b snapshot generation 2022-04-05 16:26:33 +10:00
LICENSE.txt Externalized code now committed 2019-01-13 14:33:14 -06:00
README.md Update README.md 2022-02-08 16:52:51 -05:00
RELEASE_NOTES.md Updating version to: 5.6.42-SNAPSHOT and incrementing test cases dependency. 2022-04-12 04:03:54 +00:00
RELEASE_NOTES.template.md Create release notes template 2022-02-03 16:46:54 -05:00
compare updated code.bat generated patterns + improved package cache errors 2019-05-10 00:08:18 +10:00
master-branch-pipeline.yml Update master-branch-pipeline.yml for Azure Pipelines 2021-10-12 12:26:52 -04:00
mvnw Use HTTP instead of HTTPS on maven wrapper 2019-01-28 11:17:15 -05:00
mvnw.cmd Use HTTP instead of HTTPS on maven wrapper 2019-01-28 11:17:15 -05:00
pom.xml Updating version to: 5.6.42-SNAPSHOT and incrementing test cases dependency. 2022-04-12 04:03:54 +00:00
pull-request-pipeline-parameterized.yml Update maven config and tests to allow Java 8, 11 and 17 builds (#653) 2021-11-16 09:26:53 -05:00
pull-request-pipeline.yml Update maven config and tests to allow Java 8, 11 and 17 builds (#653) 2021-11-16 09:26:53 -05:00
r4 test resources.lnk fix bug validating unknown code system 2019-01-29 21:46:02 +11:00
release-branch-pipeline.yml Adjust indents 2022-02-03 17:01:41 -05: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.

CI/CD

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

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

Building this Project

This project uses Apache Maven to build. To build:

mvn install

Note that unit tests will run, but are currently not set to fail the build as they do not all pass. This is being worked on.

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.

IDE Setup

This project uses the Lombok java library, which requires some configuration to work correctly with an IDE. Currently, the project works in Intellij and Eclipse, and you can find instructions on how to configure Lombok for each here.

Publishing Binaries

An brief overview of our publishing process is here.

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

Download

All binaries are published on OSS Sonatype. You 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)'

Note that the built binary validator is released through GitHub releases.

Maintenance

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