Testing FHIR AU Implementations with Inferno: A Comprehensive Guide
Arash Yousefi

Martin Yousefi (Software engineer)

Clock Icon7 min read
Share
Facebook IconLinkedin IconTwitter Icon
Testing FHIR AU Implementations with Inferno: A Comprehensive Guide
Australia has embraced Fast Healthcare Interoperability Resources (FHIR) to improve healthcare data exchange. This article explores how Inferno can be employed to validate the correct implementation of FHIR standards in the Australian healthcare landscape.

Understanding FHIR AU and Inferno

FHIR AU, also called AU Core, is the Australian version of HL7 FHIR standards. It includes resources and extensions specifically for the Australian healthcare system. Inferno is an open-source tool used to test FHIR implementations against these standards.

The importance of FHIR AU in Australia’s healthcare system is that it helps healthcare providers share data easily. This improves patient care and supports better communication between health information systems. By following FHIR standards, healthcare organizations can keep patient data organized and accessible, leading to better clinical decisions and outcomes.

Using Inferno, healthcare providers can thoroughly test their FHIR implementations to ensure they meet the AU Core standards. This validation process is key to maintaining reliable health information systems, which ultimately benefits both patients and healthcare professionals.

Utilizing Inferno for Testing

Inferno offers a detailed testing environment where developers can run tests on their FHIR servers. These tests check if the API works properly and whether the server complies with the AU Core implementation guide. Specific test kits for various FHIR profiles are available through the Inferno web interface.

By using Inferno, healthcare organizations and practitioners can find and fix problems in their FHIR implementations, improving the quality and interoperability of health data sharing in Australia. This proactive testing approach is essential for building trust and reliability in healthcare technology.

Accessing the AU Core Inferno Test Kit

To verify your FHIR implementation adheres to Australian standards, begin testing with the AU Core Inferno Test Kit. This specialized version, available at https://inferno.hl7.org.au, is pre-configured to run tests specifically against AU Core profiles and specifications. This web interface acts as a central hub for both FHIR API implementation testing and FHIR resource validation.

Once you navigate to the URL, you'll see a page similar to Figure 1.

figure-1-inferno-open
Figure 1: Inferno opening page.

On the main page of Inferno (see Figure 1), you can choose the test suite you want to use. For instance, we're going to test our FHIR AU server, which is located at: https://fhir.whitefox.cloud.

If you'd like more information about the implementation details of this server, check out this blog post: From Concept to Implementation.

To proceed with testing our FHIR server, we select "AU Core v0.4.1-preview" from the options.

Refer to Figure 2 for visual guidance.

figure-2-inferno-select-suite
Figure 2: Inferno test suite selection.

Next, we click on the AU Core FHIR API (as shown in Figure 3), which takes us to the testing page.

figure-3-inferno-api-au-core-print
Figure 3: Inferno AU Core FHIR API.

Now, we can see a page similar to Figure 4.

figure-4-inferno-testing
Figure 4: Inferno testing page.

To initiate the testing process, click the "Run all tests" button (Figure 5). While it's possible to execute tests individually for each profile and specification, we recommend running all tests at once. This approach has proven more reliable and efficient, especially when dealing with complex test scenarios involving “chained parameters."

figure-5-inferno-testing-pointer
Figure 5: Inferno run all tests button.

Figure 6 shows what the page should look like at this point.

figure-6-inferno-testing-page-api
Figure 6: Inferno testing API page.

On this page, you can input your preferred FHIR endpoint. The default address displayed is the Inferno server endpoint typically used for FHIR testing. To assess our server's performance, we will enter the endpoint https://fhir.whitefox.cloud/fhir (see Figure 7).

figure-7-inferno-testing-page-api-endpoint
Figure 7: Inferno testing API endpoint.

Please note that we do not modify any other fields, especially the resource IDs such as Patient IDs (see Figure 8). If you have added additional resources or wish to test a different subset, you can enter the IDs separated by commas.

figure-8-inferno-testing-page-api-patient-ids
Figure 8: Inferno testing API parameters.

When you click the “submit” button, the tests will run, and the results will appear in the left panel. You should see a page like Figure 9. For example, item 1.2 Patient Tests has passed and is shown in green, while item 1.9 Observation Waist Circumference Tests is not fully passed and isn’t green.

figure-9-inferno-test-results
Figure 9: Inferno test results.

Want to dive deeper into a specific profile or troubleshoot an issue? Simply click on the corresponding profile link. For example, clicking on section 1.6 provides a detailed overview of the test types included. Scroll down further to see the specific items being tested and examples of error messages with explanations (Figure 10).

figure-10-inferno-detailed-error
Figure 10: Inferno test results in detail.

You can now identify issues and errors in your FHIR resources. If you notice any problems related to the FHIR specifications and documentation, you can correct them and update the resources on your website's backend.

To set up the test data, we cloned the HL7 AU FHIR Test Data repository from https://github.com/hl7au/au-fhir-test-data. Our forked version is available at https://github.com/whitefoxcloud/au-fhir-test-data.

In the generated directory, we have added some extra items. You can use the following command to upload these resources to your specific website's backend:

UploadGenerated.bat https://fhir.whitefox.cloud/fhir Basic '' generated

As you can see, we've specified the URL of our FHIR server in the command. Alternatively, you can modify the resources as needed. For instance, to change the birthDate attribute of a Patient resource in the "generated" directory and reflect the update on the server, follow the instructions on GitHub and run this command:

UploadData.bat https://fhir.whitefox.cloud/fhir Basic '' generated Patient

This command will upload the modified Patient resource to the specified FHIR server endpoint.

Once you've tested your FHIR server, you can create and download a report outlining the test results. This report enables you to evaluate your server's performance and compare it with other FHIR servers. To access the report, just scroll down in the left panel and click the "report" button. You can also toggle the "Show details" options to customize the level of detail in your report. See Figure 11.

figure-11-inferno-report
Figure 11: Inferno test report.

Best Practices for FHIR AU Testing

To keep your FHIR AU implementation running smoothly and compliant:

  • Regularly update to the latest AU Core version.

  • Use a variety of test data to cover different scenarios. For example, we update our resources using scripts from the HL7 AU FHIR Test Data repository at

    https://github.com/hl7au/au-fhir-test-data

  • Automate testing as part of your development process.

  • Stay updated on AU Core changes.

Conclusion

Testing FHIR AU implementations with Inferno is essential for ensuring interoperability and compliance in the Australian healthcare system. By following the steps in this guide and regularly validating your implementation, you play a vital role in creating a more connected and efficient healthcare environment.

Keep in mind that healthcare interoperability is continuously evolving. Stay engaged with the AU FHIR community and keep refining your implementation to align with the latest standards and best practices. Together, we can improve healthcare delivery for everyone!

References