Skip to main content

Copying

The copy function is designed to facilitate the duplication of source code from one FHIR version to another.

Basic Example

Set Up Your Source and Target Directories

Ensure that you have two directories: one for the source FHIR version and another for the target FHIR version. For example, you might have a directory structure like this:

  • src/r5 (source)
  • src/r4b (target)

Prepare Conditional Preprocessing

If you need conditional preprocessing (such as including code only for specific FHIR versions), add preprocessing directives to your source files. For example:

// #if fhir >= r5
// Specific code for FHIR version r5 or higher
// #endif

Run the Codegen Command

Next, run this command from your terminal to use the copy function. Here's an example:

npx -y @bonfhir/codegen copy --source-fhir r5 --target-fhir r4b --source "./r5" --target "./r4b"
  • Adjust the --source-fhir and --target-fhir flags to match your source and target FHIR versions.
  • Specify the correct paths for your source and target directories in the --source and --target commands.
note

This tool expects prettier to be present in the environment, as it will run after the files are altered.

Verify the Results

Check your target directory (e.g., src/r5) to ensure that the files have been copied and preprocessed as expected. Imported FHIR version paths in these files should be updated to the target version (ex. e.g. import "@bonfhir/core/r5" -> "@bonfhir/core/r4b"), and conditional preprocessing directives should have been correctly applied.