luscii/php-fhir-model

FHIR Model, parser and serializer

v4.0.0 2023-10-30 16:30 UTC

This package is auto-updated.

Last update: 2024-11-07 10:06:50 UTC


README

This library includes a FHIR PHP model, together with serializers and parsers for JSON and XML. The code is generated by dcarbone/php-fhir, supplemented with tests.

Version: FHIR STU3

Installation

$ composer require luscii/php-fhir-model

Usage

// src/example.php:
require_once __DIR__ . '/../vendor/autoload.php';
$parser = new \HL7\FHIR\STU3\PHPFHIRResponseParser(false);

$json = '{"resourceType":"Patient", etc...}';
$resource = $parser->parse($json);
// Use $resource as an object

Can I submit changes to the code?

No for all code in src/, because this is the result of generating with dcarbone/php-fhir and will not be directly changed. Fixes and additions should be done in dcarbone/php-fhir and not here.

Pull requests with changes to src/ will be rejected unless they come from a repository maintainer, or are small enough to be reviewable manually: under 500 lines of code. It would be impossible to review the code resulting from running the generator: changes can consist of millions of lines of code.

Yes for all code in tests/ and the organizational files in the repository root, those are all handwritten.

How can I use older FHIR versions?

Older versions (DSTU1, DSTU2) are not suppored in this library, but you can generate the classes yourself with dcarbone/php-fhir.

What's the strategy for future FHIR versions?

When a future FHIR version gets released, we will probably add it next to the current version (separate namespace) or create a new library. We don't want to create a branch per version, because we want to support using multiple versions simultaneously in one application using Composer as a dependency manager.

How to keep this repository up to date?

For maintainers: to update the files in this repository, follow these steps.

  1. Clone https://github.com/dcarbone/php-fhir (the generator) and make sure it's up to date
  2. Run ./bin/generate.sh --versions STU3 from the root of the generator
  3. Copy the generated classes here
  4. Commit

Disclaimer

This repository is currently primarily intended for our own use. We cannot commit yet to maintain it in the future, but feel free to fork if this becomes an issue. That being said, please file issues, feedback or improvements.