FhirParametersGenerator 0.5.0
dotnet add package FhirParametersGenerator --version 0.5.0
NuGet\Install-Package FhirParametersGenerator -Version 0.5.0
<PackageReference Include="FhirParametersGenerator" Version="0.5.0" />
<PackageVersion Include="FhirParametersGenerator" Version="0.5.0" />
<PackageReference Include="FhirParametersGenerator" />
paket add FhirParametersGenerator --version 0.5.0
#r "nuget: FhirParametersGenerator, 0.5.0"
#addin nuget:?package=FhirParametersGenerator&version=0.5.0
#tool nuget:?package=FhirParametersGenerator&version=0.5.0
FhirParametersGenerator
<p align="center"><img width="100" src="icon.png" alt="FhirParametersGenerator Logo"></p>
A PoC .NET source generator for mapping model classes to HL7 FHIR® Parameters resources.
Useful when interacting with FHIR® server operation endpoints.
Getting Started
dotnet add package FhirParametersGenerator
This sample code...
using FhirParametersGenerator;
using Hl7.Fhir.Model;
using Hl7.Fhir.Serialization;
var t = new TestModel
{
Age = 123,
Name = "Test",
Code = new("http://snomed.info/sct", "386661006", "Fever"),
};
// the ToFhirParameters() extension method is code-generated
var parameters = t.ToFhirParameters();
Console.WriteLine(parameters.ToJson(new() { Pretty = true }));
// apply this attribute to the desired model class
[GenerateFhirParameters]
public class TestModel
{
public string Name { get; init; } = string.Empty;
public int Age { get; init; } = 0;
public CodeableConcept? Code { get; init; }
}
...will output:
{
"resourceType": "Parameters",
"parameter": [
{
"name": "name",
"valueString": "Test"
},
{
"name": "age",
"valueDecimal": 123
},
{
"name": "code",
"valueCodeableConcept": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "386661006"
}
],
"text": "Fever"
}
}
]
}
Limitations
This library is in a very early stage and many edge and not-so-edge cases that are not covered by the generated source. The list of open issues is a good starting point to see what isn't yet supported. Contributions are of course always welcome.
Benchmark
A benchmark project exists which measures the performance of generating the source code for a 1000-property class: https://github.com/chgl/FhirParametersGenerator/blob/master/src/FhirParametersGenerator.Benchmark/Program.cs.
Benchmarking results over time are available at https://chgl.github.io/FhirParametersGenerator/dev/bench/.
Credits
Source Code
Contains source code published under the terms of the MIT license originally from https://github.com/andrewlock/NetEscapades.EnumGenerators/ and from https://github.com/dotnet/runtime/blob/v6.0.2/src/libraries/System.Text.Json/Common/JsonCamelCaseNamingPolicy.cs.
Icon
The package icon is composed of
- Fire by artworkbean from NounProject.com
- Edit by Logan from NounProject.com
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.